CompositePattern