diff --git a/js/birth/birth.js b/js/birth/birth.js
index 48ccb9789fa5f1834b045a1bd5f6f31163290e6b..370e2c918245fc34a669a2154670fb23e3e0d464 100644
--- a/js/birth/birth.js
+++ b/js/birth/birth.js
@@ -1,4 +1,255 @@
 globalThis.birth = function() {
+	const el = new DocumentFragment();
+	let humiliation;
+	let suddenBirth;
+	let seed;
+	let csec;
+	let slaveDead;
+	let birthed;
+	let birthDamage;
+	let _newMother;
+	let dispositionId;
+	if (V.legendaryWombID !== 0) {
+		V.legendaryWombID = 0;
+	}
+	for (const slave of V.slaves) {
+		const slaveReport = document.createElement("p");
+
+		if (slave.labor === 1) {
+			if (!slave.counter.laborCount) {
+				slave.counter.laborCount = 0;
+				if (slave.counter.birthsTotal > 0 && slave.counter.laborCount === 0) {
+					slave.counter.laborCount = slave.counter.birthsTotal; // we do not have a way to know multiples birth count for backward compatibility code. :(
+				}
+			}
+			dispositionId = _.uniqueId('babyDisposition-');
+			slaveReport.append(`Birth report: `);
+			App.UI.DOM.appendNewElement("span", slaveReport, SlaveFullName(slave), "coral");
+
+			//<br>
+			sePrebirthCheck(slave);
+			//<<seBirthPreScene>>
+			if (V.slaveDead !== 1) {
+				//<<seBirthCalc>>
+				//<<seBirthMainScene>>
+				//<<seBirthBabies>>
+				//<<seBirthPostpartum>>
+				slave.counter.laborCount++;
+				//<<seBirthCritical>>
+			} else {
+				removeSlave(slave);
+				V.slaveDead = 0;
+			}
+			//<br><br><hr style="margin:0"><br>
+		}
+	}
+
+	V.reservedChildren = FetusGlobalReserveCount("incubator");
+	V.reservedChildrenNursery = FetusGlobalReserveCount("nursery");
+
+	V.birthee = 0;
+	V.birthed = 0;
+
+	function sePrebirthCheck(slave) {
+		humiliation = 0;
+		suddenBirth = 1;
+		seed = random(1, 100);
+		csec = 0;
+		slaveDead = 0;
+		birthed = 1;
+		birthDamage = 0;
+		_newMother = 0;
+
+		/* birth complications calcs */
+		if (slave.counter.laborCount === 0 && slave.counter.birthsTotal === 0) {
+			V.birthDamage += 2;
+			_newMother = 1;
+		}
+		if (slave.mpreg === 1) {
+			if (slave.anus < 2) {
+				V.birthDamage += 3;
+			}
+		} else {
+			if (slave.vagina < 2) {
+				V.birthDamage += 3;
+			}
+			if (slave.vaginaLube === 0) {
+				V.birthDamage += 1;
+			}
+		}
+		if (slave.hips < 0) {
+			V.birthDamage += (2 - slave.hips);
+		}
+		if (slave.weight <= -95) {
+			V.birthDamage += 7;
+		} else if (slave.weight <= -30) {
+			V.birthDamage += 5;
+		}
+		if (slave.health.condition < -20) {
+			V.birthDamage += (4 - (slave.health.condition / 10));
+		}
+		if (slave.health.illness >= 3) {
+			V.birthDamage += slave.health.illness;
+		}
+		if (slave.physicalAge < 6) {
+			V.birthDamage += 5;
+		} else if (slave.physicalAge < 9) {
+			V.birthDamage += 3;
+		} else if (slave.physicalAge < 13) {
+			V.birthDamage += 1;
+		}
+		if (slave.health.tired > 80) {
+			V.birthDamage += 20;
+		} else if (slave.health.tired > 50) {
+			V.birthDamage += 2;
+		}
+		if (slave.muscles < -95) {
+			V.birthDamage += 30;
+		} else if (slave.muscles < -30) {
+			V.birthDamage += 4;
+		} else if (slave.muscles < -5) {
+			V.birthDamage += 2;
+		}
+		if (slave.preg >= slave.pregData.normalBirth * 1.5) {
+			/* better get her a c-sec*/
+			if (slave.physicalAge < 6) {
+				V.birthDamage += 50;
+			} else if (slave.physicalAge < 9) {
+				V.birthDamage += 30;
+			} else if (slave.physicalAge < 13) {
+				V.birthDamage += 20;
+			}
+			if (slave.hips < 0) {
+				V.birthDamage += (20 - slave.hips);
+			}
+		} else if (slave.preg > slave.pregData.normalBirth * 1.25) {
+			if (slave.physicalAge < 6) {
+				V.birthDamage += 10;
+			} else if (slave.physicalAge < 9) {
+				V.birthDamage += 6;
+			} else {
+				V.birthDamage += 2;
+			}
+			if (slave.hips < 0) {
+				V.birthDamage += (2 - slave.hips);
+			}
+		}
+		if (slave.wombImplant === "restraint") {
+			V.birthDamage += 2;
+		}
+		if (slave.mpreg !== 1) {
+			if (slave.vaginaLube > 0) {
+				V.birthDamage -= slave.vaginaLube;
+			}
+		}
+		if (slave.counter.laborCount > 0 || slave.counter.birthsTotal !== 0) {
+			V.birthDamage -= 3;
+		}
+		if (slave.hips > 0) {
+			V.birthDamage -= slave.hips;
+		}
+		if (slave.pregAdaptation >= 1000) {
+			V.birthDamage -= 10;
+		} else if (slave.pregAdaptation >= 500) {
+			V.birthDamage -= 3;
+		} else if (slave.pregAdaptation >= 100) {
+			V.birthDamage -= 1;
+		}
+		if (slave.curatives > 0) {
+			V.birthDamage -= 3;
+		}
+		if (slave.geneticQuirks.uterineHypersensitivity === 2) {
+			V.birthDamage -= 5;
+		}
+		if (setup.nurseCareers.includes(slave.career) && slave.fetish !== "mindbroken" && slave.muscles >= -95) {
+			V.birthDamage = 0;
+		} else if (slave.intelligenceImplant >= 15) {
+			V.birthDamage -= 2;
+		}
+
+		/* early birth calcs */
+		if (slave.induce === 1) {
+			V.suddenBirth += 20;
+		}
+		if (!canMove(slave)) {
+			V.suddenBirth += 10;
+		} else if (!canWalk(slave)) {
+			if (slave.rules.mobility === "permissive") {
+				V.suddenBirth += 3;
+			} else {
+				V.suddenBirth += 5;
+			}
+		}
+		if (slave.fetish === "mindbroken") {
+			V.suddenBirth += 18;
+		}
+		if (slave.fetish === "humiliation") {
+			V.suddenBirth += 1 + slave.fetishStrength / 25;
+		}
+		if (slave.weight > 190) {
+			V.suddenBirth += 10;
+		} else if (slave.weight > 160) {
+			V.suddenBirth += 4;
+		} else if (slave.weight > 130) {
+			V.suddenBirth += 2;
+		} else if (slave.weight > 95) {
+			V.suddenBirth += 1;
+		}
+		if (slave.muscles < -95) {
+			V.suddenBirth += 20;
+		} else if (slave.muscles < -30) {
+			V.suddenBirth += 4;
+		} else if (slave.muscles < -5) {
+			V.suddenBirth += 1;
+		}
+		if (slave.pregAdaptation >= 1000) {
+			V.suddenBirth += 20;
+		// baby's ready, giving birth right now
+		} else if (slave.pregAdaptation >= 500) {
+			V.suddenBirth += 3;
+		} else if (slave.pregAdaptation >= 100) {
+			V.suddenBirth += 1;
+		}
+		if (slave.health.condition < 0) {
+			V.suddenBirth += 2;
+		}
+		if (slave.heels === 1) {
+			V.suddenBirth += 3;
+		}
+		if (slave.boobs > 40000) {
+			V.suddenBirth += 3;
+		} else if (slave.boobs > 20000) {
+			V.suddenBirth += 1;
+		}
+		if (slave.butt > 6) {
+			V.suddenBirth += 1;
+		}
+		if (slave.dick >= 6) {
+			V.suddenBirth += 1;
+		}
+		if (slave.balls >= 6) {
+			V.suddenBirth += 1;
+		}
+		if (slave.shoes === "extreme heels") {
+			V.suddenBirth += 2;
+		}
+		if (slave.geneticQuirks.uterineHypersensitivity === 2) {
+			V.suddenBirth += 1 * slave.counter.birthsTotal;
+		}
+		if (slave.mpreg !== 1) {
+			if (slave.vagina > 2) {
+				V.suddenBirth += 2;
+			}
+			if (slave.vaginalAccessory !== "none" || slave.chastityVagina === 1) {
+				V.suddenBirth -= 20;
+			}
+		}
+		V.suddenBirth -= Math.trunc((slave.intelligence + slave.intelligenceImplant) / 10);
+		/* end calcs */
+	}
+	
+};
+globalThis.birth2 = function() {
 	const p = document.createElement("p");
 
 	let r = [];
diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw
index 1fd091c6899123a7e12bae52342f49276df7393d..71c293057c5db24a2246ed401f3045ec997de38d 100644
--- a/src/pregmod/widgets/seBirthWidgets.tw
+++ b/src/pregmod/widgets/seBirthWidgets.tw
@@ -2,201 +2,6 @@
 
 <<widget "seBirthPreCheck">>
 
-<<setLocalPronouns $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>>
-<<set _newMother = 0>>
-
-/* birth complications calcs */
-<<if $slaves[$i].counter.laborCount == 0 && $slaves[$i].counter.birthsTotal == 0>>
-	<<set $birthDamage += 2>>
-	<<set _newMother = 1>>
-<</if>>
-<<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 $slaves[$i].vaginaLube == 0>>
-		<<set $birthDamage += 1>>
-	<</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].health.condition < -20>>
-	<<set $birthDamage += (4-($slaves[$i].health.condition/10))>>
-<</if>>
-<<if $slaves[$i].health.illness >= 3>>
-	<<set $birthDamage += $slaves[$i].health.illness>>
-<</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].health.tired > 80>>
-	<<set $birthDamage += 20>>
-<<elseif $slaves[$i].health.tired > 50>>
-	<<set $birthDamage += 2>>
-<</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].preg >= $slaves[$i].pregData.normalBirth*1.5>> /* 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 > $slaves[$i].pregData.normalBirth*1.25>>
-	<<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].wombImplant == "restraint">>
-	<<set $birthDamage += 2>>
-<</if>>
-<<if $slaves[$i].mpreg != 1>>
-	<<if $slaves[$i].vaginaLube > 0>>
-		<<set $birthDamage -= $slaves[$i].vaginaLube>>
-	<</if>>
-<</if>>
-<<if $slaves[$i].counter.laborCount > 0 || $slaves[$i].counter.birthsTotal != 0>>
-	<<set $birthDamage -= 3>>
-<</if>>
-<<if $slaves[$i].hips > 0>>
-	<<set $birthDamage -= $slaves[$i].hips>>
-<</if>>
-<<if $slaves[$i].pregAdaptation >= 1000>>
-	<<set $birthDamage -= 10>>
-<<elseif $slaves[$i].pregAdaptation >= 500>>
-	<<set $birthDamage -= 3>>
-<<elseif $slaves[$i].pregAdaptation >= 100>>
-	<<set $birthDamage -= 1>>
-<</if>>
-<<if $slaves[$i].curatives > 0>>
-	<<set $birthDamage -= 3>>
-<</if>>
-<<if $slaves[$i].geneticQuirks.uterineHypersensitivity == 2>>
-	<<set $birthDamage -= 5>>
-<</if>>
-<<if setup.nurseCareers.includes($slaves[$i].career) && $slaves[$i].fetish != "mindbroken" && $slaves[$i].muscles >= -95>>
-	<<set $birthDamage = 0>>
-<<elseif $slaves[$i].intelligenceImplant >= 15>>
-	<<set $birthDamage -= 2>>
-<</if>>
-
-/* early birth calcs */
-<<if $slaves[$i].induce == 1>>
-	<<set $suddenBirth += 20>>
-<</if>>
-<<if !canMove($slaves[$i])>>
-	<<set $suddenBirth += 10>>
-<<elseif !canWalk($slaves[$i])>>
-	<<if $slaves[$i].rules.mobility == "permissive">>
-		<<set $suddenBirth += 3>>
-	<<else>>
-		<<set $suddenBirth += 5>>
-	<</if>>
-<</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].pregAdaptation >= 1000>>
-	<<set $suddenBirth += 20>> /* baby's ready, giving birth right now */
-<<elseif $slaves[$i].pregAdaptation >= 500>>
-	<<set $suddenBirth += 3>>
-<<elseif $slaves[$i].pregAdaptation >= 100>>
-	<<set $suddenBirth += 1>>
-<</if>>
-<<if $slaves[$i].health.condition < 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].geneticQuirks.uterineHypersensitivity == 2>>
-	<<set $suddenBirth += 1*$slaves[$i].counter.birthsTotal>>
-<</if>>
-<<if $slaves[$i].mpreg != 1>>
-	<<if $slaves[$i].vagina > 2>>
-		<<set $suddenBirth += 2>>
-	<</if>>
-	<<if $slaves[$i].vaginalAccessory != "none" || $slaves[$i].chastityVagina == 1>>
-		<<set $suddenBirth -= 20>>
-	<</if>>
-<</if>>
-<<set $suddenBirth -= Math.trunc(($slaves[$i].intelligence + $slaves[$i].intelligenceImplant)/10)>>
-/* end calcs */
 
 <</widget>>