diff --git a/src/js/nurseryWidgets.js b/src/js/nurseryWidgets.js
index 9be94fb8cac05443c305ab14aa0dcce882474018..c9682663293f2e19117b38b11c7bee0d430350ee 100644
--- a/src/js/nurseryWidgets.js
+++ b/src/js/nurseryWidgets.js
@@ -911,58 +911,58 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 
 	if (child.weight > 190) {
 		if (arcology.FSHedonisticDecadance !== "unset") {
-			r += `${jsEither("perfectly curvy", "perfectly plush")}.`;
+			r += `${jsEither("perfectly curvy", "perfectly plush")}. `;
 		} else {
-			r += `<span class="red>${jsEither("dangerously fat", "dangerously overweight", "extremely obese")}</span>.`;
+			r += `<span class="red>${jsEither("dangerously fat", "dangerously overweight", "extremely obese")}</span>. `;
 		}
 	} else if (child.weight > 160) {
 		if (arcology.FSHedonisticDecadance !== "unset") {
-			r += `${jsEither("spectacularly curvy", "spectacularly plush")}.`;
+			r += `${jsEither("spectacularly curvy", "spectacularly plush")}. `;
 		} else {
-			r += `<span class="red">${jsEither("extremely fat", "extremely overweight")}</span>.`;
+			r += `<span class="red">${jsEither("extremely fat", "extremely overweight")}</span>. `;
 		}
 	} else if (child.weight > 130 ) {
 		if (arcology.FSHedonisticDecadance !== "unset") {
-			r += `${jsEither("amazingly curvy", "amazingly plush")}.`;
+			r += `${jsEither("amazingly curvy", "amazingly plush")}. `;
 		} else {
-			r += `<span class="red">${jsEither("very overweight", "obese", "very fat")}</span>.`;
+			r += `<span class="red">${jsEither("very overweight", "obese", "very fat")}</span>. `;
 		}
 	} else if (child.weight > 95) {
 		if (child.hips > 1) {
-			r += `${"extremely curvy", "extremely plush"}, but $his huge hips make the extra weight attractive on $him.`;
+			r += `${"extremely curvy", "extremely plush"}, but $his huge hips make the extra weight attractive on $him. `;
 		} else if (arcology.FSHedonisticDecadance !== "unset") {
-			r += `${jsEither("extremely curvy", "extremely plush")}.`;
+			r += `${jsEither("extremely curvy", "extremely plush")}. `;
 		} else {
-			r += `<span class="red">${jsEither("carrying a lot of extra weight", "fat", "overweight")}</span>.`;
+			r += `<span class="red">${jsEither("carrying a lot of extra weight", "fat", "overweight")}</span>. `;
 		}
 	} else if (child.weight > 30) {
 		if (child.hips > 1) {
-			r += `${jsEither("quite curvy", "very plush")}, but $his motherly hips make the extra weight attractive on $him.`;
+			r += `${jsEither("quite curvy", "very plush")}, but $his motherly hips make the extra weight attractive on $him. `;
 		} else if (arcology.FSHedonisticDecadance !== "unset") {
-			r += `${jsEither("quite curvy", "very plush")}.`;
+			r += `${jsEither("quite curvy", "very plush")}. `;
 		} else {
-			r += `<span class="red">${jsEither("carrying extra weight", "chubby")}</span>.`;
+			r += `<span class="red">${jsEither("carrying extra weight", "chubby")}</span>. `;
 		}
 	} else if (child.weight > 10) {
-		r += `${jsEither("nicely plush", "pleasingly curvy")}.`;
+		r += `${jsEither("nicely plush", "pleasingly curvy")}. `;
 	} else if (child.weight >= -10) {
-		r += `${jsEither("a healthy weight", "an attractive weight")}.`;
+		r += `${jsEither("a healthy weight", "an attractive weight")}. `;
 	} else if (child.weight >= -30) {
-		r += `${jsEither("appealingly skinny", "pleasingly thin")}.`;
+		r += `${jsEither("appealingly skinny", "pleasingly thin")}. `;
 	} else if (child.weight >= -95) {
 		if (child.hips > 1) {
-			r += `${jsEither("quite skinny", "very thin")}, but $his wide hips make the gap between $his thighs very noticeable.`;
+			r += `${jsEither("quite skinny", "very thin")}, but $his wide hips make the gap between $his thighs very noticeable. `;
 		} else if (child.hips < -1) {
-			r += `${jsEither("quite skinny", "very thin")}, but $his trim hips make $him look like a model.`;
+			r += `${jsEither("quite skinny", "very thin")}, but $his trim hips make $him look like a model. `;
 		} else {
-			r += `<span class="red">${"rail thin", "too skinny", "unserweight"}</span>.`;
+			r += `<span class="red">${"rail thin", "too skinny", "unserweight"}</span>. `;
 		}
 	} else {
-		r += `<span class="red">${"dangerously skinny", "emaciated"}</span>.`;
+		r += `<span class="red">${"dangerously skinny", "emaciated"}</span>. `;
 	}
 
 	if (child.hips > 2) {
-		r += `$His hips are unrealistically wide; it is obvious they have been artificially widened.`;
+		r += `$His hips are unrealistically wide; it is obvious they have been artificially widened. `;
 	}
 
 	r += App.Desc.waist(child);
