POO practices in C#