User refactor