diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index 7d9eea62a1874d1166f728c3ee8ad70c1bc74d88..2cba2e2cccb2966c90d807fbc8a5232f50e57b7e 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -1220,7 +1220,7 @@ takes one of the following strings or 0
 
 preg:
 
-pregnancy type
+pregnancy time or state. See Pregnancy Control section for more.
 -3    - sterilized
 -2    - sterile
 -1    - contraceptives
@@ -1230,9 +1230,9 @@ pregnancy type
 21-30 - pregnant
 30-35 - very pregnant
 
-pregSource:
+pregSource:	
 
-accepts ID
+accepts ID See Pregnancy Control section for more.
 Who sired her pregnancy
 -2 - Citizen of your arcology
 -1 - You
@@ -1240,7 +1240,7 @@ Who sired her pregnancy
 
 pregType:
 
-number of children
+Number of children. Warning! Should be not changed after initial impregnantion setup. See Pregnancy Control section for more.
 
 broodmother
 
@@ -1249,9 +1249,19 @@ has the slave been turned into a broodmother
 1 - standard 1 birth/week
 2 - black market 12 births/week
 
+broodmotherFetuses 
+count of ova that broodmother implant force to release. Should be setted with "broodmother" property together. If broodmother == 0 has no meaning.
+
+broodmotherOnHold
+
+If broodmother implant set to pause it's work.
+1 - implant on pause
+!= 1 - working.
+If broodmother birth her last baby and implant on pause - it's will be passed out. 
+
 broodmotherCountDown:
 
-Number of weeks left until the implant is fully shutdown.
+Number of weeks left until last baby will be birthed. Mainly informative only. Updated automaticaly at birth process based on remaining fetuses.
 0-37
 
 labor:
@@ -2640,7 +2650,7 @@ How to set up your own hero slave.
 
 -The default slave template used:
 
-<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute",  nipplesPiercing: 0, nipplesAccessory: "none", areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, broodmother: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillST: 0, skillMM: 0, skillWA: 0, tankBaby: 0}>>
+<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute",  nipplesPiercing: 0, nipplesAccessory: "none", areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, broodmother: 0, broodmotherFetuses: 0, broodmotherOnHold: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillST: 0, skillMM: 0, skillWA: 0, tankBaby: 0}>>
 
 Making your slave; add their name to the following, then go down the documentation adding in your changes.
 -each variable must be seperated from the last by a comma followed by a space
@@ -2672,3 +2682,69 @@ To test if your slave is functioning, start up a normal game, swap to cheat mode
 @@.lightgreen;			- relationship
 
 
+wombJS.tw subsystem:
+
+This is womb processor/simulator script. It's take care about calculation of belly sizes based on individual foetus sizes, 
+with full support of broodmothers implant random turning on and off possibility. Also this can be expanded to store more parents data in each individual fetus in future. Should be initialized for all slaves not female only. Currently it's not affect pregnancy mechanic in game directly - it's addon for beter sizes calulation, and optional mechanics for future usage.
+Design limitations:
+- Mother can't gestate children with different speeds at same time. All speed changes apply to all fetuses.
+- Sizes of inividual fetuses updated only on call of WombGetVolume - not every time as called WombProgress. This is for better overail code speed.
+- For broodmothers we need actual "new ova release" code now. But it's possible to control how many children will be added each time, and so - how much children is ready to birth each time.
+
+
+For new generated slaves automatically called WombInit function to do initial setup. But it's can be called at any time "just in case", if code need to be completely sure that womb exists and correctly initialized. If .preg and pregType is set above 0 at time of call with empty womb array - fetuses will be generated too.
+
+
+Pregnancy control, best practices ($activeSlave used as sample, can be any slave related variable or $PC for player character):
+
+Impregnantion:
+
+<<set WombImpregnate($activeSlave, 3, -1, 15)>> 
+$activeSlave, 3 fetuses, -1 - player is father, 15 week is initial time for fetuses. Can be used on already pregnant slaves (broodmothers use it).
+<<SetSlaveBelly $activeSlave>> 
+Last line needed only if you need to show description with changed state immidiately, an advanced initial prenancy time set (showing already).
+
+Advancing pregnancy:
+
+<<set WombProgress($activeSlave, 1)>>
+Advancing 1 week. Normally it's called by End Week processing for all slaves. Old method with using .preg++ on slave supported too, but better to use this new.
+
+Birth checking:
+
+<<if WombBirthReady($activeSlave, 40) > 0>>
+Check if we have any babies in womb with is at minimum 40 week of gestation age? Age can be any.
+
+Birthing:
+
+<<set _babies = WombBirth($activeSlave, 34)>>
+In array _babies will be placed all babyies from womb of $activeSlave who gestation age at least 34 weeks (can be any). Others will be leaved in womb.
+Optionally:
+<<set WombFlush($activeSlave)>>
+Will empty womb. You also still should set .preg .pregType .pregSource .pregWeek to 0, or call WombNormalizePreg. 
+_babies here become normal array - we can do with it as with any other array in sugarcube. _babies.length - size, _babies[0] - first element, etc. Contains all babies object, with their age, sex, volume/size, and father ID. Right now - not used anywhere but useful for possible incubator improvements in future at least.
+
+Usage reference without sugarcube code (samples):
+
+WombInit($slave) - before first pregnancy, at slave creation, of as backward compatibility update. Can generate proper pregnancy based on preg, pregType, and pregSource properties too. Can be little glitchy with broodmothers in this case, if their preg != pregType (or pregType can't be divided by preg with integer result).
+
+WombImpregnate($Slave, $fetus_count, $fatherID, $initial_age) - should be added after normal impregnation code, with already calcualted fetus count. ID of father - can be used in future for processing children from different fathers in one pregnancy. Initial age normally 1 (as .preg normally set to 1), but can be raised if needed. Also should be called at time as broodmother implant add another fetus(es), or if new fetuses added from other sources in future (transplanting maybe?)
+
+WombProgress($slave, $time_to_add_to_fetuses) - after code that update $slave.preg, time to add should be the same.
+
+$isReady = WombBirthReady($slave, $birth_ready_age) - how many children ready to be birthed if their time to be ready is $birth_ready_age (40 is for normal length pregnancy). Return int - count of ready to birth children, or 0 if no ready exists. 
+
+$children = WombBirth($slave, $birth_ready_age) - for actual birth. Return array with fetuses objects that birthed (can be used in future) and remove them from womb array of $slave. Should be called at actual birth code in sugarcube. fetuses that not ready remained in womb (array).
+
+WombFlush($slave) - clean womb (array). Can be used at broodmother birthstorm or abortion situations in game. But birthstorm logicaly should use WombBirth($slave, 35) or so before - some children in this event is live capable, others is not.
+
+$slave.bellyPreg = WombGetWolume($slave) - return double, with current womb volume in CC - for updating $slave.bellyPreg, or if need to update individual fetuses sizes.
+
+_time = WombMinPreg($activeSlave) - age of most young fetus in womb.
+
+_time = WombMaxPreg($activeSlave) - age of most old fetus in womb.
+
+WombUpdatePregVars($activeSlave) - automaticaly update $activeSlave.preg, $activeSlave.pregType, $activeSlave.bellyPreg to actual values based on womb fetuses.
+
+WombNormalizePreg($activeSlave) - automatialy correct all pregnancy related properties of given $activeSlave. Also it advance pregnancy if detected old .preg++ method used on slave and womb simulation is late. Can be called at any time without conditions checks - function do all needed checks by itself. Call of this function do NOT advance pregnancy by itself.
+
+P.S. All this womb system can be much more automated (.preg .pregType .pregSource .pregWeek may have to be done in a way, that they will have no need to be controlled manually anywhere at all. Just will be set fully automatially). But in this case many changes in present game code needed, to REMOVE legacy code.
diff --git a/src/js/wombJS.tw b/src/js/wombJS.tw
new file mode 100644
index 0000000000000000000000000000000000000000..04ec3ae4bad3d680e48abd7737f4f0798535a2da
--- /dev/null
+++ b/src/js/wombJS.tw
@@ -0,0 +1,277 @@
+:: wombJS [script]
+
+/*
+This is womb processor/simulator script. It's take care about calculation of belly sizes based on individual foetus sizes, 
+with full support of broodmothers implant random turning on and off possibility. Also this can be expanded to store more parents data in each individual fetus in future.
+Design limitations:
+- Mother can't gestate children with different speeds at same time. All speed changes apply to all fetuses.
+- Sizes of inividual fetuses updated only on call of WombGetVolume - not every time as called WombProgress. This is for better overail code speed.
+- For broodmothers we need actual "new ova release" code now. But it's possible to control how many children will be added each time, and so - how much children is ready to birth each time.
+
+Usage form sugarcube code (samples):
+
+WombInit($slave) - before first pregnancy, at slave creation, of as backward compatibility update.
+
+WombImpregnate($slave, $fetus_count, $fatherID, $initial_age) - should be added after normal impregnation code, with already calcualted fetus count. ID of father - can be used in future for prcess children from different fathers in one pregnancy. Initial age normally 1 (as .preg normally set to 1), but can be raised if needed. Also should be called at time as broodmother implant add another fetus(es), or if new fetuses added from other sources in future (transplanting maybe?)
+
+WombProgress($slave, $time_to_add_to_fetuses) - after code that update $slave.preg, time to add should be the same.
+
+$isReady = WombBirthReady($slave, $birth_ready_age) - how many children ready to be birthed if their time to be ready is $birth_ready_age (40 is for normal length pregnancy). Return int - count of ready to birth children, or 0 if no ready exists. 
+
+$children = WombBirth($slave, $birth_ready_age) - for actual birth. Return array with fetuses objects that birthed (can be used in future) and remove them from womb array of $slave. Should be called at actual birth code in sugarcube. fetuses that not ready remained in womb (array).
+
+WombFlush($slave) - clean womb (array). Can be used at broodmother birthstorm or abortion situations in game. But birthstorm logicaly should use WombBirth($slave, 35) or so before - some children in this event is live capable, others is not.
+
+$slave.bellyPreg = WombGetWolume($slave) - return double, with current womb volume in CC - for updating $slave.bellyPreg, or if need to update individual fetuses sizes.
+*/
+
+window.WombInit = function(actor) //Init womb system.
+{
+    if (!Array.isArray(actor.womb))
+    {   
+       //alert("creating new womb"); //debugging
+	   actor.womb = [];
+    }
+
+    if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother == 0) //backward compatibility setup. Fully accurate for normal pregnancy only.
+    {
+        WombImpregnate(actor, actor.pregType, actor.pregSource, actor.preg);
+    }
+    else if (actor.womb.length == 0 && actor.pregType != 0 && actor.broodmother > 0) //sorry but for already present broodmothers it's impossible to calculate fully, aproximation used.
+    {
+        var i, pw = actor.preg, bCount, bLeft;
+        if (pw > 40)
+            pw = 40; //to avoid disaster.
+        bCount = Math.floor(actor.pregType/pw);
+        bLeft = actor.pregType - (bCount*pw);
+        if (pw > actor.pregType)
+        {
+            pw = actor.pregType // low children count broodmothers not supported here. It's emergency/backward compatibility code, and they not in game anyway. So minimum is 1 fetus in week.
+            actor.preg = pw; // fixing initial pregnancy week.
+        }
+        for (i=0; i<pw; i++)
+        {
+            WombImpregnate(actor, bCount, actor.pregSource, i); // setting fetuses for every week, up to 40 week at max.
+        }
+
+        if (bLeft > 0)
+        {
+            WombImpregnate(actor, bLeft, actor.pregSource, i+1); // setting up leftower of fetuses.
+        }
+    }
+}
+
+window.WombImpregnate = function(actor, fCount, fatherID, age)
+{
+    var i;
+    var tf;
+    for (i=0; i<fCount; i++)
+    {
+	tf = {}; //new Object
+    tf.age = age; //initial age
+    tf.fatherID = fatherID; //We can store who is father too.
+	tf.sex = Math.round(Math.random())+1; // 1 = male, 2 = female. For possible future usage, just as concept now.
+    tf.volume = 1; //Initial, to create property. Updated with actual data after WombGetVolume call.
+
+    try {
+            if (actor.womb.length == 0)
+            {
+                actor.pregWeek = age;
+                actor.preg = age;
+            }
+
+	        actor.womb.push(tf);
+        }catch(err){
+            WombInit(actor);
+            actor.womb.push(tf);
+            alert("WombImpregnate warning - " + actor.slaveName+" "+err);
+        }
+
+    }
+    
+}
+
+window.WombProgress = function(actor, ageToAdd)
+{
+    var i, ft;
+    ageToAdd = Math.ceil(ageToAdd*10)/10;
+    try {
+            for (i in actor.womb)
+            {
+                ft = actor.womb[i];
+                ft.age += ageToAdd;
+            }
+    }catch(err){
+            WombInit(actor);
+            alert("WombProgress warning - " + actor.slaveName+" "+err);
+    }
+}
+
+window.WombBirth = function(actor, readyAge)
+{
+    try{
+        actor.womb.sort(function (a, b){return b.age - a.age}); //For normal processing fetuses that more old should be first. Now - they are.
+        }catch(err){
+            WombInit(actor);
+            alert("WombBirth warning - " + actor.slaveName+" "+err);       
+        }
+
+    var birthed = [];    
+    var ready = WombBirthReady(actor, readyAge);
+    var i;
+
+    for (i=0; i<ready; i++) //here can't be used "for .. in .." syntax.
+    {
+        birthed.push(actor.womb.shift());
+    }
+
+    return birthed;
+}
+
+window.WombFlush = function(actor)
+{
+    actor.womb = [];
+   
+}
+
+window.WombBirthReady = function(actor, readyAge)
+{
+
+    var i, ft;
+    var readyCnt = 0;
+    try {
+        for (i in actor.womb)
+        {
+            ft = actor.womb[i];
+            if (ft.age >= readyAge)
+                  readyCnt++;
+        }
+    }catch(err){
+        WombInit(actor);
+        alert("WombBirthReady warning - " + actor.slaveName+" "+err);    
+
+        return 0;
+    }
+
+    return readyCnt;
+}
+
+window.WombGetVolume = function(actor) //most code from pregJS.tw with minor adaptation.
+{
+    var i, ft;
+    var gestastionWeek;
+    var phi = 1.618;
+    var targetLen;
+    var wombSize = 0;
+    
+    try{
+
+        for (i in actor.womb)
+        {
+            ft = actor.womb[i];
+            gestastionWeek = ft.age;
+            
+            if (gestastionWeek <= 32) 
+            {
+                targetLen = (0.00006396 * Math.pow(gestastionWeek, 4)) - (0.005501 * Math.pow(gestastionWeek, 3)) + (0.161 * Math.pow(gestastionWeek, 2)) - (0.76 * gestastionWeek) + 0.208;
+            } 
+            else if (gestastionWeek <= 106) 
+            {
+                targetLen = (-0.0000004675 * Math.pow(gestastionWeek, 4)) + (0.0001905 * Math.pow(gestastionWeek, 3)) - (0.029 * Math.pow(gestastionWeek, 2)) + (2.132 * gestastionWeek) - 16.575;
+            } 
+            else 
+            {
+                targetLen = (-0.00003266 * Math.pow(gestastionWeek,2)) + (0.076 * gestastionWeek) + 43.843;
+            }
+
+            ft.volume = ((4 / 3) * (Math.PI) * (phi / 2) * (Math.pow((targetLen / 2), 3)));
+        
+            wombSize += ft.volume;
+        }
+    }catch(err){
+        WombInit(actor);
+        alert("WombGetVolume warning - " + actor.slaveName + " " + err);       
+    }
+  
+    if (wombSize < 0) //catch for strange cases, to avoid messing with outside code.
+        wombSize = 0;
+
+    return wombSize;
+}
+
+window.WombUpdatePregVars = function(actor) {
+
+    actor.womb.sort(function (a, b){return b.age - a.age});
+    if (actor.womb.length > 0)
+    {
+        if (actor.preg > 0 && actor.womb[0].age > 0)
+        {
+            actor.preg = actor.womb[0].age;
+        }
+
+        actor.pregType = actor.womb.length;
+        
+        actor.bellyPreg = WombGetVolume(actor);
+
+    }
+
+}
+
+window.WombMinPreg = function(actor)
+{
+    actor.womb.sort(function (a, b){return b.age - a.age});
+
+    if (actor.womb.length > 0) 
+        return actor.womb[actor.womb.length-1].age;
+    else
+        return 0;
+}
+
+window.WombMaxPreg = function(actor)
+{
+    actor.womb.sort(function (a, b){return b.age - a.age});
+    if (actor.womb.length > 0) 
+        return actor.womb[0].age;
+    else
+        return 0;
+}
+
+window.WombNormalizePreg = function(actor)
+{
+    if (actor.womb.length > 1)
+    {
+        var max = WombMaxPreg(actor);
+
+        if (actor.pregWeek < 1 )
+            actor.pregWeek = 1
+
+        if (max < actor.preg)
+        {
+            WombProgress(actor, actor.preg - max);
+        }
+        else if ( max > actor.preg)
+        {
+            actor.preg = max;
+        }
+
+        actor.pregType = actor.womb.length;
+
+        actor.pregSource = actor.womb[0].fatherID;
+        
+        actor.bellyPreg = WombGetVolume(actor);
+    } 
+    else if (actor.womb.length == 0 && actor.broodmother < 1)
+    {
+        actor.pregType = 0;
+        actor.pregKnown = 0;
+        
+        if (actor.preg > 0)
+            actor.preg = 0;
+        
+        if (actor.pregSource > 0)
+            actor.pregSource = 0;
+
+        if (actor.pregWeek > 0) // We can't properly set postpartum here, but can normalize obvious error with forgotten property.
+            actor.pregWeek = 0;
+    }
+}
diff --git a/src/npc/exportSlave.tw b/src/npc/exportSlave.tw
index 4fcde403165ff0df5f3104bfc93e96060c1bcea9..b4a2464c1433d99b18cfc81722804187870e5d34 100644
--- a/src/npc/exportSlave.tw
+++ b/src/npc/exportSlave.tw
@@ -8,9 +8,7 @@
 
 <<if (ndef $activeSlave.currentRules) || ($activeSlave.currentRules.length < 1)>><<set _currentRules = "[]">><<else>><<set _currentRules = "$activeSlave.currentRules">><</if>>
 
-slaveName: "$activeSlave.slaveName", slaveSurname: "$activeSlave.slaveName", birthName: "$activeSlave.birthName", birthSurname: "$activeSlave.birthSurname", genes: "$activeSlave.genes", weekAcquired: 1, origin: "$activeSlave.origin", career: "$activeSlave.career", ID: $activeSlave.ID, pornFame: $activeSlave.pornFame, pornFameSpending: $activeSlave.pornFameSpending, prestige: $activeSlave.prestige, prestigeDesc: "$activeSlave.prestigeDesc", recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: $activeSlave.birthWeek, age: $activeSlave.age, ageImplant: $activeSlave.ageImplant, health: $activeSlave.health, minorInjury: 0, trust: $activeSlave.trust, oldTrust: $activeSlave.trust, devotion: $activeSlave.devotion, oldDevotion: $activeSlave.devotion, weight: $activeSlave.weight, muscles: $activeSlave.muscles, height: $activeSlave.height, heightImplant: $activeSlave.heightImplant, nationality: "$activeSlave.nationality", race: "$activeSlave.race", markings: "none", eyes: 1, eyeColor: "$activeSlave.eyeColor", eyewear: "none", hColor: "$activeSlave.hColor", pubicHColor: "$activeSlave.pubicHColor", skin: "$activeSlave.skin", hLength: $activeSlave.hLength, hStyle: "$activeSlave.hStyle", pubicHStyle: "$activeSlave.pubicHStyle", waist: $activeSlave.waist, corsetPiercing: $activeSlave.corsetPiercing, amp: $activeSlave.amp, heels: $activeSlave.heels, voice: $activeSlave.voice, voiceImplant: $activeSlave.voiceImplant, accent: $activeSlave.accent, shoulders: $activeSlave.shoulders, shouldersImplant: $activeSlave.shouldersImplant, boobs: $activeSlave.boobs, boobsImplant: $activeSlave.boobsImplant, boobsImplantType: $activeSlave.boobsImplantType, boobShape: "normal", nipples: "$activeSlave.nipples", nipplesPiercing: $activeSlave.nipplesPiercing, nipplesAccessory: "$activeSlave.nipplesAccessory", areolae: $activeSlave.areolae, areolaePiercing: $activeSlave.areolaePiercing, boobsTat: "$activeSlave.boobsTat", lactation: $activeSlave.lactation, lactationAdaptation: $activeSlave.lactationAdaptation, milk: 0, cum: 0, hips: $activeSlave.hips, hipsImplant: $activeSlave.hipsImplant, butt: $activeSlave.butt, buttImplant: $activeSlave.buttImplant, buttImplantType: $activeSlave.buttImplantType, buttTat: "$activeSlave.buttTat", face: $activeSlave.face, faceImplant: $activeSlave.faceImplant, faceShape: "normal", lips: $activeSlave.lips, lipsImplant: $activeSlave.lipsImplant, lipsPiercing: $activeSlave.lipsPiercing, lipsTat: "$activeSlave.lipsTat", teeth: "$activeSlave.teeth", tonguePiercing: $activeSlave.tonguePiercing, vagina: $activeSlave.vagina, vaginaLube: $activeSlave.vaginaLube, vaginaPiercing: $activeSlave.vaginaPiercing, vaginaTat: "$activeSlave.vaginaTat", preg: $activeSlave.preg, pregSource: 0, pregType: $activeSlave.pregType, broodmother: $activeSlave.broodmother, broodmotherCountDown: $activeSlave.broodmotherCountDown, labor: $activeSlave.labor, births: $activeSlave.births, cSec: $activeSlave.cSec, bellyAccessory: "none", labia: $activeSlave.labia, clit: $activeSlave.clit, clitPiercing: $activeSlave.clitPiercing, clitSetting: "$activeSlave.clitSetting", foreskin: $activeSlave.foreskin, anus: $activeSlave.anus, dick: $activeSlave.dick, analArea: 1, dickPiercing: $activeSlave.dickPiercing, dickTat: "$activeSlave.dickTat", balls: $activeSlave.balls, scrotum: $activeSlave.scrotum, ovaries: $activeSlave.ovaries, anusPiercing: $activeSlave.anusPiercing, anusTat: "$activeSlave.anusTat", makeup: $activeSlave.makeup, nails: $activeSlave.nails, brand: "$activeSlave.brand", brandLocation: "$activeSlave.brandLocation", earPiercing: $activeSlave.earPiercing, nosePiercing: $activeSlave.nosePiercing, eyebrowPiercing: $activeSlave.eyebrowPiercing, navelPiercing: $activeSlave.navelPiercing, shouldersTat: "$activeSlave.shouldersTat", armsTat: "$activeSlave.armsTat", legsTat: "$activeSlave.legsTat", backTat: "$activeSlave.backTat", stampTat: "$activeSlave.stampTat", vaginalSkill: $activeSlave.vaginalSkill, oralSkill: $activeSlave.oralSkill, analSkill: $activeSlave.analSkill, whoreSkill: $activeSlave.whoreSkill, entertainSkill: $activeSlave.entertainSkill, combatSkill: $activeSlave.combatSkill, livingRules: "$activeSlave.livingRules", speechRules: "$activeSlave.speechRules", releaseRules: "$activeSlave.releaseRules", relationshipRules: "$activeSlave.relationshipRules", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "$activeSlave.diet", dietCum: $activeSlave.dietCum, dietMilk: $activeSlave.dietMilk, tired: 0, hormones: 0, drugs: "$activeSlave.drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: $activeSlave.addict, fuckdoll: $activeSlave.fuckdoll, choosesOwnClothes: 0, clothes: "$activeSlave.clothes", collar: "$activeSlave.collar", shoes: "$activeSlave.shoes", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", intelligence: $activeSlave.intelligence,  intelligenceImplant: $activeSlave.intelligenceImplant, energy: $activeSlave.energy, need: 0, attrXX: $activeSlave.attrXX, attrXY: $activeSlave.attrXY, attrKnown: $activeSlave.attrKnown, fetish: "$activeSlave.fetish", fetishStrength: $activeSlave.fetishStrength, fetishKnown: $activeSlave.fetishKnown, behavioralFlaw: "$activeSlave.behavioralFlaw", behavioralQuirk: "none", sexualFlaw: "$activeSlave.sexualFlaw", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, pitKills: 0, customTat: "$activeSlave.customTat", customLabel: "", customDesc: "$activeSlave.customDesc", customImage: 0, currentRules: _currentRules, actualAge: $activeSlave.actualAge, visualAge: $activeSlave.visualAge, physicalAge: $activeSlave.physicalAge, bellyTat: "$activeSlave.bellyTat", induce: 0, mpreg: $activeSlave.mpreg, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: $activeSlave.pregKnown, belly: $activeSlave.belly, bellyPreg: $activeSlave.bellyPreg, bellyFluid: $activeSlave.bellyFluid, bellyImplant: $activeSlave.bellyImplant, bellySag: $activeSlave.bellySag, bellySagPreg: $activeSlave.bellySagPreg, bellyPain: 0, cervixImplant: $activeSlave.cervixImplant, birthsTotal: $activeSlave.birthsTotal, pubertyXX: $activeSlave.pubertyXX, pubertyAgeXX: $activeSlave.pubertyAgeXX, pubertyXY: $activeSlave.pubertyXY, pubertyAgeXY: $activeSlave.pubertyAgeXY, scars: $activeSlave.scars, breedingMark: 0, underArmHStyle: "waxed", underArmHColor: "$activeSlave.underArmHColor", bodySwap: $activeSlave.bodySwap, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, HGExclude: 0, ballType: "$activeSlave.ballType", eggType: "$activeSlave.eggType", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: $activeSlave.ageAdjust, bald: $activeSlave.bald, origBodyOwner: "", death: "", hormoneBalance: $activeSlave.hormoneBalance, vasectomy: $activeSlave.vasectomy, ovaryAge: $activeSlave.ovaryAge, haircuts: $activeSlave.haircuts, newGamePlus: 1, skillHG: $activeSlave.skillHG, skillRC: $activeSlave.skillRC, skillBG: $activeSlave.skillBG, skillMD: $activeSlave.skillMD, skillDJ: $activeSlave.skillDJ, skillNU: $activeSlave.skillNU, skillTE: $activeSlave.skillTE, skillAT: $activeSlave.skillAT, skillST: $activeSlave.skillST, skillMM: $activeSlave.skillMM, skillWA: $activeSlave.skillWA
-
-<br><br><br> __Direct JSON export method__: <br><br>
+/* <br><br><br> __Direct JSON export method__: <br><br> */
 
 <div class="output">
 <<set _jsonText = toJson($activeSlave)>>
diff --git a/src/npc/uploadSlave.tw b/src/npc/uploadSlave.tw
index deed9a9488b3b0628a945d8a5ae1f6c40e14d55c..f8f4d2ae3d80708f425c06676f56e9803d194146 100644
--- a/src/npc/uploadSlave.tw
+++ b/src/npc/uploadSlave.tw
@@ -107,6 +107,8 @@ preg: $activeSlave.preg,
 pregSource: 0,
 pregType: $activeSlave.pregType,
 broodmother: $activeSlave.broodmother,
+broodmotherFetuses: $activeSlave.broodmotherFetuses, 
+broodmotherOnHold: $activeSlave.broodmotherOnHold,
 broodmotherCountDown: $activeSlave.broodmotherCountDown,
 labor: $activeSlave.labor,
 births: $activeSlave.births,
diff --git a/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw b/src/pregmod/SecForceEX/SpecialForceUpgradeDec.tw
old mode 100755
new mode 100644
diff --git a/src/pregmod/SecForceEX/SpecialForceUpgradeOptions.tw b/src/pregmod/SecForceEX/SpecialForceUpgradeOptions.tw
old mode 100755
new mode 100644
diff --git a/src/pregmod/csec.tw b/src/pregmod/csec.tw
index 5aa300cc614da9deda9eeea6219e5795c2220063..57f930a1b18bb542031537efc246436ae3673810 100644
--- a/src/pregmod/csec.tw
+++ b/src/pregmod/csec.tw
@@ -8,79 +8,124 @@
 	<<set $daddy = _getFather.slaveName>>
 <</if>>
 
+/*---------------- claculations -----------------*/
+
+/* Now it's will be possible to use passge for broodmothers and partial birthers too.*/
+
+<<set $activeSlave.pregControl = "none">>
+<<set _beforeSize = WombGetVolume($activeSlave)>>
+<<set $activeSlave.curBabies = WombBirth($activeSlave, 34)>> /* 34 week is minimal gestation time for live birth. Here we take only ready to survive. With others we will deal later in code. */
+
+<<set $activeSlave.curStillBirth = 0 >>
+
+<<set _curBabies = $activeSlave.curBabies.length>> /*just to improve speed and usability here.*/
+
+<<set $activeSlave.births += _curBabies>>
+<<set $activeSlave.birthsTotal += _curBabies>>
+<<set $birthsTotal += _curBabies>>
+
 <<if $activeSlave.pregSource > 0>>
 	<<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $activeSlave.pregSource; })>>
 	<<if $daddy != -1>>
