Composite pattern example