ModuleProvider refactoring