Mastering the Composite Design Pattern in C#