object oriented programming in C#