refactor: user profile flow