refactoring model code