consider refactoring this into a module-level hash, so you can write e.g. "PROTOCOLS[verifier.protocol].request()" rather than the conditional?