Added support for Google + refactored IdentityProvider interface