Design pattern: Decorator