How similar do you expect TOTP to be to the interface of this class?