Added Decorator pattern