UnitFactory implemented