From 6b2d73ead842bf0c721d3e57f91c1eba5f1a70e4 Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Sun, 18 Oct 2020 23:52:38 -0400
Subject: [PATCH] fix r

---
 src/facilities/incubator/incubator.tw         |  796 +---------
 src/facilities/incubator/incubatorInteract.js | 1307 +++++++++--------
 2 files changed, 678 insertions(+), 1425 deletions(-)

diff --git a/src/facilities/incubator/incubator.tw b/src/facilities/incubator/incubator.tw
index f3e6af055fa..5c699aa7bde 100644
--- a/src/facilities/incubator/incubator.tw
+++ b/src/facilities/incubator/incubator.tw
@@ -1,797 +1,3 @@
 :: Incubator [nobr jump-to-safe jump-from-safe]
 
-<<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Incubator", $encyclopedia = "The Incubation Facility">>
-<<set $targetAge = Number($targetAge) || $minimumSlaveAge>>
-<<set $targetAge = Math.clamp($targetAge, $minimumSlaveAge, 42)>>
-
-<<if $incubatorImprintSetting == 0>><<set $incubatorImprintSetting = "trust">><</if>>
-
-<<set $readySlaves = 0, $readySlave = 0, $incubatorSlaves = $tanks.length, _freeTanks = $incubator - $incubatorSlaves, _SL = $slaves.length, _eligibility = 0, $reservedChildren = FetusGlobalReserveCount("incubator"), $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>>
-
-<br><br>
-<<set _incubatorNameCaps = capFirstChar($incubatorName)>>
-_incubatorNameCaps is a clean, cold hall designed to be lined with tanks and their connected monitoring systems.
-
-<<if $incubatorSlaves > 2>>
-	It's well used. The hum of active tanks fill the air.
-<<elseif $incubatorSlaves > 0>>
-	It's barely used; most of the tanks lie dormant.
-<<else>>
-	It's empty and quiet.
-	<div class="choices" style="font-style:normal">
-		[[Decommission the incubator|Main][$incubator = 0, $incubatorUpgradeSpeed = 5, $incubatorUpgradeWeight = 0, $incubatorUpgradeMuscles = 0, $incubatorUpgradeReproduction = 0, $incubatorUpgradeGrowthStims = 0, $incubatorWeightSetting = 0, $incubatorMusclesSetting = 0, $incubatorReproductionSetting = 0, $incubatorGrowthStimsSetting = 0, $tanks = []]]
-	</div>
-<</if>>
-
-<br>It can support $incubator child<<if $incubator != 1>>ren<</if>>. There <<if $incubatorSlaves == 1>>is<<else>>are<</if>> currently $incubatorSlaves tank<<if $incubatorSlaves != 1>>s<</if>> in use in $incubatorName.
-[[Add another incubation tank|Incubator][cashX(forceNeg(Math.trunc(60000*$upgradeMultiplierArcology)), "capEx"), $incubator += 1]] //Costs <<print cashFormat(Math.trunc(60000*$upgradeMultiplierArcology))>> and will increase upkeep costs//
-<<if _freeTanks == 0>>
-	All of the tanks are currently occupied by growing children.
-<<elseif $incubator > 1 && $reservedChildren < _freeTanks>>
-	[[Remove an incubation tank|Incubator][cashX(forceNeg(Math.trunc(10000*$upgradeMultiplierArcology)), "capEx"), $incubator -= 1]] //Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>> and will reduce upkeep costs//
-<</if>>
-
-<br><br>
-Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $incubator tanks, <<print _freeTanks>> <<if _freeTanks == 1>>is<<else>>are<</if>> unoccupied. Of those, $reservedChildren <<if $reservedChildren == 1>>tank is<<else>>tanks are<</if>> reserved.
-/*
-** With hundreds of slaves, navigating the Incubator room was giving me as much of a headache as other lists.
-** So, I borrowed the sorting list and dropped a few options here.
-*/
-<<if (0 < _SL)>>
-	<<set $sortIncubatorList = $sortIncubatorList || 'Unsorted'>>
-	<br>//Sorting:// ''<span id="qlIncubatorSort">$sortIncubatorList</span>.''
-	<<link "Sort by Name">>
-		<<set $sortIncubatorList = 'Name'>>
-		<<replace "#qlIncubatorSort">>$sortIncubatorList<</replace>>
-		<<script>>
-			sortIncubatorPossiblesByName();
-		<</script>>
-	<</link>> |
-	<<link "Sort by Reserved Incubator Spots">>
-		<<set $sortIncubatorList = 'Reserved Incubator Spots'>>
-		<<replace "#qlIncubatorSort">>$sortIncubatorList<</replace>>
-		<<script>>
-			sortIncubatorPossiblesByReservedSpots();
-		<</script>>
-	<</link>> |
-	<<link "Sort by Pregnancy Week">>
-		<<set $sortIncubatorList = 'Pregnancy Week'>>
-		<<replace "#qlIncubatorSort">>$sortIncubatorList<</replace>>
-		<<script>>
-			sortIncubatorPossiblesByPregnancyWeek();
-		<</script>>
-	<</link>> |
-	<<link "Sort by Number of Children">>
-		<<set $sortIncubatorList = 'Number of Children'>>
-		<<replace "#qlIncubatorSort">>$sortIncubatorList<</replace>>
-		<<script>>
-			sortIncubatorPossiblesByPregnancyCount();
-		<</script>>
-	<</link>>
-	<br>
-<</if>>
-<div id="qlIncubator">
-<<for _u = 0; _u < _SL; _u++>>
-	<<setLocalPronouns $slaves[_u]>>
-	<<if $slaves[_u].preg > 0 && $slaves[_u].broodmother == 0 && $slaves[_u].pregKnown == 1 && $slaves[_u].eggType == "human">>
-		<<if ($slaves[_u].assignment == "work in the dairy" && $dairyPregSetting > 0) || $activeSlave.assignment == "be your agent" || $activeSlave.assignment == "live with your agent">>
-		<<else>>
-			<<set _slaveId = "slave-" + $slaves[_u].ID>>
-			<<set _WL = $slaves[_u].womb.length>>
-			<<set _reservedIncubator = WombReserveCount($slaves[_u], "incubator")>>
-			<<set _reservedNursery = WombReserveCount($slaves[_u], "nursery")>>
-			<<set _pregWeek = $slaves[_u].pregWeek>>
-			<<set _slaveName = SlaveFullName($slaves[_u])>>
-			<div class="possible" @id="_slaveId" @data-preg-count="_WL" @data-reserved-spots="_reservedIncubator" @data-preg-week="_pregWeek" @data-name="_slaveName">
-			<<= App.UI.slaveDescriptionDialog($slaves[_u])>> is $slaves[_u].pregWeek week<<if $slaves[_u].pregWeek > 1>>s<</if>> pregnant with
-			<<if $slaves[_u].pregSource == 0 || $slaves[_u].preg <= 5>>someone's<<if $slaves[_u].preg <= 5>>, though it is too early to tell whose,<</if>>
-			<<elseif $slaves[_u].pregSource == -1>>your
-			<<elseif $slaves[_u].pregSource == -2>>a citizen's
-			<<elseif $slaves[_u].pregSource == -3>>your Master's
-			<<elseif $slaves[_u].pregSource == -4>>another arcology owner's
-			<<elseif $slaves[_u].pregSource == -5>>your client's
-			<<elseif $slaves[_u].pregSource == -6>>the Societal Elite's
-			<<elseif $slaves[_u].pregSource == -7>>the lab's
-			<<elseif $slaves[_u].pregSource == -9>>the Futanari Sisters'
-			<<else>>
-				<<set _t = $slaveIndices[$slaves[_u].pregSource]>>
-				<<if def _t>>
-					<<print $slaves[_t].slaveName>>'s
-				<</if>>
-			<</if>>
-			<<if _WL > 1>>_WL babies<<else>>baby<</if>>.
-			<<if _reservedIncubator > 0>>
-				<<set _childrenReserved = 1>>
-				<<if _WL == 1>>
-					$His child will be placed in $incubatorName.
-				<<elseif _reservedIncubator < _WL>>
-					_reservedIncubator of $his children will be placed in $incubatorName.
-				<<elseif _WL == 2>>
-					Both of $his children will be placed in $incubatorName.
-				<<else>>
-					All _reservedIncubator of $his children will be placed in $incubatorName.
-				<</if>>
-				<<if (_reservedIncubator + _reservedNursery < _WL) && ($reservedChildren < _freeTanks)>>
-					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<if $pregnancyMonitoringUpgrade == 1>>
-						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">>
-					<</if>>
-					<<print "[[Keep another child|Incubator][WombAddToGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">>
-					<<if _reservedIncubator > 0>>
-						| <<print "[[Keep one less child|Incubator][WombCleanGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">>
-					<</if>>
-					<<if _reservedIncubator > 1>>
-						| <<print "[[Keep none of " + $his + " children|Incubator][WombCleanGenericReserve($slaves[" + _u + "], 'incubator', 9999)]]">>
-					<</if>>
-					<<if ($reservedChildren + _WL - _reservedIncubator) <= _freeTanks>>
-						| <<print "[[Keep the rest of " + $his + " children|Incubator][WombAddToGenericReserve($slaves[" + _u + "], 'incubator', 9999)]]">>
-					<</if>>
-				<<elseif (_reservedIncubator == _WL) || ($reservedChildren == _freeTanks) || (_reservedIncubator + _reservedNursery == _WL)>>
-					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<if $pregnancyMonitoringUpgrade == 1>>
-						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">>
-					<</if>>
-					<<print "[[Keep one less child|Incubator][WombCleanGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">>
-					<<if _reservedIncubator > 1>>
-						| <<print "[[Keep none of " + $his + " children|Incubator][WombCleanGenericReserve($slaves[" + _u + "], 'incubator', 9999)]]">>
-					<</if>>
-				<</if>>
-			<<elseif ($reservedChildren < _freeTanks)>>
-				<<if _WL - _reservedNursery == 0>>
-					//$His children are already reserved for $nurseryName//
-					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<if $pregnancyMonitoringUpgrade == 1>>
-						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">>
-					<</if>>
-					<<print "[[Keep " + $his + " " + ((_WL > 1) ? "children" : "child") + " here instead|Incubator][WombChangeReserveType($slaves[" + _u + "], 'nursery', 'incubator')]]">>
-				<<else>>
-					You have <<if _freeTanks == 1>>an<</if>> @@.lime;available aging tank<<if _freeTanks > 1>>s<</if>>.@@
-					<br>&nbsp;&nbsp;&nbsp;&nbsp;
-					<<if $pregnancyMonitoringUpgrade == 1>>
-						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">>
-					<</if>>
-					<<print "[[Keep "+ ((_WL > 1) ? "a" : "the") +" child|Incubator][WombAddToGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">>
-					<<if (_WL > 1) && ($reservedChildren + _WL - _reservedIncubator) <= _freeTanks>>
-						| <<print "[[Keep all of " + $his + " children|Incubator][WombAddToGenericReserve($slaves[" + _u + "], 'incubator', 9999)]]">>
-					<</if>>
-				<</if>>
-			<<elseif $reservedChildren == _freeTanks>>
-				<br>&nbsp;&nbsp;&nbsp;&nbsp;
-				<<if $pregnancyMonitoringUpgrade == 1>>
-					<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">>
-				<</if>>
-				You have @@.red;no room for $his offspring.@@
-			<</if>>
-			<<set _eligibility = 1>>
-			</div>
-		<</if>>
-	<</if>>
-<</for>>
-</div>
-<<script>>
-	$('div#qlIncubator').ready(sortIncubatorPossiblesByPreviousSort);
-<</script>>
-<<if _eligibility == 0>>
-	<br>
-	//You have no pregnant slaves bearing eligible children.//
-<</if>>
-<<if $PC.pregKnown == 1 && ($arcologies[0].FSRestart == "unset" || $eugenicsFullControl == 1 || ($PC.pregSource != -1 && $PC.pregSource != -6))>>
-	<<set _WL = $PC.womb.length>>
-	<<set _reservedIncubator = WombReserveCount($PC, "incubator")>>
-	<<set _reservedNursery = WombReserveCount($PC, "nursery")>>
-	<br>''@@.pink;You're $PC.pregWeek week<<if $PC.pregWeek > 1>>s<</if>> pregnant@@'' and going to have
-		<<if _WL == 1>>
-			a baby.
-		<<else>>
-			<<print pregNumberName(_WL, 2)>>.
-		<</if>>
-	<<if (_reservedIncubator > 0)>>
-		<<set _childrenReserved = 1>>
-		<<if _WL == 1>>
-			Your child will be placed in $incubatorName.
-		<<elseif _reservedIncubator < _WL>>
-			_reservedIncubator of your children will be placed in $incubatorName.
-		<<elseif _WL == 2>>
-			Both of your children will be placed in $incubatorName.
-		<<else>>
-			All _reservedIncubator of your children will be placed in $incubatorName.
-		<</if>>
-		<<if (_reservedIncubator < _WL) && ($reservedChildren < _freeTanks) && (_reservedIncubator - _reservedNursery > 0)>>
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-			<<if $pregnancyMonitoringUpgrade == 1>>
-				<<print "[[Inspect pregnancy|Analyze PC Pregnancy]] | ">>
-			<</if>>
-			<<print "[[Keep another child|Incubator][WombAddToGenericReserve($PC, 'incubator', 1)]]">>
-			<<if _reservedIncubator > 0>>
-				| <<print "[[Keep one less child|Incubator][WombCleanGenericReserve($PC, 'incubator', 1)]]">>
-			<</if>>
-			<<if _reservedIncubator > 1>>
-				| <<print "[[Keep none of your children|Incubator][WombCleanGenericReserve($PC, 'incubator', 9999)]]">>
-			<</if>>
-			<<if ($reservedChildren + _WL - _reservedIncubator) <= _freeTanks>>
-				| <<print "[[Keep the rest of your children|Incubator][WombAddToGenericReserve($PC, 'incubator', 9999)]]">>
-			<</if>>
-		<<elseif (_reservedIncubator == _WL) || ($reservedChildren == _freeTanks) || (_reservedIncubator - _reservedNursery >= 0)>>
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-			<<if $pregnancyMonitoringUpgrade == 1>>
-				<<print "[[Inspect pregnancy|Analyze PC Pregnancy]] | ">>
-			<</if>>
-			<<print "[[Keep one less child|Incubator][_reservedIncubator -= 1, $reservedChildren -= 1]]">>
-			<<if _reservedIncubator > 1>>
-				| <<print "[[Keep none of your children|Incubator][WombCleanGenericReserve($PC, 'incubator', 9999)]]">>
-			<</if>>
-		<</if>>
-	<<elseif $reservedChildren < _freeTanks>>
-		<<if _WL - _reservedNursery == 0>>
-			//Your child<<if _WL > 0>>ren are<<else>>is<</if>> already reserved for $nurseryName//
-			<<print "[[Keep your" + ((_WL > 1) ? "children" : "child") + " here instead|Incubator][WombChangeReserveType($PC, 'nursery', 'incubator')]]">>
-		<<else>>
-			You have <<if _freeTanks == 1>>an<</if>> @@.lime;available aging tank<<if _freeTanks > 1>>s<</if>>.@@
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-			<<if $pregnancyMonitoringUpgrade == 1>>
-				<<print "[[Inspect pregnancy|Analyze PC Pregnancy]] | ">>
-			<</if>>
-			<<print "[[Keep " + ((_WL > 1) ? "a" : "your") +" child|Incubator][WombAddToGenericReserve($PC, 'incubator', 1)]]">>
-			<<if (_WL > 1) && ($reservedChildren + _WL - _reservedIncubator) <= _freeTanks>>
-				| [[Keep all of your children|Incubator][WombAddToGenericReserve($PC, 'incubator', 9999)]]
-			<</if>>
-		<</if>>
-	<<elseif $reservedChildren == _freeTanks>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		<<if $pregnancyMonitoringUpgrade == 1>>
-			<<print "[[Inspect pregnancy|Analyze PC Pregnancy]] | ">>
-		<</if>>
-		You have @@.red;no room for your offspring.@@
-	<</if>>
-<</if>>
-<<if $reservedChildren != 0 || _childrenReserved == 1>> /* the oops I made it go negative somehow button */
-	<br>
-	<<link "Clear all reserved children">>
-		<<for _u = 0; _u < _SL; _u++>>
-			<<if WombReserveCount($slaves[_u], "incubator") != 0>>
-				<<set WombCleanGenericReserve($slaves[_u], 'incubator', 9999)>>
-			<</if>>
-		<</for>>
-		<<set WombCleanGenericReserve($PC, 'incubator', 9999)>>
-		<<goto "Incubator">>
-	<</link>>
-<</if>>
-
-<br><br>
-Target age for release: <<textbox "$targetAge" $targetAge "Incubator">> [[Minimum Legal Age|Incubator][$targetAge = $minimumSlaveAge]] | [[Average Age of Fertility|Incubator][$targetAge = $fertilityAge]] | [[Average Age of Potency|Incubator][$targetAge = $potencyAge]] | [[Legal Adulthood|Incubator][$targetAge = 18]]
-//Setting will not be applied to tanks in use.//
-
-<br>
-<<if $incubatorBulkRelease == 1>>
-	Released children will be handled in bulk and not receive personal attention.
-	[[Individual release|Incubator][$incubatorBulkRelease = 0]]
-<<else>>
-	Released children will be seen to personally.
-	[[Bulk release|Incubator][$incubatorBulkRelease = 1]]
-<</if>>
-
-<br>
-<<if $incubatorUpgradeSpeed == 52>>
-	It has been upgraded with perfected growth accelerants; children grow at the rate of 1 week to 1 year.
-<<elseif $incubatorUpgradeSpeed == 18>>
-	It has been upgraded with advanced experimental growth accelerants; children grow at the rate of 3 weeks to 1 year. [[Fund speculative research into maximizing growth rate|Incubator][cashX(forceNeg(Math.trunc(500000*$upgradeMultiplierArcology)), "capEx"), $incubatorUpgradeSpeed = 52]] //Costs <<print cashFormat(Math.trunc(500000*$upgradeMultiplierArcology))>> and will increase upkeep costs//
-<<elseif $incubatorUpgradeSpeed == 9>>
-	It has been upgraded with advanced growth accelerants; children grow at the rate of 6 weeks to 1 year. [[Fund research into increasing growth rate even further|Incubator][cashX(forceNeg(Math.trunc(75000*$upgradeMultiplierArcology)), "capEx"), $incubatorUpgradeSpeed = 18]] //Costs <<print cashFormat(Math.trunc(75000*$upgradeMultiplierArcology))>> and will increase upkeep costs//
-<<elseif $incubatorUpgradeSpeed == 6>>
-	It has been upgraded with growth accelerants; children grow at the rate of 9 weeks to 1 year. [[Further upgrade the incubators with specialized stem cells to speed growth|Incubator][cashX(forceNeg(Math.trunc(30000*$upgradeMultiplierArcology)), "capEx"), $incubatorUpgradeSpeed = 9]] //Costs <<print cashFormat(Math.trunc(30000*$upgradeMultiplierArcology))>> and will increase upkeep costs//
-<<elseif $incubatorUpgradeSpeed == 5>>
-	The incubation tanks are basic; children grow at the rate of 12 weeks to 1 year. [[Upgrade the incubators with growth accelerating drugs|Incubator][cashX(forceNeg(Math.trunc(30000*$upgradeMultiplierArcology)), "capEx"), $incubatorUpgradeSpeed = 6]] //Costs <<print cashFormat(Math.trunc(30000*$upgradeMultiplierArcology))>> and will increase upkeep costs//
-<</if>>
-
-<p>
-<<if $incubatorUpgradeWeight == 1>>
-	Advanced caloric monitoring systems have been installed in the tanks to monitor and maintain a developing child's weight.
-<<else>>
-	There are no systems in place to control a growing child's weight; they will likely come out emaciated from the rapid growth. [[Upgrade the growth tanks with weight monitoring systems|Incubator][cashX(forceNeg(Math.trunc(20000*$upgradeMultiplierArcology)), "capEx"), $incubatorUpgradeWeight = 1]] //Costs <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology))>> and will increase upkeep costs//
-<</if>>
-</p>
-
-<p>
-<<if $incubatorUpgradeMuscles == 1>>
-	Advanced monitoring and steroid injection systems have been installed in the tanks to monitor and maintain a developing child's musculature.
-<<else>>
-	There are no systems in place to control a growing child's musculature; they will likely come out frail and weak from the rapid growth. [[Upgrade the growth tanks with muscle monitoring systems|Incubator][cashX(forceNeg(Math.trunc(20000*$upgradeMultiplierArcology)), "capEx"), $incubatorUpgradeMuscles = 1]] //Costs <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology))>> and will increase upkeep costs//
-<</if>>
-</p>
-
-<p>
-<<if $incubatorUpgradeReproduction == 1>>
-	Advanced monitoring and hormone injection systems have been installed in the tanks to influence a developing child's reproductive organs.
-<<else>>
-	There are no systems in place to control a growing child's reproductive capability. [[Upgrade the growth tanks with hormone monitoring systems|Incubator][cashX(forceNeg(Math.trunc(50000*$upgradeMultiplierArcology)), "capEx"), $incubatorUpgradeReproduction = 1]] //Costs <<print cashFormat(Math.trunc(50000*$upgradeMultiplierArcology))>> and will increase upkeep costs//
-<</if>>
-</p>
-
-<p>
-<<if $incubatorUpgradeOrgans == 1>>
-	Surgical tools have been added to the tank to be able to extract tissue samples from the occupant.
-<<elseif $organFarmUpgrade >= 1>>
-	The tanks lack the ability to extract tissue samples to be used by the organ fabricator. [[Upgrade the growth tanks with surgical extraction tools|Incubator][cashX(forceNeg(Math.trunc(10000*$upgradeMultiplierArcology)), "capEx"), $incubatorUpgradeOrgans = 1]] //Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>> and will increase upkeep costs//
-<<else>>
-	The tanks lack the ability to extract tissue samples and the dispensary lacks the ability to make use of them to fabricate organs.
-<</if>>
-</p>
-
-<p>
-<<if $incubatorUpgradeGrowthStims == 1>>
-	Advanced monitoring and stimulant injection systems have been installed in the tanks to monitor and maintain a developing child's height.
-<<elseif $growthStim == 1>>
-	There are no systems in place to control a growing child's height. [[Upgrade the growth tanks with stimulants injection systems|Incubator][cashX(forceNeg(Math.trunc(20000*$upgradeMultiplierArcology)), "capEx"), $incubatorUpgradeGrowthStims = 1]] //Costs <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology))>> and will increase upkeep costs//
-<<else>>
-	There are no systems in place to control a growing child's height and you lack the capability to fabricate growth stimulants.
-<</if>>
-</p>
-
-<<if $minimumSlaveAge <= 6 && ($arcologies[0].FSRepopulationFocus >=60 || $BlackmarketPregAdaptation == 1) >> /*Main prerequisite - stable repopulation FS OR documentation purchased from black market. And age gate. */
-	<p>
-	<<if $incubatorUpgradePregAdaptation == 1>>
-		The incubators have been upgraded with special set of manipulators, probes, nozzles and syringes coupled together with specific programs to take advantage of the accelerated growth to heighten viable reproductive capacity. These include injections of specialized serums and mechanical manipulation of the reproductive system and associated tissues, organs, muscles and bones.
-	<<else>>
-		The highly controlled environment inside incubation tube coupled with the greatly accelerated growth process is the perfect opportunity to push the boundaries of a body's ability to sustain pregnancy. This will include injections of specialized serums and mechanical manipulation of their reproductive system through a special set of manipulators, probes, nozzles and syringes supervised by a powerful monitoring program. Costly to maintain.<br>
-		<<if $incubatorUpgradeReproduction < 1>> /* Now with reports - what is lacking for construction */
-			_incubatorNameCaps lacks advanced monitoring and hormone injection systems. Construction not possible.
-		<<elseif $incubatorUpgradeOrgans < 1>>
-			_incubatorNameCaps lacks the ability to extract tissue samples. Construction not possible.
-		<<elseif $dispensaryUpgrade < 1>>
-			_incubatorNameCaps lacks a connection to an advanced pharmaceutical fabricator. Cutting-edge targeted serums production needed as integral part. Construction not possible.
-		<<elseif $bellyImplants < 1>>
-			_incubatorNameCaps lacks a connection with an implant manufacturing to construct fillable abdominal implants to simulate expansion. Construction not possible.
-		<<elseif $incubatorUpgradeGrowthStims < 1>>
-			_incubatorNameCaps lacks advanced monitoring and stimulant injection systems. Construction not possible.
-		<<else>>
-			[[Manufacture and install this subsystem|Incubator][cashX(forceNeg(Math.trunc(2000000*$upgradeMultiplierArcology)), "capEx"), $incubatorUpgradePregAdaptation = 1]] //Costs <<print cashFormat(Math.trunc(2000000*$upgradeMultiplierArcology))>> and will increase upkeep costs//
-		<</if>>
-	<</if>>
-	</p>
-<</if>>
-
-<p>
-<<if $incubatorImprintSetting == "terror">>
-	The imprinting system is currently focused on making them devoted but fearful of you. The imprinting cycle is locked upon incubation start.
-	<<if $bodyswapAnnounced == 1>>
-		<br>[[Switch the system to focus on preparation for body-swapping|Incubator][$incubatorImprintSetting = "husk"]]
-	<</if>>
-	<br>[[Switch the system to focus on attachment|Incubator][$incubatorImprintSetting = "trust"]]
-<<elseif $incubatorImprintSetting == "trust">>
-	The imprinting system is currently focused on making them devoted and trusting of you. The imprinting cycle is locked upon incubation start.
-	<<if $bodyswapAnnounced == 1>>
-		<br>[[Switch the system to focus on preparation for body-swapping|Incubator][$incubatorImprintSetting = "husk"]]
-	<</if>>
-	<br>[[Switch the system to focus on dependence|Incubator][$incubatorImprintSetting = "terror"]]
-<<else>>
-	The imprinting system is currently focused on producing complete vegetables ready to be used as hosts for body swapping. The imprinting cycle is locked upon incubation start.
-	<br>[[Switch the system to focus on dependence|Incubator][$incubatorImprintSetting = "terror"]]
-	<br>[[Switch the system to focus on attachment|Incubator][$incubatorImprintSetting = "trust"]]
-<</if>>
-//Only affects new infants//
-</p>
-
-
-
-<<if $incubatorSlaves > 0>>
-<br><br>''Children in $incubatorName''
-
-<<for $i = 0; $i < $incubatorSlaves; $i++>>
-	<<capture $i>>
-		<<setLocalPronouns $tanks[$i]>>
-		<br><br>@@.pink;$tanks[$i].slaveName@@ occupies this tank.
-		<<if $geneticMappingUpgrade >= 1>>
-			$He is a <<if $tanks[$i].genes == "XX">>female<<else>>male<</if>> of $tanks[$i].race descent with <<print App.Desc.eyesColor($tanks[$i])>>, $tanks[$i].hColor hair and $tanks[$i].skin skin. Given $his parentage, $he is considered $tanks[$i].nationality.
-		<<else>>
-			$He appears to be <<if $tanks[$i].genes == "XX">>a natural girl<<else>>a natural boy<</if>>, with $tanks[$i].hColor hair<<if getBestVision($tanks[$i]) === 0>> and <<print App.Desc.eyesColor($tanks[$i])>>.<<else>>. $He most likely will be blind.<</if>>
-		<</if>>
-		<<if $tanks[$i].preg > 0>>
-			@@.red;Warning! Subject may be pregnant! Unanticipated growth may occur!@@
-		<</if>>
-		Statistical projections indicates that once released $he will be around <<= heightToEitherUnit($tanks[$i].height + random(-5,5))>> tall. Most likely $he will be
-		<<if $tanks[$i].weight <= 30 && $tanks[$i].weight >= -30>>
-			at a healthy weight and
-		<<elseif $tanks[$i].weight >= 31 && $tanks[$i].weight <= 95>>
-			quite overweight and
-		<<elseif $tanks[$i].weight >= 96>>
-			very overweight and
-		<<elseif $tanks[$i].weight <= -31 && $tanks[$i].weight >= -95>>
-			quite thin and
-		<<elseif $tanks[$i].weight <= -96>>
-			very thin and
-		<</if>>
-		<<if $tanks[$i].muscles <= 5 && $tanks[$i].muscles >= -5>>
-			with a normal musculature.
-		<<elseif $tanks[$i].muscles >= 6 && $tanks[$i].muscles <= 30>>
-			quite toned.
-		<<elseif $tanks[$i].muscles >= 31 && $tanks[$i].muscles <= 95>>
-			quite muscular.
-		<<elseif $tanks[$i].muscles >= 96>>
-			with a powerful musculature.
-		<<elseif $tanks[$i].muscles <= -6 && $tanks[$i].muscles >= -30>>
-			quite weak.
-		<<elseif $tanks[$i].muscles <= -31 && $tanks[$i].muscles >= -95>>
-			very weak.
-		<<elseif $tanks[$i].muscles <= -96>>
-			extremely weak.
-		<</if>>
-		$His breasts are projected to be
-		<<if $tanks[$i].boobs <= 299>>
-			of small size,
-		<<elseif $tanks[$i].boobs <= 799>>
-			of normal size,
-		<<elseif $tanks[$i].boobs <= 1799>>
-			of generous size,
-		<<elseif $tanks[$i].boobs <= 3249>>
-			of incredible size,
-		<<else>>
-			of humongous size,
-		<</if>>
-		while $his rear will be
-		<<if $tanks[$i].butt <= 3>>
-			a healthy size.
-		<<elseif $tanks[$i].butt <= 6>>
-			quite impressive.
-		<<elseif $tanks[$i].butt <= 9>>
-			very impressive.
-		<<else>>
-			immense.
-		<</if>>
-		<<if $tanks[$i].dick > 0>>
-			<<if $tanks[$i].dick <= 3>>
-				The latest analysis reported $his dick will end up being around the average
-			<<elseif $tanks[$i].dick >= 4 && $tanks[$i].dick <= 6>>
-				The latest analysis reported $his dick will end up being above average
-			<<elseif $tanks[$i].dick >= 7 && $tanks[$i].dick <= 9>>
-				The latest analysis reported $his dick will end up being far above the average
-			<<else>>
-				The latest analysis reported $his dick will end up being of monstrous size
-			<</if>>
-		<</if>>
-		<<if $tanks[$i].balls > 0>>
-			<<if $tanks[$i].balls <= 3>>
-				and $his testicles will reach a normal size.
-			<<elseif $tanks[$i].balls >= 4 && $tanks[$i].balls <= 6>>
-				and $his testicles will be of remarkable size.
-			<<elseif $tanks[$i].balls >= 7 && $tanks[$i].balls <= 9>>
-				and $his testicles will reach an impressive size.
-			<<else>>
-				and $his testicles will reach a monstrous size.
-			<</if>>
-		<</if>>
-		<<if $tanks[$i].pubertyXX == 1 && $tanks[$i].ovaries == 1>>
-			Scanners report $his womb is fertile.
-		<<else>>
-			Scanners report $he is not fertile,
-			<<if $tanks[$i].pubertyXX == 0>>
-				as $he has not yet entered puberty.
-			<<else>>
-				as it appears $his womb is sterile.
-			<</if>>
-		<</if>>
-		<<if ($incubatorPregAdaptationSetting == 1 && $tanks[$i].genes == "XX") || ($incubatorPregAdaptationSetting == 2 && $tanks[$i].genes == "XY") || $incubatorPregAdaptationSetting == 3 >>
-			There are probes and tubes inserted inside $his reproductive organs so $incubatorName may work on them.
-			<<set _safeCC = ($tanks[$i].pregAdaptation - 5) * 2000>>
-			<<if _safeCC > 300000>> /* Some bigger size descriptions may be unreachable by normal game mechanics, so they are here just in case.*/
-				$His bloated form looks more like an overinflated beachball made of the overstretched skin of $his belly with $his relative tiny body attached to its side. $He is completely dominated by it now. The process has gone too far, so $his body can't maintain its form with the belly as part of abdominal cavity. Now $his skin, tissues and muscles have stretched enough for $his belly to expand outside of any physical boundaries and appear more an attachment to $his body, rather than part of it.
-			<<elseif _safeCC > 150000>>
-				$His body looks almost spherical, having been grotesquely inflated with the stimulator sacks inserted into $his internals. The incubator constantly maintains high pressure inside $him, forcing the displacement of $his organs and stretching skin, tissues, and muscles. Even $his chest forced to become a part of the top of $his belly, having been pushed forward from the overwhelming volume inside.
-			<<elseif _safeCC > 75000>>
-				$His belly has become so huge that can be easily compared with belly of a woman ready to birth quintuplets. It pulses from the pressure applied within by the incubator probes.
-			<<elseif _safeCC > 45000>>
-				$His belly, in the current state, would look normal on a woman who was ready to birth triplets. On $his still growing form, it's something completely out of the ordinary.
-			<<elseif _safeCC > 30000>>
-				$His belly looks like it contains full sized twins, ready to be birthed.
-			<<elseif _safeCC > 15000>>
-				$His belly has reached the size of full term pregnancy.
-			<<elseif _safeCC > 10000>>
-				$His belly has inflated to the size of late term pregnancy; its skin shines from the tension.
-			<<elseif _safeCC > 5000>>
-				$His belly resembles a mid term pregnancy; it pulses slightly from the expansion and contraction of expandable sacks tipping the incubator probes.
-			<<elseif _safeCC > 1500>>
-				$His belly slightly bulges and rhythmically expands and contracts to the cycles of $his stimulation as the incubator inflates and deflates expandable sacks on its probes within $his body cavity. With the correct serums applied, this should allow it to stretch the skin, tissues, and muscles of $his belly to better to tolerate the displacement of internal organs caused by fetal growth.
-			<</if>>
-		<</if>>
-		<<if $tanks[$i].growTime <= 0>>
-			<<set $readySlaves = 1>>
-			<br>$He is ready to be released from $his tank.
-		<<else>>
-			<<set _weekDisplay = Math.round($tanks[$i].growTime/$incubatorUpgradeSpeed)>>
-			<br>$His growth is currently being accelerated. $He will be ready for release in about _weekDisplay week<<if _weekDisplay > 1>>s<</if>>.
-		<</if>>
-		<br>
-		<<if $tanks[$i].tankBaby != 3>>
-			The tank is imprinting $him with basic life and sexual skills, though $he will still be very naïve and inexperienced on release.
-			<<if $tanks[$i].tankBaby == 2>>
-				The majority of $his indoctrination involves painting the world as a terrible place where only horror awaits $him should $he not obey $his owner.
-			<<else>>
-				The majority of $his indoctrination involves painting the world as a wonderful place only if $he is unconditionally devoted to, and absolutely trusting of, $his owner.
-			<</if>>
-		<<else>>
-			The tank keeps $him a braindead husk on a complete life-support.
-		<</if>>
-		<<if $incubatorUpgradeWeight == 1>>
-			<br>
-			<<if $incubatorWeightSetting == 1>>
-				$His weight is not being properly managed, saving costs but likely causing excessive weight gain.
-			<<elseif $incubatorWeightSetting == 2>>
-				$His weight is being carefully managed; $he will be released at a healthy weight.
-			<<elseif $incubatorWeightSetting == 0>>
-				Weight management systems are offline; $he will likely be malnourished.
-			<</if>>
-		<</if>>
-		<<if $incubatorUpgradeMuscles == 1>>
-			<br>
-			<<if $incubatorMusclesSetting == 2>>
-				$His strength levels are purposefully set higher than recommended; $he is likely to have excessive musculature.
-			<<elseif $incubatorMusclesSetting == 1>>
-				$His musculature is being carefully managed; $he will be released with near normal strength.
-			<<elseif $incubatorMusclesSetting == 0>>
-				Strength management systems are offline; $he will likely be released extremely weak.
-			<</if>>
-		<</if>>
-		<<if $incubatorUpgradeGrowthStims == 1>>
-			<br>
-			<<if $incubatorGrowthStimsSetting == 2>>
-				$He is being injected with higher than recommended doses of stimulants; $he is likely to be much taller than expected.
-			<<elseif $incubatorGrowthStimsSetting == 1>>
-				$He is injected with the recommended dosage of stimulants; $he will grow to $his full expected height.
-			<<elseif $incubatorGrowthStimsSetting == 0>>
-				Growth stimulant injection systems are offline; $he will develop normally.
-			<</if>>
-		<</if>>
-		<<if $incubatorUpgradeReproduction == 1>>
-			<br>
-			<<if $incubatorReproductionSetting == 2>>
-				$His hormone levels are purposefully set higher than recommended; $his reproductive systems are likely to be over-active.
-			<<elseif $incubatorReproductionSetting == 1>>
-				$His hormone levels are being carefully managed; $he will be released with fully functional reproductive organs.
-			<<elseif $incubatorReproductionSetting == 0>>
-				Reproduction management systems are offline; $he will undergo normal puberty.
-			<</if>>
-			<<if ($incubatorPregAdaptationSetting == 1 && $tanks[$i].genes == "XX") || ($incubatorPregAdaptationSetting == 2 && $tanks[$i].genes == "XY") ||$incubatorPregAdaptationSetting == 3 >> /* Should be visible only after incubatorUpgradeReproduction is installed and activated*/
-				<br>
-				$His reproductive organs are getting <<if $tanks[$i].incubatorPregAdaptationPower == 1>>an advanced<<elseif $tanks[$i].incubatorPregAdaptationPower == 2>>an intensive<<elseif $tanks[$i].incubatorPregAdaptationPower == 3>>an extreme<<else>>a standard<</if>> course of mechanical and hormonal therapy to become adapted for future use.
-			<</if>>
-		<</if>>
-		<br>Rename $him: <<textbox "_tempName" _tempName >> [[Apply |Incubator][$tanks[$i].slaveName = _tempName]] // Given name only //
-		<<if $cheatMode == 1>>
-			<br>''Cheatmode:''
-			<<link "Retrieve immediately">>
-				<<set $incubatorOldID = $tanks[$i].ID>>
-				<<set $readySlave = $tanks[$i]>>
-				<<run $tanks.splice($i, 1)>>
-				<<goto "Incubator Retrieval Workaround">>
-			<</link>>
-		<</if>>
-		<<if ($incubatorUpgradeOrgans == 1) && ($tanks[$i].tankBaby!= 3)>>
-			<br>
-			You can extract a sample and prepare a new organ for $him to be implanted once $he exits $his tank.
-			<<set _newOrgan = 0>>
-			<<set $tankOrgans = {
-				ovaries: 0,
-				penis: 0,
-				testicles:0,
-				rightEye: 0,
-				leftEye: 0,
-				voiceBox: 0}>>
-			<<for _i = 0; _i < $incubatorOrgans.length; _i++>>
-				<<if $tanks[$i].ID == $incubatorOrgans[_i].ID>>
-					<<if $incubatorOrgans[_i].type == "ovaries">>
-						<<set $tankOrgans.ovaries = 1>>
-					<</if>>
-					<<if $incubatorOrgans[_i].type == "testicles">>
-						<<set $tankOrgans.testicles = 1>>
-					<</if>>
-					<<if $incubatorOrgans[_i].type == "penis">>
-						<<set $tankOrgans.penis = 1>>
-					<</if>>
-					<<if $incubatorOrgans[_i].type == "rightEye">>
-						<<set $tankOrgans.rightEye = 1>>
-					<</if>>
-					<<if $incubatorOrgans[_i].type == "leftEye">>
-						<<set $tankOrgans.leftEye = 1>>
-					<</if>>
-					<<if $incubatorOrgans[_i].type == "voicebox">>
-						<<set $tankOrgans.voicebox = 1>>
-					<</if>>
-				<</if>>
-			<</for>>
-			<<if $tanks[$i].genes == "XX">>
-				Being a natural girl, $he possesses a functional vagina and ovaries. You can:
-			<<else>>
-				Being a natural boy, $he possesses a functional penis and balls. You can:
-			<</if>>
-			<br>
-			<<if $tanks[$i].ovaries == 0>>
-				<<if $tankOrgans.ovaries != 1>>
-					<<link "Prepare ovaries">>
-						<<run App.Medicine.OrganFarm.growIncubatorOrgan($tanks[$i], "ovaries")>>
-						<<goto "Incubator">>
-					<</link>>
-				<<else>>
-					@@.detail;Ovaries are already prepared.@@
-				<</if>>
-			<</if>>
-			<<if $tanks[$i].dick == 0>>
-				<<if $tankOrgans.penis != 1>>
-					<<link "Prepare penis">>
-						<<run App.Medicine.OrganFarm.growIncubatorOrgan($tanks[$i], "penis")>>
-						<<goto "Incubator">>
-					<</link>>
-				<<else>>
-					@@.detail;A penis is already prepared.@@
-				<</if>>
-			<</if>>
-			<<if $tanks[$i].balls == 0>>
-				|
-				<<if $tankOrgans.testicles != 1>>
-					<<link "Prepare testicles">>
-						<<run App.Medicine.OrganFarm.growIncubatorOrgan($tanks[$i], "testicles")>>
-						<<goto "Incubator">>
-					<</link>>
-				<<else>>
-					@@.detail;Testicles are already prepared.@@
-				<</if>>
-			<</if>>
-			<<if getLeftEyeVision($tanks[$i]) === 0 || getRightEyeVision($tanks[$i]) === 0>>
-				<br>
-				<<set _both = getLeftEyeVision($tanks[$i]) === 0 && getRightEyeVision($tanks[$i]) === 0>>
-				<<if _both>>
-					$He appears to be blind in both eyes:
-				<<elseif getLeftEyeVision($tanks[$i]) === 0>>
-					$He appears to be blind in $his left eye:
-				<<else>>
-					$He appears to be blind in $his right eye:
-				<</if>>
-				<<set _unprepared = 0>>
-				<<if getLeftEyeVision($tanks[$i]) === 0 && $tankOrgans.leftEye != 1>>
-					<<link "Prepare left eye">>
-						<<run App.Medicine.OrganFarm.growIncubatorOrgan($tanks[$i], "leftEye")>>
-						<<goto "Incubator">>
-					<</link>>
-					<<set _unprepared++>>
-				<</if>>
-				<<if getRightEyeVision($tanks[$i]) === 0 && $tankOrgans.rightEye != 1>>
-					<<if _unprepared > 0>> | <</if>>
-					<<link "Prepare right eye">>
-						<<run App.Medicine.OrganFarm.growIncubatorOrgan($tanks[$i], "rightEye")>>
-						<<goto "Incubator">>
-					<</link>>
-					<<set _unprepared++>>
-				<</if>>
-				<<if _both && _unprepared === 2>>
-					|
-					<<link "Prepare both eyes">>
-						<<run App.Medicine.OrganFarm.growIncubatorOrgan($tanks[$i], "leftEye"), App.Medicine.OrganFarm.growIncubatorOrgan($tanks[$i], "rightEye")>>
-						<<goto "Incubator">>
-					<</link>>
-				<</if>>
-				<<if _both && _unprepared === 0>> @@.detail;Both eyes are already prepared.@@
-				<<elseif $tankOrgans.leftEye == 1>> @@.detail;A left eye is already prepared.@@
-				<<elseif $tankOrgans.rightEye == 1>> @@.detail;A right eye is already prepared.@@
-				<</if>>
-			<</if>>
-			<<if $tanks[$i].voice == 0>>
-				<br>$He appears to be mute:
-				<<if $tankOrgans.voicebox != 1>>
-					<<link "Prepare vocal cords">>
-						<<run App.Medicine.OrganFarm.growIncubatorOrgan($tanks[$i], "voicebox")>>
-						<<goto "Incubator">>
-					<</link>>
-				<<else>>
-					@@.detail;Vocal cords are already prepared.@@
-				<</if>>
-			<</if>>
-		<</if>>
-	<</capture>>
-<</for>>
-<</if>>
-
-<br>
-<br>
-
-<<if $incubatorUpgradeWeight == 1>>
-	<<if $incubatorWeightSetting == 1>>
-		Weight is not being properly managed; excessive weight gain is likely. [[Monitor|Incubator][$incubatorWeightSetting = 2]] | [[Disable|Incubator][$incubatorWeightSetting = 0]]
-	<<elseif $incubatorWeightSetting == 2>>
-		Weight is being carefully managed; children will be released at a healthy weight. [[Estimate only|Incubator][$incubatorWeightSetting = 1]] | [[Disable|Incubator][$incubatorWeightSetting = 0]]
-	<<elseif $incubatorWeightSetting == 0>>
-		Weight management systems are offline; children will likely be malnourished. [[Activate|Incubator][$incubatorWeightSetting = 2]]
-	<</if>>
-<</if>>
-<br>
-<<if $incubatorUpgradeMuscles == 1>>
-	<<if $incubatorMusclesSetting == 2>>
-		Strength levels are purposefully set higher than recommended; excessive muscle gain is likely. [[Limit|Incubator][$incubatorMusclesSetting = 1]] | [[Disable|Incubator][$incubatorMusclesSetting = 0]]
-	<<elseif $incubatorMusclesSetting == 1>>
-		Musculature is being carefully managed; children will be released with near normal strength. [[Overload|Incubator][$incubatorMusclesSetting = 2]] | [[Disable|Incubator][$incubatorMusclesSetting = 0]]
-	<<elseif $incubatorMusclesSetting == 0>>
-		Strength management systems are offline; children will likely be released extremely weak. [[Activate|Incubator][$incubatorMusclesSetting = 1]]
-	<</if>>
-<</if>>
-<br>
-<<if $incubatorUpgradeReproduction == 1>>
-	<<if $incubatorReproductionSetting == 2>>
-		Hormone levels are purposefully set higher than recommended; over-active reproductive systems are likely. [[Limit|Incubator][$incubatorReproductionSetting = 1]] | [[Disable|Incubator][$incubatorReproductionSetting = 0]]
-	<<elseif $incubatorReproductionSetting == 1>>
-		Hormone levels are being carefully managed; children will be released with fully functional reproductive organs. [[Overload|Incubator][$incubatorReproductionSetting = 2]] | [[Disable|Incubator][$incubatorReproductionSetting = 0]]
-	<<elseif $incubatorReproductionSetting == 0>>
-		Reproduction management systems are offline; children will undergo normal puberty. [[Activate|Incubator][$incubatorReproductionSetting = 1]]
-	<</if>>
-	<<if $incubatorUpgradePregAdaptation == 1>> /* Should be visible only after incubatorUpgradeReproduction is installed */
-		<br>
-		<<if $incubatorPregAdaptationSetting == 3>>
-			Pregnancy adaptation system online: All.
-			[[Females|Incubator][$incubatorPregAdaptationSetting = 1]] | [[Males|Incubator][$incubatorPregAdaptationSetting = 2]] | [[Disable|Incubator][$incubatorPregAdaptationSetting = 0]]
-		<<elseif $incubatorPregAdaptationSetting == 2>>
-			Pregnancy adaptation system online: Males only.
-			[[All|Incubator][$incubatorPregAdaptationSetting = 3]] | [[Females|Incubator][$incubatorPregAdaptationSetting = 1]] | [[Disable|Incubator][$incubatorPregAdaptationSetting = 0]]
-		<<elseif $incubatorPregAdaptationSetting == 1>>
-			Pregnancy adaptation system online: Females only.
-			[[All|Incubator][$incubatorPregAdaptationSetting = 3]] | [[Males|Incubator][$incubatorPregAdaptationSetting = 2]] | [[Disable|Incubator][$incubatorPregAdaptationSetting = 0]]
-		<<else>>
-			Pregnancy adaptation system offline.
-			[[All|Incubator][$incubatorPregAdaptationSetting = 3]] | [[Females|Incubator][$incubatorPregAdaptationSetting = 1]] | [[Males|Incubator][$incubatorPregAdaptationSetting = 2]]
-		<</if>>
-	<</if>>
-	<<if $incubatorUpgradePregAdaptation == 1 && $incubatorPregAdaptationSetting > 0>> /* Should be visible only after incubatorUpgradeReproduction is installed and turned on*/
-		<br>
-		<<if $incubatorPregAdaptationPower == 1>>
-			Pregnancy adaptation programmed to advanced procedures. Up to triplet pregnancy should be safe for the subjects.
-			[[Standard|Incubator][$incubatorPregAdaptationPower = 0]] | [[Intensive|Incubator][$incubatorPregAdaptationPower = 2]] | [[Extreme|Incubator][$incubatorPregAdaptationPower = 3]]
-		<<elseif $incubatorPregAdaptationPower == 2>>
-			Pregnancy adaptation programmed to intensive procedures. Up to octuplet pregnancy should be possible for the subjects. Warning! Side effects may occur to health and mental condition.
-			[[Standard|Incubator][$incubatorPregAdaptationPower = 0]] | [[Advanced|Incubator][$incubatorPregAdaptationPower = 1]] | [[Extreme|Incubator][$incubatorPregAdaptationPower = 3]]
-		<<elseif $incubatorPregAdaptationPower == 3>>
-			Pregnancy adaptation programmed to extreme procedures. Normally unsustainable pregnancies may be possible for some subjects. Actual capacity will vary with genetic and other individual conditions. WARNING! Extreme side effects may occur to health and mental condition!
-			[[Standard|Incubator][$incubatorPregAdaptationPower = 0]] | [[Advanced|Incubator][$incubatorPregAdaptationPower = 1]] | [[Intensive|Incubator][$incubatorPregAdaptationPower = 2]]
-		<<else>>
-			Pregnancy adaptation programmed to standard procedures. Normal pregnancy should be safe for subjects.
-			[[Advanced|Incubator][$incubatorPregAdaptationPower = 1]] | [[Intensive|Incubator][$incubatorPregAdaptationPower = 2]] | [[Extreme|Incubator][$incubatorPregAdaptationPower = 3]]
-		<</if>>
-		<br>
-		//Due to the high complexity and steep risks of the procedure, settings will not be changed on tanks in use.//
-	<</if>>
-<</if>>
-<br>
-<<if $incubatorUpgradeGrowthStims == 1>>
-	<<if $incubatorGrowthStimsSetting == 2>>
-		Children are injected with higher than recommended doses of stimulants; exceeding expected final height is likely. [[Limit|Incubator][$incubatorGrowthStimsSetting = 1]] | [[Disable|Incubator][$incubatorGrowthStimsSetting = 0]]
-	<<elseif $incubatorGrowthStimsSetting == 1>>
-		Children are injected with the recommended dosage of stimulants; they will grow to their full expected height. [[Overload|Incubator][$incubatorGrowthStimsSetting = 2]] | [[Disable|Incubator][$incubatorGrowthStimsSetting = 0]]
-	<<elseif $incubatorGrowthStimsSetting == 0>>
-		Growth stimulant injection systems are offline; children will develop normally. [[Activate|Incubator][$incubatorGrowthStimsSetting = 1]]
-	<</if>>
-<</if>>
-
-<<if $readySlaves == 1>>
-	<<if $incubatorBulkRelease == 1>>
-		<<set $newSlavePool = []>>
-		<<for _inc = 0; _inc < $tanks.length; _inc++>>
-			<<if $tanks[_inc].growTime <= 0>>
-				<<set $incubatorOldID = $tanks[_inc].ID>> /* single slave case */
-				<<set _tempObject = {object: $tanks[_inc], ID: $tanks[_inc].ID}>>
-				<<set $newSlavePool.push(clone(_tempObject))>>
-				<<run $tanks.splice(_inc, 1)>>
-				<<set _inc-->>
-			<</if>>
-		<</for>>
-		<<if $newSlavePool.length == 1>>
-			<<set $readySlave = $newSlavePool[0].object>>
-			<<set $newSlavePool = 0>>
-		<</if>>
-	<<else>>
-		<<for _inc = 0; _inc < $incubatorSlaves; _inc++>>
-			<<if $tanks[_inc].growTime <= 0>>
-				<<set $incubatorOldID = $tanks[_inc].ID>>
-				<<set $readySlave = $tanks[_inc]>>
-				<<run $tanks.splice(_inc, 1)>>
-				<<break>>
-			<</if>>
-		<</for>>
-	<</if>>
-	<<goto "Incubator Retrieval Workaround">>
-<</if>>
-
-<br><br>Rename $incubatorName: <<textbox "$incubatorName" $incubatorName "Incubator">> //Use a noun or similar short phrase//
+<<includeDOM App.UI.incubator()>>
\ No newline at end of file
diff --git a/src/facilities/incubator/incubatorInteract.js b/src/facilities/incubator/incubatorInteract.js
index 4a7d315c554..a4b9e61e474 100644
--- a/src/facilities/incubator/incubatorInteract.js
+++ b/src/facilities/incubator/incubatorInteract.js
@@ -1,288 +1,331 @@
-App.Facility.Incubator = function() {
-	V.nextButton = "Back to Main", V.nextLink = "Main", V.returnTo = "Incubator", V.encyclopedia = "The Incubation Facility";
+App.UI.incubator = function() {
+	V.nextButton = "Back to Main";
+	V.nextLink = "Main";
+	V.returnTo = "Incubator";
+	V.encyclopedia = "The Incubation Facility";
 	V.targetAge = Number(V.targetAge) || V.minimumSlaveAge;
 	V.targetAge = Math.clamp(V.targetAge, V.minimumSlaveAge, 42);
+	V.readySlaves = 0;
+	V.readySlave = 0;
+	V.incubatorSlaves = V.tanks.length;
+	V.reservedChildren = FetusGlobalReserveCount("incubator");
+	V.reservedChildrenNursery = FetusGlobalReserveCount("nursery");
+
 	let linkArray = [];
-	let r = [];
 	const el = new DocumentFragment();
 	let _freeTanks = V.incubator - V.incubatorSlaves;
 	const _SL = V.slaves.length;
 	let _eligibility = 0;
-	V.readySlaves = 0;
-	V.readySlave = 0;
-	V.incubatorSlaves = V.tanks.length;
+	let _childrenReserved;
+	const _incubatorNameCaps = capFirstChar(V.incubatorName);
 
-	V.reservedChildren = FetusGlobalReserveCount("incubator"), V.reservedChildrenNursery = FetusGlobalReserveCount("nursery");
+	el.append(intro());
+	el.append(mothers());
+	el.append(tankSettings());
+	//el.append(tankBabies());
 
-	// <br><br>
-	const _incubatorNameCaps = capFirstChar(V.incubatorName);
-	r.push(`${_incubatorNameCaps} is a clean, cold hall designed to be lined with tanks and their connected monitoring systems.`);
-
-	if (V.incubatorSlaves > 2) {
-		r.push(`It's well used. The hum of active tanks fill the air.`);
-		App.Events.addNode(el, r);
-	} else if (V.incubatorSlaves > 0) {
-		r.push(`It's barely used; most of the tanks lie dormant.`);
-		App.Events.addNode(el, r);
-	} else {
-		r.push(`It's empty and quiet.`);
-		App.Events.addNode(el, r);
-		el.append(
-			choice(
-				"Decommission the incubator",
-				() => {
-					V.incubator = 0;
-					V.incubatorUpgradeSpeed = 5;
-					V.incubatorUpgradeWeight = 0;
-					V.incubatorUpgradeMuscles = 0;
-					V.incubatorUpgradeReproduction = 0;
-					V.incubatorUpgradeGrowthStims = 0;
-					V.incubatorWeightSetting = 0;
-					V.incubatorMusclesSetting = 0;
-					V.incubatorReproductionSetting = 0;
-					V.incubatorGrowthStimsSetting = 0;
-					V.tanks = [];
-				}
-			)
-		);
-	}
+	return el;
 
-	/**
-	 *
-	 * @param {string} title
-	 * @param {function():void} func
-	 * @param {string} [passage="Incubator"]
-	 * @param {string} [note]
-	 * @returns {HTMLElement}
-	 */
-	function choice(title, func, passage = "Incubator", note = "") {
-		const div = document.createElement("div");
-		div.classList.add("choices");
-		div.append(
-			App.UI.DOM.link(
-				title,
-				func,
-				[],
-				passage
-			)
-		);
-		if (note) {
-			App.UI.DOM.appendNewElement("span", div, ` ${note}`, "note");
+
+	function intro() {
+		const el = new DocumentFragment();
+		let r = [];
+		r.push(`${_incubatorNameCaps} is a clean, cold hall designed to be lined with tanks and their connected monitoring systems.`);
+
+		if (V.incubatorSlaves > 2) {
+			r.push(`It's well used. The hum of active tanks fill the air.`);
+			App.Events.addNode(el, r);
+		} else if (V.incubatorSlaves > 0) {
+			r.push(`It's barely used; most of the tanks lie dormant.`);
+			App.Events.addNode(el, r);
+		} else {
+			r.push(`It's empty and quiet.`);
+			App.Events.addNode(el, r);
+			el.append(
+				choice(
+					"Decommission the incubator",
+					() => {
+						V.incubator = 0;
+						V.incubatorUpgradeSpeed = 5;
+						V.incubatorUpgradeWeight = 0;
+						V.incubatorUpgradeMuscles = 0;
+						V.incubatorUpgradeReproduction = 0;
+						V.incubatorUpgradeGrowthStims = 0;
+						V.incubatorWeightSetting = 0;
+						V.incubatorMusclesSetting = 0;
+						V.incubatorReproductionSetting = 0;
+						V.incubatorGrowthStimsSetting = 0;
+						V.tanks = [];
+					}
+				)
+			);
 		}
-		return div;
-	}
-	r = [];
-	// <br>
-	r.push(`It can support ${V.incubator}`);
-	if (V.incubatorSlaves === 1) {
-		r.push(`child. There is currently ${V.incubatorSlaves} tank`);
-	} else {
-		r.push(`children. There are currently ${V.incubatorSlaves} tanks`);
-	}
-	r.push(`in use in ${V.incubatorName}.`);
-	App.Events.addNode(el, r, "div");
-
-	el.append(
-		choice(
-			`Add another incubation tank`,
-			() => {
-				cashX(forceNeg(Math.trunc(60000 * V.upgradeMultiplierArcology)), "capEx");
-				V.incubator += 1;
-			},
-			"Incubator",
-			`Costs ${cashFormat(Math.trunc(60000 * V.upgradeMultiplierArcology))} and will increase upkeep costs`
-		)
-	);
-	if (_freeTanks === 0) {
-		el.append(`All of the tanks are currently occupied by growing children.`);
-	} else if (V.incubator > 1 && V.reservedChildren < _freeTanks) {
+		App.Events.addNode(el, r, "p");
+
+		r = [];
+		r.push(`It can support ${V.incubator}`);
+		if (V.incubatorSlaves === 1) {
+			r.push(`child. There is currently ${V.incubatorSlaves} tank`);
+		} else {
+			r.push(`children. There are currently ${V.incubatorSlaves} tanks`);
+		}
+		r.push(`in use in ${V.incubatorName}.`);
+		App.Events.addNode(el, r, "div");
+
 		el.append(
 			choice(
-				`Remove an incubation tank`,
+				`Add another incubation tank`,
 				() => {
-					cashX(forceNeg(Math.trunc(10000 * V.upgradeMultiplierArcology)), "capEx");
-					V.incubator -= 1;
+					cashX(forceNeg(Math.trunc(60000 * V.upgradeMultiplierArcology)), "capEx");
+					V.incubator += 1;
 				},
 				"Incubator",
-				`Costs ${cashFormat(Math.trunc(10000 * V.upgradeMultiplierArcology))} and will reduce upkeep costs`
+				`Costs ${cashFormat(Math.trunc(60000 * V.upgradeMultiplierArcology))} and will increase upkeep costs`
 			)
 		);
-	}
+		if (_freeTanks === 0) {
+			el.append(`All of the tanks are currently occupied by growing children.`);
+		} else if (V.incubator > 1 && V.reservedChildren < _freeTanks) {
+			el.append(
+				choice(
+					`Remove an incubation tank`,
+					() => {
+						cashX(forceNeg(Math.trunc(10000 * V.upgradeMultiplierArcology)), "capEx");
+						V.incubator -= 1;
+					},
+					"Incubator",
+					`Costs ${cashFormat(Math.trunc(10000 * V.upgradeMultiplierArcology))} and will reduce upkeep costs`
+				)
+			);
+		}
 
-	// <br><br>
-	r = [];
-	r.push(`Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of ${V.incubator} tanks, ${_freeTanks}`);
-	if (_freeTanks === 1) {
-		r.push(`is`);
-	} else {
-		r.push(`are`);
-	}
-	r.push(`unoccupied. Of those, ${V.reservedChildren}`);
-	if (V.reservedChildren === 1) {
-		r.push(`tank is`);
-	} else {
-		r.push(`tanks are`);
+		r = [];
+		r.push(`Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of ${V.incubator} tanks, ${_freeTanks}`);
+		if (_freeTanks === 1) {
+			r.push(`is`);
+		} else {
+			r.push(`are`);
+		}
+		r.push(`unoccupied. Of those, ${V.reservedChildren}`);
+		if (V.reservedChildren === 1) {
+			r.push(`tank is`);
+		} else {
+			r.push(`tanks are`);
+		}
+		r.push(` reserved.`);
+		App.Events.addNode(el, r, "div");
+		return el;
 	}
-	r.push(` reserved.`);
-	App.Events.addNode(el, r, "div");
-	/*
-	** With hundreds of slaves, navigating the Incubator room was giving me as much of a headache as other lists.
-	** So, I borrowed the sorting list and dropped a few options here.
-	*/
-	if (0 < _SL) {
-		const sortingBar = document.createElement("div");
-
-		V.sortIncubatorList = V.sortIncubatorList || 'Unsorted';
-		App.UI.DOM.appendNewElement("span", sortingBar, "Sorting: ", "note");
-
-		let qlIncubatorSort = document.createElement("span");
-		qlIncubatorSort.classList.add("bold");
-		qlIncubatorSort.id = "qlIncubatorSort";
-		qlIncubatorSort.append(V.sortIncubatorList);
-		sortingBar.append(`.`);
 
-		linkArray = [];
-		linkArray.push(
-			App.UI.DOM.link(
-				"Sort by Name",
-				() => {
-					V.sortIncubatorList = 'Name';
-					sortIncubatorPossiblesByName();
-					jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
-				}
-			)
-		);
-		linkArray.push(
-			App.UI.DOM.link(
-				"Sort by Reserved Incubator Spots",
-				() => {
-					V.sortIncubatorList = 'Reserved Incubator Spots';
-					sortIncubatorPossiblesByReservedSpots();
-					jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
-				}
-			)
-		);
-		linkArray.push(
-			App.UI.DOM.link(
-				"Sort by Pregnancy Week",
-				() => {
-					V.sortIncubatorList = 'Reserved Incubator Spots';
-					sortIncubatorPossiblesByPregnancyWeek();
-					jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
-				}
-			)
-		);
-		linkArray.push(
-			App.UI.DOM.link(
-				"Sort by Number of Children",
-				() => {
-					V.sortIncubatorList = 'Reserved Incubator Spots';
-					sortIncubatorPossiblesByPregnancyCount();
-					jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
-				}
-			)
-		);
-		sortingBar.append(App.UI.DOM.generateLinksStrip(linkArray));
-		el.append(sortingBar);
-	}
+	function mothers() {
+		const el = new DocumentFragment();
+		let r = [];
+		/*
+		** With hundreds of slaves, navigating the Incubator room was giving me as much of a headache as other lists.
+		** So, I borrowed the sorting list and dropped a few options here.
+		*/
+		if (0 < _SL) {
+			const sortingBar = document.createElement("div");
 
-	const qlIncubator = document.createElement("div");
-	qlIncubator.id = "qlIncubator";
-	for (const slave of V.slaves) {
-		const {
-			His, his
-		} = getPronouns(slave);
-		if (slave.preg > 0 && slave.broodmother === 0 && slave.pregKnown === 1 && slave.eggType === "human") {
-			if ((slave.assignment === "work in the dairy" && V.dairyPregSetting > 0) || slave.assignment === "be your agent" || slave.assignment === "live with your agent") {
-			} else {
-				const _slaveId = "slave-" + slave.ID;
-				const _WL = slave.womb.length;
-				const _reservedIncubator = WombReserveCount(slave, "incubator");
-				const _reservedNursery = WombReserveCount(slave, "nursery");
-				const _pregWeek = slave.pregWeek;
-				const _slaveName = SlaveFullName(slave);
-				const momDiv = document.createElement("div");
-				momDiv.id = _slaveId;
-				momDiv.classList.add("possible");
+			V.sortIncubatorList = V.sortIncubatorList || 'Unsorted';
+			App.UI.DOM.appendNewElement("span", sortingBar, "Sorting: ", "note");
 
-				linkArray = [];
-				const choices = document.createElement("div");
-				choices.classList.add("choices");
-				// <div class="possible" @id="_slaveId" @data-preg - count="_WL" @data-reserved - spots="_reservedIncubator" @data-preg - week="_pregWeek" @data-name="_slaveName" >
-				r.push(`${App.UI.slaveDescriptionDialog(slave)}`);
-				r.push(` is ${slave.pregWeek} week`);
-				if (slave.pregWeek > 1) {
-					r.push(`s`);
-				}
-				r.push(` pregnant with`);
-				if (slave.pregSource === 0 || slave.preg <= 5) {
-					r.push(`someone's`);
-					if (slave.preg <= 5) {
-						r.push(`, though it is too early to tell whose,`);
+			let qlIncubatorSort = document.createElement("span");
+			qlIncubatorSort.classList.add("bold");
+			qlIncubatorSort.id = "qlIncubatorSort";
+			qlIncubatorSort.append(V.sortIncubatorList);
+			sortingBar.append(`.`);
+
+			linkArray = [];
+			linkArray.push(
+				App.UI.DOM.link(
+					"Sort by Name",
+					() => {
+						V.sortIncubatorList = 'Name';
+						sortIncubatorPossiblesByName();
+						jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
 					}
-				} else if (slave.pregSource === -1) {
-					r.push(`your`);
-				} else if (slave.pregSource === -2) {
-					r.push(`a citizen's`);
-				} else if (slave.pregSource === -3) {
-					r.push(`your Master's`);
-				} else if (slave.pregSource === -4) {
-					r.push(`another arcology owner's`);
-				} else if (slave.pregSource === -5) {
-					r.push(`your client's`);
-				} else if (slave.pregSource === -6) {
-					r.push(`the Societal Elite's`);
-				} else if (slave.pregSource === -7) {
-					r.push(`the lab's`);
-				} else if (slave.pregSource === -9) {
-					r.push(`the Futanari Sisters'`);
-				} else {
-					let _t = V.slaveIndices[slave.pregSource];
-					if (_t) {
-						r.push(`${V.slaves[_t].slaveName}'s`);
+				)
+			);
+			linkArray.push(
+				App.UI.DOM.link(
+					"Sort by Reserved Incubator Spots",
+					() => {
+						V.sortIncubatorList = 'Reserved Incubator Spots';
+						sortIncubatorPossiblesByReservedSpots();
+						jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
 					}
-				}
-				if (_WL > 1) {
-					r.push(`${_WL} babies`);
+				)
+			);
+			linkArray.push(
+				App.UI.DOM.link(
+					"Sort by Pregnancy Week",
+					() => {
+						V.sortIncubatorList = 'Reserved Incubator Spots';
+						sortIncubatorPossiblesByPregnancyWeek();
+						jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
+					}
+				)
+			);
+			linkArray.push(
+				App.UI.DOM.link(
+					"Sort by Number of Children",
+					() => {
+						V.sortIncubatorList = 'Reserved Incubator Spots';
+						sortIncubatorPossiblesByPregnancyCount();
+						jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
+					}
+				)
+			);
+			sortingBar.append(App.UI.DOM.generateLinksStrip(linkArray));
+			el.append(sortingBar);
+		}
+
+		const qlIncubator = document.createElement("div");
+		qlIncubator.id = "qlIncubator";
+		for (const slave of V.slaves) {
+			const {
+				His, his
+			} = getPronouns(slave);
+			if (slave.preg > 0 && slave.broodmother === 0 && slave.pregKnown === 1 && slave.eggType === "human") {
+				if ((slave.assignment === "work in the dairy" && V.dairyPregSetting > 0) || slave.assignment === "be your agent" || slave.assignment === "live with your agent") {
 				} else {
-					r.push(`baby`);
-				}
-				r.push(`.`);
-				if (_reservedIncubator > 0) {
-					let _childrenReserved = 1;
-					if (_WL === 1) {
-						r.push(`${His} child will be placed in ${V.incubatorName}.`);
-					} else if (_reservedIncubator < _WL) {
-						r.push(`${_reservedIncubator} of ${his} children will be placed in ${V.incubatorName}.`);
-					} else if (_WL === 2) {
-						r.push(`Both of ${his} children will be placed in ${V.incubatorName}.`);
+					const _slaveId = "slave-" + slave.ID;
+					const _WL = slave.womb.length;
+					const _reservedIncubator = WombReserveCount(slave, "incubator");
+					const _reservedNursery = WombReserveCount(slave, "nursery");
+					const _pregWeek = slave.pregWeek;
+					const _slaveName = SlaveFullName(slave);
+					const momDiv = document.createElement("div");
+					momDiv.id = _slaveId;
+					momDiv.classList.add("possible");
+
+					linkArray = [];
+					const choices = document.createElement("div");
+					choices.classList.add("choices");
+					// <div class="possible" @id="_slaveId" @data-preg - count="_WL" @data-reserved - spots="_reservedIncubator" @data-preg - week="_pregWeek" @data-name="_slaveName" >
+					r.push(`${App.UI.slaveDescriptionDialog(slave)}`);
+					r.push(` is ${slave.pregWeek} week`);
+					if (slave.pregWeek > 1) {
+						r.push(`s`);
+					}
+					r.push(` pregnant with`);
+					if (slave.pregSource === 0 || slave.preg <= 5) {
+						r.push(`someone's`);
+						if (slave.preg <= 5) {
+							r.push(`, though it is too early to tell whose,`);
+						}
+					} else if (slave.pregSource === -1) {
+						r.push(`your`);
+					} else if (slave.pregSource === -2) {
+						r.push(`a citizen's`);
+					} else if (slave.pregSource === -3) {
+						r.push(`your Master's`);
+					} else if (slave.pregSource === -4) {
+						r.push(`another arcology owner's`);
+					} else if (slave.pregSource === -5) {
+						r.push(`your client's`);
+					} else if (slave.pregSource === -6) {
+						r.push(`the Societal Elite's`);
+					} else if (slave.pregSource === -7) {
+						r.push(`the lab's`);
+					} else if (slave.pregSource === -9) {
+						r.push(`the Futanari Sisters'`);
 					} else {
-						r.push(`All ${_reservedIncubator} of ${his} children will be placed in ${V.incubatorName}.`);
+						let _t = V.slaveIndices[slave.pregSource];
+						if (_t) {
+							r.push(`${V.slaves[_t].slaveName}'s`);
+						}
 					}
-					if ((_reservedIncubator + _reservedNursery < _WL) && (V.reservedChildren < _freeTanks)) {
-						if (V.pregnancyMonitoringUpgrade === 1) {
+					if (_WL > 1) {
+						r.push(`${_WL} babies`);
+					} else {
+						r.push(`baby`);
+					}
+					r.push(`.`);
+					if (_reservedIncubator > 0) {
+						_childrenReserved = 1;
+						if (_WL === 1) {
+							r.push(`${His} child will be placed in ${V.incubatorName}.`);
+						} else if (_reservedIncubator < _WL) {
+							r.push(`${_reservedIncubator} of ${his} children will be placed in ${V.incubatorName}.`);
+						} else if (_WL === 2) {
+							r.push(`Both of ${his} children will be placed in ${V.incubatorName}.`);
+						} else {
+							r.push(`All ${_reservedIncubator} of ${his} children will be placed in ${V.incubatorName}.`);
+						}
+						if ((_reservedIncubator + _reservedNursery < _WL) && (V.reservedChildren < _freeTanks)) {
+							if (V.pregnancyMonitoringUpgrade === 1) {
+								linkArray.push(
+									App.UI.DOM.link(
+										`Inspect pregnancy`,
+										() => {
+											V.AS = slave.ID;
+										},
+										[],
+										`Analyze Pregnancy`
+									)
+								);
+							}
 							linkArray.push(
 								App.UI.DOM.link(
-									`Inspect pregnancy`,
+									`Keep another child`,
 									() => {
-										V.AS = slave.ID;
+										WombAddToGenericReserve(slave, 'incubator', 1);
 									},
 									[],
-									`Analyze Pregnancy`
+									`Incubator`
 								)
 							);
-						}
-						linkArray.push(
-							App.UI.DOM.link(
-								`Keep another child`,
-								() => {
-									WombAddToGenericReserve(slave, 'incubator', 1);
-								},
-								[],
-								`Incubator`
-							)
-						);
-						if (_reservedIncubator > 0) {
+							if (_reservedIncubator > 0) {
+								linkArray.push(
+									App.UI.DOM.link(
+										`Keep one less child`,
+										() => {
+											WombCleanGenericReserve(slave, 'incubator', 1);
+										},
+										[],
+										`Incubator`
+									)
+								);
+							}
+							if (_reservedIncubator > 1) {
+								linkArray.push(
+									App.UI.DOM.link(
+										`Keep none of ${his} children`,
+										() => {
+											WombCleanGenericReserve(slave, 'incubator', 9999);
+										},
+										[],
+										`Incubator`
+									)
+								);
+							}
+							if ((V.reservedChildren + _WL - _reservedIncubator) <= _freeTanks) {
+								linkArray.push(
+									App.UI.DOM.link(
+										`Keep the rest of ${his} children`,
+										() => {
+											WombAddToGenericReserve(slave, 'incubator', 9999);
+										},
+										[],
+										`Incubator`
+									)
+								);
+							}
+						} else if ((_reservedIncubator === _WL) || (V.reservedChildren === _freeTanks) || (_reservedIncubator + _reservedNursery === _WL)) {
+							if (V.pregnancyMonitoringUpgrade === 1) {
+								linkArray.push(
+									App.UI.DOM.link(
+										`Inspect pregnancy`,
+										() => {
+											V.AS = slave.ID;
+										},
+										[],
+										`Analyze Pregnancy`
+									)
+								);
+							}
 							linkArray.push(
 								App.UI.DOM.link(
 									`Keep one less child`,
@@ -293,32 +336,89 @@ App.Facility.Incubator = function() {
 									`Incubator`
 								)
 							);
+							if (_reservedIncubator > 1) {
+								linkArray.push(
+									App.UI.DOM.link(
+										`Keep none of ${his} children`,
+										() => {
+											WombCleanGenericReserve(slave, 'incubator', 9999);
+										},
+										[],
+										`Incubator`
+									)
+								);
+							}
 						}
-						if (_reservedIncubator > 1) {
+					} else if ((V.reservedChildren < _freeTanks)) {
+						if (_WL - _reservedNursery === 0) {
+							r.push(App.UI.DOM.makeElement("span", `${His} children are already reserved for V.nurseryName`, "note"));
+							if (V.pregnancyMonitoringUpgrade === 1) {
+								linkArray.push(
+									App.UI.DOM.link(
+										`Inspect pregnancy`,
+										() => {
+											V.AS = slave.ID;
+										},
+										[],
+										`Analyze Pregnancy`
+									)
+								);
+							}
 							linkArray.push(
 								App.UI.DOM.link(
-									`Keep none of ${his} children`,
+									`Keep ${his} ${((_WL > 1) ? "children" : "child")} here instead`,
 									() => {
-										WombCleanGenericReserve(slave, 'incubator', 9999);
+										WombChangeReserveType(slave, 'nursery', 'incubator');
 									},
 									[],
 									`Incubator`
 								)
 							);
-						}
-						if ((V.reservedChildren + _WL - _reservedIncubator) <= _freeTanks) {
+						} else {
+							r.push(`You have`);
+							if (_freeTanks === 1) {
+								r.push(`an <span class="lime"> available aging tank.</span>`);
+							} else {
+								r.push(`<span class="lime"> available aging tanks.</span>`);
+							}
+							if (V.pregnancyMonitoringUpgrade === 1) {
+								if (V.pregnancyMonitoringUpgrade === 1) {
+									linkArray.push(
+										App.UI.DOM.link(
+											`Inspect pregnancy`,
+											() => {
+												V.AS = slave.ID;
+											},
+											[],
+											`Analyze Pregnancy`
+										)
+									);
+								}
+							}
 							linkArray.push(
 								App.UI.DOM.link(
-									`Keep the rest of ${his} children`,
+									`Keep ${(_WL > 1) ? "a" : "the"} child`,
 									() => {
-										WombAddToGenericReserve(slave, 'incubator', 9999);
+										WombAddToGenericReserve(slave, 'incubator', 1);
 									},
 									[],
 									`Incubator`
 								)
 							);
+							if ((_WL > 1) && (V.reservedChildren + _WL - _reservedIncubator) <= _freeTanks) {
+								linkArray.push(
+									App.UI.DOM.link(
+										`Keep all of ${his} children`,
+										() => {
+											WombAddToGenericReserve(slave, 'incubator', 9999);
+										},
+										[],
+										`Incubator`
+									)
+								);
+							}
 						}
-					} else if ((_reservedIncubator === _WL) || (V.reservedChildren === _freeTanks) || (_reservedIncubator + _reservedNursery === _WL)) {
+					} else if (V.reservedChildren === _freeTanks) {
 						if (V.pregnancyMonitoringUpgrade === 1) {
 							linkArray.push(
 								App.UI.DOM.link(
@@ -331,192 +431,131 @@ App.Facility.Incubator = function() {
 								)
 							);
 						}
+						linkArray.push(App.UI.DOM.makeElement("span", `You have <span class= "red"> no room for ${his} offspring.</span>`));
+					}
+					_eligibility = 1;
+
+					App.Events.addNode(momDiv, r, "div");
+					choices.append(App.UI.DOM.generateLinksStrip(linkArray));
+					momDiv.append(choices);
+					qlIncubator.append(momDiv);
+				}
+			}
+		}
+		el.append(qlIncubator);
+		$('div#qlIncubator').ready(sortIncubatorPossiblesByPreviousSort);
+		if (_eligibility === 0) {
+			App.UI.DOM.appendNewElement("div", el, `You have no pregnant slaves bearing eligible children.`, "note");
+		}
+		if (V.PC.pregKnown === 1 && (V.arcologies[0].FSRestart === "unset" || V.eugenicsFullControl === 1 || (V.PC.pregSource !== -1 && V.PC.pregSource !== -6))) {
+			const _WL = V.PC.womb.length;
+			const _reservedIncubator = WombReserveCount(V.PC, "incubator");
+			const _reservedNursery = WombReserveCount(V.PC, "nursery");
+			// <br>
+			r.push(`''<span class="pink">You're V.PC.pregWeek week`);
+			if (V.PC.pregWeek > 1) {
+				r.push(`s`);
+			}
+			r.push(` pregnant</span > '' and going to have`);
+			if (_WL === 1) {
+				r.push(`a baby.`);
+			} else {
+				r.push(`${pregNumberName(_WL, 2)}.`);
+			}
+			linkArray = [];
+			const choices = document.createElement("div");
+			choices.classList.add("choices");
+			if (_reservedIncubator > 0) {
+				_childrenReserved = 1;
+				if (_WL === 1) {
+					r.push(`Your child will be placed in ${V.incubatorName}.`);
+				} else if (_reservedIncubator < _WL) {
+					r.push(`${_reservedIncubator} of your children will be placed in ${V.incubatorName}.`);
+				} else if (_WL === 2) {
+					r.push(`Both of your children will be placed in ${V.incubatorName}.`);
+				} else {
+					r.push(`All ${_reservedIncubator} of your children will be placed in ${V.incubatorName}.`);
+				}
+
+				if ((_reservedIncubator < _WL) && (V.reservedChildren < _freeTanks) && (_reservedIncubator - _reservedNursery > 0)) {
+					if (V.pregnancyMonitoringUpgrade === 1) {
 						linkArray.push(
 							App.UI.DOM.link(
-								`Keep one less child`,
-								() => {
-									WombCleanGenericReserve(slave, 'incubator', 1);
-								},
+								`Inspect pregnancy`,
+								() => { },
 								[],
-								`Incubator`
+								`Analyze PC Pregnancy`
+							)
+						);
+					}
+					linkArray.push(
+						App.UI.DOM.link(
+							`Keep another child`,
+							() => {
+								WombAddToGenericReserve(V.PC, 'incubator', 1);
+							},
+							[],
+							`Incubator`
+						)
+					);
+					if (_reservedIncubator > 0) {
+						linkArray.push(
+							App.UI.DOM.link(
+								`Keep one less child`,
+								() => {
+									WombCleanGenericReserve(V.PC, 'incubator', 1);
+								},
+								[],
+								`Incubator`
 							)
 						);
-						if (_reservedIncubator > 1) {
-							linkArray.push(
-								App.UI.DOM.link(
-									`Keep none of ${his} children`,
-									() => {
-										WombCleanGenericReserve(slave, 'incubator', 9999);
-									},
-									[],
-									`Incubator`
-								)
-							);
-						}
 					}
-				} else if ((V.reservedChildren < _freeTanks)) {
-					if (_WL - _reservedNursery === 0) {
-						r.push(App.UI.DOM.makeElement("span", `${His} children are already reserved for V.nurseryName`, "note"));
-						if (V.pregnancyMonitoringUpgrade === 1) {
-							linkArray.push(
-								App.UI.DOM.link(
-									`Inspect pregnancy`,
-									() => {
-										V.AS = slave.ID;
-									},
-									[],
-									`Analyze Pregnancy`
-								)
-							);
-						}
+					if (_reservedIncubator > 1) {
 						linkArray.push(
 							App.UI.DOM.link(
-								`Keep ${his} ${((_WL > 1) ? "children" : "child")} here instead`,
+								`Keep none of your children`,
 								() => {
-									WombChangeReserveType(slave, 'nursery', 'incubator');
+									WombCleanGenericReserve(V.PC, 'incubator', 9999);
 								},
 								[],
 								`Incubator`
 							)
 						);
-					} else {
-						r.push(`You have`);
-						if (_freeTanks === 1) {
-							r.push(`an <span class="lime"> available aging tank.</span>`);
-						} else {
-							r.push(`<span class="lime"> available aging tanks.</span>`);
-						}
-						if (V.pregnancyMonitoringUpgrade === 1) {
-							if (V.pregnancyMonitoringUpgrade === 1) {
-								linkArray.push(
-									App.UI.DOM.link(
-										`Inspect pregnancy`,
-										() => {
-											V.AS = slave.ID;
-										},
-										[],
-										`Analyze Pregnancy`
-									)
-								);
-							}
-						}
+					}
+					if ((V.reservedChildren + _WL - _reservedIncubator) <= _freeTanks) {
 						linkArray.push(
 							App.UI.DOM.link(
-								`Keep ${(_WL > 1) ? "a" : "the"} child`,
+								`Keep the rest of your children`,
 								() => {
-									WombAddToGenericReserve(slave, 'incubator', 1);
+									WombAddToGenericReserve(V.PC, 'incubator', 9999);
 								},
 								[],
 								`Incubator`
 							)
 						);
-						if ((_WL > 1) && (V.reservedChildren + _WL - _reservedIncubator) <= _freeTanks) {
-							linkArray.push(
-								App.UI.DOM.link(
-									`Keep all of ${his} children`,
-									() => {
-										WombAddToGenericReserve(slave, 'incubator', 9999);
-									},
-									[],
-									`Incubator`
-								)
-							);
-						}
 					}
-				} else if (V.reservedChildren === _freeTanks) {
+				} else if ((_reservedIncubator === _WL) || (V.reservedChildren === _freeTanks) || (_reservedIncubator - _reservedNursery >= 0)) {
 					if (V.pregnancyMonitoringUpgrade === 1) {
 						linkArray.push(
 							App.UI.DOM.link(
 								`Inspect pregnancy`,
-								() => {
-									V.AS = slave.ID;
-								},
+								() => { },
 								[],
-								`Analyze Pregnancy`
+								`Analyze PC Pregnancy`
 							)
 						);
 					}
-					linkArray.push(App.UI.DOM.makeElement("span", `You have <span class= "red"> no room for ${his} offspring.</span>`));
-				}
-				_eligibility = 1;
-
-				App.Events.addNode(momDiv, r, "div");
-				choices.append(App.UI.DOM.generateLinksStrip(linkArray));
-				momDiv.append(choices);
-				qlIncubator.append(momDiv);
-			}
-		}
-	}
-	el.append(qlIncubator);
-	$('div#qlIncubator').ready(sortIncubatorPossiblesByPreviousSort);
-	if (_eligibility === 0) {
-		App.UI.DOM.appendNewElement("div", el, `You have no pregnant slaves bearing eligible children.`, "note");
-	}
-	if (V.PC.pregKnown === 1 && (V.arcologies[0].FSRestart === "unset" || V.eugenicsFullControl === 1 || (V.PC.pregSource !== -1 && V.PC.pregSource !== -6))) {
-		const _WL = V.PC.womb.length;
-		const _reservedIncubator = WombReserveCount(V.PC, "incubator");
-		const _reservedNursery = WombReserveCount(V.PC, "nursery");
-		// <br>
-		r.push(`''<span class="pink">You're V.PC.pregWeek week`);
-		if (V.PC.pregWeek > 1) {
-			r.push(`s`);
-		}
-		r.push(` pregnant</span > '' and going to have`);
-		if (_WL === 1) {
-			r.push(`a baby.`);
-		} else {
-			r.push(`${pregNumberName(_WL, 2)}.`);
-		}
-		linkArray = [];
-		const choices = document.createElement("div");
-		choices.classList.add("choices");
-		if (_reservedIncubator > 0) {
-			let _childrenReserved = 1;
-			if (_WL === 1) {
-				r.push(`Your child will be placed in ${V.incubatorName}.`);
-			} else if (_reservedIncubator < _WL) {
-				r.push(`${_reservedIncubator} of your children will be placed in ${V.incubatorName}.`);
-			} else if (_WL === 2) {
-				r.push(`Both of your children will be placed in ${V.incubatorName}.`);
-			} else {
-				r.push(`All ${_reservedIncubator} of your children will be placed in ${V.incubatorName}.`);
-			}
-
-			if ((_reservedIncubator < _WL) && (V.reservedChildren < _freeTanks) && (_reservedIncubator - _reservedNursery > 0)) {
-				if (V.pregnancyMonitoringUpgrade === 1) {
-					linkArray.push(
-						App.UI.DOM.link(
-							`Inspect pregnancy`,
-							() => { },
-							[],
-							`Analyze PC Pregnancy`
-						)
-					);
-				}
-				linkArray.push(
-					App.UI.DOM.link(
-						`Keep another child`,
-						() => {
-							WombAddToGenericReserve(V.PC, 'incubator', 1);
-						},
-						[],
-						`Incubator`
-					)
-				);
-				if (_reservedIncubator > 0) {
 					linkArray.push(
 						App.UI.DOM.link(
 							`Keep one less child`,
 							() => {
-								WombCleanGenericReserve(V.PC, 'incubator', 1);
+								V.reservedChildren -= 1;
 							},
 							[],
 							`Incubator`
 						)
 					);
-				}
-				if (_reservedIncubator > 1) {
-					linkArray.push(
+					if (_reservedIncubator > 1) {
 						App.UI.DOM.link(
 							`Keep none of your children`,
 							() => {
@@ -524,77 +563,63 @@ App.Facility.Incubator = function() {
 							},
 							[],
 							`Incubator`
-						)
-					);
-				}
-				if ((V.reservedChildren + _WL - _reservedIncubator) <= _freeTanks) {
-					linkArray.push(
-						App.UI.DOM.link(
-							`Keep the rest of your children`,
-							() => {
-								WombAddToGenericReserve(V.PC, 'incubator', 9999);
-							},
-							[],
-							`Incubator`
-						)
-					);
+						);
+					}
 				}
-			} else if ((_reservedIncubator === _WL) || (V.reservedChildren === _freeTanks) || (_reservedIncubator - _reservedNursery >= 0)) {
-				if (V.pregnancyMonitoringUpgrade === 1) {
-					linkArray.push(
-						App.UI.DOM.link(
-							`Inspect pregnancy`,
-							() => { },
-							[],
-							`Analyze PC Pregnancy`
+			} else if (V.reservedChildren < _freeTanks) {
+				if (_WL - _reservedNursery === 0) {
+					r.push(
+						App.UI.DOM.makeElement(
+							"span",
+							`Your ${(_WL === 1) ? `child is` : `children are`} already reserved for ${V.nurseryName}`,
+							"note"
 						)
 					);
-				}
-				linkArray.push(
 					App.UI.DOM.link(
-						`Keep one less child`,
+						`Keep your ${(_WL === 1) ? `child` : `children`} here instead`,
 						() => {
-							V.reservedChildren -= 1;
+							WombChangeReserveType(V.PC, 'nursery', 'incubator');
 						},
 						[],
 						`Incubator`
-					)
-				);
-				if (_reservedIncubator > 1) {
+					);
+				} else {
+					r.push(``);
+					if (_freeTanks === 1) {
+						r.push(`You have an <span class="lime"> available aging tank.</span>`);
+					} else {
+						r.push(`You have <span class="lime"> available aging tanks.</span>`);
+					}
+					if (V.pregnancyMonitoringUpgrade === 1) {
+						linkArray.push(
+							App.UI.DOM.link(
+								`Inspect pregnancy`,
+								() => { },
+								[],
+								`Analyze PC Pregnancy`
+							)
+						);
+					}
 					App.UI.DOM.link(
-						`Keep none of your children`,
+						`Keep ${(_WL > 1) ? `a` : `your`} child`,
 						() => {
-							WombCleanGenericReserve(V.PC, 'incubator', 9999);
+							WombAddToGenericReserve(V.PC, 'incubator', 1);
 						},
 						[],
 						`Incubator`
 					);
+					if ((_WL > 1) && (V.reservedChildren + _WL - _reservedIncubator) <= _freeTanks) {
+						App.UI.DOM.link(
+							`Keep all of your children|Incubator`,
+							() => {
+								WombAddToGenericReserve(V.PC, 'incubator', 9999);
+							},
+							[],
+							`Incubator`
+						);
+					}
 				}
-			}
-		} else if (V.reservedChildren < _freeTanks) {
-			if (_WL - _reservedNursery === 0) {
-				r.push(
-					App.UI.DOM.makeElement(
-						"span",
-						`Your ${(_WL === 1) ? `child is` : `children are`} already reserved for ${V.nurseryName}`,
-						"note"
-					)
-				);
-				App.UI.DOM.link(
-					`Keep your ${(_WL === 1) ? `child` : `children`} here instead`,
-					() => {
-						WombChangeReserveType(V.PC, 'nursery', 'incubator');
-					},
-					[],
-					`Incubator`
-				);
-			} else {
-				r.push(``);
-				if (_freeTanks === 1) {
-					r.push(`You have an <span class="lime"> available aging tank.</span>`);
-				} else {
-					r.push(`You have <span class="lime"> available aging tanks.</span>`);
-				}
+			} else if (V.reservedChildren === _freeTanks) {
 				if (V.pregnancyMonitoringUpgrade === 1) {
 					linkArray.push(
 						App.UI.DOM.link(
@@ -605,62 +630,34 @@ App.Facility.Incubator = function() {
 						)
 					);
 				}
+				linkArray.push(App.UI.DOM.makeElement("span", `You have <span class= "red"> no room for your offspring.</span>`));
+			}
+			App.Events.addNode(el, r, "div");
+			choices.append(App.UI.DOM.generateLinksStrip(linkArray));
+			el.append(choices);
+		}
+
+		if (V.reservedChildren !== 0 || _childrenReserved === 1) {
+			/* the oops I made it go negative somehow button */
+			App.UI.DOM.appendNewElement(
+				"div",
+				el,
 				App.UI.DOM.link(
-					`Keep ${(_WL > 1) ? `a` : `your`} child`,
+					"Clear all reserved children",
 					() => {
-						WombAddToGenericReserve(V.PC, 'incubator', 1);
+						for (const slave of V.slaves) {
+							if (WombReserveCount(slave, "incubator") !== 0) {
+								WombCleanGenericReserve(slave, 'incubator', 9999);
+							}
+							WombCleanGenericReserve(V.PC, 'incubator', 9999);
+						}
 					},
 					[],
-					`Incubator`
-				);
-				if ((_WL > 1) && (V.reservedChildren + _WL - _reservedIncubator) <= _freeTanks) {
-					App.UI.DOM.link(
-						`Keep all of your children|Incubator`,
-						() => {
-							WombAddToGenericReserve(V.PC, 'incubator', 9999);
-						},
-						[],
-						`Incubator`
-					);
-				}
-			}
-		} else if (V.reservedChildren === _freeTanks) {
-			if (V.pregnancyMonitoringUpgrade === 1) {
-				linkArray.push(
-					App.UI.DOM.link(
-						`Inspect pregnancy`,
-						() => { },
-						[],
-						`Analyze PC Pregnancy`
-					)
-				);
-			}
-			linkArray.push(App.UI.DOM.makeElement("span", `You have <span class= "red"> no room for your offspring.</span>`));
+					"Incubator"
+				)
+			);
 		}
-		App.Events.addNode(el, r, "div");
-		choices.append(App.UI.DOM.generateLinksStrip(linkArray));
-		el.append(choices);
-	}
-
-	if (V.reservedChildren !== 0 || _childrenReserved === 1) {
-		/* the oops I made it go negative somehow button */
-		App.UI.DOM.appendNewElement(
-			"div",
-			el,
-			App.UI.DOM.link(
-				"Clear all reserved children",
-				() => {
-					for (const slave of V.slaves) {
-						if (WombReserveCount(slave, "incubator") !== 0) {
-							WombCleanGenericReserve(slave, 'incubator', 9999);
-						}
-						WombCleanGenericReserve(V.PC, 'incubator', 9999);
-					}
-				},
-				[],
-				"Incubator"
-			)
-		);
+		return el;
 	}
 
 	function tankSettings() {
@@ -1047,8 +1044,8 @@ App.Facility.Incubator = function() {
 				const p = document.createElement("p");
 				let r = [];
 				const {
-					He, Him, His,
-					he, him, his, girl
+					He, His,
+					he, him, his
 				} = getPronouns(V.tanks[i]);
 				r.push(App.UI.DOM.makeElement("span", V.tanks[i].slaveName, "pink"));
 				r.push(`occupies this tank.`);
@@ -1182,21 +1179,15 @@ App.Facility.Incubator = function() {
 						r.push(`${His} belly slightly bulges and rhythmically expands and contracts to the cycles of ${his} stimulation as the incubator inflates and deflates expandable sacks on its probes within ${his} body cavity. With the correct serums applied, this should allow it to stretch the skin, tissues, and muscles of ${his} belly to better to tolerate the displacement of internal organs caused by fetal growth.`);
 					}
 				}
+				App.Events.addNode(p, r, "div");
 				if (V.tanks[i].growTime <= 0) {
 					V.readySlaves = 1;
-					// <br>
-					r.push(`${He} is ready to be released from ${his} tank.`);
+					appendRow(p, `${He} is ready to be released from ${his} tank.`);
 				} else {
 					const _weekDisplay = Math.round(V.tanks[i].growTime / V.incubatorUpgradeSpeed);
-					// <br>
-					r.push(`${His} growth is currently being accelerated. ${He} will be ready for release in about _weekDisplay week`);
-
-					if (_weekDisplay > 1) {
-						r.push(`s`);
-					}
-					r.push(`.`);
+					appendRow(p, `${His} growth is currently being accelerated. ${He} will be ready for release in about ${_weekDisplay}  ${(_weekDisplay > 1) ? `weeks` : `week`}.`);
 				}
-				// <br>
+				r = [];
 				if (V.tanks[i].tankBaby !== 3) {
 					r.push(`The tank is imprinting ${him} with basic life and sexual skills, though ${he} will still be very naïve and inexperienced on release.`);
 					if (V.tanks[i].tankBaby === 2) {
@@ -1207,8 +1198,9 @@ App.Facility.Incubator = function() {
 				} else {
 					r.push(`The tank keeps ${him} a braindead husk on a complete life-support.`);
 				}
+				App.Events.addNode(el, r, "div");
+
 				if (V.incubatorUpgradeWeight === 1) {
-					// <br>
 					if (V.incubatorWeightSetting === 1) {
 						r.push(`${His} weight is not being properly managed, saving costs but likely causing excessive weight gain.`);
 					} else if (V.incubatorWeightSetting === 2) {
@@ -1220,35 +1212,33 @@ App.Facility.Incubator = function() {
 				if (V.incubatorUpgradeMuscles === 1) {
 					// <br>
 					if (V.incubatorMusclesSetting === 2) {
-						r.push(`${His} strength levels are purposefully set higher than recommended; ${he} is likely to have excessive musculature.`);
+						appendRow(p, `${His} strength levels are purposefully set higher than recommended; ${he} is likely to have excessive musculature.`);
 					} else if (V.incubatorMusclesSetting === 1) {
-						r.push(`${His} musculature is being carefully managed; ${he} will be released with near normal strength.`);
+						appendRow(p, `${His} musculature is being carefully managed; ${he} will be released with near normal strength.`);
 					} else if (V.incubatorMusclesSetting === 0) {
-						r.push(`Strength management systems are offline; ${he} will likely be released extremely weak.`);
+						appendRow(p, `Strength management systems are offline; ${he} will likely be released extremely weak.`);
 					}
 				}
 				if (V.incubatorUpgradeGrowthStims === 1) {
-					// <br>
 					if (V.incubatorGrowthStimsSetting === 2) {
-						r.push(`${He} is being injected with higher than recommended doses of stimulants; ${he} is likely to be much taller than expected.`);
+						appendRow(p, `${He} is being injected with higher than recommended doses of stimulants; ${he} is likely to be much taller than expected.`);
 					} else if (V.incubatorGrowthStimsSetting === 1) {
-						r.push(`${He} is injected with the recommended dosage of stimulants; ${he} will grow to ${his} full expected height.`);
+						appendRow(p, `${He} is injected with the recommended dosage of stimulants; ${he} will grow to ${his} full expected height.`);
 					} else if (V.incubatorGrowthStimsSetting === 0) {
-						r.push(`Growth stimulant injection systems are offline; ${he} will develop normally.`);
+						appendRow(p, `Growth stimulant injection systems are offline; ${he} will develop normally.`);
 					}
 				}
 				if (V.incubatorUpgradeReproduction === 1) {
-					// <br>
 					if (V.incubatorReproductionSetting === 2) {
-						r.push(`${His} hormone levels are purposefully set higher than recommended; ${his} reproductive systems are likely to be over-active.`);
+						appendRow(p, `${His} hormone levels are purposefully set higher than recommended; ${his} reproductive systems are likely to be over-active.`);
 					} else if (V.incubatorReproductionSetting === 1) {
-						r.push(`${His} hormone levels are being carefully managed; ${he} will be released with fully functional reproductive organs.`);
+						appendRow(p, `${His} hormone levels are being carefully managed; ${he} will be released with fully functional reproductive organs.`);
 					} else if (V.incubatorReproductionSetting === 0) {
-						r.push(`Reproduction management systems are offline; ${he} will undergo normal puberty.`);
+						appendRow(p, `Reproduction management systems are offline; ${he} will undergo normal puberty.`);
 					}
 					if ((V.incubatorPregAdaptationSetting === 1 && V.tanks[i].genes === "XX") || (V.incubatorPregAdaptationSetting === 2 && V.tanks[i].genes === "XY") || V.incubatorPregAdaptationSetting === 3) {
 						/* Should be visible only after incubatorUpgradeReproduction is installed and activated*/
-						// <br>
+						r = [];
 						r.push(`${His} reproductive organs are getting `);
 						if (V.tanks[i].incubatorPregAdaptationPower === 1) {
 							r.push(`an advanced`);
@@ -1260,29 +1250,42 @@ App.Facility.Incubator = function() {
 							r.push(`a standard`);
 						}
 						r.push(` course of mechanical and hormonal therapy to become adapted for future use.`);
+						App.Events.addNode(p, r, "div");
 					}
 				}
-				// <br>
 				r.push(`Rename ${him}: `);
-				// <<textbox "_tempName" _tempName >>
-				// r.push(` [[Apply |Incubator][${V.tanks[i].slaveName} =${_tempName]]} // Given name only //`);
+				r.push(
+					App.UI.DOM.makeTextBox(
+						V.tanks[i].slaveName,
+						(v) => {
+							V.tanks[i].slaveName = v;
+							Engine.play("Incubator");
+						}
+					)
+				);
+				r.push(App.UI.DOM.makeElement("span", `Given name only`, `note`));
+				App.Events.addNode(p, r, "div");
+
 				if (V.cheatMode === 1) {
-					// <br>
-					/*
-					''Cheatmode: ''
-						<< link "Retrieve immediately" >>
-							V.incubatorOldID = V.tanks[i].ID;
-					V.readySlave = V.tanks[i];
-					V.tanks.splice(i, 1);
-						<< goto "Incubator Retrieval Workaround" >>
-					<< /link>>
-					*/
+					row = document.createElement("div");
+					App.UI.DOM.appendNewElement("span", row, `Cheatmode: `, "bold");
+					row.append(
+						App.UI.DOM.link(
+							"Retrieve immediately",
+							() => {
+								V.incubatorOldID = V.tanks[i].ID;
+								V.readySlave = V.tanks[i];
+								V.tanks.splice(i, 1);
+							},
+							[],
+							"Incubator Retrieval Workaround"
+						)
+					);
+					p.append(row);
 				}
-				if ((V.incubatorUpgradeOrgans === 1) && (V.tanks[i].tankBaby != 3)) {
-					// <br>
+				if ((V.incubatorUpgradeOrgans === 1) && (V.tanks[i].tankBaby !== 3)) {
 					r.push(`You can extract a sample and prepare a new organ for ${him} to be implanted once ${he} exits ${his} tank.`);
-					let _newOrgan = 0;
-					const tankOrgans = {
+					V.tankOrgans = { // Global to survive refresh.  Can be improved
 						ovaries: 0,
 						penis: 0,
 						testicles: 0,
@@ -1293,22 +1296,22 @@ App.Facility.Incubator = function() {
 					for (let _i = 0; _i < V.incubatorOrgans.length;) {
 						if (V.tanks[i].ID === V.incubatorOrgans[_i].ID) {
 							if (V.incubatorOrgans[_i].type === "ovaries") {
-								tankOrgans.ovaries = 1;
+								V.tankOrgans.ovaries = 1;
 							}
 							if (V.incubatorOrgans[_i].type === "testicles") {
-								tankOrgans.testicles = 1;
+								V.tankOrgans.testicles = 1;
 							}
 							if (V.incubatorOrgans[_i].type === "penis") {
-								tankOrgans.penis = 1;
+								V.tankOrgans.penis = 1;
 							}
 							if (V.incubatorOrgans[_i].type === "rightEye") {
-								tankOrgans.rightEye = 1;
+								V.tankOrgans.rightEye = 1;
 							}
 							if (V.incubatorOrgans[_i].type === "leftEye") {
-								tankOrgans.leftEye = 1;
+								V.tankOrgans.leftEye = 1;
 							}
 							if (V.incubatorOrgans[_i].type === "voicebox") {
-								tankOrgans.voicebox = 1;
+								V.tankOrgans.voicebox = 1;
 							}
 						}
 					}
@@ -1318,36 +1321,28 @@ App.Facility.Incubator = function() {
 					} else {
 						r.push(`Being a natural boy, ${he} possesses a functional penis and balls. You can:`);
 					}
-					// <br>
+					App.UI.DOM.appendNewElement("div", el, r.join(" "));
+
+					r = [];
 					if (V.tanks[i].ovaries === 0) {
-						if (tankOrgans.ovaries !== 1) {
-							/* << link "Prepare ovaries">>
-								App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "ovaries");
-								<<goto "Incubator">>
-							<</link>>*/
+						if (V.tankOrgans.ovaries !== 1) {
+							r.push(makeLink("Prepare ovaries", () => { App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "ovaries"); }));
 						} else {
-							r.push(`<span class="detail">Ovaries are already prepared.</span>`);
+							r.push(App.UI.DOM.makeElement("span", `Ovaries are already prepared.`, "detail"));
 						}
 					}
 					if (V.tanks[i].dick === 0) {
-						if (tankOrgans.penis !== 1) {
-							/* << link "Prepare penis">>
-								App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "penis");
-								<<goto "Incubator">>
-							<</link>>*/
+						if (V.tankOrgans.penis !== 1) {
+							r.push(makeLink("Prepare penis", () => { App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "penis"); }));
 						} else {
-							r.push(`<span class="detail">A penis is already prepared.</span>`);
+							r.push(App.UI.DOM.makeElement("span", `A penis is already prepared`, "detail"));
 						}
 					}
 					if (V.tanks[i].balls === 0) {
-						// |
-						if (tankOrgans.testicles !== 1) {
-							/* << link "Prepare testicles">>
-								App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "testicles");
-								<<goto "Incubator">>
-							<</link>>*/
+						if (V.tankOrgans.testicles !== 1) {
+							r.push(makeLink("Prepare testicles", () => { App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "testicles"); }));
 						} else {
-							r.push(`<span class="detail">Testicles are already prepared.</span>`);
+							r.push(App.UI.DOM.makeElement("span", `Testicles are already prepared.`, "detail"));
 						}
 					}
 					const vision = {
@@ -1356,75 +1351,97 @@ App.Facility.Incubator = function() {
 					};
 					if (vision.left === 0 || vision.right === 0) {
 						if (vision.left === 0 && vision.right === 0) {
-							r.push(`${He} appears to be blind in both eyes:`);
+							r.push(App.UI.DOM.makeElement("span", `${He} appears to be blind in both eyes:`));
 						} else if (vision.left === 0) {
-							r.push(`${He} appears to be blind in ${his} left eye:`);
+							r.push(App.UI.DOM.makeElement("span", `${He} appears to be blind in ${his} left eye:`));
 						} else {
-							r.push(`${He} appears to be blind in ${his} right eye:`);
+							r.push(App.UI.DOM.makeElement("span", `${He} appears to be blind in ${his} right eye:`));
 						}
-						if (vision.left === 0 && tankOrgans.leftEye !== 1) {
-							/* << link "Prepare left eye" >>
-									App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "leftEye");
-								<< goto "Incubator" >>
-							<< /link>>*/
+						if (vision.left === 0 && V.tankOrgans.leftEye !== 1) {
+							r.push(makeLink("Prepare left eye", () => { App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "leftEye"); }));
 						}
-						if (vision.right === 0 && tankOrgans.rightEye !== 1) {
-							/* << link "Prepare right eye" >>
-									App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "rightEye");
-								<< goto "Incubator" >>
-							<< /link>>*/
+						if (vision.right === 0 && V.tankOrgans.rightEye !== 1) {
+							r.push(makeLink("Prepare right eye", () => { App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "rightEye"); }));
 						}
 						if (vision.left === 0 && vision.right === 0 && linkArray.length === 2) {
-							/* << link "Prepare both eyes" >>
-									App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "leftEye"), App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "rightEye");
-								<< goto "Incubator" >>
-							<< /link>>*/
+							r.push(
+								makeLink(
+									"Prepare right eye",
+									() => {
+										App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "rightEye");
+										App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "leftEye");
+									}
+								)
+							);
 						}
 						if (vision.left === 0 && vision.right === 0 && linkArray.length === 0) {
-							r.push(` <span class="detail">Both eyes are already prepared.</span>`);
-						} else if (tankOrgans.leftEye === 1) {
-							r.push(` <span class="detail">A left eye is already prepared.</span>`);
-						} else if (tankOrgans.rightEye === 1) {
-							r.push(` <span class="detail">A right eye is already prepared.</span>`);
+							r.push(App.UI.DOM.makeElement("span", `Both eyes are already prepared.`, `detail`));
+						} else if (V.tankOrgans.leftEye === 1) {
+							r.push(App.UI.DOM.makeElement("span", `A left eye is already prepared.`, `detail`));
+						} else if (V.tankOrgans.rightEye === 1) {
+							r.push(App.UI.DOM.makeElement("span", `A right eye is already prepared.`, `detail`));
 						}
 					}
+					App.Events.addNode(p, r, "div");
 					if (V.tanks[i].voice === 0) {
-						// <br>
+						r = [];
 						r.push(`${He} appears to be mute: `);
-						if (tankOrgans.voicebox !== 1) {
-							/* << link "Prepare vocal cords">>
-								App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "voicebox");
-								<<goto "Incubator">>
-							<</link>>*/
+						if (V.tankOrgans.voicebox !== 1) {
+							r.push(makeLink("Prepare vocal cords", () => { App.Medicine.OrganFarm.growIncubatorOrgan(V.tanks[i], "voicebox"); }));
 						} else {
-							r.push(`<span class="detail">Vocal cords are already prepared.</span>`);
+							r.push(App.UI.DOM.makeElement("span", `Vocal cords are already prepared.`, `detail`));
 						}
+						App.Events.addNode(p, r, "div");
 					}
 				}
 			}
 		}
 
-		// <br>
-		// <br>
-
 		if (V.incubatorUpgradeWeight === 1) {
+			row = document.createElement("row");
 			if (V.incubatorWeightSetting === 1) {
-				r.push(`Weight is not being properly managed; excessive weight gain is likely. [[Monitor|Incubator][V.incubatorWeightSetting = 2]] | [[Disable|Incubator][V.incubatorWeightSetting = 0]]`);
-			} else if (V.incubatorWeightSetting === 2) {
-				r.push(`Weight is being carefully managed; children will be released at a healthy weight. [[Estimate only|Incubator][V.incubatorWeightSetting = 1]] | [[Disable|Incubator][V.incubatorWeightSetting = 0]]`);
-			} else if (V.incubatorWeightSetting === 0) {
-				r.push(`Weight management systems are offline; children will likely be malnourished. [[Activate|Incubator][V.incubatorWeightSetting = 2]]`);
+				row.append(`Weight is not being properly managed; excessive weight gain is likely. `);
+			} else {
+				linkArray.push(makeLink(`Estimate only`, () => { V.incubatorWeightSetting = 1; }));
+			}
+
+			if (V.incubatorWeightSetting === 2) {
+				row.append(`Weight is being carefully managed; children will be released at a healthy weight. `);
+			} else {
+				linkArray.push(makeLink(`Activate`, () => { V.incubatorWeightSetting = 2; }));
+			}
+
+			if (V.incubatorWeightSetting === 0) {
+				row.append(`Weight management systems are offline; children will likely be malnourished. `);
+			} else {
+				linkArray.push(makeLink(`Disable`, () => { V.incubatorWeightSetting = 0; }));
 			}
+			row.append(App.UI.DOM.generateLinksStrip(linkArray));
+			el.append(row);
 		}
-		// <br>
+
 		if (V.incubatorUpgradeMuscles === 1) {
+			row = document.createElement("row");
 			if (V.incubatorMusclesSetting === 2) {
-				r.push(`Strength levels are purposefully set higher than recommended; excessive muscle gain is likely. [[Limit|Incubator][V.incubatorMusclesSetting = 1]] | [[Disable|Incubator][V.incubatorMusclesSetting = 0]]`);
-			} else if (V.incubatorMusclesSetting === 1) {
-				r.push(`Musculature is being carefully managed; children will be released with near normal strength. [[Overload|Incubator][V.incubatorMusclesSetting = 2]] | [[Disable|Incubator][V.incubatorMusclesSetting = 0]]`);
-			} else if (V.incubatorMusclesSetting === 0) {
-				r.push(`Strength management systems are offline; children will likely be released extremely weak. [[Activate|Incubator][V.incubatorMusclesSetting = 1]]`);
+				row.append(`Strength levels are purposefully set higher than recommended; excessive muscle gain is likely. `);
+			} else {
+				linkArray.push(makeLink(`Overload`, () => { V.incubatorMusclesSetting = 2; }));
+			}
+
+			if (V.incubatorMusclesSetting === 1) {
+				row.append(`Musculature is being carefully managed; children will be released with near normal strength. `);
+			} else {
+				linkArray.push(makeLink(`Activate`, () => { V.incubatorMusclesSetting = 1; }));
+			}
+
+			if (V.incubatorMusclesSetting === 0) {
+				row.append(`Strength management systems are offline; children will likely be released extremely weak. `);
+			} else {
+				linkArray.push(makeLink(`Disable`, () => { V.incubatorMusclesSetting = 0; }));
 			}
+
+			row.append(App.UI.DOM.generateLinksStrip(linkArray));
+			el.append(row);
 		}
 		if (V.incubatorUpgradeReproduction === 1) {
 			row = document.createElement("row");
@@ -1483,25 +1500,25 @@ App.Facility.Incubator = function() {
 				row = document.createElement("row");
 				linkArray = [];
 				if (V.incubatorPregAdaptationPower === 1) {
-					r.push(`Pregnancy adaptation programmed to advanced procedures. Up to triplet pregnancy should be safe for the subjects.`);
+					row.append(`Pregnancy adaptation programmed to advanced procedures. Up to triplet pregnancy should be safe for the subjects.`);
 				} else {
 					linkArray.push(makeLink(`Advanced`, () => { V.incubatorPregAdaptationSetting = 1; }));
 				}
 
 				if (V.incubatorPregAdaptationPower === 2) {
-					r.push(`Pregnancy adaptation programmed to intensive procedures. Up to octuplet pregnancy should be possible for the subjects. Warning! Side effects may occur to health and mental condition.`);
+					row.append(`Pregnancy adaptation programmed to intensive procedures. Up to octuplet pregnancy should be possible for the subjects. Warning! Side effects may occur to health and mental condition.`);
 				} else {
 					linkArray.push(makeLink(`Intensive`, () => { V.incubatorPregAdaptationSetting = 2; }));
 				}
 
 				if (V.incubatorPregAdaptationPower === 3) {
-					r.push(`Pregnancy adaptation programmed to extreme procedures. Normally unsustainable pregnancies may be possible for some subjects. Actual capacity will vary with genetic and other individual conditions. WARNING! Extreme side effects may occur to health and mental condition!`);
+					row.append(`Pregnancy adaptation programmed to extreme procedures. Normally unsustainable pregnancies may be possible for some subjects. Actual capacity will vary with genetic and other individual conditions. WARNING! Extreme side effects may occur to health and mental condition!`);
 				} else {
 					linkArray.push(makeLink(`Extreme`, () => { V.incubatorPregAdaptationSetting = 3; }));
 				}
 
 				if (V.incubatorPregAdaptationPower === 0) {
-					r.push(`Pregnancy adaptation programmed to standard procedures. Normal pregnancy should be safe for subjects.`);
+					row.append(`Pregnancy adaptation programmed to standard procedures. Normal pregnancy should be safe for subjects.`);
 				} else {
 					linkArray.push(makeLink(`Standard`, () => { V.incubatorPregAdaptationSetting = 0; }));
 				}
@@ -1510,22 +1527,23 @@ App.Facility.Incubator = function() {
 				el.append(row);
 			}
 		}
-		// <br>
+
 		if (V.incubatorUpgradeGrowthStims === 1) {
+			row = document.createElement("row");
 			if (V.incubatorGrowthStimsSetting === 2) {
-				r.push(`Children are injected with higher than recommended doses of stimulants; exceeding expected final height is likely. `);
+				row.append(`Children are injected with higher than recommended doses of stimulants; exceeding expected final height is likely. `);
 			} else {
 				linkArray.push(makeLink(`Overload`, () => { V.incubatorGrowthStimsSetting = 2; }));
 			}
 
 			if (V.incubatorGrowthStimsSetting === 1) {
-				r.push(`Children are injected with the recommended dosage of stimulants; they will grow to their full expected height. `);
+				row.append(`Children are injected with the recommended dosage of stimulants; they will grow to their full expected height. `);
 			} else {
 				linkArray.push(makeLink(`Limit`, () => { V.incubatorGrowthStimsSetting = 1; }));
 			}
 
 			if (V.incubatorGrowthStimsSetting === 0) {
-				r.push(`Growth stimulant injection systems are offline; children will develop normally. `);
+				row.append(`Growth stimulant injection systems are offline; children will develop normally. `);
 			} else {
 				linkArray.push(makeLink(`Disable`, () => { V.incubatorGrowthStimsSetting = 0; }));
 			}
@@ -1576,6 +1594,7 @@ App.Facility.Incubator = function() {
 			)
 		);
 		App.UI.DOM.appendNewElement("span", row, ` Use a noun or similar short phrase`, "note");
+		return el;
 	}
 
 	function makeLink(title, func) {
@@ -1586,4 +1605,32 @@ App.Facility.Incubator = function() {
 			"Incubator"
 		);
 	}
+	/**
+	 *
+	 * @param {string} title
+	 * @param {function():void} func
+	 * @param {string} [passage="Incubator"]
+	 * @param {string} [note]
+	 * @returns {HTMLElement}
+	 */
+	function choice(title, func, passage = "Incubator", note = "") {
+		const div = document.createElement("div");
+		div.classList.add("choices");
+		div.append(
+			App.UI.DOM.link(
+				title,
+				func,
+				[],
+				passage
+			)
+		);
+		if (note) {
+			App.UI.DOM.appendNewElement("span", div, ` ${note}`, "note");
+		}
+		return div;
+	}
+
+	function appendRow(node, text) {
+		return App.UI.DOM.appendNewElement("div", node, text);
+	}
 };
-- 
GitLab