add google sign-in support, some interface changes