Composite and Facade patterns added.