Decorator Pattern.