diff --git a/src/facilities/nursery/InfantState.js b/src/facilities/nursery/InfantState.js
new file mode 100644
index 0000000000000000000000000000000000000000..dbbbfb7871efc56b89e43cd3c74dcbcb55b568d4
--- /dev/null
+++ b/src/facilities/nursery/InfantState.js
@@ -0,0 +1,181 @@
+App.Facilities.Nursery.InfantState = class InfantState {
+	constructor() {
+		/** Slave's current name */
+		this.slaveName = "blank";
+		/** Slave's current surname
+		 * @type {string|number} */
+		this.slaveSurname = 0;
+		this.genes = "XX";
+		this.pronoun = "she";
+		this.possessive = "her";
+		this.possessivePronoun = "hers";
+		this.objectReflexive = "herself";
+		this.object = "her";
+		this.noun = "girl";
+		/** game week slave was acquired.
+		 *
+		 * _0: Obtained prior to game start / at game start_ */
+		this.weekAcquired = 0;
+		this.father = 0;
+		this.mother = 0;
+		this.daughters = 0;
+		this.sisters = 0;
+		/** week she was born (int between 0-51) */
+		this.birthWeek = jsRandom(0, 51);
+		/** How old she really is. */
+		this.actualAge = 18;
+		/** slave's race */
+		this.race = "white";
+		/**
+		 * slave markings
+		 * * "beauty mark"
+		 * * "birthmark"
+		 * * "freckles"
+		 * * "heavily freckled"
+		 */
+		this.markings = "none";
+		/** eye color */
+		this.eyeColor = "brown";
+		/** hair color */
+		this.hColor = "brown";
+		/** pubic hair color */
+		this.pubicHColor = "brown";
+		/** armpit hair style */
+		this.underArmHColor = "brown";
+		/**  eyebrowHColor*/
+		this.eyebrowHColor = "brown";
+		/** skin color */
+		this.skin = "light";
+		/** pubic hair style */
+		this.pubicHStyle = "neat";
+		/** armpit hair style */
+		this.underArmHStyle = "neat";
+		/**
+		 * face attractiveness
+		 *
+		 * * -96 - : very ugly
+		 * * -95 - -41: ugly
+		 * * -40 - -11: unattractive
+		 * * -10 - 10: attractive
+		 * * 11 - 40: very pretty
+		 * * 41 - 95: gorgeous
+		 * * 96+: mind blowing
+		 */
+		this.face = 0;
+		/**
+		 * accepts string (will be treated as "normal")
+		 * * "normal"
+		 * * "masculine"
+		 * * "androgynous"
+		 * * "cute"
+		 * * "sensual"
+		 * * "exotic"
+		 */
+		this.faceShape = "normal";
+		/**
+		 * slave intelligence
+		 * * -100 - -96: borderline retarded
+		 * * -95 - -51: very slow
+		 * * -50 - -16: slow
+		 * * -15 - 15: average
+		 * * 16 - 50: smart
+		 * * 51 - 95: very smart
+		 * * 96 - 100: brilliant
+		 */
+		this.intelligence = 0;
+		/**
+		 * * "none"
+		 * * "mindbroken"
+		 * * "submissive"
+		 * * "cumslut"
+		 * * "humiliation"
+		 * * "buttslut"
+		 * * "boobs"
+		 * * "sadist"
+		 * * "masochist"
+		 * * "dom"
+		 * * "pregnancy"
+		 */
+		this.fetish = "none";
+		/**
+		 * * "none"
+		 * * "arrogant": clings to her dignity, thinks slavery is beneath her
+		 * * "bitchy": can 't keep her opinions to herself
+		 * * "odd": says and does odd things
+		 * * "hates men": hates men
+		 * * "hates women": hates women
+		 * * "gluttonous": likes eating, gains weight
+		 * * "anorexic": dislikes eating and being forced to eat, loses weight
+		 * * "devout": resistance through religious faith
+		 * * "liberated": believes slavery is wrong
+		 */
+		this.behavioralFlaw = "none";
+		/**
+		 * * "none"
+		 * * "hates oral": hates oral sex
+		 * * "hates anal": hates anal sex
+		 * * "hates penetration": dislikes penetrative sex
+		 * * "shamefast": nervous when naked
+		 * * "idealistic": believes sex should be based on love and consent
+		 * * "repressed": dislikes sex
+		 * * "apathetic": inert during sex
+		 * * "crude": sexually crude and has little sense of what partners find disgusting during sex
+		 * * "judgemental": sexually judgemental and often judges her sexual partners' performance
+		 * * "neglectful": disregards herself in sex
+		 * * "cum addict": addicted to cum
+		 * * "anal addict": addicted to anal
+		 * * "attention whore": addicted to being the center of attention
+		 * * "breast growth": addicted to her own breasts
+		 * * "abusive": sexually abusive
+		 * * "malicious": loves causing pain and suffering
+		 * * "self hating": hates herself
+		 * * "breeder": addicted to being pregnant
+		 */
+		this.sexualFlaw = "none";
+		/** 0: does not have; 1: carrier; 2: active
+		 * * heterochromia is an exception. String = active
+		 */
+		this.geneticQuirks = {
+			/** Oversized breasts. Increased growth rate, reduced shrink rate. Breasts try to return to oversized state if reduced. */
+			macromastia: 0,
+			/** Greatly oversized breasts. Increased growth rate, reduced shrink rate. Breasts try to return to oversized state if reduced.
+			 *
+			 * **macromastia + gigantomastia** - Breasts never stop growing. Increased growth rate, no shrink rate. */
+			gigantomastia: 0,
+			/** is prone to having twins, shorter pregnancy recovery rate */
+			fertility: 0,
+			/** is prone to having multiples, even shorter pregnancy recovery rate
+			 *
+			 * **fertility + hyperFertility** - will have multiples, even shorter pregnancy recovery rate */
+			hyperFertility: 0,
+			/** pregnancy does not block ovulation, slave can become pregnant even while pregnant */
+			superfetation: 0,
+			/** is abnormally tall. gigantism + dwarfism - is very average*/
+			gigantism: 0,
+			/** is abnormally short. gigantism + dwarfism - is very average*/
+			dwarfism: 0,
+			/** has a flawless face. pFace + uFace - Depends on carrier status, may swing between average and above/below depending on it */
+			pFace: 0,
+			/** has a hideous face. pFace + uFace - Depends on carrier status, may swing between average and above/below depending on it */
+			uFace: 0,
+			/** has pale skin, white hair and red eyes */
+			albinism: 0,
+			/** may have mismatched eyes */
+			heterochromia: 0,
+			/** ass never stops growing. Increased growth rate, reduced shrink rate. */
+			rearLipedema: 0,
+			/** has (or will have) a huge dong */
+			wellHung: 0,
+			/** constantly gains weight unless dieting, easier to gain weight. wGain + wLoss - weight gain/loss fluctuates randomly */
+			wGain: 0,
+			/** constantly loses weight unless gaining, easier to lose weight. wGain + wLoss - weight gain/loss fluctuates randomly */
+			wLoss: 0,
+			/** body attempts to normalize to an androgynous state */
+			androgyny: 0,
+			/** slave can only ever birth girls */
+			girlsOnly: 0
+		};
+		/** how many weeks until the child is ready for release */
+		this.growTime = 156;
+	}
+};
diff --git a/src/facilities/nursery/nursery.tw b/src/facilities/nursery/nursery.tw
index ff5fca004e8596edd97e9bd26b13394988449e80..d2b5b1cfa7b8b8f0482bcffb7000ed5ace97e0f2 100644
--- a/src/facilities/nursery/nursery.tw
+++ b/src/facilities/nursery/nursery.tw
@@ -478,7 +478,7 @@ Target age for release: <<textbox "$targetAgeNursery" $targetAgeNursery "Nursery
 	<<link "$cribs[_c].slaveName" "Child Interact">>
 		<<set $activeChild = $cribs[_c], $activeChild.weeksLeft = ($targetAgeNursery * 52) - $activeChild.actualAge>>
 	<</link>>
