Added Composite pattern (very cool)