Strategy Pattern
Decorator pattern start
Decorator done!