refactor user view