diff --git a/src/facilities/incubator/incubatorUtils.js b/src/facilities/incubator/incubatorUtils.js
index 850b0d40a9c7a91e532aabc1462bf0d1d5f6f567..ad935672e005c9ef8cc9298db78906c8aa6ed97c 100644
--- a/src/facilities/incubator/incubatorUtils.js
+++ b/src/facilities/incubator/incubatorUtils.js
@@ -1,6 +1,6 @@
 /**
  * Sends a child to the Incubator if it has room
- * @param {App.Entity.SlaveState|App.Entity.InfantState} child
+ * @param {App.Entity.SlaveState} child
  */
 App.Facilities.Incubator.newChild = function(child) {
 	let fullAdapt;
diff --git a/src/facilities/nursery/utils/nurseryUtils.js b/src/facilities/nursery/utils/nurseryUtils.js
index 0fccf40c002bb5e67fbb9a0fa515f3628d3a098b..0e6fd6b14352ee5473d0f77d1517769f79d749e2 100644
--- a/src/facilities/nursery/utils/nurseryUtils.js
+++ b/src/facilities/nursery/utils/nurseryUtils.js
@@ -172,16 +172,16 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.dietMilk = 0;
 	child.drugs = "no drugs";
 	if (child.race !== "catgirl") {
-	child.earImplant = 0;
-	child.earShape = "normal";
-	child.earT = "none";
-	child.earTColor = "hairless";
+		child.earImplant = 0;
+		child.earShape = "normal";
+		child.earT = "none";
+		child.earTColor = "hairless";
 	}
 	if (child.race === "catgirl") {
-	child.earImplant = 1;
-	child.earShape = "none";
-	child.earT = "neko";
-	child.earTColor = child.hColor;
+		child.earImplant = 1;
+		child.earShape = "none";
+		child.earT = "neko";
+		child.earTColor = child.hColor;
 	}
 	child.earPiercing = 0;
 	child.earwear = "none";
@@ -199,7 +199,8 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.foreskin = 0;
 	child.geneMods = {
 		NCS: 0,
-		rapidCellGrowth: 0
+		rapidCellGrowth: 0,
+		immortality: 0
 	};
 	child.hLength = jsRandom(30, 70);
 	child.hStyle = "long";
@@ -611,7 +612,7 @@ App.Facilities.Nursery.nameChild = function nameChild(child) {
 
 /**
  * Adds an infant to a the cribs
- * @param {App.Entity.InfantState} child
+ * @param {App.Facilities.Nursery.InfantState} child
  */
 App.Facilities.Nursery.newChild = function newChild(child) {
 	child.ID = generateSlaveID();
diff --git a/src/npc/generate/generateGenetics.js b/src/npc/generate/generateGenetics.js
index 76ba74e08891032503142c55f43461ab610d3db4..2d08e8ada9e42fe362c112eb67a5c16a9b8dce31 100644
--- a/src/npc/generate/generateGenetics.js
+++ b/src/npc/generate/generateGenetics.js
@@ -1194,14 +1194,14 @@ globalThis.generateGenetics = (function() {
  * @param {App.Entity.SlaveState} mother The slave object carrying the child source
  * @param {object} ovum The source for the child, comes from the mother's womb array
  * @param {boolean} [incubator=false] True if the child is destined for the incubator; false if it's destined for the nursery
- * @returns {App.Entity.SlaveState|App.Entity.InfantState}
+ * @returns {App.Entity.SlaveState|App.Facilities.Nursery.InfantState}
  */
 globalThis.generateChild = function(mother, ovum, incubator=false) {
 	let genes = ovum.genetics; // TODO: maybe just argument this? We'll see.
 	let child;
 
 	if (!incubator) { // does extra work for the incubator if defined, otherwise builds a simple object
-		child = {};
+		child = new App.Facilities.Nursery.InfantState();
 		child.genes = genes.gender;
 		setSlaveName(child, genes);
 		setSurname(child, genes);
diff --git a/src/npc/generate/generateNewSlaveJS.js b/src/npc/generate/generateNewSlaveJS.js
index 7c4197e7b9f64fdb40267da599659a3465750b49..bee39efea2630eabff984376fda456b4a86353e9 100644
--- a/src/npc/generate/generateNewSlaveJS.js
+++ b/src/npc/generate/generateNewSlaveJS.js
@@ -1625,6 +1625,7 @@ globalThis.GenerateNewSlave = (function() {
 			}
 		}
 
+		/** @type {Array<FC.BreastShape>} */
 		const BoobShapeGen = [];
 		if (slave.boobs > 250 && slave.boobs < 800) {
 			BoobShapeGen.push("perky");
diff --git a/src/npc/generate/heroCreator.js b/src/npc/generate/heroCreator.js
index ab37ce4457a7b46e27bc31be1b577e7a45684adf..c8bc7a0000dbb50bebefccd7ed9b6ca50372479a 100644
--- a/src/npc/generate/heroCreator.js
+++ b/src/npc/generate/heroCreator.js
@@ -95,7 +95,7 @@ App.Utils.getHeroSlave = function(heroSlave) {
 	}
 	generatePronouns(heroSlave);
 	if (heroSlave.geneMods === undefined) {
-		heroSlave.geneMods = {};
+		heroSlave.geneMods = {NCS: 0, rapidCellGrowth: 0, immortality: 0};
 	}
 	if (heroSlave.geneMods.NCS === undefined) {
 		heroSlave.geneMods.NCS = 0;
@@ -103,6 +103,9 @@ App.Utils.getHeroSlave = function(heroSlave) {
 	if (heroSlave.geneMods.rapidCellGrowth === undefined) {
 		heroSlave.geneMods.rapidCellGrowth = 0;
 	}
+	if (heroSlave.geneMods.immortality === undefined) {
+		heroSlave.geneMods.immortality = 0;
+	}
 
 	// WombInit(heroSlave);
 	const newSlave = BaseSlave();
diff --git a/src/npc/infants/InfantState.js b/src/npc/infants/InfantState.js
index 32c06cce33356eb10b831560545bad54d430b834..59c599c4ef890e0b9cc10efca5585196b13634ba 100644
--- a/src/npc/infants/InfantState.js
+++ b/src/npc/infants/InfantState.js
@@ -29,6 +29,8 @@ App.Facilities.Nursery.InfantState = class InfantState {
 		this.physicalAge = 18;
 		/** child's race */
 		this.race = "white";
+		/** child's nationality */
+		this.nationality = "Stateless";
 		/**
 		 * child markings
 		 * * "beauty mark"
diff --git a/src/npc/infants/infantSummary.js b/src/npc/infants/infantSummary.js
index f3085f30c8e788caefd1e006fc3fb2616f00487d..780bbe47d6fad954550ba41da8eccfa5f21e4b48 100644
--- a/src/npc/infants/infantSummary.js
+++ b/src/npc/infants/infantSummary.js
@@ -1,11 +1,10 @@
 /**
  * Displays a summary of the infant
- * @param {App.Entity.InfantState} child
+ * @param {App.Facilities.Nursery.InfantState} child
  * @returns {string}
  */
 App.Facilities.Nursery.InfantSummary = function(child) {
 	const weeksOwned = V.week - child.weekAcquired;
-	const pronouns = getPronouns(child);
 	const abbreviate = V.UI.slaveSummary.abbreviation;
 
 	let r = ``;
@@ -1579,7 +1578,7 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		} else if (child.mother === -1) {
 			r += `Your ${daughter}`;
 			if (child.relationship < -1) {
-				res += ` & ${PCrelationshipTerm(child)}`;
+				r += ` & ${PCrelationshipTerm(child)}`;
 				handled = 1;
 			}
 			r += " ";
@@ -1603,7 +1602,7 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		} else if (child.father === -1 && child.mother !== -1) {
 			r += `Your ${daughter}`;
 			if (child.relationship < -1) {
-				res += ` & ${PCrelationshipTerm(child)}`;
+				r += ` & ${PCrelationshipTerm(child)}`;
 				handled = 1;
 			}
 			r += " ";
diff --git a/src/npc/infants/longInfantDescription.js b/src/npc/infants/longInfantDescription.js
index 924a69efebedc3e5fa168c2d4eb627bc5628be99..9e3f39f648597252dc9de4eca105f73d3fd4a9e2 100644
--- a/src/npc/infants/longInfantDescription.js
+++ b/src/npc/infants/longInfantDescription.js
@@ -1,6 +1,6 @@
 /**
  * Displays a detailed description of the infant
- * @param {App.Entity.InfantState} child
+ * @param {App.Facilities.Nursery.InfantState} child
  * @returns {string}
  */
 App.Facilities.Nursery.LongInfantDescription = function(child, {market = 0, eventDescription = 0} = {}) {