user view refactor