diff --git a/src/facilities/surgery/analyzePregnancy.js b/src/facilities/surgery/analyzePregnancy.js
index bb4fcd04315ea737a14f25b50e8948393ff9d481..fb33e286902ab8899c7bfebac5d1fbc0e4960f36 100644
--- a/src/facilities/surgery/analyzePregnancy.js
+++ b/src/facilities/surgery/analyzePregnancy.js
@@ -1,25 +1,190 @@
 /**
- *
- * @param {App.Entity.Fetus} fetus
+ * @param {App.Entity.SlaveState} mother
+ * @param {boolean} cheat
+ * @returns {DocumentFragment}
  */
+globalThis.analyzePregnancies = function(mother, cheat) {
+	const el = new DocumentFragment();
+	for (let i = 0; i < mother.womb.length; i++) {
+		el.append(scanFetus(i));
+		App.UI.DOM.appendNewElement("hr", el);
+	}
+	return el;
+
+	function scanFetus(i) {
+		const el = new DocumentFragment();
+		const fetus = mother.womb[i];
+		let linkArray = [];
+		if (fetus.age >= 2) {
+			App.UI.DOM.appendNewElement("div", el, `Ova: ${fetus.genetics.name}`);
+			App.UI.DOM.appendNewElement("div", el, `Age: ${Math.trunc(fetus.age * 1000) / 1000}`);
+			if (V.geneticMappingUpgrade >= 1) {
+				App.UI.DOM.appendNewElement("div", el, `Gender: ${fetus.genetics.gender}`);
+				App.UI.DOM.appendNewElement("div", el, `Father ID: ${fetus.genetics.father}`);
+				App.UI.DOM.appendNewElement("div", el, `Father Name: ${(fetus.genetics.fatherName) ? fetus.genetics.fatherName : `name not registered`}`);
+
+				App.UI.DOM.appendNewElement("div", el, `Mother ID: ${fetus.genetics.mother}`);
+				App.UI.DOM.appendNewElement("div", el, `Mother Name: ${(fetus.genetics.motherName) ? fetus.genetics.motherName : `name not registered`}`);
+				App.UI.DOM.appendNewElement("div", el, `Nationality: ${fetus.genetics.nationality}`);
+				App.UI.DOM.appendNewElement("div", el, `Race: ${capFirstChar(fetus.genetics.race)}`);
+				App.UI.DOM.appendNewElement("div", el, `Skin tone: ${capFirstChar(fetus.genetics.skin)}`);
+				App.UI.DOM.appendNewElement("div", el, `Intelligence index: ${fetus.genetics.intelligence} out of 100`);
+				App.UI.DOM.appendNewElement("div", el, `Face index: ${fetus.genetics.face} out of 100`);
+				App.UI.DOM.appendNewElement("div", el, `Eye Color: ${capFirstChar(fetus.genetics.eyeColor)}`);
+				App.UI.DOM.appendNewElement("div", el, `Hair Color: ${capFirstChar(fetus.genetics.hColor)}`);
+
+				if (fetus.genetics.underArmHStyle === "hairless" && fetus.genetics.pubicHStyle === "hairless") {
+					App.UI.DOM.appendNewElement("div", el, `Body hair: None`);
+				} else if (fetus.genetics.underArmHStyle === "hairless") {
+					App.UI.DOM.appendNewElement("div", el, `Body hair: Lacks underarm hair`);
+				} else if (fetus.genetics.pubicHStyle === "hairless") {
+					App.UI.DOM.appendNewElement("div", el, `Body hair: Lacks pubic hair`);
+				}
+				if (fetus.genetics.markings === "freckles" || fetus.genetics.markings === "heavily freckled") {
+					App.UI.DOM.appendNewElement("div", el, `Markings: ${capFirstChar(fetus.genetics.markings)}`);
+				}
+				el.append(fetusAbnormalities());
+			} else {
+				if (fetus.age > 13) {
+					App.UI.DOM.appendNewElement("div", el, `Gender: ${fetus.genetics.gender}`);
+				}
+				if (fetus.age > 5) {
+					App.UI.DOM.appendNewElement("div", el, `Father ID: ${fetus.genetics.father}`);
+					App.UI.DOM.appendNewElement("div", el, `Father Name: ${fetus.genetics.fatherName}`);
+					App.UI.DOM.appendNewElement("div", el, `Mother ID: ${fetus.genetics.mother}`);
+					App.UI.DOM.appendNewElement("div", el, `Mother Name: ${fetus.genetics.motherName}`);
+				}
+			}
+			if (V.incubator.capacity > 0 || V.nursery > 0) {
+				App.UI.DOM.appendNewElement("div", el, `Reserved: ${fetus.reserve}`);
+			}
+
+			App.UI.DOM.appendNewElement("div", el, `Rename: `)
+				.append(App.UI.DOM.makeTextBox(
+					fetus.genetics.name,
+					(v) => fetus.genetics.name = v
+				));
+			if (fetus.age < 4 && (V.arcologies[0].FSRestart === "unset" || V.eugenicsFullControl === 1 || mother.breedingMark === 0 || V.propOutcome === 0 || (fetus.fatherID !== -1 && fetus.fatherID !== -6))) {
+				linkArray.push(App.UI.DOM.link(
+					"Terminate ovum",
+					() => {
+						WombRemoveFetus(mother, i);
+						if (mother.preg === 0) {
+							mother.pregWeek = -1;
+						}
+					}
+				));
+				if (V.surgeryUpgrade === 1) {
+					linkArray.push(App.UI.DOM.link(
+						"Transplant ovum",
+						() => {
+							V.donatrix = mother;
+							V.wombIndex = i;
+							V.nextLink = "Analyze Pregnancy";
+						},
+						[],
+						"Ova Transplant Workaround"
+					));
+				}
+				App.UI.DOM.appendNewElement("div", el, App.UI.DOM.generateLinksStrip(linkArray));
+			}
+			if (V.incubator.capacity > 0) {
+				if (fetus.reserve === "incubator") {
+					App.UI.DOM.appendNewElement("div", el, App.UI.DOM.link(
+						`Don't keep this child in ${V.incubator.name}`,
+						() => {
+							fetus.reserve = "";
+						},
+						[],
+						passage()
+					));
+				} else if ((V.incubator.capacity - V.incubator.tanks.length) - FetusGlobalReserveCount("incubator") > 0) {
+					App.UI.DOM.appendNewElement("div", el, App.UI.DOM.link(
+						`Keep this child in ${V.incubator.name}`,
+						() => {
+							fetus.reserve = "incubator";
+						},
+						[],
+						passage()
+					));
+				} else {
+					App.UI.DOM.appendNewElement("div", el, `There is not enough free space to keep this child in ${V.incubator.name}.`);
+				}
+			}
+			if (V.nursery > 0) {
+				if (fetus.reserve === "nursery") {
+					App.UI.DOM.appendNewElement("div", el, App.UI.DOM.link(
+						`Don't keep this child in ${V.nurseryName}`,
+						() => {
+							fetus.reserve = "";
+						},
+						[],
+						passage()
+					));
+				} else if ((V.nursery - V.cribs.length) - FetusGlobalReserveCount("nursery") > 0) {
+					App.UI.DOM.appendNewElement("div", el, App.UI.DOM.link(
+						`Keep this child in ${V.nurseryName}`,
+						() => {
+							fetus.reserve = "nursery";
+						},
+						[],
+						passage()
+					));
+				} else {
+					App.UI.DOM.appendNewElement("div", el, `There is not enough free space to keep this child in ${V.nurseryName}.`);
+				}
+			}
+		} else {
+			linkArray = [];
+			App.UI.DOM.appendNewElement("div", el, `Unidentified ova found, no detailed data available.`);
+			App.UI.DOM.appendNewElement("div", el, `Age: too early for scan.`);
+			linkArray.push(App.UI.DOM.link(
+				`Terminate ovum`,
+				() => {
+					WombRemoveFetus(mother, i);
+					if (mother.preg === 0) {
+						mother.pregWeek = -1;
+					}
+				},
+				[],
+				passage()
+			));
 
-globalThis.fetusAbnormalities = function(fetus) {
-	const div = App.UI.DOM.makeElement("div", null, "indent");
-
-	const abnormalitySpans = [];
-	for (const gene in fetus.genetics.geneticQuirks) {
-		const geneObj = App.Data.genes.get(gene);
-		const quirkName = (geneObj && geneObj.abbreviation) ? geneObj.abbreviation : gene;
-		const quirkColor = (geneObj && geneObj.goodTrait) ? "green" : "red";
-		if (fetus.genetics.geneticQuirks[gene] === 2 || typeof fetus.genetics.geneticQuirks[gene] === "string") { // String check is for heterochromia
-			abnormalitySpans.push(App.UI.DOM.makeElement("span", quirkName, quirkColor));
-		} else if (fetus.genetics.geneticQuirks[gene] === 1 && V.geneticMappingUpgrade >= 2) {
-			abnormalitySpans.push(App.UI.DOM.makeElement("span", quirkName, "yellow"));
+			if (V.surgeryUpgrade === 1) {
+				linkArray.push(App.UI.DOM.link(
+					`Transplant ovum`,
+					() => {
+						V.donatrix = mother;
+						V.wombIndex = i;
+						V.nextLink = "Analyze Pregnancy";
+					},
+					[],
+					`Ova Transplant Workaround`
+				));
+			}
+		}
+		return el;
+
+		function fetusAbnormalities() {
+			const div = App.UI.DOM.makeElement("div", null);
+
+			const abnormalitySpans = [];
+			for (const gene in fetus.genetics.geneticQuirks) {
+				const geneObj = App.Data.genes.get(gene);
+				const quirkName = (geneObj && geneObj.abbreviation) ? geneObj.abbreviation : gene;
+				const quirkColor = (geneObj && geneObj.goodTrait) ? "green" : "red";
+				if (fetus.genetics.geneticQuirks[gene] === 2 || typeof fetus.genetics.geneticQuirks[gene] === "string") { // String check is for heterochromia
+					abnormalitySpans.push(App.UI.DOM.makeElement("span", quirkName, quirkColor));
+				} else if (fetus.genetics.geneticQuirks[gene] === 1 && V.geneticMappingUpgrade >= 2) {
+					abnormalitySpans.push(App.UI.DOM.makeElement("span", quirkName, "yellow"));
+				}
+			}
+			if (abnormalitySpans.length > 0) {
+				div.append("Detected abnormalities: ");
+				App.Events.addNode(div, abnormalitySpans);
+			}
+			return div;
 		}
 	}
-	if (abnormalitySpans.length > 0) {
-		div.append("Detected abnormalities: ");
-		App.Events.addNode(div, abnormalitySpans);
-	}
-	return div;
 };
+
diff --git a/src/pregmod/analyzePlayerPregnancy.tw b/src/pregmod/analyzePlayerPregnancy.tw
index f38748459d2db7adc685d53a12993fd1a20164ba..f833df6172f7e7da4e8d01f7ab35bbc968a16d8c 100644
--- a/src/pregmod/analyzePlayerPregnancy.tw
+++ b/src/pregmod/analyzePlayerPregnancy.tw
@@ -71,174 +71,6 @@
 
 	<p>
 		<h2>Deep scan</h2>
-		<<for _ap = 0; _ap < _WL; _ap++>>
-		<hr style="margin:0">
-		<<capture _ap>>
-			<<if $PC.womb[_ap].age >=2 >>
-				<div class="indent">
-					Ova: $PC.womb[_ap].genetics.name
-				</div>
-
-				<<if $geneticMappingUpgrade >= 1>>
-					<div class="indent">
-						Gender: $PC.womb[_ap].genetics.gender
-					</div>
-					<div class="indent">
-						Father ID: $PC.womb[_ap].genetics.father
-					</div>
-					<div class="indent">
-						Father Name:
-						<<if ndef $PC.womb[_ap].genetics.fatherName>>
-							name not registered
-						<<else>>
-							$PC.womb[_ap].genetics.fatherName
-						<</if>>
-					</div>
-
-					<div class="indent">
-						Mother ID: $PC.womb[_ap].genetics.mother
-					</div>
-					<div class="indent">
-						Mother Name:
-						<<if ndef $PC.womb[_ap].genetics.motherName>>
-							name not registered
-						<<else>>
-							$PC.womb[_ap].genetics.motherName
-						<</if>>
-					</div>
-					<div class="indent">
-						Nationality: $PC.womb[_ap].genetics.nationality
-					</div>
-					<div class="indent">
-						Race: $PC.womb[_ap].genetics.race
-					</div>
-					<div class="indent">
-						Skin tone: $PC.womb[_ap].genetics.skin
-					</div>
-					<div class="indent">
-						Intelligence index: $PC.womb[_ap].genetics.intelligence out of 100
-					</div>
-					<div class="indent">
-						Face index: $PC.womb[_ap].genetics.face out of 100
-					</div>
-					<div class="indent">
-						Eye Color: $PC.womb[_ap].genetics.eyeColor
-					</div>
-					<div class="indent">
-						Hair Color: $PC.womb[_ap].genetics.hColor
-					</div>
-					<<if $PC.womb[_ap].genetics.underArmHStyle == "hairless" && $PC.womb[_ap].genetics.pubicHStyle == "hairless">>
-						<div class="indent">
-							Body hair: none
-						</div>
-					<<elseif $PC.womb[_ap].genetics.underArmHStyle == "hairless">>
-						<div class="indent">
-							Body hair: lacks underarm hair
-						</div>
-					<<elseif $PC.womb[_ap].genetics.pubicHStyle == "hairless">>
-						<div class="indent">
-							Body hair: lacks pubic hair
-						</div>
-					<</if>>
-					<<if $PC.womb[_ap].genetics.markings == "freckles" || $PC.womb[_ap].genetics.markings == "heavily freckled">>
-						<div class="indent">
-							Markings: $PC.womb[_ap].genetics.markings
-						</div>
-					<</if>>
-					<<includeDOM fetusAbnormalities($PC.womb[_ap])>>
-				<<else>>
-					<<if $PC.womb[_ap].age > 13>>
-						<div class="indent">
-							Gender: $PC.womb[_ap].genetics.gender
-						</div>
-					<</if>>
-					<<if $PC.womb[_ap].age > 5>>
-						<div class="indent">
-							Father ID: $PC.womb[_ap].genetics.father
-						</div>
-						<div class="indent">
-							Father Name: $PC.womb[_ap].genetics.fatherName
-						</div>
-						<div class="indent">
-							Mother ID: $PC.womb[_ap].genetics.mother
-						</div>
-						<div class="indent">
-							Mother Name: $PC.womb[_ap].genetics.motherName
-						</div>
-					<</if>>
-				<</if>>
-				<<if $incubator.capacity > 0 || $nursery > 0>>
-					<div class="indent">
-						Reserved: $PC.womb[_ap].reserve
-					</div>
-				<</if>>
-
-				<div class="indent">
-					Rename: <<textbox "_tempName" _tempName >> [[Apply | Analyze PC Pregnancy][$PC.womb[_ap].genetics.name = _tempName]]
-				</div>
-				<<if $PC.womb[_ap].age < 4 && ($arcologies[0].FSRestart == "unset" || $eugenicsFullControl == 1 || ($PC.womb[_ap].fatherID != -1 && $PC.womb[_ap].fatherID != -6))>>
-					<div class="indent">
-						<<link "Terminate ovum" "Analyze PC Pregnancy">><<run WombRemoveFetus($PC, _ap)>><</link>>
-						<<if $surgeryUpgrade == 1>>
-							| [[Transplant ovum|Ova Transplant Workaround][$donatrix = $PC, $wombIndex = _ap, $nextLink = "Analyze PC Pregnancy"]]
-						<</if>>
-					</div>
-				<</if>>
-				<<if $incubator.capacity > 0>>
-					<div class="indent">
-						<<if $PC.womb[_ap].reserve === "incubator">>
-							<<link "Don't keep this child $incubator.name" "Analyze PC Pregnancy">>
-								<<set $PC.womb[_ap].reserve = "">>
-								<<set _reservedChildren-->>
-							<</link>>
-						<<elseif _freeTanks - _reservedChildren > 0>>
-							<<link "Keep this child in $incubator.name" "Analyze PC Pregnancy">>
-								<<if $PC.womb[_ap].reserve === "nursery">>
-									<<set _reservedChildrenNursery-->>
-								<</if>>
-								<<set $PC.womb[_ap].reserve = "incubator">>
-								<<set _reservedChildren++>>
-							<</link>>
-						<<else>>
-							There is not enough free space to keep this child in <<= $incubator.name>>.
-						<</if>>
-					</div>
-				<</if>>
-				<<if $nursery > 0>>
-					<div class="indent">
-						<<if $PC.womb[_ap].reserve === "nursery">>
-							<<link "Don't keep this child in $nurseryName" "Analyze PC Pregnancy">>
-								<<set $PC.womb[_ap].reserve = "">>
-								<<set _reservedChildrenNursery-->>
-							<</link>>
-						<<elseif _freeCribs - _reservedChildrenNursery > 0>>
-							<<link "Keep this child in $nurseryName" "Analyze PC Pregnancy">>
-								<<if $PC.womb[_ap].reserve === "incubator">>
-									<<set _reservedChildren-->>
-								<</if>>
-								<<set $PC.womb[_ap].reserve = "nursery">>
-								<<set _reservedChildrenNursery++>>
-							<</link>>
-						<<else>>
-							There is not enough free space to keep this child in $nurseryName.
-						<</if>>
-					</div>
-				<</if>>
-			<<else>>
-				<div class="indent">
-					Unidentified ova found, no detailed data available.
-				</div>
-				<div class="indent">
-					Age: too early for scan.
-				</div>
-				<div class="indent">
-					<<link "Terminate ovum" "Analyze PC Pregnancy">><<run WombRemoveFetus($PC, _ap)>><</link>>
-					<<if $surgeryUpgrade == 1>>
-						| [[Transplant ovum|Ova Transplant Workaround][$donatrix = $PC, $wombIndex = _ap, $nextLink = "Analyze PC Pregnancy"]]
-					<</if>>
-				</div>
-			<</if>>
-		<</capture>>
-		<</for>>
+		<<includeDOM analyzePregnancies($PC)>>
 	</p>
 <</if>>
diff --git a/src/pregmod/analyzePregnancy.tw b/src/pregmod/analyzePregnancy.tw
index 609d75d51a87bcaa7c679cabfa254cc91a75a6dd..79f3582c7d326a1097ae698cfb873a72d2684de1 100644
--- a/src/pregmod/analyzePregnancy.tw
+++ b/src/pregmod/analyzePregnancy.tw
@@ -9,8 +9,6 @@
 <<run App.Utils.setLocalPronouns(getSlave($AS))>>
 
 <<set _WL = getSlave($AS).womb.length, _incubatorReservations = WombReserveCount(getSlave($AS), "incubator"), _nurseryReservations = WombReserveCount(getSlave($AS), "nursery"), _freeTanks = $incubator.capacity - $incubator.tanks.length, _freeCribs = $nursery - $cribs.length>>
-<<set _reservedChildren = FetusGlobalReserveCount("incubator")>>
-<<set _reservedChildrenNursery = FetusGlobalReserveCount("nursery")>>
 
 <p class="scene-intro">
 	<<= getSlave($AS).slaveName>> is <<if getSlave($AS).devotion < 20>>restrained<<else>>comfortably reclined<</if>> with $his stomach prepped for examination. $He shudders slightly at the cold touch of the sensor against $his skin.
@@ -67,15 +65,12 @@
 				<<if _incubatorReservations > 0>>
 					<<link "Remove all of $his children from $incubator.name" "Analyze Pregnancy">>
 						<<run WombChangeReserveType(getSlave($AS), "incubator", "")>>
-						<<set _reservedChildren -= _incubatorReservations>>
 					<</link>> |
 				<</if>>
 				<<if _incubatorReservations < _WL && (_reservedChildren + _WL - _incubatorReservations <= _freeTanks)>>
 					<<link "Keep all of $his children in $incubator.name" "Analyze Pregnancy">>
 						<<run WombChangeReserveType(getSlave($AS), "nursery", "incubator")>>
 						<<run WombChangeReserveType(getSlave($AS), "", "incubator")>>
-						<<set _reservedChildrenNursery -= _nurseryReservations>>
-						<<set _reservedChildren += _WL - _incubatorReservations>>
 					<</link>>
 				<<elseif _incubatorReservations < _WL>>
 					There is not enough free space in <<= $incubator.name>> for the rest of $his children.
@@ -88,15 +83,12 @@
 				<<if _nurseryReservations > 0>>
 					<<link "Remove all of $his children from $nurseryName" "Analyze Pregnancy">>
 						<<run WombChangeReserveType(getSlave($AS), "nursery", "")>>
-						<<set _reservedChildrenNursery -= _nurseryReservations>>
 					<</link>> |
 				<</if>>
-				<<if _nurseryReservations < _WL && (_reservedChildrenNursery + _WL - _nurseryReservations <= _freeCribs)>>
+				<<if _nurseryReservations < _WL && (FetusGlobalReserveCount("nursery") + _WL - _nurseryReservations <= _freeCribs)>>
 					<<link "Keep all of $his children in $nurseryName" "Analyze Pregnancy">>
 						<<run WombChangeReserveType(getSlave($AS), "incubator", "nursery")>>
 						<<run WombChangeReserveType(getSlave($AS), "", "nursery")>>
-						<<set _reservedChildren -= _incubatorReservations>>
-						<<set _reservedChildrenNursery += _WL - _nurseryReservations>>
 					<</link>>
 				<<elseif _nurseryReservations < _WL>>
 					There is not enough free space in $nurseryName for the rest of $his children.
@@ -108,174 +100,7 @@
 
 	<p>
 		<h2>Deep scan</h2>
-		<<for _ap = 0; _ap < _WL; _ap++>>
-			<hr style="margin:0">
-			<p>
-				<<capture _ap>>
-					<<if getSlave($AS).womb[_ap].age >=2 >>
-						<div class="indent">
-							Ova: <<= getSlave($AS).womb[_ap].genetics.name>>
-						</div>
-						<div class="indent">
-							Age: <<= Math.trunc(getSlave($AS).womb[_ap].age * 1000) / 1000>>
-						</div>
-						<<if $geneticMappingUpgrade >= 1>>
-							<div class="indent">
-								Gender: <<= getSlave($AS).womb[_ap].genetics.gender>>
-							</div>
-							<div class="indent">
-								Father ID: <<= getSlave($AS).womb[_ap].genetics.father>>
-							</div>
-							<div class="indent">
-								Father Name:
-								<<if ndef getSlave($AS).womb[_ap].genetics.fatherName>>
-									name not registered
-								<<else>>
-									<<= getSlave($AS).womb[_ap].genetics.fatherName>>
-								<</if>>
-							</div>
-							<div class="indent">
-								Mother ID: <<= getSlave($AS).womb[_ap].genetics.mother>>
-							</div>
-							<div class="indent">
-								Mother Name:
-								<<if ndef getSlave($AS).womb[_ap].genetics.motherName>>
-									name not registered
-								<<else>>
-									<<= getSlave($AS).womb[_ap].genetics.motherName>>
-								<</if>>
-							</div>
-							<div class="indent">
-								Nationality: <<= getSlave($AS).womb[_ap].genetics.nationality>>
-							</div>
-							<div class="indent">
-								Race: <<= capFirstChar(getSlave($AS).womb[_ap].genetics.race)>>
-							</div>
-							<div class="indent">
-								Skin tone: <<= capFirstChar(getSlave($AS).womb[_ap].genetics.skin)>>
-							</div>
-							<div class="indent">
-								Intelligence index: <<= getSlave($AS).womb[_ap].genetics.intelligence>> out of 100
-							</div>
-							<div class="indent">
-								Face index: <<= getSlave($AS).womb[_ap].genetics.face>> out of 100
-							</div>
-							<div class="indent">
-								Eye Color: <<= capFirstChar(getSlave($AS).womb[_ap].genetics.eyeColor)>>
-							</div>
-							<div class="indent">
-								Hair Color: <<= capFirstChar(getSlave($AS).womb[_ap].genetics.hColor)>>
-							</div>
-							<div class="indent">
-								<<if getSlave($AS).womb[_ap].genetics.underArmHStyle == "hairless" && getSlave($AS).womb[_ap].genetics.pubicHStyle == "hairless">>
-									Body hair: None
-								<<elseif getSlave($AS).womb[_ap].genetics.underArmHStyle == "hairless">>
-									Body hair: Lacks underarm hair
-								<<elseif getSlave($AS).womb[_ap].genetics.pubicHStyle == "hairless">>
-									Body hair: Lacks pubic hair
-								<</if>>
-							</div>
-							<<if getSlave($AS).womb[_ap].genetics.markings == "freckles" || getSlave($AS).womb[_ap].genetics.markings == "heavily freckled">>
-								<div class="indent">
-									Markings: <<= capFirstChar(getSlave($AS).womb[_ap].genetics.markings)>>
-								</div>
-							<</if>>
-							<<includeDOM fetusAbnormalities(getSlave($AS).womb[_ap])>>
-						<<else>>
-							<<if getSlave($AS).womb[_ap].age > 13>>
-								<div class="indent">
-									Gender: <<= getSlave($AS).womb[_ap].genetics.gender>>
-								</div>
-							<</if>>
-							<<if getSlave($AS).womb[_ap].age > 5>>
-								<div class="indent">
-									Father ID: <<= getSlave($AS).womb[_ap].genetics.father>>
-								</div>
-								<div class="indent">
-									Father Name: <<= getSlave($AS).womb[_ap].genetics.fatherName>>
-								</div>
-								<div class="indent">
-									Mother ID: <<= getSlave($AS).womb[_ap].genetics.mother>>
-								</div>
-								<div class="indent">
-									Mother Name: <<= getSlave($AS).womb[_ap].genetics.motherName>>
-								</div>
-							<</if>>
-						<</if>>
-						<<if $incubator.capacity > 0 || $nursery > 0>>
-							<div class="indent">
-								Reserved: <<= getSlave($AS).womb[_ap].reserve>>
-							</div>
-						<</if>>
-
-						<div class="indent">
-							Rename: <<textbox "_tempName" _tempName >> [[Apply | Analyze Pregnancy][getSlave($AS).womb[_ap].genetics.name = _tempName]]
-						</div>
-						<<if getSlave($AS).womb[_ap].age < 4 && ($arcologies[0].FSRestart == "unset" || $eugenicsFullControl == 1 || getSlave($AS).breedingMark == 0 || $propOutcome == 0 || (getSlave($AS).womb[_ap].fatherID != -1 && getSlave($AS).womb[_ap].fatherID != -6))>>
-							<div class="indent">
-								<<link "Terminate ovum" "Analyze Pregnancy">><<run WombRemoveFetus(getSlave($AS), _ap)>><<if getSlave($AS).preg == 0>><<set getSlave($AS).pregWeek = -1>><</if>><</link>>
-								<<if $surgeryUpgrade == 1>>
-									| [[Transplant ovum|Ova Transplant Workaround][$donatrix = getSlave($AS), $wombIndex = _ap, $nextLink = "Analyze Pregnancy"]]
-								<</if>>
-							</div>
-						<</if>>
-						<<if $incubator.capacity > 0>>
-							<div class="indent">
-								<<if getSlave($AS).womb[_ap].reserve === "incubator">>
-									<<link "Don't keep this child in $incubator.name" "Analyze Pregnancy">>
-										<<set getSlave($AS).womb[_ap].reserve = "">>
-										<<set _reservedChildren-->>
-									<</link>>
-								<<elseif _freeTanks - _reservedChildren > 0>>
-									<<link "Keep this child in $incubator.name" "Analyze Pregnancy">>
-										<<if getSlave($AS).womb[_ap].reserve === "nursery">>
-											<<set _reservedChildrenNursery-->>
-										<</if>>
-										<<set getSlave($AS).womb[_ap].reserve = "incubator">>
-										<<set _reservedChildren++>>
-									<</link>>
-								<<else>>
-									There is not enough free space to keep this child in <<= $incubator.name>>.
-								<</if>>
-							</div>
-						<</if>>
-						<<if $nursery > 0>>
-							<div class="indent">
-								<<if getSlave($AS).womb[_ap].reserve === "nursery">>
-									<<link "Don't keep this child in $nurseryName" "Analyze Pregnancy">>
-										<<set getSlave($AS).womb[_ap].reserve = "">>
-										<<set _reservedChildrenNursery-->>
-									<</link>>
-								<<elseif _freeCribs - _reservedChildrenNursery > 0>>
-									<<link "Keep this child in $nurseryName" "Analyze Pregnancy">>
-										<<if getSlave($AS).womb[_ap].reserve === "incubator">>
-											<<set _reservedChildren-->>
-										<</if>>
-										<<set getSlave($AS).womb[_ap].reserve = "nursery">>
-										<<set _reservedChildrenNursery++>>
-									<</link>>
-								<<else>>
-									There is not enough free space to keep this child in $nurseryName.
-								<</if>>
-							</div>
-						<</if>>
-					<<else>>
-						<div class="indent">
-							Unidentified ova found, no detailed data available.
-						</div>
-						<div class="indent">
-							Age: too early for scan.
-						</div>
-						<div class="indent">
-							<<link "Terminate ovum" "Analyze Pregnancy">><<run WombRemoveFetus(getSlave($AS), _ap)>><<if getSlave($AS).preg == 0>><<set getSlave($AS).pregWeek = -1>><</if>><</link>>
-							<<if $surgeryUpgrade == 1>>
-								| [[Transplant ovum|Ova Transplant Workaround][$donatrix = getSlave($AS), $wombIndex = _ap, $nextLink = "Analyze Pregnancy"]]
-							<</if>>
-						</div>
-					<</if>>
-				<</capture>>
-			</p>
-		<</for>>
+		<<includeDOM analyzePregnancies(getSlave($AS))>>
 	</p>
 <<elseif getSlave($AS).preg == -3>> /*special states*/
 	Failure to locate any ova. Subject is infertile.