refactoring of model goes farer