Begining with decorator pattern
Finished with Decorator