broke out totp and hotp methods