added CSharp implementation of composite pattern