UnitFactory to module, decouple instantiation