Demonstrating pattern design in C#