refactor to new user domain model