Add: decorator, factory and strategy