user serice refactor