implement module factory registry