Composite pattern initial commit