Combining patterns: Decorator
Combining patterns: Factory