Add Decorator Pattern
Add Composite Pattern