Composite design Pattern