impl Decorator pattern