refactor UserResource