refactor the google oauth stuff