Implement Auth feature generator

* generalize Factory a bit to accept full key