refactor for model of user