It feels strange to create a provider-specific one of these. I wonder if there is a way to get around this that still works well with DI.