-		<<set $slaves[_babyDaddy].slavesFathered += $activeSlave.pregType>>
+		<<set $slaves[_babyDaddy].slavesFathered += _curBabies>>
 	<</if>>
 <<elseif $activeSlave.pregSource == -1>>
-	<<set $PC.slavesFathered += $activeSlave.pregType>>
+	<<set $PC.slavesFathered += _curBabies>>
+<</if>>
+
+<<if $activeSlave.broodmother < 1>>  /* broodmothers can't lose fetuses, or it's abortion procedure, not c'sec.*/
+	<<if $safePartialBirthTech == 1 >>
+		/* nothing right now. For partial birhters, who can do it. For future use.*/
+	<<else>>
+		<<set $activeSlave.curStillBirth = $activeSlave.womb.length>>
+		<<set WombFlush($activeSlave)>>
+		/* normally fetuses before 34 week will not survive */
+	<</if>>
 <</if>>
-<<set $activeSlave.births += $activeSlave.pregType, $activeSlave.birthsTotal += $activeSlave.pregType>>
+<<set _afterSize = WombGetVolume($activeSlave)>> /* not really needed right now, but better to add alredy for future usage. To not forget later.*/
+<<set $diffSize = _beforeSize / (1 + _afterSize)>> /* 1 used to avoid devide by zero error.*/ 
+
 <<set _incubated = 0>>
 <<set _oldDevotion = $activeSlave.devotion>>
 
-Performing a cesarean section is trivial for the remote surgery for the remote surgery to carry out. $activeSlave.slaveName is sedated, her child<<if $activeSlave.pregType > 1>>ren<</if>> extracted, and taken to a bed to recover. By the time she comes to,
-<<if $activeSlave.pregSource == -1>>
-	your
-<<elseif $activeSlave.pregSource == -2>>
-	your arcology's
-<<elseif $activeSlave.pregSource == -3>>
-	the Societal Elites'
-<<elseif $activeSlave.pregSource == 0>>
-	some man's
-<<elseif $activeSlave.ID == $daddy.ID>>
-	her own
-<<else>>
-	$daddy's
-<</if>>
-<<if $activeSlave.pregType <= 1>>
-	baby has
-<<elseif $activeSlave.pregType >= 40>>
-	massive brood of $activeSlave.pregType babies have
-<<elseif $activeSlave.pregType >= 20>>
-	brood of $activeSlave.pregType babies have
-<<elseif $activeSlave.pregType >= 10>>
-	impressive group of $activeSlave.pregType babies have
-<<elseif $activeSlave.pregType == 9>>
-	nonuplets have
-<<elseif $activeSlave.pregType == 8>>
-	octuplets have
-<<elseif $activeSlave.pregType == 7>>
-	septuplets have
-<<elseif $activeSlave.pregType == 6>>
-	sextuplets have
-<<elseif $activeSlave.pregType == 5>>
-	quintuplets have
-<<elseif $activeSlave.pregType == 4>>
-	quadruplets have
-<<elseif $activeSlave.pregType == 3>>
-	triplets have
-<<else>>
-	twins have
+<<set _cToIncub = 0, _origReserve = $activeSlave.reservedChildren>> 
+<<if _origReserve > 0 && _curBabies > 0>> /*Do we need incubator checks?*/
+	<<if _curBabies >= _origReserve >>
+		/*adding normal*/
+		<<set _cToIncub = _origReserve >>
+	<<elseif _curBabies <  _origReserve && $activeSlave.womb.length > 0>>
+		/*broodmother or partial birth, we will wait for next time to get remaining children*/
+		<<set $activeSlave.reservedChildren -= _curBabies, _cToIncub = _curBabies>>
+	<<else>>
+		/*Stillbirth or something other go wrong. Correcting children count.*/
+		<<set $activeSlave.reservedChildren = 0, _cToIncub = _curBabies>>
+	<</if>>
 <</if>>
-already been
 
-<<if $activeSlave.reservedChildren == $activeSlave.pregType>>
-	taken to $incubatorName.
-	<<for _csec = $activeSlave.reservedChildren; _csec != 0; _csec-->>
-		<<set $mom = $slaves[$i]>>
-		<<include "Generate Child">>
-		<<include "Incubator Workaround">>
-	<</for>>
-	<<set _incubated = 2>>
-<<elseif $activeSlave.reservedChildren > 0>>
-	split between $incubatorName and
-	<<for _csec = $activeSlave.reservedChildren; _csec != 0; _csec-->>
-		<<set $mom = $slaves[$i]>>
-		<<include "Generate Child">>
-		<<include "Incubator Workaround">>
-		<<set $activeSlave.pregType-->>
+/* ------------------------------------------------ */
+
+Performing a cesarean section is trivial for the remote surgery for the remote surgery to carry out. $activeSlave.slaveName is sedated, her child<<if _curBabies > 1>>ren<</if>> extracted, and taken to a bed to recover. By the time she comes to,
+<<if _curBabies >0 >>
+	<<if $activeSlave.pregSource == -1>>
+		your
+	<<elseif $activeSlave.pregSource == -2>>
+		your arcology's
+	<<elseif $activeSlave.pregSource == -3>>
+		the Societal Elites'
+	<<elseif $activeSlave.pregSource == 0>>
+		some man's
+	<<elseif $activeSlave.ID == $daddy.ID>>
+		her own
+	<<else>>
+		$daddy's
+	<</if>>
+	<<if _curBabies <= 1>>
+		baby has
+	<<elseif _curBabies >= 40>>
+		massive brood of $activeSlave.pregType babies have
+	<<elseif _curBabies >= 20>>
+		brood of $activeSlave.pregType babies have
+	<<elseif _curBabies >= 10>>
+		impressive group of $activeSlave.pregType babies have
+	<<elseif _curBabies == 9>>
+		nonuplets have
+	<<elseif _curBabies == 8>>
+		octuplets have
+	<<elseif _curBabies == 7>>
+		septuplets have
+	<<elseif _curBabies == 6>>
+		sextuplets have
+	<<elseif _curBabies == 5>>
+		quintuplets have
+	<<elseif _curBabies == 4>>
+		quadruplets have
+	<<elseif _curBabies == 3>>
+		triplets have
+	<<else>>
+		twins have
+	<</if>>
+	already been
+
+	<<if _cToIncub == _curBabies && _cToIncub > 0 >>
+		taken to $incubatorName.
+		<<set _incubated = 2>>
+	<<elseif _cToIncub < _curBabies && _cToIncub > 0>>
+		split between $incubatorName and
+		<<set _incubated = 1>>
+	<</if>>
+	<<set $mom = $activeSlave>>
+	<<for _cb = 0; _cb < _cToIncub; _cb++>> /* if there is no reserved children, code in loop will not trigger */
+			<<include "Generate Child">>
+			<<include "Incubator Workaround">>
+			<<set $activeSlave.curBabies.shift()>> /*for now child generation metod for incubator not changed. But here children for incubator removed from array of birthed babies. If we decide later - we can use them for incubator as real objects here. For now they just discarded silently */
+			<<set $reservedChildren-- >>
 	<</for>>
-	<<set _incubated = 1>>
+<<else>>
+	/*No live babies. Placeholder */
 <</if>>
+<<set _curBabies = $activeSlave.curBabies.length >>
 
-<<if _incubated != 2>>
+<<if _incubated != 2 && _curBabies > 0 >>
 	<span id="_disposition">
 	<<if _incubated == 1>>the rest<</if>>
 	<<if $arcologies[0].FSRestart != "unset" && $activeSlave.breedingMark == 1 && $activeSlave.pregSource == -1>>
@@ -88,14 +133,14 @@ already been
 		handed off to the Societal Elite to be raised into upstanding members of the new society.
 	<<elseif $Cash4Babies == 1 && ($activeSlave.relationship != -3) && ($activeSlave.assignment != "serve in the master suite") && ($activeSlave.assignment != "be your Concubine")>>
 		<<set _lostBabies = 1, _babyCost = random(-12,12)>>
-		sold for a total of @@.yellowgreen;<<print cashFormat($activeSlave.pregType*(50+_babyCost))>>.@@
-		<<set $cash += $activeSlave.pregType*(50+_babyCost)>>
+		sold for a total of @@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>.@@
+		<<set $cash += _curBabies*(50+_babyCost)>>
 	<</if>>
 	<<if _lostBabies != 1>>
 		<br><br>
 		<<link '...sent to a slave orphanage.'>>
 			<<replace #_disposition>>
-				<<set $slaveOrphanageTotal += $activeSlave.pregType>>
+				<<set $slaveOrphanageTotal += _curBabies>>
 				sent to one of $arcologies[0].name's slave orphanages. $activeSlave.slaveName
 				<<if $activeSlave.fetish == "mindbroken" || $activeSlave.fuckdoll > 0>>
 					has few thoughts about the matter.
@@ -121,18 +166,18 @@ already been
 					<<if $activeSlave.fetish == "mindbroken" || $activeSlave.fuckdoll > 0>>
 						has few thoughts about the matter.
 					<<elseif $activeSlave.devotion > 95>>
-						loves you already, but <<print she>>'ll @@.hotpink;love you even more@@ for this. She can't wait to see her child<<if $activeSlave.pregType > 1>>ren<</if>> proudly furthering your cause.
+						loves you already, but <<print she>>'ll @@.hotpink;love you even more@@ for this. She can't wait to see her child<<if _curBabies > 1>>ren<</if>> proudly furthering your cause.
 						<<set $activeSlave.devotion += 4>>
 					<<elseif $activeSlave.devotion > 50>>
 						heard about these and will be @@.hotpink;happy that her child<<if $activeSlave.pregType > 1>>ren<</if>> will have a purpose in your society other than slavery.@@ She will miss her child<<if $activeSlave.pregType > 1>>ren<</if>>, but she expected that.
 						<<set $activeSlave.devotion += 4>>
 					<<elseif $activeSlave.devotion > 20>>
-						will naturally miss her child<<if $activeSlave.pregType > 1>>ren<</if>>, but will is broken enough to hope that her offspring will have a better life, or at least an enjoyable one.
+						will naturally miss her child<<if _curBabies > 1>>ren<</if>>, but will is broken enough to hope that her offspring will have a better life, or at least an enjoyable one.
 					<<else>>
-						will of course @@.mediumorchid;hate you for this.@@ The mere thought of her $fertilityAge year old daughter<<if $activeSlave.pregType > 1>>s<</if>> swollen with life, and proud of it, fills her with @@.gold;disdain.@@
+						will of course @@.mediumorchid;hate you for this.@@ The mere thought of her $fertilityAge year old daughter<<if _curBabies > 1>>s<</if>> swollen with life, and proud of it, fills her with @@.gold;disdain.@@
 						<<set $activeSlave.devotion -= 4, $activeSlave.trust -= 4>>
 					<</if>>
-					<<set $breederOrphanageTotal += $activeSlave.pregType>>
+					<<set $breederOrphanageTotal += _curBabies>>
 				<</replace>>
 				<<set $nextButton = "Back">><<UpdateNextButton>> /* unlock Continue button */
 			<</link>>
@@ -146,20 +191,20 @@ already been
 				<<elseif $activeSlave.devotion > 95>>
 					loves you already, but <<print she>>'ll @@.hotpink;love you even more@@ for this.
 				<<elseif $activeSlave.devotion > 50>>
-					knows about these and will be @@.hotpink;overjoyed.@@ She will miss her child<<if $activeSlave.pregType > 1>>ren<</if>>, but she expected that.
+					knows about these and will be @@.hotpink;overjoyed.@@ She will miss her child<<if _curBabies > 1>>ren<</if>>, but she expected that.
 				<<elseif $activeSlave.devotion > 20>>
-					will naturally miss her child<<if $activeSlave.pregType > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that her offspring will have a better life.
+					will naturally miss her child<<if _curBabies > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that her offspring will have a better life.
 				<<else>>
-					will naturally retain some resentment over being separated from her child<<if $activeSlave.pregType > 1>>ren<</if>>, but this should be balanced by hope that her offspring will have a better life.
+					will naturally retain some resentment over being separated from her child<<if _curBabies > 1>>ren<</if>>, but this should be balanced by hope that her offspring will have a better life.
 				<</if>>
-				<<set $activeSlave.devotion += 4, $citizenOrphanageTotal += $activeSlave.pregType>>
+				<<set $activeSlave.devotion += 4, $citizenOrphanageTotal += _curBabies>>
 			<</replace>>
 			<<set $nextButton = "Back">><<UpdateNextButton>> /* unlock Continue button */
 		<</link>>
 		//Will cost <<print cashFormat(100)>> weekly//
 		<br><<link '...sent to be raised privately.'>>
 			<<replace #_disposition>>
-				The child<<if $activeSlave.pregType > 1>>ren are<<else>> is<</if>> sent to be privately raised, to be brought up as a future high class citizen. $activeSlave.slaveName
+				The child<<if _curBabies > 1>>ren are<<else>> is<</if>> sent to be privately raised, to be brought up as a future high class citizen. $activeSlave.slaveName
 				<<if $activeSlave.fetish == "mindbroken" || $activeSlave.fuckdoll > 0>>
 					has few thoughts about the matter.
 				<<elseif $activeSlave.devotion > 95>>
@@ -167,12 +212,12 @@ already been
 				<<elseif $activeSlave.devotion > 50>>
 					understands that this is the best possible outcome for the offspring of slave, and will be @@.hotpink;overjoyed.@@
 				<<elseif $activeSlave.devotion > 20>>
-					will miss her child<<if $activeSlave.pregType > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since <<print she>>'ll understand this is the best possible outcome for a slave mother.
+					will miss her child<<if _curBabies > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since <<print she>>'ll understand this is the best possible outcome for a slave mother.
 				<<else>>
-					will resent being separated from her child<<if $activeSlave.pregType > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here.
+					will resent being separated from her child<<if _curBabies > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here.
 				<</if>>
-				The child<<if $activeSlave.pregType > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition.
-				<<set $activeSlave.devotion += 6, $privateOrphanageTotal += $activeSlave.pregType>>
+				The child<<if _curBabies > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition.
+				<<set $activeSlave.devotion += 6, $privateOrphanageTotal += _curBabies>>
 			<</replace>>
 			<<set $nextButton = "Back">><<UpdateNextButton>> /* unlock Continue button */
 		<</link>> 
@@ -181,7 +226,9 @@ already been
 	</span>
 <</if>>
 
-<<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>>
+<<if _curBabies+_cToIncub < 1>>
+	/* Reaction for no live babies here. Placeholder.*/	
+<<elseif $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>> 
 	<br><br>
 	<<if $activeSlave.pregSource == -1>>
 		<<if $activeSlave.devotion < 20 && ($week-$activeSlave.weekAcquired >= $activeSlave.weekAcquired)>>
@@ -208,15 +255,15 @@ already been
 	<</if>>
 <</if>>
 
-<<if $arcologies[0].FSRestart != "unset">>
+<<if $arcologies[0].FSRestart != "unset" && _curBabies > 0>>
 	<br><br>
 	<<if $activeSlave.breedingMark == 1 && $activeSlave.pregSource == -1>>
 		The Societal Elite @@.green;are pleased@@ at the new additions to their class.
-		<<set $failedElite -= 2*$activeSlave.pregType>>
+		<<set $failedElite -= 2*_curBabies>>
 	<<else>>
 		The Societal Elite @@.red;are disappointed@@ that you would allow subhuman filth to dirty society under your watch. Society @@.red;frowns@@ on the unwelcome addition of more subhumans into the world.
-		<<set $failedElite += 5*$activeSlave.pregType>>
-		<<set $rep -= 10*$activeSlave.pregType>>
+		<<set $failedElite += 5*_curBabies>>
+		<<set $rep -= 10*_curBabies>>
 	<</if>>
 <</if>>
 
@@ -253,11 +300,12 @@ Since her <<if $activeSlave.mpreg == 1>>ass<<else>>vagina<</if>> was spared from
 	<<set $activeSlave.health -= 5>>
 <</if>>
 
-<<if lastPregRule($activeSlave,$defaultRules)>><<set $activeSlave.preg = -1>><<else>><<set $activeSlave.preg = 0>><</if>>
-<<set $reservedChildren -= $activeSlave.reservedChildren>>
-<<set $activeSlave.pregType = 0>>
-<<set $activeSlave.pregSource = 0>>
-<<set $activeSlave.pregKnown = 0>>
-<<set $activeSlave.pregWeek = -4>>
+<<if $activeSlave.womb.length == 0>> /* Only if pregnancy is really ended... */
+	<<if lastPregRule($activeSlave,$defaultRules)>><<set $activeSlave.preg = -1>><<else>><<set $activeSlave.preg = 0>><</if>>
+	<<set $activeSlave.pregType = 0>>	
+	<<set $activeSlave.pregSource = 0>>
+	<<set $activeSlave.pregKnown = 0>>
+	<<set $activeSlave.pregWeek = -4>>
+<</if>>
 <<set $activeSlave.cSec = 1>>
 <<SetBellySize $activeSlave>>
diff --git a/src/pregmod/newChildIntro.tw b/src/pregmod/newChildIntro.tw
index e0a8dccade16c3e667596aa7cc52e5bdd4668f2d..0338240cbf220b924d586bbd126f811bb2657324 100644
--- a/src/pregmod/newChildIntro.tw
+++ b/src/pregmod/newChildIntro.tw
@@ -645,6 +645,7 @@ You slowly strip down, gauging her reactions to your show, until you are fully n
 <<set $activeSlave.pregSource = -1>>
 <<set $activeSlave.pregKnown = 1>>
 <<set $activeSlave.pregWeek = 1>>
+<<set WombImpregnate($activeSlave, $activeSlave.pregType, -1, 1)>>
 <<replace "#result">>
 	<<if $activeSlave.pregType > 0>>
 		You don't need to perform an exam to know that she is fertile; her nethers are swollen with need and her pussy dripping with desire<<if $activeSlave.pregType > 20>>, and her stomach is already slightly bloated with the number of fertile eggs within her womb<</if>>. She moans with pent-up lust as you deeply penetrate her and begin steadily thrusting. Her tight pussy hungrily massages your dick as you near your climax, prompting you to hilt yourself in her before seeding the deepest reaches of her pussy. She passed out in ecstasy, so you carry her bred body to the couch to recover. She should make the connection once her belly starts to rapidly swell with child.
diff --git a/src/pregmod/pInsemination.tw b/src/pregmod/pInsemination.tw
index 912dedd0de7a6550450600bfe7f5e59ea3499795..33956e7ad52f27796e2f498a3d8f0f359228735b 100644
--- a/src/pregmod/pInsemination.tw
+++ b/src/pregmod/pInsemination.tw
@@ -107,4 +107,5 @@
 /* You're getting pregnant, period be damned */
 <<set $PC.preg = 1, $PC.pregSource = -1, $PC.pregKnown = 1>>
 <<SetPregType $PC>>
+<<set WombImpregnate($PC, $PC.pregType, -1, 1)>>
 
diff --git a/src/pregmod/saAgent.tw b/src/pregmod/saAgent.tw
index 1951330fce7222b4cd85666c1fbd91d938a4d64c..d2560d353600544e6cd2ab902479278f19152577 100644
--- a/src/pregmod/saAgent.tw
+++ b/src/pregmod/saAgent.tw
@@ -362,16 +362,14 @@
 <</if>>
 
 <<if ($slaves[$i].preg > 37) && ($slaves[$i].broodmother == 0) && (random(1,100) > 90)>>
-	<<set $slaves[$i].birthsTotal += $slaves[$i].pregType, $slaves[$i].preg = 0, $slaves[$i].pregWeek = -4, $slaves[$i].pregSource = 0, $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0>>
+	<<set $slaves[$i].birthsTotal += WombBirthReady($slaves[$i], 35), WombBirth($slaves[$i], 35), WombFlush($slaves[$i]), $slaves[$i].preg = 0, $slaves[$i].pregWeek = -4, $slaves[$i].pregSource = 0, $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0 >>
 	<<SetBellySize $slaves[$i]>>
 <<elseif ($slaves[$i].preg > 41) && ($slaves[$i].broodmother == 0)>>
-	<<set $slaves[$i].birthsTotal += $slaves[$i].pregType, $slaves[$i].preg = 0, $slaves[$i].pregWeek = -4, $slaves[$i].pregSource = 0, $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0>>
+	<<set $slaves[$i].birthsTotal += WombBirthReady($slaves[$i], 35), WombBirth($slaves[$i], 35), WombFlush($slaves[$i]), $slaves[$i].preg = 0, $slaves[$i].pregWeek = -4, $slaves[$i].pregSource = 0, $slaves[$i].pregType = 0, $slaves[$i].pregKnown = 0>>
 	<<SetBellySize $slaves[$i]>>
 <<elseif ($slaves[$i].preg > 37) && ($slaves[$i].broodmother > 0)>>
-	<<if $slaves[$i].broodmother > 2>>
-		<<set $slaves[$i].birthsTotal += 12, $slaves[$i].preg = 37>>
-	<<else>>
-		<<set $slaves[$i].birthsTotal++, $slaves[$i].preg = 37>>
+	<<if $slaves[$i].broodmother > 0>>
+		<<set $slaves[$i].birthsTotal += WombBirthReady($slaves[$i], 37), WombBirth($slaves[$i], 37) $slaves[$i].preg = 37>>
 	<</if>>
 	<<SetBellySize $slaves[$i]>>
 <</if>>
diff --git a/src/pregmod/sePlayerBirth.tw b/src/pregmod/sePlayerBirth.tw
index 4a40289c02fb13078b428fa189a274abd23c06b3..8cae173b253d8e52051d12cac38d743ffe6c5297 100644
--- a/src/pregmod/sePlayerBirth.tw
+++ b/src/pregmod/sePlayerBirth.tw
@@ -21,39 +21,40 @@ PC.pregSource documentation
 <<else>>
 	<<set $badBirth = 10>>
 <</if>>
+<<set $PC.curBabies = WombBirth($PC, 35)>>
+<<set _curBabies = $PC.curBabies.length>> 
+<<set _stilBirth = $PC.womb.length>>
+<<set WombFlush($PC)>>
+/* difference in code below: _curBabies - count of live babies after birth, $PC.pregType = all babies in PC. I assume that dead fetuses do not count to reputation, etc, and PC manage to hide them. This mainly for future possibilities, or early birth trigger's. PC will not support partial birth - even she happens to be prenant at different stages at once, undeveloped babies will be dead as result. _stilBirth currently not used - it's just for future improvements.*/
 
-<<set $PC.preg = 0, $PC.pregKnown = 0, $PC.labor = 0, $PC.births += $PC.pregType>>
+<<set $PC.preg = 0, $PC.pregKnown = 0, $PC.labor = 0, $PC.births += _curBabies>>
 <<if $PC.pregSource == 0>>
-	<<set $PC.birthOther += $PC.pregType>>
+	<<set $PC.birthOther += _curBabies>>
 <<elseif $PC.pregSource == -1>>
-	<<set $PC.birthElite += $PC.pregType>>
+	<<set $PC.birthElite += _curBabies>>
 <<elseif $PC.pregSource == -2>>
-	<<set $PC.birthClient += $PC.pregType>>
+	<<set $PC.birthClient += _curBabies>>
 <<elseif $PC.pregSource == -3>>
-	<<set $PC.birthMaster += $PC.pregType>>
+	<<set $PC.birthMaster += _curBabies>>
 <<elseif $PC.pregSource == -4>>
-	<<set $PC.birthArcOwner += $PC.pregType>>
+	<<set $PC.birthArcOwner += _curBabies>>
 <<elseif $PC.pregSource == -5>>
-	<<set $PC.birthCitizen += $PC.pregType>>
+	<<set $PC.birthCitizen += _curBabies>>
 <<elseif $PC.pregSource == -6>>
-	<<set $PC.birthSelf += $PC.pregType>>
+	<<set $PC.birthSelf += _curBabies>>
 <<else>>
-	<<set $PC.birthDegenerate += $PC.pregType>>
+	<<set $PC.birthDegenerate += _curBabies>>
 	<<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].pregSource; })>>
 	<<if _babyDaddy != -1>>
-		<<set $slaves[_babyDaddy].PCChildrenFathered += $PC.pregType>>
+		<<set $slaves[_babyDaddy].PCChildrenFathered += _curBabies>>
 	<</if>>
 <</if>>
 
-<<if $Cash4Babies == 1>>
-	<<set $seed = random(1,10)>>
-<</if>>
-
 <<if $PC.pregSource == -1>>
 	<<set $babyGender = Math.floor(Math.random()*100) < $seeDicks ? 2 : 1>>
-	Since you are heavily pregnant with a child of the Societal Elite, you are quickly taken to the finest clinic the arcology has to offer. After a quick sedation, you awake to find your belly no longer round with child; that and a note stating your next breeding partner and a notice that <<print cashFormat(50000)>> has been added to your account. The Societal Elite are @@.green;very pleased@@ at their new addition to the ranks. You just wish you could have seen your <<if $PC.pregType == 1>>little <<if $babyGender == 1>>girl<<else>>boy<</if>> before they took <<if $babyGender == 1>>her<<else>>him<</if>><<else>>babies before they took them<</if>> away to be raised into a proper member of the future world.
+	Since you are heavily pregnant with a child of the Societal Elite, you are quickly taken to the finest clinic the arcology has to offer. After a quick sedation, you awake to find your belly no longer round with child; that and a note stating your next breeding partner and a notice that <<print cashFormat(50000)>> has been added to your account. The Societal Elite are @@.green;very pleased@@ at their new addition to the ranks. You just wish you could have seen your <<if _curBabies == 1>>little <<if $babyGender == 1>>girl<<else>>boy<</if>> before they took <<if $babyGender == 1>>her<<else>>him<</if>><<else>>babies before they took them<</if>> away to be raised into a proper member of the future world.
 	<<if $PC.ovaryAge >= 55 && $playerAging != 0>>
-		You are getting too old to have children; you feel like <<if $PC.pregType > 1>>they<<else>>this<</if>> may be your last.
+		You are getting too old to have children; you feel like <<if _curBabies > 1>>they<<else>>this<</if>> may be your last.
 		<<set $PC.preg = -2>>
 	<</if>>
 <<else>>
@@ -119,7 +120,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 		<br>
 		<br>
 		You awake some time later in the remote surgery, your stomach extremely sore; you quickly realize you're no longer round with child. As you try to rise, $Bodyguard.slaveName stops you; she hefts you into a bridal carry and takes you to a recovery room, before gently placing you into a warm bed, tucking you in, and hurrying out of the room. Before you can call out, she returns carrying
-		<<switch $PC.pregType>>
+		<<switch _curBabies>>
 		<<case 1>>
 			@@.lime;your baby <<if $babyGender == 1>>girl<<else>>boy<</if>>@@
 		<<case 2>>
@@ -148,7 +149,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 		<br>
 		<br>
 		You awake some time later in a recovery room<<if _concubinePresent > 0>>, $Concubine.slaveName beside you<</if>>, your stomach extremely sore; a quick glance at the prominent scar tells you everything you need to know. Seeing you're awake, $HeadGirl.slaveName catches your attention. In her arms
-		<<switch $PC.pregType>>
+		<<switch _curBabies>>
 		<<case 1>>
 			is @@.lime;your baby <<if $babyGender == 1>>girl<<else>>boy<</if>>@@, <<if $HeadGirl.lactation > 0>>happily nursing from her breast,<</if>>
 		<<case 2>>
@@ -172,7 +173,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 		<br>
 		<br>
 		You awake some time later in a recovery room, your stomach extremely sore; a quick glance at the prominent scar tells you everything you need to know. A content sigh comes from beside you; $Concubine.slaveName is snuggled next to you, snoozing with
-		<<switch $PC.pregType>>
+		<<switch _curBabies>>
 		<<case 1>>
 			@@.lime;your baby <<if $babyGender == 1>>girl<<else>>boy<</if>>@@ in her arms.<<if $Concubine.lactation > 0>> Your child has managed to free one of $Concubine.slaveName's breasts and is eagerly suckling from her milky nipple.<</if>>
 		<<case 2>>
@@ -401,7 +402,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 
 <<if _gaveBirth == 0>>
 
-<<if $PC.pregType == 1>>
+<<if _curBabies > 0>>
 
 	<<include "Generate Child">>
 
@@ -433,13 +434,13 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 	<<if $PC.reservedChildren > 0>>
 		You set <<if $babyGender == 1>>her<<else>>him<</if>> aside for incubation.
 		<<include "Incubator Workaround">>
-		<<set $PC.reservedChildren-->>
 		<<set $reservedChildren-->>
+		<<set $PC.curBabies.shift()>>
+		<<set $PC.reservedChildren-- >>
 	<</if>>
 
 <<else>>
-
-	<<for _p = 0; _p < $PC.pregType; _p++>>
+	<<for _p = 0; _p < _curBabies; _p++>>
 		<<include "Generate Child">>
 
 		<<if $activeSlave.race == $PC.race>>
@@ -470,47 +471,52 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 		<<if $PC.reservedChildren > 0>>
 			You set <<if $babyGender == 1>>her<<else>>him<</if>> aside for incubation.
 			<<include "Incubator Workaround">>
-			<<set $PC.reservedChildren-->>
 			<<set $reservedChildren-->>
+			<<set $PC.curBabies.shift()>>
+			<<set $PC.reservedChildren-- >>
 		<</if>>
 	<<set $babyGender = Math.floor(Math.random()*100) < $seeDicks ? 2 : 1>>
