ModuleProvider Refactoring