Added Composite pattern.