todo: figure out authenticate_user