-		
 	<</for>>
 
 <</if>>
 
-<<if $PC.pregSource > 0>>
+<<if $PC.reservedChildren > 0 >> /*we need to discount reservation for stilbirth babies*/
+	<<set $reservedChildren -= $PC.reservedChildren>>
+	<<set $PC.reservedChildren = 0>> 
+<</if>>
+
+<<if $PC.pregSource > 0 && curBabies > 0>>
 	<<set _pb = $slaves.findIndex(function(s) { return s.ID == $PC.pregSource; })>>
 	<<if _pb != -1>>
 		<<if $arcologies[0].FSRestartDecoration == 100>>
-			Word spreads fast through your peers that you gave birth to <<if $PC.pregType > 1>>low class infants<<else>>a low class child<</if>> @@.red;utterly devastating your standing among the Elite.@@
+			Word spreads fast through your peers that you gave birth to <<if _curBabies > 1>>low class infants<<else>>a low class child<</if>> @@.red;utterly devastating your standing among the Elite.@@
 			<<set $failedElite += 200>>
 		<<elseif $arcologies[0].FSChattelReligionistLaw == 1>>
-			Rumors spread that The Prophet gave birth to a slave's child<<if $PC.pregType > 1>>ren<</if>>.
+			Rumors spread that The Prophet gave birth to a slave's child<<if _curBabies > 1>>ren<</if>>.
 			<<if $arcologies[0].FSSupremacist != "unset">>
 				<<if $slaves[_pb].race != $arcologies[0].FSSupremacistRace>>
-					Word is that your child<<if $PC.pregType > 1>>ren were<<else>> was<</if>> not $arcologies[0].FSSupremacistRace. As The Prophet saw fit to bear such a child, society views it as a sign to @@.red;reject $arcologies[0].FSSupremacistRace supremacy.@@
+					Word is that your child<<if _curBabies > 1>>ren were<<else>> was<</if>> not $arcologies[0].FSSupremacistRace. As The Prophet saw fit to bear such a child, society views it as a sign to @@.red;reject $arcologies[0].FSSupremacistRace supremacy.@@
 					<<set $arcologies[0].FSSupremacist -= 120>>
 				<</if>>
 			<</if>>
 			<<if $arcologies[0].FSSubjugationist != "unset">>
 				<<if $slaves[_pb].race == $arcologies[0].FSSubjugationistRace>>
-					In addition, The Prophet's womb bore <<if $PC.pregType == 1>>a <</if>>$arcologies[0].FSSubjugationistRace child<<if $PC.pregType > 1>>ren<</if>>, surely a sign to end @@.red;reject $arcologies[0].FSSubjugationistRace subjugation.@@
+					In addition, The Prophet's womb bore <<if _curBabies == 1>>a <</if>>$arcologies[0].FSSubjugationistRace child<<if _curBabies > 1>>ren<</if>>, surely a sign to end @@.red;reject $arcologies[0].FSSubjugationistRace subjugation.@@
 					<<set $arcologies[0].FSSubjugationist -= 120>>
 				<</if>>
 			<</if>>
 		<<else>>
-			Rumors spread that your child<<if $PC.pregType > 1>>ren were<<else>> was<</if>> fathered by a slave, @@.red;harming your lasting reputation.@@
+			Rumors spread that your child<<if _curBabies > 1>>ren were<<else>> was<</if>> fathered by a slave, @@.red;harming your lasting reputation.@@
 			<<set $PC.degeneracy += 20>>
 			<<if $arcologies[0].FSSupremacist != "unset">>
 				<<if $slaves[_pb].race != $arcologies[0].FSSupremacistRace>>
-					Furthermore, word is that your child<<if $PC.pregType > 1>>ren were<<else>> was<</if>> not $arcologies[0].FSSupremacistRace, @@.red;further hurting your lasting reputation.@@
+					Furthermore, word is that your child<<if _curBabies > 1>>ren were<<else>> was<</if>> not $arcologies[0].FSSupremacistRace, @@.red;further hurting your lasting reputation.@@
 					<<set $PC.degeneracy += 10>>
 				<</if>>
 			<</if>>
 			<<if $arcologies[0].FSSubjugationist != "unset">>
 				<<if $slaves[_pb].race == $arcologies[0].FSSubjugationistRace>>
-					In addition, there is a nasty rumor that you gave birth to <<if $PC.pregType == 1>>a <</if>>$arcologies[0].FSSubjugationistRace child<<if $PC.pregType > 1>>ren<</if>>, @@.red;devastating your lasting reputation.@@
+					In addition, there is a nasty rumor that you gave birth to <<if _curBabies == 1>>a <</if>>$arcologies[0].FSSubjugationistRace child<<if _curBabies > 1>>ren<</if>>, @@.red;devastating your lasting reputation.@@
 					<<set $PC.degeneracy += 50>>
 				<</if>>
 			<</if>>
@@ -518,14 +524,15 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 	<</if>>
 <</if>>
 
-<<set $PC.pregType -= _pregTypeDecrecement>>
+/* -------------------- here curBabies is now will show only babies count remained after reserved ones is paced to incubator. Not all live birthed ones. */	
+<<set _curBabies = $PC.curBabies.length>>
 
-<<if $PC.pregType > 0>>
+<<if _curBabies > 0>>
 	<br><br>
-	Now you are faced with a decision of what to do with your <<if _pregTypeDecrecement > 0>>remaining<<else>>new<</if>> child<<if $PC.pregType > 1>>ren<</if>>. You're far too busy to keep <<if $PC.pregType > 1>>them<<else>>it<</if>> yourself, but you could @@.orange;send them to a boarding school to be raised until they are of age to serve as your heir.@@ Other options include sending them to @@.orange;become a slave at a slave orphanage,@@ sending them to @@.orange;a citizen school,@@ to be brought up coequal with the arcology's other young people, or sending them to be @@.orange;raised privately,@@ with expert care and tutoring.
+	Now you are faced with a decision of what to do with your <<if _pregTypeDecrecement > 0>>remaining<<else>>new<</if>> child<<if _curBabies > 1>>ren<</if>>. You're far too busy to keep <<if _curBabies > 1>>them<<else>>it<</if>> yourself, but you could @@.orange;send them to a boarding school to be raised until they are of age to serve as your heir.@@ Other options include sending them to @@.orange;become a slave at a slave orphanage,@@ sending them to @@.orange;a citizen school,@@ to be brought up coequal with the arcology's other young people, or sending them to be @@.orange;raised privately,@@ with expert care and tutoring.
 	<<if $arcologies[0].FSRepopulationFocus > 40>>
 		Of course, there are also the @@.orange;breeding schools,@@ where your
-		<<if $PC.pregType == 1>>
+		<<if _curBabies == 1>>
 			<<if $babyGender == 1>>
 				daughter will be taught the joys of motherhood up until she is around $fertilityAge years old, when she will be impregnated with her first child.
 			<<else>>
@@ -533,26 +540,27 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 			<</if>>
 		<<else>>
 			<<if $babyGender == 1>>
-				daughters will be taught the joys of motherhood up until they are around $fertilityAge years old, when they will be impregnated for the first time.<<if $PC.pregType > 1>> They say multiples run in families, so your daughters should blossom into quite the fertile breeders.<</if>>
+				daughters will be taught the joys of motherhood up until they are around $fertilityAge years old, when they will be impregnated for the first time.<<if _curBabies > 1>> They say multiples run in families, so your daughters should blossom into quite the fertile breeders.<</if>>
 			<<else>>
 				sons will be taught it is their duty to fuck every slavegirl they sees without a baby bump pregnant.
 			<</if>>
 		<</if>>
 	<</if>>
 	<<if $Cash4Babies == 1>>
+		<<set _seed = random(1,10)>>
 		Alternatively, since it is @@.orange;legal to sell slave babies@@, your child should be worth quite a pretty ¤ at auction.
 	<</if>>
 	<br><br>
 	<span id="choice">What will it be?
 	<br>
 	<<link "Boarding School">><<replace "#choice">><<print "You have decided to send them away to be raised in your stead.">><</replace>><</link>> | 
-	<<link "Slave Orphanage">><<replace "#choice">><<print "You have decided to send them to a slave orphanage to be raised to $minimumSlaveAge and sold. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.">><</replace>><<set $slaveOrphanageTotal += $PC.pregType>><</link>> |
-	<<link "Citizen School">><<replace "#choice">><<print "You have decided to send them to a citizen school to become a future citizen. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.">><</replace>><<set $citizenOrphanageTotal += $PC.pregType>><</link>> |
-	<<link "Privately Raised">><<replace "#choice">><<print "You have decided to send them to be privately raised. Perhaps you'll even see them again, though it's unlikely that there will be any connection between you. At least you'll know they've been properly reared.">><</replace>><<set $privateOrphanageTotal += $PC.pregType>><</link>>
+	<<link "Slave Orphanage">><<replace "#choice">><<print "You have decided to send them to a slave orphanage to be raised to $minimumSlaveAge and sold. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.">><</replace>><<set $slaveOrphanageTotal += _curBabies>><</link>> |
+	<<link "Citizen School">><<replace "#choice">><<print "You have decided to send them to a citizen school to become a future citizen. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.">><</replace>><<set $citizenOrphanageTotal += _curBabies>><</link>> |
+	<<link "Privately Raised">><<replace "#choice">><<print "You have decided to send them to be privately raised. Perhaps you'll even see them again, though it's unlikely that there will be any connection between you. At least you'll know they've been properly reared.">><</replace>><<set $privateOrphanageTotal += _curBabies>><</link>>
 	<<if $arcologies[0].FSRepopulationFocus > 40>>
-		| <<link "Breeding School">><<replace "#choice">><<print "You have decided to send them to be raised into a proper breeder. Perhaps you'll even see them again, though it's unlikely you'll recognize them with their reproduction focused body.">><</replace>><<set $breederOrphanageTotal += $PC.pregType>><</link>>
+		| <<link "Breeding School">><<replace "#choice">><<print "You have decided to send them to be raised into a proper breeder. Perhaps you'll even see them again, though it's unlikely you'll recognize them with their reproduction focused body.">><</replace>><<set $breederOrphanageTotal += _curBabies>><</link>>
 	<</if>>
-	<<if $Cash4Babies == 1>> | <<link "Auction Them">><<replace "#choice">><<print "You send the child to be sold at auction amongst other prestigious slaves. The winning bid for your offspring came in at @@.yellowgreen;<<print cashFormat(1000*$seed)>>.@@">><</replace>><<set $cash += 1000*$seed*$PC.pregType>><</link>><</if>>
+	<<if $Cash4Babies == 1>> | <<link "Auction Them">><<replace "#choice">><<print "You send the child<<if _curBabies > 1>>ren<</if>> to be sold at auction amongst other prestigious slaves. The winning bid for your offspring came in at @@.yellowgreen;<<print cashFormat(1000*_seed*_curBabies)>>.@@">><</replace>><<set $cash += 1000*_seed*_curBabies>><</link>><</if>>
 	</span>
 <</if>>
 
@@ -565,7 +573,7 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 <</if>> /*closes gaveBirth*/
 <</if>> /*closes SE*/
 
-<<set $badBirth = 0, $PC.pregSource = 0, $PC.pregType = 0, $seed = 0, $babyGender = 0, $PC.belly = 2000>>
+<<set $badBirth = 0, $PC.pregSource = 0, $PC.pregType = 0, $babyGender = 0, $PC.belly = 2000, WombFlush($PC)>>
 <<if $PC.career == "servant">>
 	<<set $PC.pregWeek = -3>>
 <<else>>
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
index 9aa0e88c4bfd6277a67e7d7b54d3f9448974668e..4dced2bf183387535d519addb2db9f030a1429a3 100644
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -11,6 +11,7 @@
 		<<set $args[0].origBodyOwner = $args[1].origBodyOwner>>
 	<</if>>
 <</if>>
+<<set WombInit($args[1])>> /*Just to be sure.*/
 <<set $args[0].genes = $args[1].genes>>
 <<set $args[0].prestige = $args[1].prestige>>
 <<set $args[0].pornFame = $args[1].pornFame>>
@@ -82,6 +83,8 @@
 <<set $args[0].pregSource = $args[1].pregSource>>
 <<set $args[0].pregType = $args[1].pregType>>
 <<set $args[0].broodmother = $args[1].broodmother>>
+<<set $args[0].broodmotherFetuses = $args[1].broodmotherFetuses>>
+<<set $args[0].broodmotherOnHold = $args[1].broodmotherOnHold>>
 <<set $args[0].broodmotherCountDown = $args[1].broodmotherCountDown>>
 <<set $args[0].labor = $args[1].labor>>
 <<set $args[0].csec = $args[1].csec>>
@@ -164,6 +167,7 @@
 <<set $args[0].belly = $args[1].belly>>
 <<set $args[0].bellyPreg = $args[1].bellyPreg>>
 <<set $args[0].bellyFluid = $args[1].bellyFluid>>
+<<set $args[0].womb = $args[1].womb>> /* this is array assigned by reference, if slave body that is $args[1] will be stil used anywhere in code (not discarded) - it's WRONG (they now technicaly share one womb object). Please tell me about it then. But if old body $args[1] just discarded - it's no problem then.*/
 
 <<set $args[0].canRecruit = 0>>
 
diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw
index 7ee7df538576896d0c786e252079d919be68c3ef..ce0c079f68649ba0bb8a7ec1dd9b0e85bb2e6e1a 100644
--- a/src/pregmod/widgets/pregmodWidgets.tw
+++ b/src/pregmod/widgets/pregmodWidgets.tw
@@ -2,9 +2,15 @@
 
 <<widget "initPC">>
 	<<set $PC = {name: "Anonymous", surname: 0, title: 1, ID: -1, dick: 1, vagina: 0, preg: 0, pregType: 0, pregWeek: 0, pregKnown: 0, belly: 0, bellyPreg: 0, mpreg: 0, pregSource: 0, pregMood: 0, labor: 0, births: 0, boobsBonus: 0, degeneracy: 0, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, career: "capitalist", rumor: "wealth", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), age: 2, sexualEnergy: 4, refreshment: "cigar", refreshmentType: 0, trading: 0, warfare: 0, slaving: 0, engineering: 0, medicine: 0, cumTap: 0, race: "white", origRace: "white", skin: "white", origSkin: "white", markings: "none", eyeColor: "blue", origEye: "blue", hColor: "blonde", origHColor: "blonde", nationality: "Stateless", father: 0, mother: 0, sisters: 0, daughters: 0, birthElite: 0, birthMaster: 0, birthDegenerate: 0, birthClient: 0, birthOther: 0, birthArcOwner: 0, birthCitizen: 0, birthSelf: 0, slavesFathered: 0, slavesKnockedUp: 0, intelligence: 3, face: 100, actualAge: 35, physicalAge: 35, visualAge: 35, birthWeek: 0, boobsImplant: 0, butt: 0, buttImplant: 0, balls: 0, ballsImplant: 0, ageImplant: 0, newVag: 0, reservedChildren: 0, fertDrugs: 0, forcedFertDrugs: 0, staminaPills: 0, ovaryAge: 35}>>
+
+	<<set WombInit($PC)>>
+
 <</widget>>
  
 <<widget "PMODinit">>
+
+<<set WombInit($args[0])>>
+
 <<if ndef $args[0].actualAge>>
 	<<set $args[0].actualAge = $args[0].age>>
 <</if>>
diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw
new file mode 100644
index 0000000000000000000000000000000000000000..9542199f5a7ea0cc6e9ba9525a4bbc29c6669496
--- /dev/null
+++ b/src/pregmod/widgets/seBirthWidgets.tw
@@ -0,0 +1,938 @@
+:: seBirthWidgets [widget nobr]
+<<widget "seBirthPreChek">>
+
+<<SlavePronouns $slaves[$i]>>
+
+<<set $humiliation = 0>>
+<<set $suddenBirth = 1>>
+<<set $seed = random(1,100)>>
+<<set $csec = 0>>
+<<set $slaveDead = 0>>
+<<set $birthed = 1>>
+<<set $birthDamage = 0>>
+
+/* birth complications calcs */
+<<if $slaves[$i].mpreg == 1>>
+<<if $slaves[$i].anus < 2>>
+	<<set $birthDamage += 3>>
+<</if>>
+<<else>>
+<<if $slaves[$i].vagina < 2>>
+	<<set $birthDamage += 3>>
+<</if>>
+<</if>>
+<<if $slaves[$i].hips < 0>>
+	<<set $birthDamage += (2-$slaves[$i].hips)>>
+<</if>>
+<<if $slaves[$i].weight <= -95>>
+	<<set $birthDamage += 7>>
+<<elseif $slaves[$i].weight <= -30>>
+	<<set $birthDamage += 5>>
+<</if>>
+<<if $slaves[$i].muscles < -95>>
+	<<set $birthDamage += 30>>
+<<elseif $slaves[$i].muscles < -30>>
+	<<set $birthDamage += 4>>
+<<elseif $slaves[$i].muscles < -5>>
+	<<set $birthDamage += 2>>
+<</if>>
+<<if $slaves[$i].health < -20>>
+	<<set $birthDamage += (4-($slaves[$i].health/10))>>
+<</if>>
+<<if $slaves[$i].physicalAge < 6>>
+	<<set $birthDamage += 5>>
+<<elseif $slaves[$i].physicalAge < 9>>
+	<<set $birthDamage += 3>>
+<<elseif $slaves[$i].physicalAge < 13>>
+	<<set $birthDamage += 1>>
+<</if>>
+<<if $slaves[$i].birthsTotal == 0>>
+	<<set $birthDamage += 2>>
+<</if>>
+<<if $slaves[$i].mpreg != 1>>
+<<if $slaves[$i].vaginaLube == 0>>
+	<<set $birthDamage += 1>>
+<</if>>
+<</if>>
+<<if $slaves[$i].tired > 0>>
+	<<set $birthDamage += 2>>
+<</if>>
+<<if $slaves[$i].preg >= 59>> /* better get her a c-sec*/
+	<<if $slaves[$i].physicalAge < 6>>
+		<<set $birthDamage += 50>>
+	<<elseif $slaves[$i].physicalAge < 9>>
+		<<set $birthDamage += 30>>
+	<<elseif $slaves[$i].physicalAge < 13>>
+		<<set $birthDamage += 20>>
+	<</if>>
+	<<if $slaves[$i].hips < 0>>
+		<<set $birthDamage += (20-$slaves[$i].hips)>>
+	<</if>>
+<<elseif $slaves[$i].preg > 50>>
+	<<if $slaves[$i].physicalAge < 6>>
+		<<set $birthDamage += 10>>
+	<<elseif $slaves[$i].physicalAge < 9>>
+		<<set $birthDamage += 6>>
+	<<else>>
+		<<set $birthDamage += 2>>
+	<</if>>
+	<<if $slaves[$i].hips < 0>>
+		<<set $birthDamage += (2-$slaves[$i].hips)>>
+	<</if>>
+<</if>>
+<<if $slaves[$i].mpreg == 1>>
+	<<if $slaves[$i].anus >= 2>>
+		<<set $birthDamage -= 2>>
+	<</if>>
+<<else>>
+	<<if $slaves[$i].vagina >= 2>>
+		<<set $birthDamage -= 2>>
+	<</if>>
+<</if>>
+<<if $slaves[$i].hips > 0>>
+	<<set $birthDamage -= $slaves[$i].hips>>
+<</if>>
+<<if $slaves[$i].intelligenceImplant > 0>>
+	<<set $birthDamage -= 2>>
+<</if>>
+<<if $slaves[$i].birthsTotal > 0>>
+	<<set $birthDamage -= 3>>
+<</if>>
+<<if $slaves[$i].mpreg != 1>>
+<<if $slaves[$i].vaginaLube > 0>>
+	<<set $birthDamage -= $slaves[$i].vaginaLube>>
+<</if>>
+<</if>>
+<<if $slaves[$i].curatives > 0>>
+		<<set $birthDamage -= 3>>
+<</if>>
+<<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>>
+	<<set $birthDamage = 0>>
+<</if>>
+
+/* early birth calcs */
+<<if $slaves[$i].induce == 1>>
+	<<set $suddenBirth += 20>>
+<</if>>
+<<if !canWalk($slaves[$i])>>
+	<<set $suddenBirth += 10>>
+<</if>>
+<<if $slaves[$i].fetish == "mindbroken">>
+	<<set $suddenBirth += 18>>
+<</if>>
+<<if $slaves[$i].fetish == "humiliation">>
+	<<set $suddenBirth += 1 + $slaves[$i].fetishStrength/25>>
+<</if>>
+<<if $slaves[$i].weight > 190>>
+	<<set $suddenBirth += 10>>
+<<elseif $slaves[$i].weight > 160>>
+	<<set $suddenBirth += 4>>
+<<elseif $slaves[$i].weight > 130>>
+	<<set $suddenBirth += 2>>
+<<elseif $slaves[$i].weight > 95>>
+	<<set $suddenBirth += 1>>
+<</if>>
+<<if $slaves[$i].muscles < -95>>
+	<<set $suddenBirth += 20>>
+<<elseif $slaves[$i].muscles < -30>>
+	<<set $suddenBirth += 4>>
+<<elseif $slaves[$i].muscles < -5>>
+	<<set $suddenBirth += 1>>
+<</if>>
+<<if $slaves[$i].health < 0>>
+	<<set $suddenBirth += 2>>
+<</if>>
+<<if $slaves[$i].heels == 1>>
+	<<set $suddenBirth += 3>>
+<</if>>
+<<if $slaves[$i].boobs > 40000>>
+	<<set $suddenBirth += 3>>
+<<elseif $slaves[$i].boobs > 20000>>
+	<<set $suddenBirth += 1>>
+<</if>>
+<<if $slaves[$i].butt > 6>>
+	<<set $suddenBirth += 1>>
+<</if>>
+<<if $slaves[$i].dick >= 6>>
+	<<set $suddenBirth += 1>>
+<</if>>
+<<if $slaves[$i].balls >= 6>>
+	<<set $suddenBirth += 1>>
+<</if>>
+<<if $slaves[$i].shoes == "extreme heels">>
+	<<set $suddenBirth += 2>>
+<</if>>
+<<if $slaves[$i].mpreg != 1>>
+<<if $slaves[$i].vagina > 2>>
+	<<set $suddenBirth += 2>>
+<</if>>
+<<if $slaves[$i].vaginalAccessory != "none">>
+	<<set $suddenBirth -= 20>>
+<</if>>
+<</if>>
+<<set $suddenBirth -= ($slaves[$i].intelligence + $slaves[$i].intelligenceImplant)>>
+/* end calcs */
+
+<</widget>>
+
+/*===============================================================================================*/
+
+<<widget "seBirthPreScene">>
+
+<<if $slaves[$i].fuckdoll == 0>>
+	<<if $slaves[$i].broodmother == 0 || $slaves[$i].broodmotherCountDown == 1>>
+		<<if $slaves[$i].assignment != "work in the dairy">>
+			<<if $universalRulesCSec == 1>>
+
+				<<Birth>>
+
+			<<else>>
+				<<if $slaves[$i].amp != 1>> /* amps are always carried in time */
+
+					<<if (random(1,20) > $suddenBirth) || ($universalRulesBirthing == 1)>> /* did she make it to her birthing area? */
+						Feeling childbirth approaching, <<if !canWalk($slaves[$i])>>$slaves[$i].slaveName is helped<<else>>$slaves[$i].slaveName makes $possessive way<</if>> to $possessive prepared birthing area.
+
+						<<Birth>>
+
+					<<else>>  /* did not make it to birthing area */
+
+						<<if (($birthDamage > 15 && random(1,100) > 50) || ($birthDamage > 20)) && ($slaves[$i].assignment != "be the Nurse" || $slaves[$i].assignment != "get treatment in the clinic")>>
+
+							<<DeadlyBirth>>
+
+						<<else>>
+
+							<<SuddenBirth>>
+
+						<</if>> /* closes deadly birth */
+
+					<</if>> /* closes reg birth */
+
+				<<else>>  /* made it to birthing area */
+					With childbirth approaching, $slaves[$i].slaveName is carried to $possessive prepared birthing area.
+
+					<<AmpBirth>>
+
+				<</if>> /* close amp birth */
+
+			<</if>> /* close always c-sec */
+
+		<<else>>
+			<br>
+  			<<if $dairyRestraintsSetting > 1 and $slaves[$i].career == "a bioreactor">>
+				As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>>.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more.<</if>> All these events are meaningless to $object, as $possessive consciousness has long since been snuffed out.
+  			<<elseif $dairyRestraintsSetting > 1>>
+				<<if $slaves[$i].fetish == "mindbroken">>
+	  				As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>>.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more.<</if>> $pronounCap doesn't care about any of this, as the only thoughts left in $possessive empty mind revolve around the sensations in $possessive crotch and breasts.
+				<<else>>
+	  				As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. $pronounCap struggles in $possessive bindings, attempting to break free in order to birth $possessive coming child, but $possessive efforts are pointless. $pronounCap is forced to give birth, restrained, into the waiting holder. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive vagina.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more. $slaves[$i].slaveName moans, partially with pleasure and partially with defeat, under the growing pressure within $possessive body. Tears stream down $possessive face as <<if $slaves[$i].births > 0>>$pronoun is forcibly impregnated once more<<else>>$pronoun attempts to shift in $possessive restraints to peek around $possessive swollen breasts, but $pronoun is too well secured. $pronounCap'll realize what is happening when $possessive belly grows large enough to brush against $possessive breasts as the milker sucks from them<<if $slaves[$i].dick > 0>> or $possessive dick begins rubbing its underside<</if>><</if>>.<</if>> $possessiveCap mind slips slightly more as $pronoun focuses on $possessive fate as nothing more than animal, destined to be milked and bare offspring until $possessive body gives out.
+	  				<<set $slaves[$i].trust -= 10>>
+	  				<<set $slaves[$i].devotion -= 10>>
+				<</if>>
+  			<<else>>
+				<<if $slaves[$i].fetish == "mindbroken">>
+					While getting milked, $slaves[$i].slaveName's water breaks. $pronounCap shows little interest and continues kneading $possessive breasts. Instinctively $pronoun begins to push out $possessive bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. $pronounCap pays no heed to $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> being removed from the milking stall, instead focusing entirely on draining $possessive breasts.
+				<<else>>
+					While getting milked, $slaves[$i].slaveName's water breaks,<<if $dairyPregSetting > 0>> this is a regular occurrence to $object now so<<else>> but<</if>> $pronoun continues enjoying $possessive milking. $pronounCap begins to push out $possessive bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. $pronounCap catches <<if canSee($slaves[$i])>>a glimpse<<else>>the sound<</if>> of $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> being removed from the milking stall before returning $possessive focus to draining $possessive breasts.
+				<</if>>
+  			<</if>>
+		<</if>> /* close cow birth */
+
+	<<else>>
+
+		<<if $slaves[$i].amp == 1>>
+			With childbirth approaching, $slaves[$i].slaveName is carried to $possessive prepared birthing area.
+			<<AmpBirth>>
+		<<elseif $slaves[$i].broodmother == 1>>
+			<<BroodmotherBirth>>
+		<<else>>
+			<<HyperBroodmotherBirth>>
+		<</if>>
+
+	<</if>> /* close broodmother birth */
+
+<<else>> /*fuckdoll birth */
+	<<if $universalRulesCSec == 1>>
+		<<set $csec = 1>>
+		$slaves[$i].slaveName's suit's systems alert that it is ready to give birth; it is taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and for it to be cleaned up.
+	<<elseif $universalRulesBirthing == 1>>
+		$slaves[$i].slaveName's suit's systems alert that it is ready to give birth. It is taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and for it to be cleaned up.
+	<<elseif $birthDamage > 10>>
+		<<set $csec = 1>>
+		$slaves[$i].slaveName's suit's systems alert that it is ready to give birth. Since it fails to qualify as a birthing model, it is quickly taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and to be cleaned up.
+	<<else>>
+		$slaves[$i].slaveName's suit's systems alert you that it is ready to give birth. You carefully pose it as it labors on bringing its child<<if $slaves[$i].pregType > 1>>ren<</if>> into the world and sit back to enjoy yourself as its <<if $slaves[$i].pregType > 1>>first<</if>> baby starts to crown. Once both it and yourself are finished, you send its offspring off and it to the autosurgery for cleaning.
+	<</if>>
+	It barely comprehends what has happened, nor will it realize when another child is conceived in it.
+<</if>> /* close fuckdoll birth */
+
+/* end of 2.*/
+
+<</widget>>
+
+/*===============================================================================================*/
+
+<<widget "seBirthCalc">>
+
+<<set $slaves[$i].pregControl = "none">>
+<<set _beforeSize = WombGetVolume($slaves[$i])>>
+<<if $slaves[$i].broodmother > 0>>
+	<<set $slaves[$i].curBabies = WombBirth($slaves[$i], 37)>> /*broodmothers - give birth for all 37+ week fetuses.*/
+<<else>>
+	<<set $slaves[$i].curBabies = WombBirth($slaves[$i], 34)>> /*Normal pregnancy - 34 week is minimal gestation time for live birth.*/
+<</if>>
+<<set $slaves[$i].curStillBirth = 0 >>
+
+<<set _curBabies = $slaves[$i].curBabies.length>> /*just to improve speed and usability here.*/
+/*<br>TEST curBabies:  _curBabies<br>*/
+
+<<set $slaves[$i].births += _curBabies>>
+<<set $slaves[$i].birthsTotal += _curBabies>>
+<<set $birthsTotal += _curBabies>>
+<<if $slaves[$i].pregSource > 0>>
+	<<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].pregSource; })>>
+	<<set $slaves[_babyDaddy].slavesFathered += _curBabies>>
+<<elseif $slaves[$i].pregSource == -1>>
+	<<set $PC.slavesFathered += _curBabies>>
+<</if>>
+
+/* Here support for partial birth cases but if slaves still NOT have broomother implant. Right now remaining babies will be lost, need to add research option for selective births. It's should control labour and stop it after ready to birth babies out. Should be Repopulation FS research before broodmothers (their implant obviously have it as a part of functional). */
+<<if $slaves[$i].broodmother == 0>> 
+	<<if $safePartialBirthTech == 1 >>
+		/* nothing right now.*/
+	<<else>>
+		<<set $slaves[$i].curStillBirth = $slaves[$i].womb.length>>
+		<<set WombFlush($slaves[$i])>>
+	<</if>>
+<</if>>
+
+<<set _afterSize = WombGetVolume($slaves[$i])>>
+<<set $diffSize = _beforeSize / (1 + _afterSize)>> /* 1 used to avoid devide by zero error.*/
+
+<</widget>>
+
+/*===============================================================================================*/
+
+<<widget "seBirthMainScene">>
+<<set _curBabies = $slaves[$i].curBabies.length>> 
+
+<<set _getFather = $slaves.find(function(s) { return s.ID == $slaves[$i].pregSource; })>>
+<<if def _getFather>>
+	<<set $daddy = _getFather.slaveName>>
+<<else>>
+	<<set $daddy = "some unknown father">>
+<</if>>
+
+/* -------- cow birth variant ---------------------------------------------------------------------*/
+<br>
+<br>
+/* diffSize used for check result of partial birth size changes - if it = 2 then womb lost half of it's original size after partial birth, if it = 1 - no size lost. (We get this value as result of dividing of original womb size by after birth size) 
+This decriptions can be expanded with more outcomes later. But it's not practical to check values above 5-10 - it become too affected by actual value of womb size.
+*/
+<<if $slaves[$i].assignment == "work in the dairy" && $dairyPregSetting > 0>> 
+	As a human cow, $pronoun @@.orange;gave birth@@<<if $diffSize < 1.15>> but $possessive overfilled womb barely lost any size. $possessiveCap body gave life <<elseif $diffSize < 1.3>> but $possessive stomach barely shrank at all. $possessiveCap body gave life <</if>>
+
+	<<if _curBabies < 1>>
+		no live ones, but a stilbirth only.
+	<<elseif _curBabies == 1>>
+		to a single calf
+	<<elseif _curBabies >= 40>>
+		to a massive brood of _curBabies calves
+	<<elseif _curBabies >= 20>>
+		to a brood of _curBabies calves
+	<<elseif _curBabies >= 10>>
+		to a squirming pile of _curBabies calves
+	<<elseif _curBabies == 9>>
+		to calf nonuplets
+	<<elseif _curBabies == 8>>
+		to calf octuplets
+	<<elseif _curBabies == 7>>
+		to calf septuplets
+	<<elseif _curBabies == 6>>
+		to calf sextuplets
+	<<elseif _curBabies == 5>>
+		to calf quintuplets
+	<<elseif _curBabies == 4>>
+		to calf quadruplets
+	<<elseif _curBabies == 3>>
+		to calf triplets
+	<<else>>
+		to calf twins
+	<</if>>
+	<<if $slaves[$i].broodmother > 0 && _curBabies > 1 >>
+		, throughout the week.
+	<<elseif $slaves[$i].broodmother > 1>>
+		, this week.
+	<<else>>
+			.
+	<</if>>
+
+<<else>>  /* ---------- normal birth variant. -------------------------------------------------------------*/
+
+	<<if $csec == 1>>
+		$pronounCap was given @@.orange;a cesarean section@@ due to health concerns.<br><br>
+		From $possessive womb,
+	<<else>>	
+		$pronounCap @@.orange;gave birth@@<<if $diffSize < 1.15>>, but $possessive stomach barely shrank at all. $possessiveCap body gave life to <<elseif $diffSize < 1.3>>, but $possessive overfilled womb barely lost any size. $possessiveCap body gave life to <</if>>
+	<</if>>
+	
+	<<if _curBabies < 1>>
+		no live ones, but a stilbirth only.
+	<<elseif _curBabies == 1>>
+		a single baby.
+	<<elseif _curBabies >= 40>>
+		a massive brood of _curBabies babies.
+	<<elseif _curBabies >= 20>>
+		a brood of _curBabies babies.
+	<<elseif _curBabies >= 10>>
+		a squirming pile of _curBabies babies.
+	<<elseif _curBabies == 9>>
+		nonuplets.
+	<<elseif _curBabies == 8>>
+		octuplets.
+	<<elseif _curBabies == 7>>
+		septuplets.
+	<<elseif _curBabies == 6>>
+		sextuplets.
+	<<elseif _curBabies == 5>>
+		quintuplets.
+	<<elseif _curBabies == 4>>
+		quadruplets.
+	<<elseif _curBabies == 3>>
+		triplets.
+	<<else>>
+		twins.
+	<</if>>
+
+	Created by
+	<<if _curBabies > 1>>
+		<<if $slaves[$i].pregSource == -1>>
+			your magnificent dick,
+		<<elseif $slaves[$i].pregSource == -2>>
+			your arcology's eager citizens,
+		<<elseif $slaves[$i].pregSource == -3>>
+			the Societal Elite,
+		<<elseif $slaves[$i].pregSource == 0>>
+			an unknown father,
+		<<elseif $slaves[$i].ID == $daddy.ID>>
+			$possessive own curiosity over if $pronoun could fuck <<print $possessive>>self,
+		<<else>>
+			$daddy's virile cock and balls,
+		<</if>>
+		<<if _curBabies > 1>>they<<else>>she<</if>> entered the world.
+	<</if>>
+<</if>>
+
+/* ---- Postbirth reactions, body -------------------------------------------------------------------------------------------*/
+
+<<if $csec != 1>> /*all this block only if no c'section used.*/
+	<br>
+	
+	<<if $diffSize > 1.5 && _curBabies >= 80>> /*only show if belly lost at least 1/4 of original size.*/
+		<br>
+		After an entire day of labor and birth, $possessive belly sags heavily.	
+	<<elseif $diffSize > 1.5 && _curBabies >= 40>>
+		<br>
+		After half a day of labor and birth, $possessive belly sags softly.
+	<<elseif $diffSize > 1.5 && _curBabies >= 20>>
+		<br>
+		After several hours of labor and birth, $possessive belly sags softly.
+	<<elseif $diffSize > 1.5 && _curBabies >= 10>>
+		<br>
+		After few hours of labor and birth, $possessive belly sags softly.
+	<<elseif $diffSize > 1.5>>
+		<br>
+		After labor and birth, $possessive belly sags softly.
+	<</if>>
+		
+	<<if ($slaves[$i].vagina == 0) || ($slaves[$i].mpreg == 1 && $slaves[$i].anus == 0)>>
+		<<if $slaves[$i].fetish != "mindbroken">>
+			<br><br>
+			<<if ($slaves[$i].fetish == "masochist")>>
+				Since $pronoun was a virgin, giving birth was a @@.red;terribly painful@@ experience.<<if $slaves[$i].fetishKnown == 0>>$pronounCap seems to have orgasmed several times during the experience, $pronoun appears to @@.lightcoral;really like pain@@.<<else>> However, due to $possessive masochistic streak, $pronoun @@.hotpink;greatly enjoyed@@ said experience<</if>>.
+				<<set $slaves[$i].health -= 10>>
+				<<set $slaves[$i].devotion += 2>>
+				<<set $slaves[$i].fetishKnown = 1>>
+			<<else>>
+				Since $pronoun was a virgin, giving birth was a @@.red;terribly painful@@ experience. $pronounCap @@.mediumorchid;despises@@ you for taking $possessive virginity in such a @@.gold;horrifying@@ way.
+				<<set $slaves[$i].health -= 40>>
+				<<set $slaves[$i].devotion -= 25.0>>
+				<<set $slaves[$i].trust -= 25.0>>
+			<</if>>
+		<</if>>
+	<</if>>
+	<br><br>
+	<<if $slaves[$i].mpreg == 1>>
+		<<if ($slaves[$i].anus < 0)>> /* you somehow got a pregnant slave with no vagina catch */
+			Childbirth has @@.lime;has torn $object a gaping anus.@@
+		<<elseif ($slaves[$i].anus == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology */
+			Childbirth has @@.lime;ruined $possessive virgin ass.@@
+		<<elseif ($slaves[$i].anus == 1)>>
+			Childbirth has @@.lime;greatly stretched out $possessive ass.@@
+		<<elseif ($slaves[$i].anus == 2)>>
+			Childbirth has @@.lime;stretched out $possessive ass.@@
+		<<elseif ($slaves[$i].anus == 3)>>
+			$possessiveCap ass was loose enough to not be stretched by childbirth.
+		<<elseif ($slaves[$i].anus < 10)>>
+			Childbirth stood no chance of stretching $possessive gaping ass.
+		<<elseif ($slaves[$i].anus == 10)>>
+			$possessiveCap child could barely stretch $possessive cavernous ass.
+		<<else>>
+			Childbirth has @@.lime;stretched out $possessive ass.@@
+		<</if>>
+	<<else>>
+		<<if ($slaves[$i].vagina < 0)>> /* you somehow got a pregnant slave with no vagina catch */
+			Childbirth has @@.lime;has torn $object a gaping vagina.@@
+		<<elseif ($slaves[$i].vagina == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology (or maybe it's just surgery?) */
+			Childbirth has @@.lime;ruined $possessive virgin vagina.@@
+		<<elseif ($slaves[$i].vagina == 1)>>
+			Childbirth has @@.lime;greatly stretched out $possessive vagina.@@
+		<<elseif ($slaves[$i].vagina == 2)>>
+			Childbirth has @@.lime;stretched out $possessive vagina.@@
+		<<elseif ($slaves[$i].vagina == 3)>>
+			$possessiveCap vagina was loose enough to not be stretched by childbirth.
+		<<elseif ($slaves[$i].vagina < 6)>>
+			Childbirth stood no chance of stretching $possessive gaping vagina.
+		<<elseif ($slaves[$i].vagina == 10)>>
+			$possessiveCap child could barely stretch $possessive cavernous vagina.
+		<<else>>
+			Childbirth has @@.lime;stretched out $possessive vagina.@@
+		<</if>>
+	<</if>>
+	<<if $slaves[$i].mpreg == 1>>
+			/* Childbirth has @@.lime;stretched out $possessive anus.@@ //no need for description now */
+		<<if ($dairyPregSetting > 1) && ($slaves[$i].anus < 4)>>
+			<<set $slaves[$i].anus += 1>>
+		<<elseif ($slaves[$i].anus < 3)>>
+			<<set $slaves[$i].anus += 1>>
+		<</if>>
+	<<else>>
+			/* Childbirth has @@.lime;stretched out $possessive vagina.@@ //no need for description now */
+		<<if ($dairyPregSetting > 1) && ($slaves[$i].vagina < 4)>>
+			<<set $slaves[$i].vagina += 1>>
+		<<elseif ($slaves[$i].vagina < 3)>>
+			<<set $slaves[$i].vagina += 1>>
+		<</if>>
+	<</if>>
+
+<<else>>	
+	<br><br>
+	Since $possessive <<if $slaves[$i].mpreg == 1>>ass<<else>>vagina<</if>> was spared from childbirth, @@.lime;it retained its tightness.@@
+<</if>>
+
+/* ------ Postbirth reactions, mother experience ----------------------------------------------------------------------------- */
+
+	/* I think all this reactions should be showed only if no c'section used too. Setting it up for just in case: */
+<<if $csec == 0 && $slaves[$i].assignment != "work in the dairy">> /*if not desired, this check can be easily removed or deactevated with condition set to true.*/
+	<br>
+	<<if $slaves[$i].birthsTotal == 0>>
+		<br>
+		$possessiveCap inexperience @@.red;complicated $possessive first birth@@.
+	<</if>>
+	<<if $slaves[$i].mpreg == 1>>
+		<<if $slaves[$i].anus < 2>>
+			<br>
+			$possessiveCap tight ass @@.red;hindered $possessive <<if _curBabies >1>>babies<<else>>baby's<</if>> birth@@.
+		<</if>>
+	<<else>>
+		<<if $slaves[$i].vagina < 2>>
+			<br>
+			$possessiveCap tight vagina @@.red;hindered $possessive <<if _curBabies >1>>babies<<else>>baby's<</if>> birth@@.
+		<</if>>
+		<<if $slaves[$i].vaginaLube == 0>>
+			<br>
+			$possessiveCap dry vagina made pushing $possessive <<if _curBabies >1>>children<<else>>child<</if>> out @@.red;painful@@.
+		<</if>>
+	<</if>>
+	<<if $slaves[$i].hips < 0>>
+		<br>
+		$possessiveCap narrow hips made birth @@.red;troublesome@@.
+	<</if>>
+	<<if $slaves[$i].weight < -95>>
+		<br>
+		$possessiveCap very thin body @@.red;was nearly incapable of birthing $possessive <<if _curBabies >1>>children<<else>>child<</if>>@@.
+	<<elseif $slaves[$i].weight <= -30>>
+		<br>
+		$possessiveCap thin body was @@.red;ill-suited $possessive childbirth@@.
+	<</if>>
+	<<if $slaves[$i].health < -20>>
+		<br>
+		$possessiveCap poor health made laboring @@.red;exhausting@@.
+	<</if>>
+	<<if $slaves[$i].physicalAge < 6>>
+		<br>
+		$possessiveCap very young body was @@.red;not designed to be able pass a <<if _curBabies >1>>babies<<else>>baby<</if>>@@.
+	<<elseif $slaves[$i].physicalAge < 9>>
+		<br>
+		$possessiveCap young body had @@.red;a lot of trouble@@ birthing $possessive <<if _curBabies >1>>babies<<else>>baby<</if>>.
+	<<elseif $slaves[$i].physicalAge < 13>>
+		<br>
+		$possessiveCap young body had @@.red;trouble birthing@@ $possessive <<if _curBabies >1>>babies<<else>>baby<</if>>.
+	<</if>>
+	<<if $slaves[$i].tired > 0>>
+		<br>
+		$pronounCap was so tired, $pronoun @@.red;lacked the energy to effectively push@@.
+	<</if>>
+	<<if $slaves[$i].muscles < -95>>
+		<br>
+		$pronounCap tried and tried but $possessive frail body @@.red;could not push $possessive <<if _curBabies >1>>children<<else>>child<</if>> out@@.
+	<<elseif $slaves[$i].muscles < -30>>
+		<br>
+		$possessiveCap very weak body @@.red;barely managed to push@@ out $possessive <<if _curBabies >1>>children<<else>>child<</if>>.
+	<<elseif $slaves[$i].muscles < -5>>
+		<br>
+		$possessiveCap weak body @@.red;struggled to push@@ out $possessive <<if _curBabies >1>>children<<else>>child<</if>>.
+	<</if>>
+	<<if $slaves[$i].preg > 50>>
+		<br>
+		$possessiveCap's <<if _curBabies >1>>children<<else>>child<</if>> had extra time to grow @@.red;greatly complicating childbirth@@.
+	<</if>>
+	<<if (($slaves[$i].vagina >= 2 || $slaves[$i].vaginaLube > 0) && $slaves[$i].mpreg == 1) || $slaves[$i].births > 0 || $slaves[$i].hips > 0 || (setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95) || $slaves[$i].intelligenceImplant > 0>>
+		<br>However:
+		<<if $slaves[$i].mpreg == 1>>
+			<<if $slaves[$i].anus >= 2>>
+				<br>
+				$possessiveCap @@.green;loose ass@@ made birthing $possessive <<if _curBabies >1>>children<<else>>child<</if>> easier.
+			<</if>>
+		<<else>>
+			<<if $slaves[$i].vagina >= 2>>
+				<br>
+				$possessiveCap @@.green;loose vagina@@ made birthing $possessive <<if _curBabies >1>>children<<else>>child<</if>> easier.
+			<</if>>
+			<<if $slaves[$i].vaginaLube > 0>>
+				<br>
+				$possessiveCap @@.green;moist vagina@@ hastened $possessive <<if _curBabies >1>>children's<<else>>child's<</if>> birth.
+			<</if>>
+		<</if>>
+		<<if $slaves[$i].birthsTotal > 0>>
+			<br>
+			$pronounCap has @@.green;given birth before@@, so $pronoun knows just what to do.
+		<</if>>
+		<<if $slaves[$i].hips > 0>>
+			<br>
+			$possessiveCap @@.green;wide hips@@ greatly aided childbirth.
+		<</if>>
+		<<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>>
+			<br>
+			Thanks to $possessive @@.green;previous career@@, childbirth went smoothly.
+		<</if>>
+		<<if $slaves[$i].intelligenceImplant > 0>>
+			<br>
+			$pronounCap was @@.green;taught how to handle birth@@ in class.
+		<</if>>
+	<</if>>
+<</if>>
+/*----- Body/mother resume -------------------------*/
+<br>
+<br>
+<<if $slaves[$i].assignment != "work in the dairy" && $csec == 0>> /* && $slaves[$i].broodmother == 0 // removed - broodmother have sensations too */
+All in all,
+	<<if $birthDamage > 15>>
+		childbirth was @@.red;horrifically difficult for $object and nearly claimed $possessive life@@.
+	<<elseif $birthDamage > 10>>
+		childbirth was extremely difficult for $object and @@.red;greatly damaged $possessive health@@.
+	<<elseif $birthDamage > 5>>
+		childbirth was difficult for $object and @@.red;damaged $possessive health@@.
+	<<elseif $birthDamage > 0>>
+		childbirth was painful for $object, though not abnormally so, and @@.red;damaged $possessive health@@.
+	<<else>>
+		childbirth was @@.green;no problem@@ for $object.
+	<</if>>
+	<<if $birthDamage > 0>>
+		<<set $slaves[$i].health -= Math.round(($birthDamage/2)*10)>>
+	<</if>>
+<</if>>
+
+/* ----- Postbirth reactions, mind ------------------------------------------------------------------------------------------- */
+
+<<if $slaves[$i].fetish != "mindbroken">>
+	<<if $slaves[$i].curStillBirth > 0>>
+		<br><br>
+		/*Here should be descriptions of reactions from losing some of babies.*/
+	<</if>>
+	<<if ($slaves[$i].devotion) < 20>>
+		<br><br>
+		$pronounCap @@.mediumorchid;despises@@ you for using $object as a breeder.
+		<<set $slaves[$i].devotion -= 10>>
+	<</if>>
+	<<if $slaves[$i].fuckdoll == 0>>
+		<<if $slaves[$i].pregSource == -1 >>
+			<<if $slaves[$i].devotion < 20 && ($week-$slaves[$i].weekAcquired >= $slaves[$i].weekAcquired)>>
+				<br>
+				$pronounCap @@.mediumorchid;despises@@ you for using $possessive body to bear your children.
+				<<set $slaves[$i].devotion -= 10>>
+			<<elseif $slaves[$i].devotion > 50>>
+				<br>
+				<<print $pronounCap>>'s @@.hotpink;so proud@@ to have successfully carried children for you.
+				<<set $slaves[$i].devotion += 3>>
+			<</if>>
+		<</if>>
+	<</if>>
+	<<if $humiliation == 1>>
+		<br><br>
+		Giving birth in such a manner was completely humiliating,
+		<<if $slaves[$i].fetish == "humiliation">>
+			and a complete turn on to $object. $possessiveCap humiliation fetish @@.lightcoral;strengthens@@ as $pronoun eagerly fantasizes about giving birth in public again.
+			<<set $slaves[$i].fetishStrength += 4>>
+		<<elseif $slaves[$i].fetish == "none" || $slaves[$i].fetishStrength <= 60>>
+			and a curious experience to $object. <<if random(1,5) == 1>>@@.lightcoral;$pronounCap has developed a humiliation fetish.@@<<set $slaves[$i].fetish = "humiliation">><<else>>$pronounCap hopes to never repeat it.<</if>>
+		<<elseif $slaves[$i].devotion <= 20>>
+			and completely devastating to $possessive image of herself. The experience @@.hotpink;habituates $object@@ to cruelties of slavery.
+			<<set $slaves[$i].devotion += 5>>
+		<<else>>
+			and $pronoun hopes to never undergo it again.
+		<</if>>
+	<</if>>	
+<</if>>
+
+/* ------ Social reactions--------------- */
+<<if $arcologies[0].FSRestart != "unset">>
+	<<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>>
+		<br><br>
+		The Societal Elite @@.green;are pleased@@ at the new additions to their class.
+		<<set $failedElite -= 2 * _curBabies>>
+	<<else>>
+		<br><br>
+		The Societal Elite @@.red;are disappointed@@ that you would allow subhuman filth to dirty society under your watch. Society @@.red;frowns@@ on the unwelcome addition of more subhumans into the world.
+		<<set $failedElite += 5 * _curBabies>>
+		<<set $rep -= 10 * _curBabies>>
+	<</if>>
+<</if>>
+
+<</widget>>
+
+/*===============================================================================================*/
+
+<<widget "seBirthBabies">>
+<<set _curBabies = $slaves[$i].curBabies.length, _cToIncub = 0, _origReserve = $slaves[$i].reservedChildren>> 
+
+/* ----------------------- incubator adding subsection. There is support for broodmothers too. */
+
+<<if _origReserve > 0 && _curBabies > 0>> /*Do we need incubator checks?*/
+	<<if _curBabies >= _origReserve >>
+		/*adding normal*/
+		<<set _cToIncub = _origReserve >>
+	<<elseif _curBabies <  _origReserve && $slaves[$i].womb.length > 0>>
+		/*broodmother or partial birth, we will wait for next time to get remaining children*/
+		<<set $slaves[$i].reservedChildren -= _curBabies, _cToIncub = _curBabies>>
+	<<else>>
+		/*Stillbirth or something other go wrong. Correcting children count.*/
+		<<set $slaves[$i].reservedChildren = 0, _cToIncub = _curBabies>>
+	<</if>>
+
+	<<set $mom = $slaves[$i]>>
+	<br><br>
+	Of $possessive _curBabies child<<if $slaves[$i].pregType > 1>>ren<</if>>; _cToIncub <<if $slaves[$i].reservedChildren > 1>>were<<else>>was<</if>> taken to $incubatorName.
+	<<for _k = _cToIncub; _k != 0; _k-->> 
+		<<include "Generate Child">>
+		<<include "Incubator Workaround">>
+		<<set $slaves[$i].curBabies.shift()>> /*for now child generation metod for incubator not changed. But here children for incubator removed from array of birthed babies. If we decide later - we can use them for incubator as real objects here. For now they just discarded silently */
+	<</for>>
+	<<set $reservedChildren -= _cToIncub>>
+	<<set _curBabies = $slaves[$i].curBabies.length >>
+	<br><br>
+	<<if _curBabies > 0>>
+		After placing reserved child<<if _cToIncub > 1>>ren<</if>> to the incubator, it's time to care about other<<if _curBabies > 0>>'s<</if>>.
+	<</if>>
+<</if>>
+
+
+/*------------------------ Fate of other babies ---------------------------------------*/
+
+<<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0 && _curBabies > 0>>
+<<set _count = _curBabies>>
+	<br><br>
+	<<span $dispositionId>>
+	<<if  $arcologies[0].FSRestart != "unset" && $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>>
+		<<set _lostBabies = 1>>
+		Without time loss $possessive child<<if _curBabies > 1>>ren<</if>> collected by the Societal Elite to be raised into upstanding members of the new society.
+	<<elseif $Cash4Babies == 1>>
+		/*<<set _lostBabies = 1>>*/
+		<<set _babyCost = random(-12,12)>>
+		<<if ($slaves[$i].relationship == -3)>>
+			You make sure $possessive children are cared for, since $pronoun is your wife. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@
+			<<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>>
+			<<set _lostBabies = 1>>
+		<<elseif ($slaves[$i].assignment == "serve in the master suite" || $slaves[$i].assignment == "be your Concubine")>>
+			$possessiveCap children are guaranteed to be treated well despite the laws you've passed since $pronoun is a member of your harem. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@
+			<<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>>
+			<<set _lostBabies = 1>>
+		
+		<<else>>
+		/*
+		<<link 'Just sell them'>> 
+				<<replace `"#" + $dispositionId`>>
+					<<set _babyCost = random(-12,12)>>
+					$possessiveCap <<if _count > 1>>babies<<else>>baby<</if>> sold for a total of @@.yellowgreen;<<print cashFormat(_count*(50+_babyCost))>>.@@
+					<<set $cash += _curBabies*(50+_babyCost)>>
+				<</replace>>
+			<</link>> | 
+			$possessiveCap <<if _curBabies > 1>>babies<<else>>baby<</if>> sold for a total of @@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>.@@
+			<<set $cash += _curBabies*(50+_babyCost)>>
+		*/
+		<</if>>
+	<</if>>
+	<<if _lostBabies != 1>>
+		<<set $slaveOrphanageTotal += _curBabies>>
+		Unless you provide otherwise, the child<<if _curBabies > 1>>ren<</if>> will be remanded to one of $arcologies[0].name's slave orphanages. $slaves[$i].slaveName
+		<<if $slaves[$i].devotion > 95>>
+			worships you so completely that $pronoun will not resent this.
+		<<elseif $slaves[$i].devotion > 50>>
+			is devoted to you, but $pronoun will @@.mediumorchid;struggle to accept this.@@
+			<<set $slaves[$i].devotion -= 2>>
+		<<elseif $slaves[$i].devotion > 20>>
+			has accepted being a sex slave, but $pronoun will @@.mediumorchid;resent this intensely.@@
+			<<set $slaves[$i].devotion -= 3>>
+		<<else>>
+			will of course @@.mediumorchid;hate you for this.@@
+			<<set $slaves[$i].devotion -= 4>>
+		<</if>>
+		<<capture $i, $dispositionId, _count>>
+		<br>
+		<<if $arcologies[0].FSRepopulationFocus > 40>>
+			<<link 'Send them to a breeder school'>>
+				<<replace `"#" + $dispositionId`>>
+					The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's future minded schools, to be administered fertility and virility treatments as well as be brought up to take pride in reproduction. $slaves[$i].slaveName
+					<<if $slaves[$i].devotion > 95>>
+						loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this. $pronounCap can't wait to see $possessive child<<if _count > 1>>ren<</if>> proudly furthering your cause.
+						<<set $slaves[$i].devotion += 4>>
+					<<elseif $slaves[$i].devotion > 50>>
+						heard about these and will be @@.hotpink;happy that $possessive child<<if _count > 1>>ren<</if>> will have a purpose in your society other than slavery.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that.
+						<<set $slaves[$i].devotion += 4>>
+					<<elseif $slaves[$i].devotion > 20>>
+						will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will is broken enough to hope that $possessive offspring will have a better life, or at least an enjoyable one.
+					<<else>>
+						will of course @@.mediumorchid;hate you for this.@@ The mere thought of $possessive $fertilityAge year old daughter<<if _count > 1>>s<</if>> swollen with life, and proud of it, fills $object with @@.gold;disdain.@@
+						<<set $slaves[$i].devotion -= 4, $slaves[$i].trust -= 4>>
+					<</if>>
+					<<set $breederOrphanageTotal += _count, $slaveOrphanageTotal -= _count>>
+				<</replace>>
+			<</link>>
+			//Will cost a one time <<print cashFormat(50)>>// |
+		<</if>>
+		<<link 'Send them to a citizen school'>>
+			<<replace `"#" + $dispositionId`>>
+				The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's citizen schools, to be brought up coequal with the arcology's other young people. $slaves[$i].slaveName
+				<<if $slaves[$i].devotion > 95>>
+					loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this.
+				<<elseif $slaves[$i].devotion > 50>>
+					knows about these and will be @@.hotpink;overjoyed.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that.
+				<<elseif $slaves[$i].devotion > 20>>
+					will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that $possessive offspring will have a better life.
+				<<else>>
+					will naturally retain some resentment over being separated from $possessive child<<if _count > 1>>ren<</if>>, but this should be balanced by hope that $possessive offspring will have a better life.
+				<</if>>
+				<<set $slaves[$i].devotion += 4, $citizenOrphanageTotal += _count, $slaveOrphanageTotal -= _count>>
+			<</replace>>
+		<</link>>
+		//Will cost <<print cashFormat(100)>> weekly//
+		| <<link 'Have them raised privately'>>
+			<<replace `"#" + $dispositionId`>>
+				The child<<if _count > 1>>ren are<<else>> is<</if>> sent to be privately raised, to be brought up as a future high class citizen. $slaves[$i].slaveName
+				<<if $slaves[$i].devotion > 95>>
+					will @@.hotpink;worship you utterly@@ for this.
+				<<elseif $slaves[$i].devotion > 50>>
+					understands that this is the best possible outcome for the offspring of slave, and will be @@.hotpink;overjoyed.@@
+				<<elseif $slaves[$i].devotion > 20>>
+					will miss $possessive child<<if _count > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since <<print $pronoun>>'ll understand this is the best possible outcome for a slave mother.
+				<<else>>
+					will resent being separated from $possessive child<<if _count > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here.
+				<</if>>
+				The child<<if _count > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition.
+				<<set $slaves[$i].devotion += 6, $privateOrphanageTotal += _count, $slaveOrphanageTotal -= _count>>
+			<</replace>>
+		<</link>> 
+		//Will cost <<print cashFormat(500)>> weekly//
+		<<if $Cash4Babies == 1>>
+			| <<link 'Just sell them'>>
+				<<replace `"#" + $dispositionId`>>
+					<<set _babyCost = random(-12,12)>>
+					$possessiveCap <<if _count > 1>>babies<<else>>baby<</if>> sold for a total of @@.yellowgreen;<<print cashFormat(_count*(50+_babyCost))>>.@@
+					<<set $cash += _curBabies*(50+_babyCost)>>
+				<</replace>>
+			<</link>> 
+		<</if>>
+		<</capture>>
+	<</if>>
+	<</span>>
+<<elseif $Cash4Babies == 1 && _curBabies > 0>>
+	<br><br>
+	<<set _babyCost = random(-12,12)>>
+	$possessiveCap <<if _curBabies > 1>>babies<<else>>baby<</if>> sold for a total of @@.yellowgreen;<<print cashFormat(_curBabies*(50+_babyCost))>>.@@
+	<<set $cash += _curBabies*(50+_babyCost)>>
+<</if>>
+
+<</widget>>
+
+/*===============================================================================================*/
+
+<<widget "seBirthPostpartum">>
+<<set _curBabies = $slaves[$i].curBabies.length>> 
+
+<<if $slaves[$i].broodmother > 0 >>
+	<<set $slaves[$i].preg = 37>>
+	<<if $slaves[$i].broodmotherOnHold != 1 && $slaves[$i].womb.length == 0>> /* normally if broodmother is empty and not on hold then implant impregnate her 		immdiately*/
+		<<set WombImpregnate($slaves[$i], 1, $slaves[$i].pregSource, 1)>>
+	<</if>>
+	<<if $slaves[$i].broodmotherCountDown > 0 && $slaves[$i].womb.length > 0>> /*do we really finished?*/
+		<<set $slaves[$i].broodmotherCountDown = 38 - WombMinPreg($slaves[$i]) >> /*age of most new (small) fetus used to correct guessing of remained time.*/
+		/*Really, next block can be changed so implant will can remain inside womb turned off indefinitely. With manual extraction in surgery. But for now I leave it as is.*/
+		<<if $slaves[$i].broodmotherCountDown == 0>>
+			$pronounCap also passed the implant making $object a broodmother alongside the afterbirth.
+			<<set $slaves[$i].preg = 0>>
+			<<set $slaves[$i].pregType = 0>>
+			<<set $slaves[$i].pregSource = 0>>
+			<<set $slaves[$i].pregKnown = 0>>
+			<<set $slaves[$i].pregWeek = -4>>
+			<<set $slaves[$i].broodmother = 0>>
+		<</if>>	
+	<</if>>
+<<elseif $slaves[$i].womb.length > 0>>/* Not broodmother, but still has babies, partial birth case.*/
+	<<set $slaves[$i].preg = WombMaxPreg($slaves[$i])>> /*now we use most advanced remained fetus as base.*/
+	<<set $slaves[$i].pregSource = $slaves[$i].womb[0].fatherID>> /*in such case it's good chance that there is different father also.*/
+<<else>>
+	<<set _tmp = lastPregRule($slaves[$i], $defaultRules)>>
+	<<if ($slaves[$i].assignmentVisible == 0) && (_tmp != null)>>
+		<<set $slaves[$i].preg = -1>>
+	<<else>>
+		<<set $slaves[$i].preg = 0>>
+	<</if>>
+	<<set $slaves[$i].pregType = 0>>
+	<<set $slaves[$i].pregSource = 0>>
+	<<set $slaves[$i].pregKnown = 0>>
+	<<set $slaves[$i].pregWeek = -4>>
+<</if>>
+<<set $csec = 0>>
+
+<<SetBellySize $slaves[$i]>>
+
+<</widget>>
+
+/*===============================================================================================*/
+
+<<widget "seBirthCritical">>
+<<set _curBabies = $slaves[$i].curBabies.length>> 
+
+<<if $slaves[$i].health <= -100>>
+	<br><br>
+	While attempting to recover, $slaves[$i].slaveName @@.red;passes away@@ from complications. $possessiveCap body was fatally damaged during childbirth.
+	<<if _curBabies > 0>>
+		But $possessive offspring is healthy, so $possessive legacy will carry on.
+		<<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>>
+			<br>The Societal Elite @@.red;are furious@@ you would allow an elite child<<if _curBabies > 1>>en<</if>> to perish under your watch.
+			<<set $failedElite += 100>>
+		<</if>>
+	<</if>>
+	<<set $activeSlave = $slaves[$i]>>
+	<<include "Remove activeSlave">>
+	<<set $slaveDead = 1>>
+<</if>>
+
+<<if $slaveDead != 1>>
+	<<set $slaves[$i].labor = 0>>
+	<<set $slaves[$i].induce = 0>>
+<<else>>
+    <<set $slaveDead = 0>>
+<</if>>
+
+<</widget>>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index bc4dc271925a26a4bc3c1fd4f02c9b99da782a7f..b9ef7c5418529ab5905bf1177ad1ea0533b3d39f 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -2265,6 +2265,7 @@ Setting missing global variables:
 		<<set $PC.refreshmentType = 1>>
 	<</if>>
 <</if>>
+<<set WombInit($PC)>>
 
 Done!
 
@@ -2275,6 +2276,8 @@ Setting missing slave variables:
 
 <<PMODinit _Slave>>
 
+<<set WombInit($PC)>>
+
 <<if ndef _Slave.publicCount>>
 	<<set _Slave.publicCount = 0>>
 <</if>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 9b042da9a019cabf414541992682e9225c658f09..f48f846d6789a937895b5c0536c28d9bb81c817d 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -3906,6 +3906,7 @@ May I plea<<s>>e try out <<s>>omething <<s>>kimpier today?"
 	She enjoys herself immensely, but she loses it again when she feels your seed in her, realizing that she will find herself swelling with your child over the coming months. She has become @@.hotpink;more submissive@@ to your will now that her very first egg has been fertilized by her <<Master>>.
 	<<set $activeSlave.devotion += 5, $activeSlave.preg = 1, $activeSlave.pregWeek = 1, $activeSlave.pregKnown = 1, $activeSlave.pregSource = -1>>
 	<<SetPregType $activeSlave>>
+	<<set WombImpregnate($activeSlave, $activeSlave.pregType, -1, 1)>>
 	<<VaginalVCheck>>
 	<</replace>>
 <</link>><<if ($activeSlave.vagina == 0)>> //This option will take virginity//<</if>>
@@ -18040,6 +18041,7 @@ You tell her kindly that you understand, and that she'll be trained to address t
 	her youthful partners particularly enjoyed filling her with their potent seed. Unsurprisingly, at a routine check up later that week, $activeSlave.slaveName joyfully discovers that she was impregnated during her Frat House excursion. It seems that being bred by a bunch of horny college boys has eliminated her prior worries about the importance of age and also caused her to @@.lightcoral;fetishize impregnation.@@ @@.hotpink;She has become more submissive to you@@ for giving her the means to broaden her sexual horizons.
 	<<set $activeSlave.devotion += 4, $activeSlave.preg = 1, $activeSlave.pregWeek = 1, $activeSlave.pregKnown = 1>>
 	<<SetPregType $activeSlave>>
+	<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, 1)>>
 	<<set $activeSlave.fetish = "pregnancy", $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 5>>
 	<<if $activeSlave.mpreg == 1>>
 		<<AnalVCheck 10>>
@@ -18185,6 +18187,7 @@ You tell her kindly that you understand, and that she'll be trained to address t
 	her aged partners particularly enjoyed filling her with their still potent seed. Unsurprisingly, at a routine check up later that week, $activeSlave.slaveName joyfully discovers that she was impregnated during her excursion. It seems that being bred by a bunch of horny old men has eliminated her prior worries about the importance of age and also caused her to @@.lightcoral;fetishize impregnation.@@ @@.hotpink;She has become more submissive to you@@ for giving her the means to broaden her sexual horizons.
 	<<set $activeSlave.devotion += 4, $activeSlave.preg = 1, $activeSlave.pregWeek = 1, $activeSlave.pregKnown = 1>>
 	<<SetPregType $activeSlave>>
+	<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, 1)>>
 	<<set $activeSlave.fetish = "pregnancy", $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 5>>
 	<<if $activeSlave.mpreg == 1>>
 		<<AnalVCheck 10>>
diff --git a/src/uncategorized/SFMBarracks.tw b/src/uncategorized/SFMBarracks.tw
old mode 100755
new mode 100644
diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw
index a981ff8f3aed9a0434f75f47707bba7af868c25d..d9f5bef218736e3ca66cb9aac7281bca24cd3b5e 100644
--- a/src/uncategorized/dairyReport.tw
+++ b/src/uncategorized/dairyReport.tw
@@ -63,6 +63,7 @@
 			<<if (canImpreg($slaves[$i], $Milkmaid))>>
 				<<set $slaves[$i].preg = 1, $slaves[$i].pregSource = $Milkmaid.ID, $slaves[$i].pregKnown = 1, $slaves[$i].pregWeek = 1, _milkmaidImpregnated++, $slaves[$i].vaginalCount += 10, $vaginalTotal += 10>>
 				<<SetPregType $slaves[$i]>>
+				<<set WombImpregnate($activeSlave, $activeSlave.pregType, $Milkmaid.ID, 1)>>
 			<</if>>
 		<</for>>
 		<<if _milkmaidImpregnated > 0>>
diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw
index 2b91c0ca55d41bbe07a6dc32e862f221eea095c9..66772dfc1ae96a0e762444421fc3b9c71e40926e 100644
--- a/src/uncategorized/endWeek.tw
+++ b/src/uncategorized/endWeek.tw
@@ -136,8 +136,9 @@
 	<<set $PC.sexualEnergy += 2>>
 <</if>>
 <<if $PC.preg > 0>>
-	<<set $PC.preg++, $PC.pregWeek = $PC.preg>>
-	<<set _newBelly = getPregBellySize($PC)>>
+	<<set WombProgress($PC, 1)>>
+	<<set WombNormalizePreg($PC), $PC.pregWeek = $PC.preg>>
+	<<set _newBelly = WombGetVolume($PC)>>
 	<<if _newBelly >= $PC.belly>>
 		<<set $PC.belly = _newBelly>>
 	<<elseif $PC.belly > 500>>
diff --git a/src/uncategorized/generateXXSlave.tw b/src/uncategorized/generateXXSlave.tw
index 7e29696e92e2951094da4990f1a5b1bf2d8884d7..f3d997ea91eb71202480a3ef1e512035776e5d9e 100644
--- a/src/uncategorized/generateXXSlave.tw
+++ b/src/uncategorized/generateXXSlave.tw
@@ -2,6 +2,7 @@
 
 <<BaseSlave>>
 /*missed variables - getting tired of this shit */
+<<set WombInit($activeSlave)>>
 <<set $activeSlave.vaginaLube = 1, $activeSlave.ovaries = 1, $activeSlave.canRecruit = 1>>
 
 <<if $activeSlaveOneTimeMaxAge > 998>>
diff --git a/src/uncategorized/generateXYSlave.tw b/src/uncategorized/generateXYSlave.tw
index 7740c8fb538ea01903d8de90ded026d57640e171..b8bf1e9ffc804fc2c7f48925833e96e30b1367dd 100644
--- a/src/uncategorized/generateXYSlave.tw
+++ b/src/uncategorized/generateXYSlave.tw
@@ -2,6 +2,7 @@
 
 <<BaseSlave>>
 /% Defaults that differ from the old template %/
+<<set WombInit($activeSlave)>>
 <<set $activeSlave.genes = "XY", $activeSlave.hLength = 10, $activeSlave.prostate = 1, $activeSlave.canRecruit = 1>>
 
 <<set $activeSlave.publicCount = 0>>
diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index 509a88c8db19a7455df21d1350641a02a729a995..287779eda123a7613c67c4cf40cbdab19b9579b9 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -1224,6 +1224,7 @@ The legalities completed, ''__@@.pink;<<SlaveFullName $activeSlave>>@@__'' <<if
 	<</replace>>
 	<<set $activeSlave.preg = 1>>
 	<<SetPregType $activeSlave>>
+	<<set WombImpregnate($activeSlave, $activeSlave.pregType, -1, 1)>>
 	<<set $activeSlave.pregWeek = 1>>
 	<<set $activeSlave.pregKnown = 1>>
 	<<set $activeSlave.pregSource = -1>>
diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw
index dfa43ff31c4bc1b4b019b5a7f2c2e5dd9117dd7f..56eb99a1751a85741e69dca73c4c9437c74e515b 100644
--- a/src/uncategorized/nextWeek.tw
+++ b/src/uncategorized/nextWeek.tw
@@ -114,9 +114,9 @@
 	<<set $HeadGirl = $slaves[_NewHG], $slaves[_NewHG].assignment = "be your Head Girl", $slaves[_NewHG].diet = "healthy">>
 <</if>>
 
-<<if $PC.preg >= 38 && random(1,100) > 50>>
+<<if WombBirthReady($PC, 38) > 0 && random(1,100) > 50>>
 	<<set $PC.labor = 1>>
-<<elseif $PC.preg >= 43>>
+<<elseif WombBirthReady($PC, 43) > 0>>
 	<<set $PC.labor = 1>>
 <</if>>
 
diff --git a/src/uncategorized/nonRandomEvent.tw b/src/uncategorized/nonRandomEvent.tw
old mode 100755
new mode 100644
diff --git a/src/uncategorized/pHostageAcquisition.tw b/src/uncategorized/pHostageAcquisition.tw
index 6b3962f0b77489f25a72554bd6978b577392c411..3e1398a98e9d31900a9728e1c74f21989b54b941 100644
--- a/src/uncategorized/pHostageAcquisition.tw
+++ b/src/uncategorized/pHostageAcquisition.tw
@@ -52,6 +52,7 @@ Your hired mercenaries are en route now with your precious cargo.
 	<</if>>
 <<case "Racial Supremacism">>
 	<<SetPregType $activeSlave>>
+	<<set WombInit($activeSlave)>>
 	<<if $rivalryDuration <= 5>>
 	Upon seeing you, $activeSlave.slaveName dives into your <<if $PC.boobs == 1>>ample bust<<else>>chest<</if>> sobbing "Thank you... Thank you...". You gently wrap your arms around her in a comforting embrace. She's nearly the same as you remember her, albeit acting slightly odd and covered in scars.
 	<<set $activeSlave.weight = 0>>
diff --git a/src/uncategorized/pRivalInitiation.tw b/src/uncategorized/pRivalInitiation.tw
index c7e52d5e31d6f81a9fc4abeb900878e945d0e6ac..afdbb9bbee06717a5033c55418ba5d2dcc52624c 100644
--- a/src/uncategorized/pRivalInitiation.tw
+++ b/src/uncategorized/pRivalInitiation.tw
@@ -53,6 +53,7 @@ This is a special week, the week of your victory. <<EventNameLink $activeSlave>>
 		You announce that since $activeSlave.slaveName damaged the arcology, she will be taking a leading role in the reconstruction. She will be doing this by replacing one of the residents killed in the violence - by bearing a new slave, to be conceived collectively. The shame and @@.mediumorchid;horror@@ of her future as breeding stock comes home to her as she's restrained in a chair with her legs spread. Soon, the stream of fluids is running down her thoroughly-fucked pussy and over her virgin anus to pool on the floor beneath her. Modern medical imaging reveals her fertile ovum's last, losing battle against a legion of sperm in real time, and the images are projected on large screens.
 		<<set $rep += 500, $activeSlave.preg = 1, $activeSlave.pregSource = -2, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.devotion -= 15>>
 		<<SetPregType $activeSlave>>
+		<<set WombImpregnate($activeSlave, $activeSlave.pregType, -2, 1)>>
 		<<if $activeSlave.publicCount>><<set $activeSlave.publicCount += 47>><<else>><<set $activeSlave.publicCount = 47>><</if>>
 		<</replace>>
 	<</link>>
diff --git a/src/uncategorized/pRivalryActions.tw b/src/uncategorized/pRivalryActions.tw
index 691da25acfc718e4acc053af26567070e9f6da39..4776931a0883e8548a16a4a12e50f65750f9f1bf 100644
--- a/src/uncategorized/pRivalryActions.tw
+++ b/src/uncategorized/pRivalryActions.tw
@@ -492,6 +492,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 			take you off your birth control, won't be long after that."
 			<<set $hostage.preg = 1>>
 			<<SetPregType $hostage>>
+			<<set WombImpregnate($hostage, $hostage.pregType, 0, 1)>>
 			<<set $hostage.pregKnown = 1>>
 			<<set $hostage.pregWeek = 1>>
 			<<SetBellySize $hostage>>
diff --git a/src/uncategorized/reBoomerang.tw b/src/uncategorized/reBoomerang.tw
index 1e0c26c04c26451dc9517b0b61144935111d0116..7aa00e58a6828cd62e4416025513bf9b53d98b1f 100644
--- a/src/uncategorized/reBoomerang.tw
+++ b/src/uncategorized/reBoomerang.tw
@@ -16,6 +16,24 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 
 <<set $activeSlave.collar = "none", $activeSlave.choosesOwnClothes = 0, $activeSlave.clothes = "no clothing", $activeSlave.buttplug = "none", $activeSlave.vaginalAccessory = "none", $activeSlave.dickAccessory = "none">>
 <<set $activeSlave.health = random(-40,-25)>>
+
+/* ------------------ pregnancy setup start here----------------- */
+
+<<set WombProgress($activeSlave, _pregWeeks)>> /* In all cases should be done */
+<<set WombUpdatePregVars($activeSlave)>>
+<<if $activeSlave.broodmother > 0>> /* Broomother implant is assumed as removed.*/
+	<<set $activeSlave.preg = -1, $activeSlave.birthsTotal += WombBirthReady($activeSlave, 37), $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0, $activeSlave.broodmother == 0, $activeSlave.broodmotherFetuses = 0>>
+	<<set WombFlush($activeSlave)>>
+<<elseif WombBirthReady($activeSlave, 40) > 0 >> /* normal birth case, partial birthers not supported*/
+	<<set $activeSlave.preg = -1, $activeSlave.birthsTotal += WombBirthReady($activeSlave, 40), $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0>>
+	<<set WombFlush($activeSlave)>>
+<<else>>/* still pregnant slave */
+	<<set $activeSlave.preg = WombMaxPreg($activeSlave)>> /*most ready fetus is a base*/
+	<<set $activeSlave.pregWeek = WombMaxPreg($activeSlave)>> /*most ready fetus is a base*/
+<</if>> 
+<<SetBellySize $activeSlave>> /*In any case it's useful to do.*/
+
+/* old code, commented out.
 <<if $activeSlave.broodmother > 0>>
 	<<set $activeSlave.preg = -1, $activeSlave.birthsTotal += $activeSlave.pregType, $activeSlave.pregType = 0, $activeSlave.pregSource = 0, $activeSlave.pregWeek = 0, $activeSlave.pregKnown = 0, $activeSlave.broodmother == 0>>
 	<<SetBellySize $activeSlave>>
@@ -28,6 +46,13 @@ brings up the relevant feeds. There's a naked body crumpled pathetically against
 	<</if>>
 	<<SetBellySize $activeSlave>>
 <</if>>
+*/
+
+/* ------------------ pregnancy setup end here----------------- 
+	As no broodmother cases in code below, it's no need to setup every case of impregnantion through new system. Backup mechanic will do it for normal pregnancies.
+*/
+
+
 <<if ($activeSlave.hStyle != "shaved" && $activeSlave.bald != 1)>>
 	<<if ($activeSlave.hLength < 150)>>
 		<<set $activeSlave.hLength += _weeks>>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 5606d1a5b22031b6b4e82894e96a409a690f392f..520b6055ebc7b6e83ccf0f49be8c69154eecaa64 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -750,7 +750,7 @@ Work on her sex:
 		<</if>>
 		<<if $activeSlave.indentureRestrictions < 1 && $activeSlave.breedingMark != 1>>
 			<<if isFertile($activeSlave)>>
-				[[Implant a pregnancy generator|Surgery Degradation][$activeSlave.preg = 1,$activeSlave.pregWeek = 1,$activeSlave.pregKnown = 1,$activeSlave.pregType = 1,$activeSlave.broodmother = 1,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "preg"]] //This will have severe effects on $possessive health and mind//
+				[[Implant a pregnancy generator|Surgery Degradation][$activeSlave.preg = 1,$activeSlave.pregWeek = 1,$activeSlave.pregKnown = 1,$activeSlave.pregType = 1,$activeSlave.broodmother = 1,$activeSlave.broodmotherFetuses = 1,$cash -= $surgeryCost,$activeSlave.pregControl = "none",$activeSlave.health -= 10,$surgeryType = "preg"]] //This will have severe effects on $possessive health and mind//
 			<</if>>
 		<</if>>
 	<</if>>
diff --git a/src/uncategorized/saDrugs.tw b/src/uncategorized/saDrugs.tw
index 63ace2b8fba10a7f42528b5eb7ca16e8e3b18e22..937769dc1ade34bb558af855e20096ec3ac7b7ac 100644
--- a/src/uncategorized/saDrugs.tw
+++ b/src/uncategorized/saDrugs.tw
@@ -993,16 +993,16 @@
 	<</if>>
 <<case "labor supressors">>
 	<<set $slaves[$i].chem += 2>>
- 	<<if $slaves[$i].preg > 60>>
+ 	<<if WombBirthReady($slaves[$i], 60) > 0>>
 		<<set $slaves[$i].health -= 20>>
 		<<set $slaves[$i].labor = 1>>
 		<<set $slaves[$i].induce = 1>>
 		<<set $birthee = 1>>
 		$pronounCap has been ready to give birth for some time now. Supressing birth for so long @@.red;greatly affects $possessive health.@@ $pronounCap may @@.red;have trouble@@ giving birth to $possessive oversized child<<if $slaves[$i].pregType > 1>>ren<</if>>. $pronounCap seems to be in distress, $possessive body is @@.red;forcing $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> out!@@
- 	<<elseif $slaves[$i].preg > 50>>
+ 	<<elseif WombBirthReady($slaves[$i], 50) > 0>>
 		<<set $slaves[$i].health -= 20>>
 		$pronounCap has been ready to give birth for some time now. Supressing birth for so long @@.red;greatly affects $possessive health.@@ $pronounCap may @@.red;have trouble@@ giving birth to $possessive oversized child<<if $slaves[$i].pregType > 1>>ren<</if>>.
-	<<elseif $slaves[$i].preg > 40>>
+	<<elseif WombBirthReady($slaves[$i], 40) > 0>>
 		<<set $slaves[$i].health -= 10>>
 		Labor suppressing agents @@.red;negatively affect $possessive health.@@
 	<</if>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index f0d600c790c10aa5bbfe3832d8954998036bb6d9..2229959a4eadcd2dcf023d90df176caa144fe9ab 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -4115,7 +4115,11 @@
 			<</if>>
 		<</if>>
 	<</if>> /* closes .preg >= 10 */
-	<<SetPregType $slaves[$i]>>
+
+	<<if ($slaves[$i].preg > 0 && $slaves[$i].pregType == 0)>> //Catch for strange cases - now with checking.
+	 	<<SetPregType $slaves[$i]>> 
+	 	<<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $slaves[$i].pregSource, $slaves[$i].preg)>>
+	<</if>>
 
 <</if>> /* END PREG EFFECTS */
 
