add Composite pattern
dealed with pep8 comments.
Closes #1