Composite pattern - Wikipedia