Best way to do this OOP-wise??? - C#