Decorator Patter (Full Code)