Refactor the user model to user more self methods