@@ -4263,6 +4267,7 @@
 
 		<<set $slaves[$i].preg = 1, $slaves[$i].pregSource = $HeadGirl.ID, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1, $HGCum -= 1, $HeadGirl.penetrativeCount += 10, $penetrativeTotal += 10>>
 		<<SetPregType $slaves[$i]>>
+		<<set WombImpregnate($slaves[$i], $activeSlave.pregType, $HeadGirl.ID, 1)>>
 		<<set $activeSlave = $slaves[$i]>><<if $slaves[$i].mpreg == 1>><<AnalVCheck 10>><<else>><<VaginalVCheck 10>><</if>><<set $slaves[$i] to $activeSlave>>
 		<<for $j = 0; $j < $slaves.length; $j++>>
 			<<if $HeadGirl.ID == $slaves[$j].ID>>
@@ -4281,12 +4286,14 @@
 		<<if ($PC.dick == 1) && ($slaves[$i].fuckdoll == 0) && ($slaves[$i].fetish != "mindbroken") && ($slaves[$i].eggType == "human")>>
 			As your concubine, she takes care to only share her fertile <<if $slaves[$i].mpreg == 1>>ass<<else>>pussy<</if>> with you. Her efforts paid off; @@.lime;she has become pregnant with your child.@@
 			<<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>>
+			<<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -1, 1)>>
 		<</if>>
 
 	<<case "serve in the master suite">>
 		<<if ($PC.dick == 1) && ($slaves[$i].eggType == "human") && (($slaves[$i].toyHole == "all her holes" && $slaves[$i].mpreg != 1 && $slaves[$i].vagina > 0) || ($slaves[$i].toyHole == "all her holes" && $slaves[$i].mpreg == 1 && $slaves[$i].anus > 0) || ($slaves[$i].toyHole == "pussy" && $slaves[$i].mpreg != 1) || ($slaves[$i].mpreg == 1 && $slaves[$i].toyHole == "ass"))>>
 			You frequently avail yourself to her fertile <<if $slaves[$i].mpreg == 1>>ass<<else>>pussy<</if>>. It's no surprise when @@.lime;she ends up pregnant with your child.@@
 			<<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>>
+			<<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -1, 1)>>
 
 		<<else>> /% look for a random father among master suite slaves %/
 			<<set _msSlaves = $slaves.filter(function(s) { return s.assignment == "serve in the master suite"; })>>
@@ -4302,6 +4309,7 @@
 					/* found eligible father */
 					After all the unprotected sex $pronoun had this week, it's really no surprise when @@.lime;$pronoun ends up pregnant.@@
 					<<set $slaves[$i].preg = 1, $slaves[$i].pregSource = _msSlaves[_m].ID, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>>
+					<<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $slaves[$i].pregSource, 1)>>
 					<<break>>
 				<</if>>
 			<</for>>
@@ -4311,18 +4319,21 @@
 		<<if ($PC.dick == 1) && ($slaves[$i].eggType == "human") && (($slaves[$i].toyHole == "all her holes" && $slaves[$i].mpreg != 1 && $slaves[$i].vagina > 0) || ($slaves[$i].toyHole == "all her holes" && $slaves[$i].mpreg == 1 && $slaves[$i].anus > 0) || ($slaves[$i].toyHole == "pussy" && $slaves[$i].mpreg != 1) || ($slaves[$i].mpreg == 1 && $slaves[$i].toyHole == "ass"))>>
 			You frequently avail yourself to her fertile <<if $slaves[$i].mpreg == 1>>ass<<else>>pussy<</if>>. It's no surprise when @@.lime;she ends up pregnant with your child.@@
 			<<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>>
+			<<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -1, 1)>>
 		<</if>>
 	
 	<<case "work in the brothel" "serve in the club" "whore" "serve the public">>
 		<<if ($slaves[$i].eggType == "human")>>
 			Due to all the citizens cumming in $possessive fertile <<if $slaves[$i].mpreg == 1>>ass<<else>>pussy<</if>>, @@.lime;$pronoun has become pregnant.@@
 			<<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -2, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>>
+			<<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -2, 1)>>
 		<</if>>
 
 	<<case "work a glory hole" "be confined in the arcade">>
 		<<if ($slaves[$i].eggType == "human")>>
 			Due to all the customers cumming in $possessive fertile, restrained <<if $slaves[$i].mpreg == 1>>ass<<else>>pussy<</if>>, @@.lime;$pronoun has become pregnant.@@
 			<<set $slaves[$i].preg = 1, $slaves[$i].pregSource = -2, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>>
+			<<set WombImpregnate($slaves[$i], $slaves[$i].pregType, -2, 1)>>
 		<</if>>
 
 	<<default>> /* random impregnation chance on other assignments - consider relationships first */
@@ -4375,6 +4386,7 @@
 			<<if $slaves[$i].pregSource != 0>>
 				A quick scan after a bout of morning nausea reveals that @@.lime;$pronoun has become pregnant.@@
 				<<set $slaves[$i].preg = 1, $slaves[$i].pregWeek = 1, $slaves[$i].pregKnown = 1>><<SetPregType $slaves[$i]>>
+				<<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $slaves[$i].pregSource, 1)>>
 			<</if>>
 		<</if>> /* closes random chance and non-zero sex acts check */
 	<</switch>> /* closes assignment checks */
@@ -4385,9 +4397,11 @@
 <<if $slaves[$i].preg < 1>>
 	<<if $slaves[$i].pregType != 0>>
 		<<set $slaves[$i].pregType = 0>>
