Perhaps we should have an overloading ctor taking (..., parms ISettingsProvider providers)