more clean up, extract ModuleLoader form ModuleFinder