#157 refactoring model step 2 introducing decorators