Refactor auth to be more modular
Use injection to find authenticator