Add Composite pattern