design pattern composite
ieikon