Whit this you must implement the same logic in all your suggested authenticator services. The authenticator service should not describe how an authenticator will be stored. It should describe how the concept of authentication works. It should be up to the injected storage trait to define how an authenticator will be stored.