Programming in C#: Creating Types