user_portal functions as well