userprofile refactoring