refactoring ModelDecorator