Re-factored to support Google OAuth2 Strategy Design Pattern