@@ -970,85 +970,85 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 	if (arcology.FSGenderFundamentalistLawBeauty + arcology.FSGenderFundamentalistLawBeauty > 0) {
 		if (arcology.FSHedonisticDecadance === "unset" && arcology.FSPhyscialIdealistStrongFat === 0) {
 			if (child.weight > 130) {
-				r += `$He is much too fat for the fashionable feminine ideal.`;
+				r += `$He is much too fat for the fashionable feminine ideal. `;
 			} else if (child.weight > 30) {
-				r += `$He is too fat for the fashionable feminine ideal.`;
+				r += `$He is too fat for the fashionable feminine ideal. `;
 			} else if (child.weight < -30) {
-				r += `$He is too skinny for the fashionable feminine ideal.`;
+				r += `$He is too skinny for the fashionable feminine ideal. `;
 			}
 		} else {
 			if (child.weight > 130) {
-				r += `$He is much too fat for the fashionable feminine ideal.`;
+				r += `$He is much too fat for the fashionable feminine ideal. `;
 			} else if (child.weight < -30) {
-				r += `$He is too skinny for the fashionable feminine ideal.`;
+				r += `$He is too skinny for the fashionable feminine ideal. `;
 			}
 		}
 	} else if (arcology.FSSlimnessEnthusiastLaw === 1) {
 		if (arcology.FSHedonisticDecadance === "unset" && arcology.FSPhyscialIdealistStrongFat === 0) {
 			if (child.weight > 30) {
-				r += `$He is much too fat for the fashionable feminine ideal.`;
+				r += `$He is much too fat for the fashionable feminine ideal. `;
 			} else if (child.weight > 10) {
-				r += `$He is too fat for the fashionable feminine ideal.`;
+				r += `$He is too fat for the fashionable feminine ideal. `;
 			}
 		} else {
 			if (child.weight > 60) {
-				r += `$He is much too fat for the fashionable feminine ideal.`;
+				r += `$He is much too fat for the fashionable feminine ideal. `;
 			} else if (child.weight > 30) {
-				r += `$He is too fat for the fashionable feminine ideal.`;
+				r += `$He is too fat for the fashionable feminine ideal. `;
 			}
 		}
 	} else if (arcology.FSHedonisticDecadance2) {
 		if (child.weight <= 95) {
-			r += `$He is too thin for the fashionable feminine ideal.`;
+			r += `$He is too thin for the fashionable feminine ideal. `;
 		} else if (child.weight <= 10) {
-			r += `$He is much too thin for the fashionable feminine ideal.`;
+			r += `$He is much too thin for the fashionable feminine ideal. `;
 		}
 	}
 
 	if (canWalk(child)) {
 		if (child.weight > (170 + child.muscles / 5) && child.physicalAge >= 18) {
-			r += `$He is so fat that it is difficult for $him to move.`;
+			r += `$He is so fat that it is difficult for $him to move. `;
 			if (child.muscles > 95) {
-				r += `However, $he is so powerfully built that $he can manage it with effort, though $he often has to stop for breaks.`;
+				r += `However, $he is so powerfully built that $he can manage it with effort, though $he often has to stop for breaks. `;
 			} else if (child.muscles > 30) {
-				r += `$He can barely manage to get to $his feet unaided, and usually walks alongside objects to help relieve the weight.`;
+				r += `$He can barely manage to get to $his feet unaided, and usually walks alongside objects to help relieve the weight. `;
 			} else if (child.muscles > 5) {
-				r += `$He requires assistance to get to $his feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit.`;
+				r += `$He requires assistance to get to $his feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
 			} else {
-				r += `$He cannot get to $his feet unaided, and tries to stay seated as much as $he can.`;
+				r += `$He cannot get to $his feet unaided, and tries to stay seated as much as $he can. `;
 			}
 		} else if (child.weight > (110 + child.muscles / 20) && child.physicalAge <= 3) {
-			r += `$He is so fat that it is difficult for $him to move.`;
+			r += `$He is so fat that it is difficult for $him to move. `;
 			if (child.muscles > 95) {
-				r += `However, $he is so powerfully built that $he can manage it with effort, though $he often has to stop for breaks.`;
+				r += `However, $he is so powerfully built that $he can manage it with effort, though $he often has to stop for breaks. `;
 			} else if (child.muscles > 30) {
-				r += `$He can barely manage to get to $his feet unaided, and usually walks alongside objects to help relieve the weight.`;
+				r += `$He can barely manage to get to $his feet unaided, and usually walks alongside objects to help relieve the weight. `;
 			} else if (child.muscles > 5) {
-				r += `$He requires assistance to get to $his feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit.`;
+				r += `$He requires assistance to get to $his feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
 			} else {
-				r += `$He cannot get to $his feet unaided, and tries to stay seated as much as $he can.`;
+				r += `$He cannot get to $his feet unaided, and tries to stay seated as much as $he can. `;
 			}
 		} else if (child.weight > (140 + child.muscles / 15) && child.physicalAge <= 12) {
-			r += `$He is so fat that it is difficult for $him to move.`;
+			r += `$He is so fat that it is difficult for $him to move. `;
 			if (child.muscles > 95) {
-				r += `However, $he is so powerfully built that $he can manage it with effort, though $he often has to stop for breaks.`;
+				r += `However, $he is so powerfully built that $he can manage it with effort, though $he often has to stop for breaks. `;
 			} else if (child.muscles > 30) {
-				r += `$He can barely manage to get to $his feet unaided, and usually walks alongside objects to help relieve the weight.`;
+				r += `$He can barely manage to get to $his feet unaided, and usually walks alongside objects to help relieve the weight. `;
 			} else if (child.muscles > 5) {
-				r += `$He requires assistance to get to $his feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit.`;
+				r += `$He requires assistance to get to $his feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
 			} else {
-				r += `$He cannot get to $his feet unaided, and tries to stay seated as much as $he can.`;
+				r += `$He cannot get to $his feet unaided, and tries to stay seated as much as $he can. `;
 			}
 		} else if (child.weight > (165 + child.muscles / 10 && child.physicalAge < 18)) {
-			r += `$He is so fat that it is difficult for $him to move.`;
+			r += `$He is so fat that it is difficult for $him to move. `;
 			if (child.muscles > 95) {
-				r += `However, $he is so powerfully built that $he can manage it with effort, though $he often has to stop for breaks.`;
+				r += `However, $he is so powerfully built that $he can manage it with effort, though $he often has to stop for breaks. `;
 			} else if (child.muscles > 30) {
-				r += `$He can barely manage to get to $his feet unaided, and usually walks alongside objects to help relieve the weight.`;
+				r += `$He can barely manage to get to $his feet unaided, and usually walks alongside objects to help relieve the weight. `;
 			} else if (child.muscles > 5) {
-				r += `$He requires assistance to get to $his feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit.`;
+				r += `$He requires assistance to get to $his feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
 			} else {
-				r += `$He cannot get to $his feet unaided, and tries to stay seated as much as $he can.`;
+				r += `$He cannot get to $his feet unaided, and tries to stay seated as much as $he can. `;
 			}
 		}
 	}
