userService refactored