changed new implementation to be backward compatible with old versions of the framework that do not specify providers or files in the compile config