first draft of the settings cache and provider interface