-	<<= App.Facilities.Nursery.ChildSummary($activeChild)>>
+	/* <<= App.Facilities.Nursery.ChildSummary($activeChild)>> */
 	<br>
 	<</capture>>
 	<</for>>
diff --git a/src/js/nurseryWidgets.js b/src/facilities/nursery/nurseryWidgets.js
similarity index 97%
rename from src/js/nurseryWidgets.js
rename to src/facilities/nursery/nurseryWidgets.js
index b46d0f681cd7fb2fa98047d4b64ceec95649755b..ddbea10f6dc466e342311d6eabe458b9cd41ff79 100644
--- a/src/js/nurseryWidgets.js
+++ b/src/facilities/nursery/nurseryWidgets.js
@@ -1,3 +1,7 @@
+/**
+ * @param {App.Entity.SlaveState} child
+ * @returns {string}
+ */
 App.Facilities.Nursery.ChildSummary = function(child) {
 	"use strict";
 	const V = State.variables;
@@ -16,7 +20,8 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 
 	/**
 	 * @param {App.Entity.SlaveState} child
-	 * @returns {string} */
+	 * @returns {string}
+	 */
 	function ChildSummaryUncached(child) {
 		if (V.abbreviateDevotion === 1) {
 			short_devotion(child);
@@ -4944,6 +4949,61 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 	return ChildSummaryUncached(child);
 };
 
+App.Facilities.Nursery.LongInfantDescription = function(child) {
+	"use strict";
+	let r = ``;
+	let age;
+	let title;
+	const V = State.variables;
+	/* eslint-disable */
+	let pronouns = getPronouns(child);
+	let he = pronouns.pronoun;
+	let him = pronouns.object;
+	let his = pronouns.possessive;
+	let hers = pronouns.possessivePronoun;
+	let himself = pronouns.objectReflexive;
+	let boy = pronouns.noun;
+	let He = capFirstChar(he);
+	let His = capFirstChar(his);
+	/* eslint-enable */
+
+	// TODO: add infant art here
+
+	r += `&nbsp;&nbsp;&nbsp;&nbsp; `;
+
+	r += `<span id="childName"><strong><span class="pink">${SlaveFullName(child)}</span></strong></span> `;
+
+	if (child.custom.label) {
+		r += ` (<strong><span class="yellow">${child.custom.label}</span></strong>) `;
+	}
+
+	if (child.actualAge > 0) {
+		age = `${actualAge}-year-old`;
+		if (child.actualAge > 1) {
+			title = `toddler`;
+		} else {
+			title = `baby`;
+		}
+	} else {
+		if (V.week - child.weekAcquired > 4) {
+			age = `${actualAge}-month-old`;
+			title = `${baby}`;
+		} else {
+			if (V.week - child.weekAcquired === 0) {
+				age = ``;
+				title = `newborn`;
+			} else {	
+				age = `${actualAge}-week-old`;
+				title = `baby`;
+			}
+		}
+	}
+
+	r += ` is a ${age} <strong><span class="coral">${title}.</span></strong> `;
+
+	return r;
+};
+
 /**
  * @param {App.Entity.SlaveState} child	// TODO: would this still be a SlaveState?
  * @returns {string}
@@ -5032,8 +5092,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		}
 	}
 
-	// r += App.Desc.ageAndHealth(child);
-
+	r += App.Desc.ageAndHealth(child);
 
 	if (!V.saleDescription) {
 		if (V.clinic && V.clinicUpgradeScanner) {
@@ -5194,7 +5253,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 			}
 		}
 
-		// r += App.Desc.eyes(child);
+		r += App.Desc.eyes(child);
 
 		if (child.fetish === "mindbroken") {
 			r += `However, <span class="coral">${his} mind is fundamentally broken;</span> everything ${he} experiences will quickly be forgotten. `;
@@ -6128,7 +6187,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 	}
 
 	if (V.familyTesting) {
-		r += `<<Family>> `; // TODO:
+		r += `<<Family>> `;
 
 		if (child.relationship >= 3 && totalRelatives(child) > 0) {
 			const lover = getSlave(child.relationshipTarget);
@@ -6162,8 +6221,6 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				} else if (child.father === -1) {
 					r += `${He} is in an <span class="lightgreen">incestuous relationship with ${his} father, you.</span> `;
 				}
-			} else if (PC.mother === child.ID || PC.father === child.ID) {
-				// TODO: won't need this
 			} else if (areSisters(PC, child) === 1) {
 				if (PC.title === 1) {
 					r += `${He} is in an <span class="lightgreen">incestuous relationship with ${his} twin brother, you.</span> `;
@@ -6297,7 +6354,24 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		r += `${child.custom.desc} `;
 	}
 
-	// r += App.Desc.FSeffects(child);	TODO:
+	r += `${His} body is a perfect example of `;
+	if (arcology.FSGenderFundamentalistLawBeauty + arcology.FSGenderRadicalistLawBeauty > 0) {
+		if (V.genderLawPass) {
+			r += `the fashionable feminine ideal. `;
+		}
+	} else if (arcology.FSSlimnessEnthusiastLaw) {
+		if (slimPass(child)) {
+			r += `the fashionable flat ideal. `;
+		}
+	} else if (arcology.FSHedonisticDecadanceLaw2) {
+		if (child.boobs >= 2000 && child.butt >= 5 && child.weight > 95) {
+			r += `the fashionable plump body. `;
+		}
+	}
+
+	if (arcology.FSRestartSMR > 0 && arcology.FSRestart > 80 && !child.dick && !child.balls && !child.ovaries && !child.mpreg && child.vagina < 0) {
+		r += `a subhuman who accepted their place in society. `;
+	}
 
 	if (V.showScores) {
 		FResult(child);
@@ -6307,15 +6381,14 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 	r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
 
 	if (child.amp) {
-		// r += App.Desc.amputee(child); // TODO: verify this exists
+		r += App.Desc.amputee(child);
 	}
 
-	// r += App.Desc.clothing(child);
+	r += `<<ClothingDescription>>`;
 	if (V.showBodyMods) {
-		// r += App.Desc.clothingCorset(child);
+		r += `<<<clothingCorsetDescription>>`;
 	}
 
-	// r += App.Desc.heightAndWeight;	TODO:
 	if (V.showClothing && !V.saleDescription) {
 		r += `${He}`;
 	} else {
@@ -6413,7 +6486,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		r += `${His} hips are unrealistically wide; it is obvious they have been artificially widened. `;
 	}
 
-	// r += App.Desc.waist(child);	TODO:
+	r += App.Desc.waist(child);
 
 	if (arcology.FSGenderFundamentalistLawBeauty + arcology.FSGenderFundamentalistLawBeauty > 0) {
 		if (arcology.FSHedonisticDecadance === "unset" && arcology.FSPhyscialIdealistStrongFat === 0) {
@@ -6501,7 +6574,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		}
 	}
 
-	// App.Desc.heightImplant(child); TODO:
+	r += `<<heightImplantDescription>>`;
 
 	r += `${He} is `;
 	if (child.muscles > 95) {
@@ -6599,7 +6672,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 	}
 
 	if (child.corsetPiercing > 0) {
-		// r += App.Desc.corsetPiercing(child);	TODO:
+		r += `<<CorsetPiercingDescription>>`;
 	}
 
 	if (!child.amp) {
@@ -6640,18 +6713,18 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		}
 	}
 
-	// r += App.Desc.heel(child);	TODO:
+	r += `<<heelDescription>>`;
 
 	if (V.showBodyMods) {
 		if (["ankles", "back", "calves", "chest", "feet", "hands", "left ankle", "left calf", "left foot", "left hand", "left lower arm", "left shoulder", "left upper arm", "left wrist", "lower arms", "lower back", "right ankle", "right calf", "right foot", "right hand", "right lower arm", "right shoulder", "right upper arm", "right wrist", "shoulders", "upper arms", "wrists"].includes(child.brandLocation)) {
-			// r += App.Desc.brand(child);
+			r += App.Desc.brand(child);
 		}
 	}
 
-	// r += App.Desc.skin(child);	TODO:
+	r += `<<skinDescription>>`;
 
 	if (V.saleDescription) {
-		// r += App.Desc.accent(child);	TODO:
+		r += `<<accentDescription>>`;
 	}
 
 	if (child.markings === "birthmark" && !child.prestige && child.pornPrestige < 2) {
@@ -6695,9 +6768,9 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 	}
 
 	if (V.showClothing && !V.saleDescription) {
-		// r += App.Desc.ear(child);	TODO:
-		// r += App.Desc.upperFace(child);	TODO:
-		// r += App.Desc.hair(child);	TODO:
+		r += `<<earDescription>>`;
+		r += `<<upperFaceDescription>>`;
+		r += `<<HairDescription>>`;
 	} else {
 		r += `${His} hair is ${child.hColor}`;
 		if (child.hColor !== child.eyebrowHColor) {
@@ -6763,17 +6836,17 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 	}
 
 	if (V.showBodyMods) {
-		// r += App.Desc.earPiercing(child);	TODO:
-		// r += App.Desc.nosePiercing(child);	TODO:
-		// r += App.Desc.eyebrowPiercing(child);	TODO:
-		// r += App.Desc.customTat(child);	TODO:
+		r += `<<earPiercingDescription>>`;
+		r += `<<nosePiercingDescription>>`;
+		r += `<<eyebrowPiercingDescription>>`;
+		r += `<<customTatDescription $activeChild>>`;
 	}
 
-	// r += App.Desc.face(child);	TODO:
-	// r += App.Desc.mouth(child);	TODO:
+	r += `<<faceDescription>>`;
+	r += `<<mouthDescription>>`;
 
 	if (V.showClothing && !V.saleDescription) {
-		// r += App.Desc.collar(child);	TODO:
+		r += `<<collarDescription>>`;
 		if (child.relationship > 4) { // TODO: will children be able to get married?
 			if (child.amp !== 1) {
 				r += `${He} has a simple gold band on the little finger of ${his} left hand. `;
@@ -6789,7 +6862,12 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		}
 	}
 
-	// r += App.Desc.nails(child)	TODO:
+	r += `<<nailsDescription>>`;
+	if (V.showBodyMods) {
+		r += `<<backTatDescription>>`;
+		r += `<<shouldersTatDescription>>`;
+		r += `<<armsTatDescription>>`;
+	}
 
 	if (child.minorInjury !== 0 && child.minorInjury !== "sore ass") {
 		r += `${He} is sporting a <span class="red">$activeChild.minorInjury,</span> covered by makeup. `;
@@ -6797,33 +6875,35 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 
 	r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
 
-	// r += App.Desc.boobs(child);	TODO:
-	// r += App.Desc.boobsShape(child);	TODO:
-	// r += App.Desc.boobsExtra(child);	TODO:
+	r += `<<BoobsDescription>>`;
+	r += `<<boobsShapeDescription>>`;
+	r += `<<boobsExtraDescription>>`;
 	if (V.showBodyMods) {
-		// r += App.Desc.boobsTat(child);	TODO:
+		r += `<<boobsTatDescription>>`;
 	}
-	// r += App.Desc.boobsBrand(child);	TODO:
-	// r += App.Desc.shoulder(child);	TODO:
-	// r += App.Desc.nipples(child);	TODO:
+	r += `<<boobBrandDescription>>`;
+	r += `<<shouldersDescription>>`;
+	r += `<<nipplesDescription>>`;
 	if (V.showBodyMods) {
-		// r += App.Desc.nipplesPiercing(child);	TODO:
+		r += `<<nipplesPiercingDescription>>`;
 	}
-	// r += App.Desc.areolae(child);	TODO:
+	r += `<<areolaeDescription>>`;
 
 	if (child.inflation > 0) { // TODO: will children be able to be inflated?
-		// r += App.Desc.bellyInflation(child);	TODO:
+		r += `<<BellyInflationDescription>>`;
 	} else if (child.bellyImplant >= 2000) {
-		// r += App.Desc.bellyImplant;	TODO:
+		r += `<<BellyImplantDescription>>`;
+	} else {
+		r +=`<<BellyDescription>>`;
 	}
-	// r += App.Desc.butt(child);
+	r += `<<ButtDescription>>`;
 
 	r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
 
-	// r += App.Desc.crotch(child);
-	// r += App.Desc.dick(child);
-	// r += App.Desc.vagina(child);
-	// r += App.Desc.anus(child);
+	r += `<<crotchDescription>>`;
+	r += `<<dickDescription>>`;
+	r += `<<vaginaDescription>>`;
+	r += `<<AnusDescription>>`;
 
 	r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
 
@@ -6940,9 +7020,9 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		} else if (child.aphrodisiacs > 1) {
 			r += `${He}'s swimming in`;
 			if (child.amp) {
-				r += `aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}.`;
+				r += `aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}. `;
 			} else if (child.chastityVagina) {
-				r += `aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}.`;
+				r += `aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}. `;
 			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
 			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
@@ -6950,7 +7030,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.vagina !== -1) {
 				r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he}`;
 				if (child.anus === 0) {
-					r += `plays with a nipple with one hand while furiously rubbing ${his} virgin anus and the sensitive perineum beneath it with the other, desperately trying to get ${himself} off.`;
+					r += `plays with a nipple with one hand while furiously rubbing ${his} virgin anus and the sensitive perineum beneath it with the other, desperately trying to get ${himself} off. `;
 				} else {
 					r += `uses `;
 					if (child.anus > 2) {
@@ -6963,29 +7043,29 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 					r += ` to fuck ${his} own ass. `;
 				}
 			} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
-				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} clit with one hand while ${he} fingers ${his} anus with the other.`;
+				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} clit with one hand while ${he} fingers ${his} anus with the other. `;
 			} else if (child.dick !== 0) {
 				r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} crotch, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
 			} else if (child.vagina === -1) {
-				r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} asshole, desperately hoping you'll fuck ${his} only real source of relief.`;
+				r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} asshole, desperately hoping you'll fuck ${his} only real source of relief. `;
 			} else {
-				r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} pussy, and ${his} anus in turn, hoping that something will entice you to give ${him} relief.`;
+				r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} pussy, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. `;
 			}
 		} else {
 			if (child.amp) {
-				r += `${He}'s on aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with sexual frustration.`;
+				r += `${He}'s on aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with sexual frustration. `;
 			} else if (child.chastityVagina) {
-				r += `${He}'s on aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with sexual frustration.`;
+				r += `${He}'s on aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with sexual frustration. `;
 			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
-				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft with one hand while the other pinches a nipple.`;
+				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft with one hand while the other pinches a nipple. `;
 			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
-				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft and pussy with one hand while the other pinches a nipple.`;
+				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft and pussy with one hand while the other pinches a nipple. `;
 			} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
-				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} pussy with one hand while the other pinches a nipple.`;
+				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} pussy with one hand while the other pinches a nipple. `;
 			} else if (child.dick !== 0 && canPenetrate(child)) {
-				r += `${He}'s on aphrodisiacs and is not allowed to masturbate, so as ${he} obeys your commands ${he} shifts ${his} weight uncomfortably. ${His} erect dick sways as ${he} does.`;
+				r += `${He}'s on aphrodisiacs and is not allowed to masturbate, so as ${he} obeys your commands ${he} shifts ${his} weight uncomfortably. ${His} erect dick sways as ${he} does. `;
 			} else {
-				r += `${He}'s on aphrodisiacs and is not allowed to masturbate, so as ${he} obeys your commands ${he} shifts ${his} weight uncomfortably.`;
+				r += `${He}'s on aphrodisiacs and is not allowed to masturbate, so as ${he} obeys your commands ${he} shifts ${his} weight uncomfortably. `;
 			}
 		}
 	}
@@ -6995,10 +7075,33 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 	} else if (child.addict > 0 && child.addict < 10) {
 		r += `${He} is a confirmed <span class="cyan">aphrodisiac addict.</span>`;
 	} else if (child.addict > 0) {
-		r += `${He} is completely <span class="cyan">dependent on aphrodisiacs,</span> and it is unlikely you will ever be able to wean ${him} off them.`;
+		r += `${He} is completely <span class="cyan">dependent on aphrodisiacs,</span> and it is unlikely you will ever be able to wean ${him} off them. `;
 	}
 
 	V.saleDescription = 0, V.applyLaw = 0;
 
 	return r;
 };
+
+/**
+ * @param {App.Entity.SlaveState} child	// TODO: may (read: will most likely) need to be changed
+ * @returns {string}
+ */
+App.Facilities.Nursery.InfantInteract = function(child) {
+	"use strict";
+	let r = ``;
+	const V = State.variables;
+	/* eslint-disable */
+	let pronouns = getPronouns(child);
+	let he = pronouns.pronoun;
+	let him = pronouns.object;
+	let his = pronouns.possessive;
+	let hers = pronouns.possessivePronoun;
+	let himself = pronouns.objectReflexive;
+	let boy = pronouns.noun;
+	let He = capFirstChar(he);
+	let His = capFirstChar(his);
+	/* eslint-enable */
+
+	return r;
+};