remodified oauth2 lib