refactor so get_user_info can be easily overridden