refactor user profile model