DecoratorPattern