first commit.
implement Composite Pattern a little bit.