looks a lot like Model::dynamic_module_types()