Decorator pattern added