Added:
* composite pattern
* visitor pattern