Decorator Pattern example
Decorator Pattern Commit