@@ -1143,7 +1143,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 		} else {
 			r += `are deadly weapons`;
 		}
-		r += `.`;
+		r += `. `;
 	}
 
 	if (child.counter.pitKills > 0) {
@@ -1200,7 +1200,117 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 		}
 	}
 
-	// r += App.Desc.skin(child);
+	// r += App.Desc.skin(child);	TODO:
+
+	if (V.saleDescription) {
+		// r += App.Desc.accent(child);	TODO:
+	}
+
+	if (child.markings === "birthmark" && !child.prestige && child.pornPrestige < 2) {
+		r += `$He has a large, liver-colored birthmark, detracting from $his beauty. `;
+	}
+	if (child.skin === "sun tanned") {
+		if (child.releaseRules !== "restrictive" && child.releaseRules !== "masturbation" && child.releaseRules !== "chastity") {
+			if (child.fetishKnown && child.fetishStrength > 60) {
+				r += `$His tan is slightly uneven, since $he enjoys`;
+				switch (child.fetish) {
+					case "buttslut":
+						r += `letting other tanned slaves share a tanning bed with $him so they can sodomize $him while $he tans. `;
+						break;
+					case "cumslut":
+						r += `letting other tanned slaves share a tanning bed with $him so they get oral from $him while $he tans. `;
+						break;
+					case "sadist":
+						r += `forcing inferior slaves into the tanning beds with $him so $he can sodomize them while $he tans. `;
+						break;
+					case "dom":
+						r += `bringing other slaves into the tanning beds with $him so $he can fuck them while $he tans. `;
+						break;
+					case "masochist":
+					case "submissive":
+						r += `letting other slaves into the tanning beds with $him so they can fuck $him while $he tans. `;
+						break;
+					case "boobs":
+						r += `bringing other slaves into the tanning beds with $him so $he can tittyfuck them while $he tans. `;
+						break;
+					case "pregnancy":
+						if (Math.random() * 100 < V.seeDicks) {
+							r += `letting slaves with dicks into the tanning beds with $him so they can cum inside $him while $he tans. `;
+						}
+						break;
+					default:
+						r += `bringing other slaves into the tanning beds with $him to have sex while $he tans. `;
+						break;
+				}
+			}
+		}
+	}
+
+	if (V.showClothing && !V.saleDescription) {
+		// r += App.Desc.ear(child);	TODO:
+		// r += App.Desc.upperFace(child);	TODO:
+		// r += App.Desc.hair(child);	TODO:
+	} else {
+		r += `$His hair is ${child.hColor}`;
+		if (child.hColor !== child.eyebrowHColor) {
+			r += `, with ${child.eyebrowHColor} eyebrows`;
+		}
+		r += `. `;
+		if (child.hColor === "red" && child.hLength >= 10) {
+			if (child.markings === "freckles" || (child.markings === "heavily freckled")) {
+				if (skinToneLevel(child.skin) > 5 && skinToneLevel(child) < 10) {
+					r += `It goes perfectly with $his ${child.skin} skin and freckles. `;
+				}
+			}
+		}
+	}
+
+	let pubertyAge = Math.max(child.pubertyAgeXX, child.pubertyAgeXY);
+	if (child.physicalAge < pubertyAge - 2) {
+		r += ``;
+	} else if (child.underArmHStyle === "hairless") {
+		r += ``;
+	} else if (child.underArmHStyle === "bald") {
+		r += ``;
+	} else if (child.underArmHStyle === "waxed") {
+		r += ``;
+	} else if (child.physicalAge < pubertyAge - 1) {
+		r += ``;
+	} else if (child.physicalAge < pubertyAge) {
+		r += ``;
+	} else if (child.underArmHStyle === "shaved") {
+		r += ``;
+	} else if (child.underArmHStyle === "neat") {
+		r += ``;
+	} else if (child.underArmHStyle === "bushy") {
+		r += ``;
+	}
+
+	if (!child.voice) {
+		r += ``;
+	} else {
+		if (child.lips > 95) {
+			r += ``;
+			if (child.devotion > 50) {
+				r += ``;
+			} else if (child.devotion > 20) {
+				r += ``;
+			} else {
+				r += ``;
+			}
+			r += ``;
+		}
+	}
+
+	if (V.showBodyMods) {
+		r += App.Desc.earPiercing(child);
+		r += App.Desc.nosePiercing(child);
+		r += App.Desc.eyebrowPiercing(child);
+		r += App.Desc.customTat(child);
+	}
+
+	r += App.Desc.face(child);
+	r += App.Desc.mouth(child);
 
 	return r;
 };