How did I get this far without needing a service locator? Still not fully convinced that this is the right way to go but the extension method is definitely clean.