Refactor Decorator pattern