user profile refactoring