Strategy Pattern
Observer Pattern
Decorator Pattern