Decorator and Presenter patterns refactored