revamp user auth flow