+		<<set WombFlush($slaves[$i])>>
 	<</if>>
 <<elseif $slaves[$i].preg > 0 && $slaves[$i].pregType == 0>>
 	<<SetPregType $slaves[$i]>>
+	<<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $slaves[$i].pregSource, 1)>>
 <</if>>
 <</if>> /* closes $seePreg */
 
@@ -7277,6 +7291,7 @@
 			<<set $slaves[$i].pregSource = 0>>
 			<<set $slaves[$i].pregWeek = 0>>
 			<<set $slaves[$i].pregKnown = 0>>
+			<<set WombFlush($slaves[$i])>>
 			<<SetBellySize $slaves[$i]>>
 			<<set $cash -= 100000>>
 			<<set $failedElite += 150>>
@@ -7290,17 +7305,21 @@
 	<</if>>
 <</if>>
 
-<<if ($slaves[$i].preg > 37) && ($slaves[$i].broodmother == 0) && (random(1,100) > 90) && $slaves[$i].pregControl != "labor supressors">>
-	<<set $slaves[$i].labor = 1>>
-	<<set $birthee = 1>>
-<<elseif ($slaves[$i].preg > 41) && ($slaves[$i].broodmother == 0) && $slaves[$i].pregControl != "labor supressors">>
-	<<set $slaves[$i].labor = 1>>
-	<<set $birthee = 1>>
-<<elseif ($slaves[$i].preg > 37) && ($slaves[$i].broodmother > 0) && ($slaves[$i].assignment != "labor in the production line")>>
-	<<set $slaves[$i].labor = 1>>
-	<<set $birthee = 1>>
-	<<if $slaves[$i].ovaryAge >= 47>>
-		<<set $slaves[$i].broodmotherCountDown = 37>>
+/*--------------- main labor triggers: -------- */
+
+<<if $slaves[$i].pregControl != "labor supressors" && $slaves[$i].assignment != "labor in the production line">>
+	<<if $slaves[$i].broodmother < 1>>
+		<<if WombBirthReady($slaves[$i], 43) > 0>> /*check for really ready fetuses - 43 weeks - max, overdue*/
+			<<set $slaves[$i].labor = 1, $birthee = 1>>
+		<<elseif WombBirthReady($slaves[$i], 40) > 0 && (random(1,100) > 50)>> /*check for really ready fetuses - 40 weeks - normal*/
+			<<set $slaves[$i].labor = 1, $birthee = 1>>
+		<<elseif WombBirthReady($slaves[$i], 36) > 0 && (random(1,100) > 90)>> /*check for really ready fetuses - 36 weeks minimum */
+			<<set $slaves[$i].labor = 1, $birthee = 1>>
+		<</if>>
+	<<else>> 
+		<<if WombBirthReady($slaves[$i], 37)>> /* broodmothers ready at 37 week always */
+			<<set $slaves[$i].labor = 1, $birthee = 1>>
+		<</if>>
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/seBirth.tw b/src/uncategorized/seBirth.tw
index f9b97baa098dcdd91bb0de02bd35e8e0a66accc1..f48e8fe31f4c587112411c3e32fec694f91c8153 100644
--- a/src/uncategorized/seBirth.tw
+++ b/src/uncategorized/seBirth.tw
@@ -1,5 +1,19 @@
 :: SE Birth [nobr]
 
+/*
+Refactoring this passage. Main idea for structure:
+
+1. Making all checks about where and how slave give birth (health too).
+2. Showing scene (widget with preparations)
+3. Make calculation of birth process. All live babies will be added to slave property .curBabies as array. They will be it as long, as slave not give next birth. Enought time for any processing.
+4. Showing scene of birth based on calculation (broodmother and normal is merged in one scene, just with variations).
+5. Dealing with babies - they are in separate array, no need to mess with mother .pregType or .preg now.
+6. Setting up postpartum 
+7. Dealing with moter critical states.
+
+I need to break single passage to several widgets, as it's been overcomplicated monster with too many nested if's - true horror for me. :) At least for testing and bugfixing time, later it's can be merged back, if needed for processing speed up.
+
+*/
 <<set $nextButton = "Continue">>
 <<set $nextLink = "Scheduled Event">>
 
@@ -8,1107 +22,27 @@
 <</if>>
 
 <<for $i to 0; $i < $slaves.length; $i++>>
-<<if $slaves[$i].labor == 1>>
-<<set _dispositionId = _.uniqueId('babyDisposition-')>>
-	
-<<set $slaves[$i].pregControl = "none">>
-
-<<SlavePronouns $slaves[$i]>>
-<<set _count = $slaves[$i].pregType>>
-
-<<set $humiliation = 0>>
-<<set $suddenBirth = 1>>
-<<set $seed = random(1,100)>>
-<<set $csec = 0>>
-<<set $slaveDead = 0>>
-<<set $birthed = 1>>
-<<set $birthDamage = 0>>
-
-/* birth complications calcs */
-<<if $slaves[$i].mpreg == 1>>
-<<if $slaves[$i].anus < 2>>
-	<<set $birthDamage += 3>>
-<</if>>
-<<else>>
-<<if $slaves[$i].vagina < 2>>
-	<<set $birthDamage += 3>>
-<</if>>
-<</if>>
-<<if $slaves[$i].hips < 0>>
-	<<set $birthDamage += (2-$slaves[$i].hips)>>
-<</if>>
-<<if $slaves[$i].weight <= -95>>
-	<<set $birthDamage += 7>>
-<<elseif $slaves[$i].weight <= -30>>
-	<<set $birthDamage += 5>>
-<</if>>
-<<if $slaves[$i].muscles < -95>>
-	<<set $birthDamage += 30>>
-<<elseif $slaves[$i].muscles < -30>>
-	<<set $birthDamage += 4>>
-<<elseif $slaves[$i].muscles < -5>>
-	<<set $birthDamage += 2>>
-<</if>>
-<<if $slaves[$i].health < -20>>
-	<<set $birthDamage += (4-($slaves[$i].health/10))>>
-<</if>>
-<<if $slaves[$i].physicalAge < 6>>
-	<<set $birthDamage += 5>>
-<<elseif $slaves[$i].physicalAge < 9>>
-	<<set $birthDamage += 3>>
-<<elseif $slaves[$i].physicalAge < 13>>
-	<<set $birthDamage += 1>>
-<</if>>
-<<if $slaves[$i].birthsTotal == 0>>
-	<<set $birthDamage += 2>>
-<</if>>
-<<if $slaves[$i].mpreg != 1>>
-<<if $slaves[$i].vaginaLube == 0>>
-	<<set $birthDamage += 1>>
-<</if>>
-<</if>>
-<<if $slaves[$i].tired > 0>>
-	<<set $birthDamage += 2>>
-<</if>>
-<<if $slaves[$i].preg >= 59>> /* better get her a c-sec*/
-	<<if $slaves[$i].physicalAge < 6>>
-		<<set $birthDamage += 50>>
-	<<elseif $slaves[$i].physicalAge < 9>>
-		<<set $birthDamage += 30>>
-	<<elseif $slaves[$i].physicalAge < 13>>
-		<<set $birthDamage += 20>>
-	<</if>>
-	<<if $slaves[$i].hips < 0>>
-		<<set $birthDamage += (20-$slaves[$i].hips)>>
-	<</if>>
-<<elseif $slaves[$i].preg > 50>>
-	<<if $slaves[$i].physicalAge < 6>>
-		<<set $birthDamage += 10>>
-	<<elseif $slaves[$i].physicalAge < 9>>
-		<<set $birthDamage += 6>>
-	<<else>>
-		<<set $birthDamage += 2>>
-	<</if>>
-	<<if $slaves[$i].hips < 0>>
-		<<set $birthDamage += (2-$slaves[$i].hips)>>
-	<</if>>
-<</if>>
-<<if $slaves[$i].mpreg == 1>>
-	<<if $slaves[$i].anus >= 2>>
-		<<set $birthDamage -= 2>>
-	<</if>>
-<<else>>
-	<<if $slaves[$i].vagina >= 2>>
-		<<set $birthDamage -= 2>>
-	<</if>>
-<</if>>
-<<if $slaves[$i].hips > 0>>
-	<<set $birthDamage -= $slaves[$i].hips>>
-<</if>>
-<<if $slaves[$i].intelligenceImplant > 0>>
-	<<set $birthDamage -= 2>>
-<</if>>
-<<if $slaves[$i].birthsTotal > 0>>
-	<<set $birthDamage -= 3>>
-<</if>>
-<<if $slaves[$i].mpreg != 1>>
-<<if $slaves[$i].vaginaLube > 0>>
-	<<set $birthDamage -= $slaves[$i].vaginaLube>>
-<</if>>
-<</if>>
-<<if $slaves[$i].curatives > 0>>
-		<<set $birthDamage -= 3>>
-<</if>>
-<<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>>
-	<<set $birthDamage = 0>>
-<</if>>
-
-/* early birth calcs */
-<<if $slaves[$i].induce == 1>>
-	<<set $suddenBirth += 20>>
-<</if>>
-<<if !canWalk($slaves[$i])>>
-	<<set $suddenBirth += 10>>
-<</if>>
-<<if $slaves[$i].fetish == "mindbroken">>
-	<<set $suddenBirth += 18>>
-<</if>>
-<<if $slaves[$i].fetish == "humiliation">>
-	<<set $suddenBirth += 1 + $slaves[$i].fetishStrength/25>>
-<</if>>
-<<if $slaves[$i].weight > 190>>
-	<<set $suddenBirth += 10>>
-<<elseif $slaves[$i].weight > 160>>
-	<<set $suddenBirth += 4>>
-<<elseif $slaves[$i].weight > 130>>
-	<<set $suddenBirth += 2>>
-<<elseif $slaves[$i].weight > 95>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].muscles < -95>>
-	<<set $suddenBirth += 20>>
-<<elseif $slaves[$i].muscles < -30>>
-	<<set $suddenBirth += 4>>
-<<elseif $slaves[$i].muscles < -5>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].health < 0>>
-	<<set $suddenBirth += 2>>
-<</if>>
-<<if $slaves[$i].heels == 1>>
-	<<set $suddenBirth += 3>>
-<</if>>
-<<if $slaves[$i].boobs > 40000>>
-	<<set $suddenBirth += 3>>
-<<elseif $slaves[$i].boobs > 20000>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].butt > 6>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].dick >= 6>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].balls >= 6>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].shoes == "extreme heels">>
-	<<set $suddenBirth += 2>>
-<</if>>
-<<if $slaves[$i].mpreg != 1>>
-<<if $slaves[$i].vagina > 2>>
-	<<set $suddenBirth += 2>>
-<</if>>
-<<if $slaves[$i].vaginalAccessory != "none">>
-	<<set $suddenBirth -= 20>>
-<</if>>
-<</if>>
-<<set $suddenBirth -= ($slaves[$i].intelligence + $slaves[$i].intelligenceImplant)>>
-/* end calcs */
-
-<<if $slaves[$i].fuckdoll == 0>>
-
-<<if $slaves[$i].broodmother == 0 || $slaves[$i].broodmotherCountDown == 1>>
-
-<<if $slaves[$i].assignment != "work in the dairy">>
-
-<<if $universalRulesCSec == 1>>
-
-<<Birth>>
-
-<<else>>
-
-<<if $slaves[$i].amp != 1>> /* amps are always carried in time */
-
-<<if (random(1,20) > $suddenBirth) || ($universalRulesBirthing == 1)>> /* did she make it to her birthing area? */
-	Feeling childbirth approaching, <<if !canWalk($slaves[$i])>>$slaves[$i].slaveName is helped<<else>>$slaves[$i].slaveName makes $possessive way<</if>> to $possessive prepared birthing area.
-
-<<Birth>>
-
-<<else>>  /* did not make it to birthing area */
-
-<<if (($birthDamage > 15 && random(1,100) > 50) || ($birthDamage > 20)) && ($slaves[$i].assignment != "be the Nurse" || $slaves[$i].assignment != "get treatment in the clinic")>>
-
-<<DeadlyBirth>>
-
-<<else>>
-
-<<SuddenBirth>>
-
-<</if>> /* closes deadly birth */
-
-<</if>> /* closes reg birth */
-
-<<else>>  /* made it to birthing area */
-	With childbirth approaching, $slaves[$i].slaveName is carried to $possessive prepared birthing area.
-
-<<AmpBirth>>
-
-<</if>> /* close amp birth */
-
-<</if>> /* close always c-sec */
-
-<<else>>
-<br>
-  <<if $dairyRestraintsSetting > 1 and $slaves[$i].career == "a bioreactor">>
-	As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>>.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more.<</if>> All these events are meaningless to $object, as $possessive consciousness has long since been snuffed out.
-  <<elseif $dairyRestraintsSetting > 1>>
-	<<if $slaves[$i].fetish == "mindbroken">>
-	  As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive <<if $slaves[$i].mpreg == 1>>rear<<else>>vagina<</if>>.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more.<</if>> $pronounCap doesn't care about any of this, as the only thoughts left in $possessive empty mind revolve around the sensations in $possessive crotch and breasts.
-	<<else>>
-	  As $slaves[$i].slaveName's water breaks, a mechanical basket is extended under $possessive laboring <<if $slaves[$i].mpreg == 1>>ass<<else>>cunt<</if>>. $pronounCap struggles in $possessive bindings, attempting to break free in order to birth $possessive coming child, but $possessive efforts are pointless. $pronounCap is forced to give birth, restrained, into the waiting holder. Once the child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> secure, the basket retracts allowing access to $possessive vagina.<<if $dairyPregSetting > 0>> The impregnation tube is promptly reinserted, bloating $possessive empty womb with fresh cum, where it will remain until $pronoun is pregnant once more. $slaves[$i].slaveName moans, partially with pleasure and partially with defeat, under the growing pressure within $possessive body. Tears stream down $possessive face as <<if $slaves[$i].births > 0>>$pronoun is forcibly impregnated once more<<else>>$pronoun attempts to shift in $possessive restraints to peek around $possessive swollen breasts, but $pronoun is too well secured. $pronounCap'll realize what is happening when $possessive belly grows large enough to brush against $possessive breasts as the milker sucks from them<<if $slaves[$i].dick > 0>> or $possessive dick begins rubbing its underside<</if>><</if>>.<</if>> $possessiveCap mind slips slightly more as $pronoun focuses on $possessive fate as nothing more than animal, destined to be milked and bare offspring until $possessive body gives out.
-	  <<set $slaves[$i].trust -= 10>>
-	  <<set $slaves[$i].devotion -= 10>>
-	<</if>>
-  <<else>>
-	<<if $slaves[$i].fetish == "mindbroken">>
-		While getting milked, $slaves[$i].slaveName's water breaks. $pronounCap shows little interest and continues kneading $possessive breasts. Instinctively $pronoun begins to push out $possessive bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. $pronounCap pays no heed to $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> being removed from the milking stall, instead focusing entirely on draining $possessive breasts.
-	<<else>>
-		While getting milked, $slaves[$i].slaveName's water breaks,<<if $dairyPregSetting > 0>> this is a regular occurrence to $object now so<<else>> but<</if>> $pronoun continues enjoying $possessive milking. $pronounCap begins to push out $possessive bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>. $pronounCap catches <<if canSee($slaves[$i])>>a glimpse<<else>>the sound<</if>> of $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> being removed from the milking stall before returning $possessive focus to draining $possessive breasts.
-	<</if>>
-  <</if>>
-<</if>> /* close cow birth */
-
-<<else>>
-
-	<<if $slaves[$i].amp == 1>>
-		With childbirth approaching, $slaves[$i].slaveName is carried to $possessive prepared birthing area.
-		<<AmpBirth>>
-	<<elseif $slaves[$i].broodmother == 1>>
-		<<BroodmotherBirth>>
-	<<else>>
-		<<HyperBroodmotherBirth>>
-	<</if>>
-
-<</if>> /* close broodmother birth */
-
-<<else>> /*fuckdoll birth */
-	<<if $universalRulesCSec == 1>>
-		<<set $csec = 1>>
-		$slaves[$i].slaveName's suit's systems alert that it is ready to give birth; it is taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and for it to be cleaned up.
-	<<elseif $universalRulesBirthing == 1>>
-		$slaves[$i].slaveName's suit's systems alert that it is ready to give birth. It is taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and for it to be cleaned up.
-	<<elseif $birthDamage > 10>>
-		<<set $csec = 1>>
-		$slaves[$i].slaveName's suit's systems alert that it is ready to give birth. Since it fails to qualify as a birthing model, it is quickly taken to the remote surgery to have its child<<if $slaves[$i].pregType > 1>>ren<</if>> extracted and to be cleaned up.
-	<<else>>
-		$slaves[$i].slaveName's suit's systems alert you that it is ready to give birth. You carefully pose it as it labors on bringing its child<<if $slaves[$i].pregType > 1>>ren<</if>> into the world and sit back to enjoy yourself as its <<if $slaves[$i].pregType > 1>>first<</if>> baby starts to crown. Once both it and yourself are finished, you send its offspring off and it to the autosurgery for cleaning.
-	<</if>>
-	It barely comprehends what has happened, nor will it realize when another child is conceived in it.
-<</if>> /* close fuckdoll birth */
-
-<<if $slaves[$i].assignment == "work in the dairy" && $dairyPregSetting > 0>>
-
-<br>
-<br>
-As a human cow, $pronoun @@.orange;gave birth@@<<if $slaves[$i].broodmother > 1>> but $possessive overfilled womb barely lost any size. $possessiveCap body gave life <<elseif $slaves[$i].broodmother > 0>> but $possessive stomach barely shrank at all. $possessiveCap body gave life <</if>>
-<<if $slaves[$i].broodmother == 2>>
-	to nearly a dozen calves throughout the week.
-<<elseif $slaves[$i].broodmother == 1>>
-	to a single calf this week.
-<<elseif $slaves[$i].pregType <= 1>>
-	to a single calf.
-<<elseif $slaves[$i].pregType >= 40>>
-	to a massive brood of $slaves[$i].pregType calves. After half a day of labor and birth, $possessive belly sags softly.
-<<elseif $slaves[$i].pregType >= 20>>
-	to a brood of $slaves[$i].pregType calves. After several hours of labor and birth, $possessive belly sags softly.
-<<elseif $slaves[$i].pregType >= 10>>
-	to a squirming pile of $slaves[$i].pregType calves.
-<<elseif $slaves[$i].pregType == 9>>
-	to calf nonuplets.
-<<elseif $slaves[$i].pregType == 8>>
-	to calf octuplets.
-<<elseif $slaves[$i].pregType == 7>>
-	to calf septuplets.
-<<elseif $slaves[$i].pregType == 6>>
-	to calf sextuplets.
-<<elseif $slaves[$i].pregType == 5>>
-	to calf quintuplets.
-<<elseif $slaves[$i].pregType == 4>>
-	to calf quadruplets.
-<<elseif $slaves[$i].pregType == 3>>
-	to calf triplets.
-<<else>>
-	to calf twins.
-<</if>>
-
-<<if $slaves[$i].broodmother == 2>>
-	<<set $slaves[$i].births += 12>>
-	<<set $slaves[$i].birthsTotal += 12>>
-	<<set $birthsTotal += 12>>
-	<<set $slaves[$i].preg = 37>>
-	<<if $slaves[$i].pregSource == -1>>
-		<<set $PC.slavesFathered += 12>>
-	<</if>>
-<<elseif $slaves[$i].broodmother == 1>>
-	<<set $slaves[$i].births += 1>>
-	<<set $slaves[$i].birthsTotal += 1>>
-	<<set $birthsTotal += 1>>
-	<<set $slaves[$i].preg = 37>>
-	<<if $slaves[$i].pregSource == -1>>
-		<<set $PC.slavesFathered += 1>>
-	<</if>>
-	<<if $slaves[$i].broodmotherCountDown > 0>>
-		<<set $slaves[$i].broodmotherCountDown-->>
-		<<if $slaves[$i].broodmotherCountDown == 0>>
-			$pronounCap also passed the implant making $object a broodmother alongside the afterbirth.
-			<<set $slaves[$i].preg = 0>>
-			<<set $slaves[$i].pregType = 0>>
-			<<set $slaves[$i].pregSource = 0>>
-			<<set $slaves[$i].pregKnown = 0>>
-			<<set $slaves[$i].pregWeek = -4>>
-			<<set $slaves[$i].broodmother = 0>>
-		<</if>>
-	<</if>>
-	<<SetBellySize $slaves[$i]>>
-<<else>>
-	<<set $slaves[$i].preg = 0>>
-	<<set $slaves[$i].births += $slaves[$i].pregType>>
-	<<set $slaves[$i].birthsTotal += $slaves[$i].pregType>>
-	<<set $birthsTotal += $slaves[$i].pregType>>
-	<<if $slaves[$i].pregSource == -1>>
-		<<set $PC.slavesFathered += $slaves[$i].pregType>>
-	<</if>>
-	<<set $slaves[$i].pregType = 0>>
-	<<set $slaves[$i].pregSource = 0>>
-	<<set $slaves[$i].pregKnown = 0>>
-	<<set $slaves[$i].pregWeek = -4>>
-	<<SetBellySize $slaves[$i]>>
-<</if>>
-
-<br><br>
-<<if $slaves[$i].mpreg == 1>>
-Childbirth has @@.lime;stretched out $possessive anus.@@
-<<if ($dairyPregSetting > 1) && ($slaves[$i].anus < 4)>>
-	<<set $slaves[$i].anus += 1>>
-<<elseif ($slaves[$i].anus < 3)>>
-	<<set $slaves[$i].anus += 1>>
-<</if>>
-<<else>>
-Childbirth has @@.lime;stretched out $possessive vagina.@@
-<<if ($dairyPregSetting > 1) && ($slaves[$i].vagina < 4)>>
-	<<set $slaves[$i].vagina += 1>>
-<<elseif ($slaves[$i].vagina < 3)>>
-	<<set $slaves[$i].vagina += 1>>
-<</if>>
-<</if>>
-
-<<if ($slaves[$i].devotion) < 20 && $slaves[$i].fetish != "mindbroken">>
-	$pronounCap @@.mediumorchid;despises@@ you for using $object as a breeder.
-	<<set $slaves[$i].devotion -= 10>>
-<</if>>
-
-<<else>>
-
-<<if $slaveDead == 0>>
-
-<<if $slaves[$i].reservedChildren > 0>> /*incubator adding*/
-
-<<seBirthToIncubator>>
-
-<<else>>
-
-<<if $csec == 1>>
-
-<<set _getFather = $slaves.find(function(s) { return s.ID == $slaves[$i].pregSource; })>>
-<<if def _getFather>>
-	<<set $daddy = _getFather.slaveName>>
-<</if>>
-
-<br>
-<br>
-$pronounCap was given @@.orange;a cesarean section@@ due to health concerns. From $possessive womb,
-<<if $slaves[$i].pregType <= 1>>
-	a single baby,
-<<elseif $slaves[$i].pregType >= 40>>
-	a massive brood of $slaves[$i].pregType babies,
-<<elseif $slaves[$i].pregType >= 20>>
-	a brood of $slaves[$i].pregType babies,
-<<elseif $slaves[$i].pregType >= 10>>
-	a squirming pile of $slaves[$i].pregType babies,
-<<elseif $slaves[$i].pregType == 9>>
-	nonuplets,
-<<elseif $slaves[$i].pregType == 8>>
-	octuplets,
-<<elseif $slaves[$i].pregType == 7>>
-	septuplets,
-<<elseif $slaves[$i].pregType == 6>>
-	sextuplets,
-<<elseif $slaves[$i].pregType == 5>>
-	quintuplets,
-<<elseif $slaves[$i].pregType == 4>>
-	quadruplets,
-<<elseif $slaves[$i].pregType == 3>>
-	triplets,
-<<else>>
-	twins,
-<</if>>
-created by
-<<if $slaves[$i].pregSource == -1>>
-	your magnificent dick,
-<<elseif $slaves[$i].pregSource == -2>>
-	your arcology's eager citizens,
-<<elseif $slaves[$i].pregSource == -3>>
-	the Societal Elite,
-<<elseif $slaves[$i].pregSource == 0>>
-	an unknown father,
-<<elseif $slaves[$i].ID == $daddy.ID>>
-	$possessive own curiosity over if $pronoun could fuck <<print $possessive>>self,
-<<else>>
-	$daddy's virile cock and balls,
-<</if>>
-entered the world.
-
-<<if $arcologies[0].FSRestart != "unset">>
-<<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>>
-<br><br>
-	The Societal Elite @@.green;are pleased@@ at the new additions to their class.
-	<<set $failedElite -= 2*$slaves[$i].pregType>>
-<<else>>
-<br>
-<br>
-	The Societal Elite @@.red;are disappointed@@ that you would allow subhuman filth to dirty society under your watch. Society @@.red;frowns@@ on the unwelcome addition of more subhumans into the world.
-	<<set $failedElite += 5*$slaves[$i].pregType>>
-	<<set $rep -= 10*$slaves[$i].pregType>>
-<</if>>
-<</if>>
-
-<br>
-<br>
-Since $possessive <<if $slaves[$i].mpreg == 1>>ass<<else>>vagina<</if>> was spared from childbirth, @@.lime;it retained its tightness.@@
-
-<<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>>
-	<br>
-	<<if $slaves[$i].pregSource == -1>>
-	<<if $slaves[$i].devotion < 20 && ($week-$slaves[$i].weekAcquired >= $slaves[$i].weekAcquired)>>
+	<<if $slaves[$i].labor == 1>>
+		<<set $dispositionId = _.uniqueId('babyDisposition-')>>
+		Birth report: @@.coral;$slaves[$i].slaveName <<if $slaves[$i].slaveSurname != 0>>$slaves[$i].slaveSurname<</if>>@@
 		<br>
-		$pronounCap @@.mediumorchid;despises@@ you for using $possessive body to bear your children.
-		<<set $slaves[$i].devotion -= 10>>
-	<<elseif $slaves[$i].devotion > 50>>
-		<br>
-		<<print $pronounCap>>'s @@.hotpink;so proud@@ to have successfully carried children for you.
-		<<set $slaves[$i].devotion += 3>>
-	<</if>>
-	<</if>>
-	<br>
-	<<span _dispositionId>>
-	<<if  $arcologies[0].FSRestart != "unset" && $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>>
-		<<set _lostBabies = 1>>
-		As soon as $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> were born, the Societal Elite collected them to be raised into upstanding members of the new society.
-	<<elseif $Cash4Babies == 1>>
-		<<set _lostBabies = 1>>
-		<<set _babyCost = random(-12,12)>>
-		<<if ($slaves[$i].relationship == -3)>>
-			You make sure $possessive children are cared for, since $pronoun is your wife. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@
-			<<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>>
-			<<set _lostBabies = 0>>
-		<<elseif ($slaves[$i].assignment == "serve in the master suite" || $slaves[$i].assignment == "be your Concubine")>>
-			$possessiveCap children are guaranteed to be treated well despite the laws you've passed since $pronoun is a member of your harem. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@
-			<<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>>
-			<<set _lostBabies = 0>>
-		<<else>>
-			<<if $slaves[$i].broodmother == 2>>
-				$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat(12*(50+_babyCost))>>.@@
-				<<set $cash += 12*(50+_babyCost)>>
-			<<elseif $slaves[$i].broodmother == 1>>
-				$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat((50+_babyCost))>>.@@
-				<<set $cash += (50+_babyCost)>>
-			<<else>>
-				$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat($slaves[$i].pregType*(50+_babyCost))>>.@@
-				<<set $cash += $slaves[$i].pregType*(50+_babyCost)>>
-			<</if>>
-		<</if>>
-	<</if>>
-	<<if _lostBabies != 1>>
-		<<set $slaveOrphanageTotal += $slaves[$i].pregType>>
-		Unless you provide otherwise, the child<<if $slaves[$i].pregType > 1>>ren<</if>> will be remanded to one of $arcologies[0].name's slave orphanages. $slaves[$i].slaveName
-		<<if $slaves[$i].devotion > 95>>
-			worships you so completely that $pronoun will not resent this.
-		<<elseif $slaves[$i].devotion > 50>>
-			is devoted to you, but $pronoun will @@.mediumorchid;struggle to accept this.@@
-			<<set $slaves[$i].devotion -= 2>>
-		<<elseif $slaves[$i].devotion > 20>>
-			has accepted being a sex slave, but $pronoun will @@.mediumorchid;resent this intensely.@@
-			<<set $slaves[$i].devotion -= 3>>
-		<<else>>
-			will of course @@.mediumorchid;hate you for this.@@
-			<<set $slaves[$i].devotion -= 4>>
-		<</if>>
-		<<capture $i, _dispositionId, _count>>
-		<<if $arcologies[0].FSRepopulationFocus > 40>>
-			<<link 'Send them to a breeder school'>>
-				<<replace `"#" + _dispositionId`>>
-					The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's future minded schools, to be administered fertility and virility treatments as well as be brought up to take pride in reproduction. $slaves[$i].slaveName
-					<<if $slaves[$i].devotion > 95>>
-						loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this. $pronounCap can't wait to see $possessive child<<if _count > 1>>ren<</if>> proudly furthering your cause.
-						<<set $slaves[$i].devotion += 4>>
-					<<elseif $slaves[$i].devotion > 50>>
-						heard about these and will be @@.hotpink;happy that $possessive child<<if _count > 1>>ren<</if>> will have a purpose in your society other than slavery.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that.
-						<<set $slaves[$i].devotion += 4>>
-					<<elseif $slaves[$i].devotion > 20>>
-						will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will is broken enough to hope that $possessive offspring will have a better life, or at least an enjoyable one.
-					<<else>>
-						will of course @@.mediumorchid;hate you for this.@@ The mere thought of $possessive $fertilityAge year old daughter<<if _count > 1>>s<</if>> swollen with life, and proud of it, fills $object with @@.gold;disdain.@@
-						<<set $slaves[$i].devotion -= 4, $slaves[$i].trust -= 4>>
-					<</if>>
-					<<set $breederOrphanageTotal += _count, $slaveOrphanageTotal -= _count>>
-				<</replace>>
-			<</link>>
-			//Will cost a one time <<print cashFormat(50)>>// |
-		<</if>>
-		<<link 'Send them to a citizen school'>>
-			<<replace `"#" + _dispositionId`>>
-				The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's citizen schools, to be brought up coequal with the arcology's other young people. $slaves[$i].slaveName
-				<<if $slaves[$i].devotion > 95>>
-					loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this.
-				<<elseif $slaves[$i].devotion > 50>>
-					knows about these and will be @@.hotpink;overjoyed.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that.
-				<<elseif $slaves[$i].devotion > 20>>
-					will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that $possessive offspring will have a better life.
-				<<else>>
-					will naturally retain some resentment over being separated from $possessive child<<if _count > 1>>ren<</if>>, but this should be balanced by hope that $possessive offspring will have a better life.
-				<</if>>
-				<<set $slaves[$i].devotion += 4, $citizenOrphanageTotal += _count, $slaveOrphanageTotal -= _count>>
-			<</replace>>
-		<</link>>
-		//Will cost <<print cashFormat(100)>> weekly//
-		| <<link 'Have them raised privately'>>
-			<<replace `"#" + _dispositionId`>>
-				The child<<if _count > 1>>ren are<<else>> is<</if>> sent to be privately raised, to be brought up as a future high class citizen. $slaves[$i].slaveName
-				<<if $slaves[$i].devotion > 95>>
-					will @@.hotpink;worship you utterly@@ for this.
-				<<elseif $slaves[$i].devotion > 50>>
-					understands that this is the best possible outcome for the offspring of slave, and will be @@.hotpink;overjoyed.@@
-				<<elseif $slaves[$i].devotion > 20>>
-					will miss $possessive child<<if _count > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since <<print $pronoun>>'ll understand this is the best possible outcome for a slave mother.
-				<<else>>
-					will resent being separated from $possessive child<<if _count > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here.
-				<</if>>
-				The child<<if _count > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition.
-				<<set $slaves[$i].devotion += 6, $privateOrphanageTotal += _count, $slaveOrphanageTotal -= _count>>
-			<</replace>>
-		<</link>> 
-		//Will cost <<print cashFormat(500)>> weekly//
-		<</capture>>
-	<</if>>
-	<</span>>
-<<elseif $Cash4Babies == 1>>
-	<<set _babyCost = random(-12,12)>>
-	<<if $slaves[$i].broodmother == 2>>
-		$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat(12*(50+_babyCost))>>.@@
-		<<set $cash += 12*(50+_babyCost)>>
-	<<elseif $slaves[$i].broodmother == 1>>
-		$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat((50+_babyCost))>>.@@
-		<<set $cash += (50+_babyCost)>>
-	<<else>>
-		$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat($slaves[$i].pregType*(50+_babyCost))>>.@@
-		<<set $cash += $slaves[$i].pregType*(50+_babyCost)>>
-	<</if>>
-<</if>>
+		<<seBirthPreChek>>
 
