4. and 5. Decorator and Factory, last commit name was mistake