refactor user profile service