-<<if lastPregRule($slaves[$i],$defaultRules)>><<set $slaves[$i].preg = -1>><<else>><<set $slaves[$i].preg = 0>><</if>>
-<<set $slaves[$i].births += $slaves[$i].pregType>>
-<<set $slaves[$i].birthsTotal += $slaves[$i].pregType>>
-<<set $birthsTotal += $slaves[$i].pregType>>
-<<if $slaves[$i].pregSource > 0>>
-	<<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].pregSource; })>>
-		<<if _babyDaddy != -1>>
-			<<set $slaves[_babyDaddy].slavesFathered += $slaves[$i].pregType>>
-		<</if>>
-<<elseif $slaves[$i].pregSource == -1>>
-	<<set $PC.slavesFathered += $slaves[$i].pregType>>
-<</if>>
-<<set $slaves[$i].pregType = 0>>
-<<set $slaves[$i].pregSource = 0>>
-<<set $slaves[$i].pregKnown = 0>>
-<<set $slaves[$i].pregWeek = -4>>
-<<SetBellySize $slaves[$i]>>
-<<set $csec = 0>>
+		<<seBirthPreScene>>
 
-<<else>> /* normal birth */
+		<<seBirthCalc>>
 
-<<set _getFather = $slaves.find(function(s) { return s.ID == $slaves[$i].pregSource; })>>
-<<if def _getFather>>
-	<<set $daddy = _getFather.slaveName>>
-<</if>>
-
-<<if $humiliation == 1>>
-	<br><br>
-	Giving birth in such a manner was completely humiliating,
-	<<if $slaves[$i].fetish == "humiliation">>
-		and a complete turn on to $object. $possessiveCap humiliation fetish @@.lightcoral;strengthens@@ as $pronoun eagerly fantasizes about giving birth in public again.
-		<<set $slaves[$i].fetishStrength += 4>>
-	<<elseif $slaves[$i].fetish == "none" || $slaves[$i].fetishStrength <= 60>>
-		and a curious experience to $object. <<if random(1,5) == 1>>@@.lightcoral;$pronounCap has developed a humiliation fetish.@@<<set $slaves[$i].fetish = "humiliation">><<else>>$pronounCap hopes to never repeat it.<</if>>
-	<<elseif $slaves[$i].devotion <= 20>>
-		and completely devastating to $possessive image of herself. The experience @@.hotpink;habituates $object@@ to cruelties of slavery.
-		<<set $slaves[$i].devotion += 5>>
-	<<else>>
-		and $pronoun hopes to never undergo it again.
-	<</if>>
-<</if>>
-
-<br>
-<br>
-$pronounCap @@.orange;gave birth@@<<if $slaves[$i].broodmother > 1>>, but $possessive overfilled womb barely lost any size. $possessiveCap body gave life <<elseif $slaves[$i].broodmother > 0>>, but $possessive stomach barely shrank at all. $possessiveCap body gave life <</if>>
-<<if $slaves[$i].broodmother == 2>>
-	to nearly a dozen babies throughout the week.
-<<elseif $slaves[$i].broodmother == 1>>
-	to a single baby this week,
-<<elseif $slaves[$i].pregType >= 40>>
-	to a massive brood of $slaves[$i].pregType babies,
-<<elseif $slaves[$i].pregType >= 20>>
-	to a brood of $slaves[$i].pregType babies,
-<<elseif $slaves[$i].pregType >= 10>>
-	to a squirming pile of $slaves[$i].pregType babies,
-<<elseif $slaves[$i].pregType == 9>>
-	to nonuplets,
-<<elseif $slaves[$i].pregType == 8>>
-	to octuplets,
-<<elseif $slaves[$i].pregType == 7>>
-	to septuplets,
-<<elseif $slaves[$i].pregType == 6>>
-	to sextuplets,
-<<elseif $slaves[$i].pregType == 5>>
-	to quintuplets,
-<<elseif $slaves[$i].pregType == 4>>
-	to quadruplets,
-<<elseif $slaves[$i].pregType == 3>>
-	to triplets,
-<<else>>
-	to twins,
-<</if>>
-created by
-<<if $slaves[$i].pregSource == -1>>
-	your magnificent dick.
-<<elseif $slaves[$i].pregSource == -2>>
-	your arcology's eager citizens.
-<<elseif $slaves[$i].pregSource == -3>>
-	the Societal Elite.
-<<elseif $slaves[$i].pregSource == 0>>
-	an unknown father.
-<<elseif $slaves[$i].ID == $daddy.ID>>
-	$possessive own curiosity over if $pronoun could fuck <<print $possessive>>self.
-<<else>>
-	$daddy's virile cock and balls.
-<</if>>
-<<if $slaves[$i].pregType >= 80>>
-	After an entire day of labor and birth, $possessive belly sags heavily.
-<<elseif $slaves[$i].pregType >= 40>>
-	After half a day of labor and birth, $possessive belly sags emptily.
-<<elseif $slaves[$i].pregType >= 20>>
-	After several hours of labor and birth, $possessive belly sags softly.
-<</if>>
-
-<<if $arcologies[0].FSRestart != "unset">>
-<<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>>
-<br><br>
-	The Societal Elite @@.green;are pleased@@ at the new additions to their class.
-	<<set $failedElite -= 2*$slaves[$i].pregType>>
-<<else>>
-<br>
-<br>
-	The Societal Elite @@.red;are disappointed@@ that you would allow subhuman filth to be born under your watch. Society @@.red;frowns@@ on the birth of more subhumans into the world.
-	<<set $failedElite += 5*$slaves[$i].pregType>>
-	<<set $rep -= 10*$slaves[$i].pregType>>
-<</if>>
-<</if>>
-
-<<if ($slaves[$i].vagina == 0) || ($slaves[$i].mpreg == 1 && $slaves[$i].anus == 0)>>
-<<if $slaves[$i].fetish != "mindbroken">>
-<br>
-<br>
-<<if ($slaves[$i].fetish == "masochist")>>
-	Since $pronoun was a virgin, giving birth was a @@.red;terribly painful@@ experience.<<if $slaves[$i].fetishKnown == 0>>$pronounCap seems to have orgasmed several times during the experience, $pronoun appears to @@.lightcoral;really like pain@@.<<else>> However, due to $possessive masochistic streak, $pronoun @@.hotpink;greatly enjoyed@@ said experience<</if>>.
-	<<set $slaves[$i].health -= 10>>
-	<<set $slaves[$i].devotion += 2>>
-	<<set $slaves[$i].fetishKnown = 1>>
-<<else>>
-	Since $pronoun was a virgin, giving birth was a @@.red;terribly painful@@ experience. $pronounCap @@.mediumorchid;despises@@ you for taking $possessive virginity in such a @@.gold;horrifying@@ way.
-	<<set $slaves[$i].health -= 40>>
-	<<set $slaves[$i].devotion -= 25.0>>
-	<<set $slaves[$i].trust -= 25.0>>
-<</if>>
-<</if>>
-<</if>>
-
-
-<br>
-<<if $slaves[$i].birthsTotal == 0>>
-<br>
-	$possessiveCap inexperience @@.red;complicated $possessive first birth@@.
-<</if>>
-<<if $slaves[$i].mpreg == 1>>
-<<if $slaves[$i].anus < 2>>
-<br>
-	$possessiveCap tight ass @@.red;hindered $possessive baby's birth@@.
-<</if>>
-<<else>>
-<<if $slaves[$i].vagina < 2>>
-<br>
-	$possessiveCap tight vagina @@.red;hindered $possessive baby's birth@@.
-<</if>>
-<<if $slaves[$i].vaginaLube == 0>>
-<br>
-	$possessiveCap dry vagina made pushing $possessive child out @@.red;painful@@.
-<</if>>
-<</if>>
-<<if $slaves[$i].hips < 0>>
-<br>
-	$possessiveCap narrow hips made birth @@.red;troublesome@@.
-<</if>>
-<<if $slaves[$i].weight < -95>>
-<br>
-	$possessiveCap very thin body @@.red;was nearly incapable of birthing $possessive child@@.
-<<elseif $slaves[$i].weight <= -30>>
-<br>
-	$possessiveCap thin body was @@.red;ill-suited $possessive childbirth@@.
-<</if>>
-<<if $slaves[$i].health < -20>>
-<br>
-	$possessiveCap poor health made laboring @@.red;exhausting@@.
-<</if>>
-<<if $slaves[$i].physicalAge < 6>>
-<br>
-	$possessiveCap very young body was @@.red;not designed to be able pass a baby@@.
-<<elseif $slaves[$i].physicalAge < 9>>
-<br>
-	$possessiveCap young body had @@.red;a lot of trouble@@ birthing $possessive baby.
-<<elseif $slaves[$i].physicalAge < 13>>
-<br>
-	$possessiveCap young body had @@.red;trouble birthing@@ $possessive baby.
-<</if>>
-<<if $slaves[$i].tired > 0>>
-<br>
-	$pronounCap was so tired, $pronoun @@.red;lacked the energy to effectively push@@.
-<</if>>
-<<if $slaves[$i].muscles < -95>>
-<br>
-	$pronounCap tried and tried but $possessive frail body @@.red;could not push $possessive child out@@.
-<<elseif $slaves[$i].muscles < -30>>
-<br>
-	$possessiveCap very weak body @@.red;barely managed to push@@ out $possessive child.
-<<elseif $slaves[$i].muscles < -5>>
-<br>
-	$possessiveCap weak body @@.red;struggled to push@@ out $possessive child.
-<</if>>
-<<if $slaves[$i].preg > 50>>
-<br>
-	$possessiveCap's child had extra time to grow @@.red;greatly complicating childbirth@@.
-<</if>>
-<<if (($slaves[$i].vagina >= 2 || $slaves[$i].vaginaLube > 0) && $slaves[$i].mpreg == 1) || $slaves[$i].births > 0 || $slaves[$i].hips > 0 || (setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95) || $slaves[$i].intelligenceImplant > 0>>
-<br>However:
-<<if $slaves[$i].mpreg == 1>>
-<<if $slaves[$i].anus >= 2>>
-<br>
-	$possessiveCap @@.green;loose ass@@ made birthing $possessive child easier.
-<</if>>
-<<else>>
-<<if $slaves[$i].vagina >= 2>>
-<br>
-	$possessiveCap @@.green;loose vagina@@ made birthing $possessive child easier.
-<</if>>
-<<if $slaves[$i].vaginaLube > 0>>
-<br>
-	$possessiveCap @@.green;moist vagina@@ hastened $possessive child's birth.
-<</if>>
-<</if>>
-<<if $slaves[$i].birthsTotal > 0>>
-<br>
-	$pronounCap has @@.green;given birth before@@, so $pronoun knows just what to do.
-<</if>>
-<<if $slaves[$i].hips > 0>>
-<br>
-	$possessiveCap @@.green;wide hips@@ greatly aided childbirth.
-<</if>>
-<<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>>
-<br>
-	Thanks to $possessive @@.green;previous career@@, childbirth went smoothly.
-<</if>>
-<<if $slaves[$i].intelligenceImplant > 0>>
-<br>
-	$pronounCap was @@.green;taught how to handle birth@@ in class.
-<</if>>
-<</if>>
+		<<seBirthMainScene>>
 
-<br>
-<br>
-<<if $slaves[$i].assignment != "work in the dairy" && $slaves[$i].broodmother == 0 && $csec == 0>>
-All in all,
-<<if $birthDamage > 15>>
-	childbirth was @@.red;horrifically difficult for $object and nearly claimed $possessive life@@.
-<<elseif $birthDamage > 10>>
-	childbirth was extremely difficult for $object and @@.red;greatly damaged $possessive health@@.
-<<elseif $birthDamage > 5>>
-	childbirth was difficult for $object and @@.red;damaged $possessive health@@.
-<<elseif $birthDamage > 0>>
-	childbirth was painful for $object, though not abnormally so, and @@.red;damaged $possessive health@@.
-<<else>>
-	childbirth was @@.green;no problem@@ for $object.
-<</if>>
-<<if $birthDamage > 0>>
-<<set $slaves[$i].health -= Math.round(($birthDamage/2)*10)>>
-<</if>>
-<</if>>
+		<<seBirthBabies>>
 
-<br>
-<br>
-<<if $slaves[$i].mpreg == 1>>
-<<if ($slaves[$i].anus < 0)>> /* you somehow got a pregnant slave with no vagina catch */
-Childbirth has @@.lime;has torn $object a gaping anus.@@
-<<elseif ($slaves[$i].anus == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology */
-Childbirth has @@.lime;ruined $possessive virgin ass.@@
-<<elseif ($slaves[$i].anus == 1)>>
-Childbirth has @@.lime;greatly stretched out $possessive ass.@@
-<<elseif ($slaves[$i].anus == 2)>>
-Childbirth has @@.lime;stretched out $possessive ass.@@
-<<elseif ($slaves[$i].anus == 3)>>
-$possessiveCap ass was loose enough to not be stretched by childbirth.
-<<elseif ($slaves[$i].anus < 10)>>
-Childbirth stood no chance of stretching $possessive gaping ass.
-<<elseif ($slaves[$i].anus == 10)>>
-$possessiveCap child could barely stretch $possessive cavernous ass.
-<<else>>
-Childbirth has @@.lime;stretched out $possessive ass.@@
-<</if>>
-<<else>>
-<<if ($slaves[$i].vagina < 0)>> /* you somehow got a pregnant slave with no vagina catch */
-Childbirth has @@.lime;has torn $object a gaping vagina.@@
-<<elseif ($slaves[$i].vagina == 0)>> /* please stop selling me pregnant virgins, neighbor gender fundamentalist arcology */
-Childbirth has @@.lime;ruined $possessive virgin vagina.@@
-<<elseif ($slaves[$i].vagina == 1)>>
-Childbirth has @@.lime;greatly stretched out $possessive vagina.@@
-<<elseif ($slaves[$i].vagina == 2)>>
-Childbirth has @@.lime;stretched out $possessive vagina.@@
-<<elseif ($slaves[$i].vagina == 3)>>
-$possessiveCap vagina was loose enough to not be stretched by childbirth.
-<<elseif ($slaves[$i].vagina < 6)>>
-Childbirth stood no chance of stretching $possessive gaping vagina.
-<<elseif ($slaves[$i].vagina == 10)>>
-$possessiveCap child could barely stretch $possessive cavernous vagina.
-<<else>>
-Childbirth has @@.lime;stretched out $possessive vagina.@@
-<</if>>
-<</if>>
+		<<seBirthPostpartum>>
 
-<<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>>
-	<br>
-	<<if $slaves[$i].pregSource == -1>>
-	<<if $slaves[$i].devotion < 20 && ($week-$slaves[$i].weekAcquired >= $slaves[$i].weekAcquired)>>
-		<br>
-		$pronounCap @@.mediumorchid;despises@@ you for using $possessive body to bear your children.
-		<<set $slaves[$i].devotion -= 10>>
-	<<elseif $slaves[$i].devotion > 50>>
-		<br>
-		<<print $pronounCap>>'s @@.hotpink;so proud@@ to have successfully carried children for you.
-		<<set $slaves[$i].devotion += 3>>
-	<</if>>
-	<</if>>
-	<br>
-	<<span _dispositionId>>
-	<<if  $arcologies[0].FSRestart != "unset" && $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>>
-		<<set _lostBabies = 1>>
-		As soon as $possessive child<<if $slaves[$i].pregType > 1>>ren<</if>> were born, the Societal Elite collected them to be raised into upstanding members of the new society.
-	<<elseif $Cash4Babies == 1>>
-		<<set _lostBabies = 1>>
-		<<set _babyCost = random(-12,12)>>
-		<<if ($slaves[$i].relationship == -3)>>
-			You make sure $possessive children are cared for, since $pronoun is your wife. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@
-			<<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>>
-			<<set _lostBabies = 0>>
-		<<elseif ($slaves[$i].assignment == "serve in the master suite" || $slaves[$i].assignment == "be your Concubine")>>
-			$possessiveCap children are guaranteed to be treated well despite the laws you've passed since $pronoun is a member of your harem. $slaves[$i].slaveName is @@.hotpink;touched@@ by this @@.mediumaquamarine;act of kindness.@@
-			<<set $slaves[$i].trust += 3, $slaves[$i].devotion += 3>>
-			<<set _lostBabies = 0>>
-		<<else>>
-			<<if $slaves[$i].broodmother == 2>>
-				$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat(12*(50+_babyCost))>>.@@
-				<<set $cash += 12*(50+_babyCost)>>
-			<<elseif $slaves[$i].broodmother == 1>>
-				$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat((50+_babyCost))>>.@@
-				<<set $cash += (50+_babyCost)>>
-			<<else>>
-				$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat($slaves[$i].pregType*(50+_babyCost))>>.@@
-				<<set $cash += $slaves[$i].pregType*(50+_babyCost)>>
-			<</if>>
-		<</if>>
-	<</if>>
-	<<if _lostBabies != 1>>
-		<<set $slaveOrphanageTotal += $slaves[$i].pregType>>
-		Unless you provide otherwise, the child<<if $slaves[$i].pregType > 1>>ren<</if>> will be remanded to one of $arcologies[0].name's slave orphanages. $slaves[$i].slaveName
-		<<if $slaves[$i].devotion > 95>>
-			worships you so completely that $pronoun will not resent this.
-		<<elseif $slaves[$i].devotion > 50>>
-			is devoted to you, but $pronoun will @@.mediumorchid;struggle to accept this.@@
-			<<set $slaves[$i].devotion -= 2>>
-		<<elseif $slaves[$i].devotion > 20>>
-			has accepted being a sex slave, but $pronoun will @@.mediumorchid;resent this intensely.@@
-			<<set $slaves[$i].devotion -= 3>>
-		<<else>>
-			will of course @@.mediumorchid;hate you for this.@@
-			<<set $slaves[$i].devotion -= 4>>
-		<</if>>
-		<<capture $i, _dispositionId, _count>>
-		<<if $arcologies[0].FSRepopulationFocus > 40>>
-			<<link 'Send them to a breeder school'>>
-				<<replace `"#" + _dispositionId`>>
-					The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's future minded schools, to be administered fertility and virility treatments as well as be brought up to take pride in reproduction. $slaves[$i].slaveName
-					<<if $slaves[$i].devotion > 95>>
-						loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this. $pronounCap can't wait to see $possessive child<<if _count > 1>>ren<</if>> proudly furthering your cause.
-						<<set $slaves[$i].devotion += 4>>
-					<<elseif $slaves[$i].devotion > 50>>
-						heard about these and will be @@.hotpink;happy that $possessive child<<if _count > 1>>ren<</if>> will have a purpose in your society other than slavery.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that.
-						<<set $slaves[$i].devotion += 4>>
-					<<elseif $slaves[$i].devotion > 20>>
-						will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will is broken enough to hope that $possessive offspring will have a better life, or at least an enjoyable one.
-					<<else>>
-						will of course @@.mediumorchid;hate you for this.@@ The mere thought of $possessive $fertilityAge year old daughter<<if _count > 1>>s<</if>> swollen with life, and proud of it, fills $object with @@.gold;disdain.@@
-						<<set $slaves[$i].devotion -= 4, $slaves[$i].trust -= 4>>
-					<</if>>
-					<<set $breederOrphanageTotal += _count, $slaveOrphanageTotal -= _count>>
-				<</replace>>
-			<</link>>
-			//Will cost a one time <<print cashFormat(50)>>// |
-		<</if>>
-		<<link 'Send them to a citizen school'>>
-			<<replace `"#" + _dispositionId`>>
-				The child<<if _count > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's citizen schools, to be brought up coequal with the arcology's other young people. $slaves[$i].slaveName
-				<<if $slaves[$i].devotion > 95>>
-					loves you already, but <<print $pronoun>>'ll @@.hotpink;love you even more@@ for this.
-				<<elseif $slaves[$i].devotion > 50>>
-					knows about these and will be @@.hotpink;overjoyed.@@ $pronounCap will miss $possessive child<<if _count > 1>>ren<</if>>, but $pronoun expected that.
-				<<elseif $slaves[$i].devotion > 20>>
-					will naturally miss $possessive child<<if _count > 1>>ren<</if>>, but will @@.hotpink;take comfort@@ in the hope that $possessive offspring will have a better life.
-				<<else>>
-					will naturally retain some resentment over being separated from $possessive child<<if _count > 1>>ren<</if>>, but this should be balanced by hope that $possessive offspring will have a better life.
-				<</if>>
-				<<set $slaves[$i].devotion += 4, $citizenOrphanageTotal += _count, $slaveOrphanageTotal -= _count>>
-			<</replace>>
-		<</link>>
-		//Will cost <<print cashFormat(100)>> weekly//
-		| <<link 'Have them raised privately'>>
-			<<replace `"#" + _dispositionId`>>
-				The child<<if _count > 1>>ren are<<else>> is<</if>> sent to be privately raised, to be brought up as a future high class citizen. $slaves[$i].slaveName
-				<<if $slaves[$i].devotion > 95>>
-					will @@.hotpink;worship you utterly@@ for this.
-				<<elseif $slaves[$i].devotion > 50>>
-					understands that this is the best possible outcome for the offspring of slave, and will be @@.hotpink;overjoyed.@@
-				<<elseif $slaves[$i].devotion > 20>>
-					will miss $possessive child<<if _count > 1>>ren<</if>>, but will be @@.hotpink;very grateful,@@ since <<print $pronoun>>'ll understand this is the best possible outcome for a slave mother.
-				<<else>>
-					will resent being separated from $possessive child<<if _count > 1>>ren<</if>>, but @@.hotpink;should understand and be grateful@@ that this is the best possible outcome here.
-				<</if>>
-				The child<<if _count > 1>>ren<</if>> will be raised privately, with expert care and tutoring, an expensive proposition.
-				<<set $slaves[$i].devotion += 6, $privateOrphanageTotal += _count, $slaveOrphanageTotal -= _count>>
-			<</replace>>
-		<</link>> 
-		//Will cost <<print cashFormat(500)>> weekly//
-		<</capture>>
-	<</if>>
-	<</span>>
-<<elseif $Cash4Babies == 1>>
-	<<set _babyCost = random(-12,12)>>
-	<<if $slaves[$i].broodmother == 2>>
-		$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat(12*(50+_babyCost))>>.@@
-		<<set $cash += 12*(50+_babyCost)>>
-	<<elseif $slaves[$i].broodmother == 1>>
-		$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat((50+_babyCost))>>.@@
-		<<set $cash += (50+_babyCost)>>
-	<<else>>
-		$possessiveCap babies sold for a total of @@.yellowgreen;<<print cashFormat($slaves[$i].pregType*(50+_babyCost))>>.@@
-		<<set $cash += $slaves[$i].pregType*(50+_babyCost)>>
-	<</if>>
-<</if>>
+		<<seBirthCritical>>
+		
+		<br><br><hr style="margin:0"><br>
 
-<<if $slaves[$i].broodmother == 2>>
-	<<set $slaves[$i].births += 12>>
-	<<set $slaves[$i].birthsTotal += 12>>
-	<<set $birthsTotal += 12>>
-	<<if $slaves[$i].pregSource == -1>>
-		<<set $PC.slavesFathered += 12>>
-	<</if>>
-	<<if $slaves[$i].mpreg == 1>>
-		<<if $slaves[$i].anus < 3>>
-			<<set $slaves[$i].anus = 3>>
-		<</if>>
-	<<else>>
-		<<if $slaves[$i].vagina < 3>>
-			<<set $slaves[$i].vagina = 3>>
-		<</if>>
-	<</if>>
-	<<set $slaves[$i].preg = 37>>
-<<elseif $slaves[$i].broodmother == 1>>
-	<<set $slaves[$i].births += 1>>
-	<<set $slaves[$i].birthsTotal += 1>>
-	<<set $birthsTotal += 1>>
-	<<if $slaves[$i].pregSource == -1>>
-		<<set $PC.slavesFathered += 1>>
 	<</if>>
-	<<if $slaves[$i].mpreg == 1>>
-		<<if $slaves[$i].anus < 3>>
-			<<set $slaves[$i].anus = 3>>
-		<</if>>
-	<<else>>
-		<<if $slaves[$i].vagina < 3>>
-			<<set $slaves[$i].vagina = 3>>
-		<</if>>
-	<</if>>
-	<<set $slaves[$i].preg = 37>>
-	<<if $slaves[$i].broodmotherCountDown > 0>>
-		<<set $slaves[$i].broodmotherCountDown-->>
-		<<if $slaves[$i].broodmotherCountDown == 0>>
-			$pronounCap also passed the implant making $object a broodmother alongside the afterbirth.
-			<<set $slaves[$i].preg = 0>>
-			<<set $slaves[$i].pregType = 0>>
-			<<set $slaves[$i].pregSource = 0>>
-			<<set $slaves[$i].pregKnown = 0>>
-			<<set $slaves[$i].pregWeek = -4>>
-			<<set $slaves[$i].broodmother = 0>>
-		<</if>>
-	<</if>>
-	<<SetBellySize $slaves[$i]>>
-<<else>>
-	<<if lastPregRule($slaves[$i],$defaultRules)>><<set $slaves[$i].preg = -1>><<else>><<set $slaves[$i].preg = 0>><</if>>
-	<<set $slaves[$i].births += $slaves[$i].pregType>>
-	<<set $slaves[$i].birthsTotal += $slaves[$i].pregType>>
-	<<set $birthsTotal += $slaves[$i].pregType>>
-	<<if $slaves[$i].pregSource > 0>>
-		<<set _babyDaddy = $slaves.findIndex(function(s) { return s.ID == $slaves[$i].pregSource; })>>
-		<<if _babyDaddy != -1>>
-			<<set $slaves[_babyDaddy].slavesFathered += $slaves[$i].pregType>>
-		<</if>>
-	<<elseif $slaves[$i].pregSource == -1>>
-		<<set $PC.slavesFathered += $slaves[$i].pregType>>
-	<</if>>
-	<<set $slaves[$i].pregType = 0>>
-	<<set $slaves[$i].pregSource = 0>>
-	<<set $slaves[$i].pregKnown = 0>>
-	<<set $slaves[$i].pregWeek = -4>>
-	<<SetBellySize $slaves[$i]>>
-	<<if $slaves[$i].mpreg == 1>>
-		<<if $slaves[$i].anus < 3>>
-			<<set $slaves[$i].anus = 3>>
-		<</if>>
-	<<else>>
-		<<if $slaves[$i].vagina < 3>>
-			<<set $slaves[$i].vagina = 3>>
-		<</if>>
-	<</if>>
-<</if>>
-
-<</if>> /* closes c-section */
-
-<</if>> /* closes incubator addition */
-
-<<else>>
-
-<<if $slaves[$i].breedingMark == 1 && $slaves[$i].pregSource == -1>>
-	The Societal Elite @@.red;are furious@@ you would allow an elite child to perish under your watch.
-	<<set $failedElite += 100>>
-<</if>>
-<<set $activeSlave = $slaves[$i]>>
-<<include "Remove activeSlave">>
-
-<</if>> /* closes slave died in cb */
-
-<</if>> /* closes dairy birth exception */
-
-<<if $slaves[$i].health <= -100>>
-	<br><br>
-	While attempting to recover, $slaves[$i].slaveName @@.red;passes away@@ from complications. $possessiveCap body was fatally damaged during childbirth, but $possessive offspring is healthy, so $possessive legacy will carry on.
-	<<set $activeSlave = $slaves[$i]>>
-	<<include "Remove activeSlave">>
-	<<set $slaveDead = 1>>
-<</if>>
-
-<<if $slaveDead != 1>>
-	<<set $slaves[$i].labor = 0>>
-	<<set $slaves[$i].induce = 0>>
-<<else>>
-    <<set $slaveDead = 0>>
-<</if>>
-<br><br><hr style="margin:0"><br>
-<</if>>
 <</for>>
 
 <<set $birthee = 0>>
diff --git a/src/uncategorized/seRaiding.tw b/src/uncategorized/seRaiding.tw
index 133e91a27589b6b8fe4ee54d002b18e9d6de3d8d..96c1b3cdcae40ca28589952fc420f7002f4f7d1d 100644
--- a/src/uncategorized/seRaiding.tw
+++ b/src/uncategorized/seRaiding.tw
@@ -84,6 +84,7 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the
 		<<set $activeSlave.preg = either(-1, -1, -1, 0, 0, 0, 5, 10, 20, 30, 39)>>
 		<<if $activeSlave.preg > 0>>
 			<<SetPregType $activeSlave>>
+			<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 			<<set $activeSlave.pregKnown = 1>>
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<SetBellySize $activeSlave>>
@@ -119,6 +120,7 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the
 		<<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 10, 20, 30, 39)>>
 		<<if $activeSlave.preg > 0>>
 			<<SetPregType $activeSlave>>
