refactoring config and loading so it becomes a two step process: first load the configuration providers and the config, then load all the other components but only if they are enabled