extracted the ModuleProvider