add Composite Design Pattern