Design patterns Decorator