merge GoogleAuthenticatorUI into GoogleAuthenticator
sync problem from ui and service, try to implements a spin lock