added Decorator and Proxy