Added Composite Pattern