+			<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 			<<set $activeSlave.pregKnown = 1>>
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<SetBellySize $activeSlave>>
@@ -149,6 +151,7 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the
 		<<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 10)>>
 		<<if $activeSlave.preg > 0>>
 			<<SetPregType $activeSlave>>
+			<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 			<<set $activeSlave.pregKnown = 1>>
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<SetBellySize $activeSlave>>
@@ -226,6 +229,7 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the
 		<<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 5)>>
 		<<if $activeSlave.preg > 0>>
 			<<SetPregType $activeSlave>>
+			<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 			<<set $activeSlave.pregKnown = 1>>
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<SetBellySize $activeSlave>>
@@ -254,6 +258,7 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the
 		<<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 10)>>
 		<<if $activeSlave.preg > 0>>
 			<<SetPregType $activeSlave>>
+			<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 			<<set $activeSlave.pregKnown = 1>>
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<SetBellySize $activeSlave>>
@@ -301,6 +306,7 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the
 		<<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 10)>>
 		<<if $activeSlave.preg > 0>>
 			<<SetPregType $activeSlave>>
+			<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 			<<set $activeSlave.pregKnown = 1>>
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<SetBellySize $activeSlave>>
@@ -375,6 +381,7 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the
 		<<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 5)>>
 		<<if $activeSlave.preg > 0>>
 			<<SetPregType $activeSlave>>
+			<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 			<<set $activeSlave.pregKnown = 1>>
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<SetBellySize $activeSlave>>
@@ -404,6 +411,7 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the
 			<<set $activeSlave.preg = either(-1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 5, 10)>>
 			<<if $activeSlave.preg > 0>>
 				<<SetPregType $activeSlave>>
+				<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 				<<set $activeSlave.pregKnown = 1>>
 				<<set $activeSlave.pregWeek = $activeSlave.preg>>
 				<<SetBellySize $activeSlave>>
@@ -436,6 +444,7 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the
 		<<set $activeSlave.preg = either(-1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 10, 20, 30, 39)>>
 		<<if $activeSlave.preg > 0>>
 			<<SetPregType $activeSlave>>
+			<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 			<<set $activeSlave.pregKnown = 1>>
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<SetBellySize $activeSlave>>
@@ -493,6 +502,7 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the
 		<<set $activeSlave.preg = either(-1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 10, 20, 30, 39)>>
 		<<if $activeSlave.preg > 0>>
 			<<SetPregType $activeSlave>>
+			<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 			<<set $activeSlave.pregKnown = 1>>
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<SetBellySize $activeSlave>>
@@ -537,6 +547,7 @@ Worthy of consideration is that although the $mercenariesTitle will enslave the
 		<<set $activeSlave.preg = either(-1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 10, 20, 30, 39)>>
 		<<if $activeSlave.preg > 0>>
 			<<SetPregType $activeSlave>>
+			<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 			<<set $activeSlave.pregKnown = 1>>
 			<<set $activeSlave.pregWeek = $activeSlave.preg>>
 			<<SetBellySize $activeSlave>>
diff --git a/src/uncategorized/seRecruiterSuccess.tw b/src/uncategorized/seRecruiterSuccess.tw
index dd97f0bdb1307c57f575f9a5df32538dacbbc334..419020ebf24c8367c2cb190fe2e6d7cbf2236c8b 100644
--- a/src/uncategorized/seRecruiterSuccess.tw
+++ b/src/uncategorized/seRecruiterSuccess.tw
@@ -142,6 +142,7 @@ Your recruiter $Recruiter.slaveName has succeeded; she's convinced an old world
 <<set $activeSlave.vagina = random(1,3)>>
 <<set $activeSlave.preg = random(15,39)>>
 <<SetPregType $activeSlave>>
+<<set WombImpregnate($activeSlave, $activeSlave.pregType, 0, $activeSlave.preg)>>
 <<set $activeSlave.pregKnown = 1>>
 <<set $activeSlave.pregWeek = $activeSlave.preg>>
 <<SetBellySize $activeSlave>>
diff --git a/src/uncategorized/seWedding.tw b/src/uncategorized/seWedding.tw
index ddfadefffeb5d1f9e5a7b8f4b09bb4fb014d2fd7..fe71022465b9b6e7ed6514d5bdc2cfb9a274004e 100644
--- a/src/uncategorized/seWedding.tw
+++ b/src/uncategorized/seWedding.tw
@@ -43,6 +43,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<elseif canDoVaginal($activeSlave)>>
 				<<set _randomVag = random(30,60)>>
@@ -57,6 +58,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<elseif canDoAnal($activeSlave)>>
 				<<set _randomAnal = random(30,60)>>
@@ -71,6 +73,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<else>>
 				<<set _randomOral = random(60,100)>>
@@ -96,6 +99,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<elseif canDoVaginal($activeSlave)>>
 				<<set _randomVag = random(3,7)>>
@@ -109,6 +113,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<elseif canDoAnal($activeSlave)>>
 				<<set _randomAnal = random(1,4)>>
@@ -122,6 +127,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<else>>
 				<<set _randomOral = random(15,20)>>
@@ -147,6 +153,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<elseif canDoVaginal($activeSlave)>>
 				<<set _randomVag = random(3,7)>>
@@ -160,6 +167,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<elseif canDoAnal($activeSlave)>>
 				<<set _randomAnal = random(1,4)>>
@@ -173,6 +181,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<else>>
 				<<set _randomOral = random(15,20)>>
@@ -208,6 +217,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals $activeSlave.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught girl is in a panic for making you go through this.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<elseif canDoAnal($activeSlave)>>
 				<<set $activeSlave.analCount += 1, $analTotal += 1>>
@@ -216,6 +226,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals $activeSlave.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught girl is in a panic for making you go through this.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<else>>
 				<<set $activeSlave.oralCount += 1, $oralTotal += 1>>
@@ -230,6 +241,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals $activeSlave.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught girl is in a panic for making you go through this.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<elseif canDoAnal($activeSlave)>>
 				<<set $activeSlave.analCount += 1, $analTotal += 1>>
@@ -238,6 +250,7 @@
 					A pre-wedding checkup following an unusual bout of morning nausea reveals $activeSlave.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught girl is in a panic for making you go through this.
 					<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1, $activeSlave.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
 					<<SetPregType $activeSlave>>
+					<<set WombImpregnate($activeSlave, $activeSlave.pregType, $activeSlave.pregSource, $activeSlave.preg)>>
 				<</if>>
 			<<else>>
 				<<set $activeSlave.oralCount += 1, $oralTotal += 1>>
@@ -377,6 +390,7 @@
 	<</if>>
 	<<set $activeSlave.preg = 1, $activeSlave.pregKnown = 1, $activeSlave.pregWeek = 1>>
 	<<SetPregType $activeSlave>>
+	<<set WombImpregnate($activeSlave, $activeSlave.pregType, -1, $activeSlave.preg)>>
 	<<set $activeSlave.pregSource = -1>>
 	<<if ($activeSlave.vagina == 0) || ($activeSlave.mpreg == 1 && $activeSlave.anus == 0)>>
 		Naturally, the ceremony @@.lime;took her virginity;@@
diff --git a/src/uncategorized/servantsQuartersReport.tw b/src/uncategorized/servantsQuartersReport.tw
index 2a3beac3e641b32fc950797dd13b3821b38aab0a..7b1bd4e6a0b5584e18549e3c956c5e6f6c4d04e6 100644
--- a/src/uncategorized/servantsQuartersReport.tw
+++ b/src/uncategorized/servantsQuartersReport.tw
@@ -52,6 +52,7 @@
 			<<if (canImpreg($slaves[$i], $Stewardess))>>
 				<<KnockMeUp $slaves[$i] 100 2 $Stewardess.ID>>
 				<<set $slaves[$i].preg = 1, $slaves[$i].pregKnown = 1, $slaves[$i].pregWeek = 1, $slaves[$i].pregSource = $Stewardess.ID>><<SetPregType $slaves[$i]>>
+				<<set WombImpregnate($slaves[$i], $slaves[$i].pregType, $slaves[$i].pregSource, 1)>>
 				<<set $slaves[$i].vagina = Math.clamp($slaves[$i].vagina,1,10), _stewardessImpregnated++, $slaves[$i].vaginalCount += 10, $vaginalTotal += 10>>
 				<<set $slaves[$i].need = 0>>
 			<</if>>
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index 90761e505c7866270c6c54b62cfb5a7c6eefec02..782476422d38050e308b18eb8cb7a567cda5a6f1 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -316,28 +316,48 @@
 <<if $slaves[$i].bellyPain != 0>>
 	<<set $slaves[$i].bellyPain = 0>>
 <</if>>
-/* preg speed control changes*/
+/* preg speed and advance*/
+
 <<if $slaves[$i].preg > 0>>
-	<<if $slaves[$i].pregWeek <= 0>> /* at .preg = 1, .pregWeek should be 1 also */
-		<<set $slaves[$i].pregWeek = 1>>
-	<<else>>
-		<<set $slaves[$i].pregWeek++>>
-	<</if>>
+	<<set _pregSpeed = 1>> /*base speed is normal*/
 	<<if $slaves[$i].pregControl == "slow gestation">>
-		<<set $slaves[$i].preg += 0.5>>
-		<<set $slaves[$i].preg = (Math.ceil($slaves[$i].preg*10)/10)>> /* trick to avoid precision lost error showed like week: 29.499999999999998*/
+		<<set _pregSpeed = 0.5>>
 	<<elseif $slaves[$i].pregControl == "speed up">>
-		<<set $slaves[$i].preg += 2>>
+		<<set _pregSpeed = 2>>
+	<</if>>
+
+	<<if $slaves[$i].broodmother == 1 && $slaves[$i].broodmotherOnHold != 1>> /* broodmother advance block */
+		<<if ($week / $slaves[$i].broodmotherFetuses == Math.round($week / $slaves[$i].broodmotherFetuses)) && $slaves[$i].broodmotherFetuses < 1>> 
+			/*one fetus in few week - selection and adding*/
+			<<set WombImpregnate($slaves[$i], 1, $slaves[$i].pregSource, 0)>> 
 	<<else>>
-		<<set $slaves[$i].preg++>>
+			/*one or more fetuses in one week*/
+			<<set WombImpregnate($slaves[$i], Math.floor($slaves[$i].broodmotherFetuses), $slaves[$i].pregSource, 0)>> /* really 0, it's will be advanced right few lines down.*/
+	<</if>>
+		<<if $slaves[$i].ovaryAge >= 47>>
+			<<set $slaves[$i].broodmotherOnHold = 1 >>
+			<<set $slaves[$i].broodmotherCountDown = 38 - WombMinPreg($slaves[$i])>>
+		<</if>>
 	<</if>>
-	<<SetBellySize $slaves[$i]>>
+	
+	<<set WombProgress($slaves[$i], _pregSpeed)>>
+
 	<<set $slaves[$i].pregKnown = 1>>
+	<<set $slaves[$i].pregWeek++>>
+<</if>>
+<<if $slaves[$i].pregWeek < 0 >> /*postpartum state*/
+		<<set $slaves[$i].pregWeek++>>
 <</if>>
-/* end of preg speed control changes*/
+
+<<SetBellySize $slaves[$i]>> /* here will be also set through WombGetVolume .bellyPreg, .pregType, to current values. */
+
+/* end of preg speed and advance*/
+
+/* dublicate functional commented out
 <<if $slaves[$i].pregWeek < 0>>
 	<<set $slaves[$i].pregWeek++>>
 <</if>>
+*/
 
 <<if $slaves[$i].devotion >= -50>>
 <<if $slaves[$i].energy > 20>>
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 4d70dfb9e6c725ad0deb961ef6b1093dd1528f71..a92531eaaa7b04e02642d0a25b3cf1370dd7e148 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -1028,78 +1028,86 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1
 <br>
 <span id="fertilityblock">
 <<if $activeSlave.fuckdoll == 0 && ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1)>>
-	<<if ($activeSlave.preg < -1)>>
-		//She is sterile//
-	<<elseif ($activeSlave.pubertyXX == 0) && $activeSlave.preg < 1>>
-		//She is not yet fertile//
-	<<elseif $activeSlave.ovaryAge >= 47 && $activeSlave.preg < 1>>
-		//She is too old to become pregnant//
-		<<if $activeSlave.preg == -1>>
-			<<set $activeSlave.preg = 0>>
-			<<SetBellySize $activeSlave>>
-		<</if>>
-	<<elseif $activeSlave.broodmotherCountDown > 0>>
-		//Her pregnancy implant is shutting down; she will be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>//
-	<<elseif $activeSlave.preg >= -1>>
-		Contraception: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>.
-		<<if ($activeSlave.preg == 0)>>
-			<<link "Use contraceptives">><<set $activeSlave.preg = -1>>
-			<<SlaveInteractFertility>>
-			<<SlaveInteractImpreg>>
-			<</link>>
-		<<elseif $activeSlave.preg == -1>>
-			<<link "Let her get pregnant">><<set $activeSlave.preg = 0>>
-			<<SlaveInteractFertility>>
-			<<SlaveInteractImpreg>>
-			<</link>>
-		<<elseif $activeSlave.induce == 1>>
-			//Hormones are being slipped into her food, she will give birth suddenly and rapidly this week//
-		<<elseif ($activeSlave.preg > 38) && ($activeSlave.broodmother == 0) && ($activeSlave.labor == 0)>>
-			[[Induce labor|Slave Interact][$activeSlave.labor = 1,$activeSlave.induce = 1,$birthee = 1]]
+<<if ($activeSlave.preg < -1)>>
+	//She is sterile//
+<<elseif ($activeSlave.pubertyXX == 0) && $activeSlave.preg < 1>>
+	//She is not yet fertile//
+<<elseif $activeSlave.ovaryAge >= 47 && $activeSlave.preg < 1>>
+	//She is too old to become pregnant//
+	<<if $activeSlave.preg == -1>>
+		<<set $activeSlave.preg = 0>>
+		<<SetBellySize $activeSlave>>
+	<</if>>
+<<elseif $activeSlave.broodmotherOnHold == 1>>
+	//Her pregnancy implant is turned off; she expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// 
+	[[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]] 
+<<elseif $activeSlave.preg >= -1>>
+Contraception: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>.
+<<if ($activeSlave.preg == 0)>>
+	<<link "Use contraceptives">><<set $activeSlave.preg = -1>>
+	<<SlaveInteractFertility>>
+	<<SlaveInteractImpreg>>
+	<</link>>
+<<elseif $activeSlave.preg == -1>>
+	<<link "Let her get pregnant">><<set $activeSlave.preg = 0>>
+	<<SlaveInteractFertility>>
+	<<SlaveInteractImpreg>>
+	<</link>>
+<<elseif $activeSlave.induce == 1>>
+	//Hormones are being slipped into her food, she will give birth suddenly and rapidly this week//
+<<elseif ($activeSlave.preg > 38) && ($activeSlave.broodmother == 0) && ($activeSlave.labor == 0)>>
+	[[Induce labor|Slave Interact][$activeSlave.labor = 1,$activeSlave.induce = 1,$birthee = 1]]
 			| [[Give her a cesarean section|csec]]
 		<<elseif ($activeSlave.broodmother > 0)>>
+			<<if $activeSlave.broodmotherOnHold != 1>>
+				[[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] 
+			<</if>>
 			<<if ($activeSlave.preg > 37)>>
-				[[Induce mass childbirth|BirthStorm]] | [[Begin implant shutdown|Slave Interact][$activeSlave.broodmotherCountDown = 37]]
+				| [[Induce mass childbirth|BirthStorm]]  
 			<</if>>
 		<<elseif ($activeSlave.preg > 35)>>
 			[[Give her a cesarean section|csec]]
 		<<elseif ($activeSlave.preg > 0) && $activeSlave.breedingMark == 1 && $activeSlave.pregSource == -1>>
-			//You are forbidden from aborting an elite child//
+	//You are forbidden from aborting an elite child//
 		<<elseif ($activeSlave.preg > 0)>>
-			[[Abort her pregnancy|Abort]]
-		<</if>>
-	<</if>>
+	[[Abort her pregnancy|Abort]]
+<</if>>
+<</if>>
 <<elseif ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1)>>
-	<<if ($activeSlave.preg < -1)>>
-		//It is sterile//
-	<<elseif ($activeSlave.pubertyXX == 0)>>
-		//It is not yet fertile//
-	<<elseif $activeSlave.ovaryAge >= 47 && $activeSlave.preg < 1>>
-		//It is too old to become pregnant//
-		<<if $activeSlave.preg == -1>>
-			<<set $activeSlave.preg = 0>>
-			<<SetBellySize $activeSlave>>
-		<</if>>
-	<<elseif $activeSlave.broodmotherCountDown > 0>>
-		//Its pregnancy implant is shutting down; it will be completely emptied of its contained brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>//
-	<<elseif ($activeSlave.preg >= -1)>>
-		__Contraception__: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>.
-		<<if ($activeSlave.preg == 0)>>
-			<<link "Use contraceptives">><<set $activeSlave.preg = -1>>
-			<<SlaveInteractFertility>>
-			<</link>>
-		<<elseif ($activeSlave.preg == -1)>>
+<<if ($activeSlave.preg < -1)>>
+	//It is sterile//
+<<elseif ($activeSlave.pubertyXX == 0)>>
+	//It is not yet fertile//
+<<elseif $activeSlave.ovaryAge >= 47 && $activeSlave.preg < 1>>
+	//It is too old to become pregnant//
+	<<if $activeSlave.preg == -1>>
+		<<set $activeSlave.preg = 0>>
+		<<SetBellySize $activeSlave>>
+	<</if>>
+	<<elseif $activeSlave.broodmotherOnHold == 1>>
+		//Its pregnancy implant is turned off; it expected to be completely emptied of its remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// 
+		[[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]] 
+<<elseif ($activeSlave.preg >= -1)>>
+__Contraception__: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>.
+<<if ($activeSlave.preg == 0)>>
+	<<link "Use contraceptives">><<set $activeSlave.preg = -1>>
+	<<SlaveInteractFertility>>
+	<</link>>
+<<elseif ($activeSlave.preg == -1)>>
 			<<link "Let it get pregnant">><<set $activeSlave.preg = 0>>
-			<<SlaveInteractFertility>>
-			<</link>>
+	<<SlaveInteractFertility>>
+	<</link>>
 		<<elseif $activeSlave.induce == 1>>
 			//Hormones are being slipped into its food, it will give birth suddenly and rapidly this week//
 		<<elseif ($activeSlave.preg > 38) && ($activeSlave.broodmother == 0) && ($activeSlave.labor == 0)>>
 			[[Induce labor|Slave Interact][$activeSlave.labor = 1,$activeSlave.induce = 1,$birthee = 1]]
 			| [[Give it a cesarean section|csec]]
 		<<elseif ($activeSlave.broodmother > 0)>>
+			<<if $activeSlave.broodmotherOnHold != 1>>
+				[[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] 
+			<</if>>
 			<<if ($activeSlave.preg > 37)>>
-				[[Induce mass childbirth|BirthStorm]] | [[Begin implant shutdown|Slave Interact][$activeSlave.broodmotherCountDown = 37]]
+				| [[Induce mass childbirth|BirthStorm]]  
 			<</if>>
 		<<elseif ($activeSlave.preg > 35)>>
 			[[Give it a cesarean section|csec]]
@@ -1107,8 +1115,8 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1
 			//You are forbidden from aborting an elite child//
 		<<elseif ($activeSlave.preg > 0)>>
 			[[Abort its pregnancy|Abort]]
-		<</if>>
-	<</if>>
+<</if>>
+<</if>>
 <</if>>
 <<if ($activeSlave.pregKnown == 1) && ($pregSpeedControl == 1) && ($activeSlave.breedingMark != 1) && ($activeSlave.indentureRestrictions < 1) && ($activeSlave.broodmother == 0) && $seePreg != 0>>
 <br>&nbsp;&nbsp;&nbsp;&nbsp;
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index 0446a50d580ebb2dfafcb70f77a9ca7b859ff906..5b43b0fb22aa9564aacc3862c58eec1614a5ff22 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -663,8 +663,9 @@
 			<<set $activeSlave.preg = 0>>
 			<<SetBellySize $activeSlave>>
 		<</if>>
-	<<elseif $activeSlave.broodmotherCountDown > 0>>
-			//Her pregnancy implant is shutting down; she will be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>//
+	<<elseif $activeSlave.broodmotherOnHold == 1>>
+	//Her pregnancy implant is turned off; she expected to be completely emptied of her remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// 
+	[[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]]
 	<<elseif ($activeSlave.preg >= -1)>>
 		__Contraception__: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>.
 		<<if ($activeSlave.preg == 0)>>
@@ -677,8 +678,11 @@
 			[[Induce labor|Slave Interact][$activeSlave.labor = 1,$activeSlave.induce = 1,$birthee = 1]]
 			| [[Give her a cesarean section|csec]]
 		<<elseif ($activeSlave.broodmother > 0)>>
+			<<if $activeSlave.broodmotherOnHold != 1>>
+				[[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] 
+			<</if>>
 			<<if ($activeSlave.preg > 37)>>
-				[[Induce mass childbirth|BirthStorm]] | [[Begin implant shutdown|Slave Interact][$activeSlave.broodmotherCountDown = 37]]
+				| [[Induce mass childbirth|BirthStorm]]  
 			<</if>>
 		<<elseif ($activeSlave.preg > 35)>>
 			[[Give her a cesarean section|csec]]
@@ -699,8 +703,9 @@
 			<<set $activeSlave.preg = 0>>
 			<<SetBellySize $activeSlave>>
 		<</if>>
-	<<elseif $activeSlave.broodmotherCountDown > 0>>
-		//Its pregnancy implant is shutting down; it will be completely emptied of its contained brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>//
+	<<elseif $activeSlave.broodmotherOnHold == 1>>
+	//Its pregnancy implant is turned off; it expected to be completely emptied of its remaining brood in $activeSlave.broodmotherCountDown week $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>>// 
+	[[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]]
 	<<elseif ($activeSlave.preg >= -1)>>
 		__Contraception__: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>.
 		<<if ($activeSlave.preg == 0)>>
@@ -717,8 +722,11 @@
 			[[Induce labor|Slave Interact][$activeSlave.labor = 1,$activeSlave.induce = 1,$birthee = 1]]
 			| [[Give it a cesarean section|csec]]
 		<<elseif ($activeSlave.broodmother > 0)>>
+			<<if $activeSlave.broodmotherOnHold != 1>>
+				[[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]] 
+			<</if>>
 			<<if ($activeSlave.preg > 37)>>
-				[[Induce mass childbirth|BirthStorm]] | [[Begin implant shutdown|Slave Interact][$activeSlave.broodmotherCountDown = 37]]
+				| [[Induce mass childbirth|BirthStorm]]  
 			<</if>>
 		<<elseif ($activeSlave.preg > 35)>>
 			[[Give it a cesarean section|csec]]
@@ -2370,6 +2378,7 @@ This experience
 					<<set $args[0].pregWeek = 1>>
 				<</if>>
 				<<SetPregType $args[0]>>
+				<<set WombImpregnate($args[0], $args[0].pregType, $args[0].pregSource, 1)>>
 				<<if $menstruation == 1>>
 				<<elseif ndef $args[4]>>
 					<<set $args[0].pregKnown = 1>>
@@ -2390,6 +2399,7 @@ This experience
 					<<set $args[0].pregWeek = 1>>
 				<</if>>
 				<<SetPregType $args[0]>>
+				<<set WombImpregnate($args[0], $args[0].pregType, $args[0].pregSource, 1)>>
 				<<if $menstruation == 1>>
 				<<elseif ndef $args[4]>>
 					<<set $args[0].pregKnown = 1>>
@@ -2413,6 +2423,8 @@ This experience
  $args[0]: Slave.
 */
 <<widget "SetBellySize">>
+
+/*
 	<<if $args[0].broodmother == 1>>
 		<<if $args[0].broodmotherCountDown > 0>>
 			<<set $args[0].bellyPreg = setup.broodSizeOneShutDown[$args[0].broodmotherCountDown]>>
@@ -2426,11 +2438,18 @@ This experience
 	<<else>>
 		<<set $args[0].bellyPreg = 0>>
 	<</if>>
+
+	This block now relpaced with universal code
+*/
+	<<set WombInit($args[0])>>
+	<<set WombNormalizePreg($args[0])>> /*now with support for legacy code that advance pregnancy by setting .preg++ */ 
+
 	<<if $args[0].bellyImplant > 0>>
 		<<set _implantSize = $args[0].bellyImplant>>
 	<<else>>
 		<<set _implantSize = 0>>
 	<</if>>
+		
 	<<if $args[0].inflation == 3>>	
 		<<set $args[0].bellyFluid = 10000>>
 	<<elseif $args[0].inflation == 2>>
@@ -2440,7 +2459,9 @@ This experience
 	<<else>>
 		<<set $args[0].bellyFluid = 0>>
 	<</if>>
+	
 	<<set $args[0].belly = $args[0].bellyPreg+$args[0].bellyFluid+_implantSize>>
+
 <</widget>>
 
 /* see how they are on a single line? This permits "."s and other things to be appended directly onto the widget result */
diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw
index 054ca19fd08fe1709e632a4578b74923a1a77940..023b05c6395ac627f433fcc79f16e0159750a46a 100644
--- a/src/utility/slaveCreationWidgets.tw
+++ b/src/utility/slaveCreationWidgets.tw
@@ -6,7 +6,7 @@
 	Called from Gen XX, Gen XY, CheatMode DB, InitNationalities.
 %/
 <<widget "BaseSlave">>
-	<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute",  nipplesPiercing: 0, nipplesAccessory: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, broodmother: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillST: 0, skillMM: 0, skillWA: 0, tankBaby: 0}>>
+	<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFame: 0, pornFameSpending: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", eyewear: "none", origHColor: "brown", hColor: "brown", pubicHColor: "brown", skin: "light", hLength: 60, hStyle: "short", pubicHStyle: "neat", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute",  nipplesPiercing: 0, nipplesAccessory: 0, areolae: 0, areolaePiercing: 0, boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, broodmother: 0, broodmotherFetuses: 0, broodmotherOnHold: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, underArmHStyle: "waxed", bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillST: 0, skillMM: 0, skillWA: 0, tankBaby: 0}>>
 <</widget>>
 
 /%