add module "factory method"