diff --git a/devTools/FC.d.ts b/devTools/FC.d.ts
index 8a570c30a6217226617d1415c0615415f8522b1b..d51a3cd533dd8b4c8341f8dd7b9147e65839013a 100644
--- a/devTools/FC.d.ts
+++ b/devTools/FC.d.ts
@@ -130,6 +130,8 @@ declare namespace App {
 			speechRules: string;
 			clothes: string;
 			collar: string;
+			faceAccessory: string;
+			mouthAccessory: string;
 			shoes: string;
 			armAccessory: string;
 			legAccessory: string;
diff --git a/devTools/Script to convert SC to JS/SC to JS 1.py b/devTools/Script to convert SC to JS/SC to JS 1.py
index dd46ba50efc204d9514030edeb91b046a8da71c3..2e383b6fce6c4ac1a0cfcea9b44211753bc0d174 100644
--- a/devTools/Script to convert SC to JS/SC to JS 1.py	
+++ b/devTools/Script to convert SC to JS/SC to JS 1.py	
@@ -18,7 +18,7 @@ editor.rereplace(r"([a-zA-Z@].*?)<<", r"$1\n<<")
 editor.rereplace(r">>([a-zA-Z,\.@ ].*?)", r">>\n\t$1")
 
 # Raw text
-editor.rereplace(r"	([a-zA-Z@\.,; ].*)", r"	r.push\(`\1 `\);")
+editor.rereplace(r"	([a-zA-Z@\.,; ].*)", r"	r.push\(`\1`\);")
 
 # If / else
 editor.rereplace(r"<<if (.*?)>>", r"if \1 {")
@@ -102,3 +102,6 @@ editor.rereplace(r"(	r.push.*?[^{])(slave\.[^ ,']*)", r"\1${\2}")
 #remove incompatible comment style
 editor.rereplace(r"/%", r"/*")
 editor.rereplace(r"%/", r"*/")
+
+# replace random() with jsRandom()
+editor.rereplace(r"random\(", r"jsRandom\(")
\ No newline at end of file
diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index cd67c3ba8ea7ed09a6af49d0e1a6dfba5f404bb9..c48fd73fcf03afa07776f075d359876360d0e56e 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -1163,7 +1163,10 @@ App.Data.resetOnNGPlus = {
 	cumTotal: 0,
 	foodTotal: 0,
 	birthsTotal: 0,
+	abortionsTotal: 0,
+	miscarriagesTotal: 0,
 	pitKillsTotal: 0,
+	pitFightsTotal: 0,
 
 	collaboration: 0,
 	traitor: 0,
diff --git a/js/003-data/miscData.js b/js/003-data/miscData.js
index 5463e2ddacd3a4f9d0c11d941e9cea0e3ddc5529..4ccd1255ce98827b0ffbbd7e8c2165e2dc990792 100644
--- a/js/003-data/miscData.js
+++ b/js/003-data/miscData.js
@@ -2269,6 +2269,12 @@ App.Data.misc = {
 			fs: "FSGenderFundamentalist",
 			rs: "clothesBoughtBunny"
 		},
+		{
+			name: "Neck tie",
+			value: "neck tie",
+			fs: "FSPaternalist",
+			rs: "clothesBoughtConservative"
+		},
 		{
 			name: "Ancient Egyptian",
 			value: "ancient Egyptian",
@@ -2283,12 +2289,20 @@ App.Data.misc = {
 		{name: "Uncomfortable leather", value: "uncomfortable leather"},
 		{name: "Pregnancy biometrics", value: "preg biometrics", rs: "seePreg"},
 		{name: "Shock punishment", value: "shock punishment"},
-		{name: "Dildo gag", value: "dildo gag"},
-		{name: "Massive dildo gag", value: "massive dildo gag", rs: "buyGag"},
+		{name: "Neck corset", value: "neck corset"},
+	],
+
+	faceAccessory: [
+		{name: "Porcelain mask", value: "porcelain mask"},
+		{name: "Cat ears", value: "cat ears"},
+	],
+
+	mouthAccessory: [
 		{name: "Ball gag", value: "ball gag"},
 		{name: "Bit gag", value: "bit gag"},
-		{name: "Neck corset", value: "neck corset"},
-		{name: "Porcelain mask", value: "porcelain mask"}
+		{name: "Ring gag", value: "ring gag"},
+		{name: "Massive dildo gag", value: "massive dildo gag"},
+		{name: "Dildo gag", value: "dildo gag"},
 	],
 
 	shoes: [
diff --git a/js/003-data/slaveSummaryData.js b/js/003-data/slaveSummaryData.js
index abcd4340cb7e5f6973b38c2586bd7858e8324e67..4843e5912437aec08e691ac7f26cc57b628474da 100644
--- a/js/003-data/slaveSummaryData.js
+++ b/js/003-data/slaveSummaryData.js
@@ -130,7 +130,7 @@ App.Data.SlaveSummary = {
 					999: {desc: "Hyper T&A.", style: "pink"}
 				}
 			},
-			weight: { // indices: [weigh + 100, FSHedonisticDecadence (0,1), hips + 2, ]
+			weight: { // indices: [weigh + 100, FSHedonisticDecadence (0,1), hips + 2]
 				4: {desc: "Emaciated", style: "red"},
 				69: {
 					2: { // FSHedonisticDecadence doesn't matter
@@ -142,18 +142,18 @@ App.Data.SlaveSummary = {
 				110: {desc: "Trim"},
 				130: {desc: "Plush"},
 				195: {
-					0: {desc: "Overweight", style: "red"},
-					1: {
+					0: {
 						3: {desc: "Overweight", style: "red"},
-						5: {desc: "Nicely chubby"}
-					}
+						99: {desc: "Nicely chubby"}
+					},
+					1: {desc: "Nicely chubby"}
 				},
 				230: {
-					0: {desc: "Fat", style: "red"},
-					1: {
+					0: {
 						4: {desc: "Fat", style: "red"},
-						5: {desc: "Pleasantly soft and shapely"}
-					}
+						99: {desc: "Pleasantly soft and shapely"}
+					},
+					1: {desc: "Pleasantly soft and shapely"}
 				},
 				260: {
 					0: {desc: "Obese", style: "red"},
@@ -408,18 +408,14 @@ App.Data.SlaveSummary = {
 		accessory: {
 			collar: {
 				"ancient Egyptian": "Wesekh.",
-				"ball gag": "Ball gag.",
 				"bell collar": "Bell collar.",
-				"bit gag": "Bit gag.",
 				"bowtie": "Bowtie collar.",
+				"neck tie": "Neck tie.",
 				"cruel retirement counter": "Cruel counter collar.",
-				"dildo gag": "Dildo gag.",
 				"heavy gold": "Gold collar.",
 				"leather with cowbell": "Cowbell collar.",
-				"massive dildo gag": "Throat-bulging dildo gag.",
 				"neck corset": "Neck corset.",
 				"nice retirement counter": "Nice counter collar.",
-				"porcelain mask": "Porcelain mask.",
 				"preg biometrics": "Pregnancy biometrics collar.",
 				"pretty jewelry": "Pretty collar.",
 				"satin choker": "Satin choker.",
@@ -429,6 +425,17 @@ App.Data.SlaveSummary = {
 				"tight steel": "Steel collar.",
 				"uncomfortable leather": "Leather collar.",
 			},
+			faceAccessory: {
+				"porcelain mask": "Porcelain mask.",
+				"cat ears": "Cat ears.",
+			},
+			mouthAccessory: {
+				"bit gag": "Bit gag.",
+				"dildo gag": "Dildo gag.",
+				"ring gag": "Ring gag.",
+				"massive dildo gag": "Throat-bulging dildo gag.",
+				"ball gag": "Ball gag.",
+			},
 			belly: {
 				"a corset": "Corset.",
 				"a huge empathy belly": "Huge fake belly.",
@@ -766,7 +773,7 @@ App.Data.SlaveSummary = {
 					999: {desc:	"T&A+++", style: "pink"}
 				}
 			},
-			weight: { // indices: [weigh + 100, FSHedonisticDecadence (0,1), hips + 2, ]
+			weight: { // indices: [weigh + 100, FSHedonisticDecadence (0,1), hips + 2]
 				4: {desc: "W---", style: ["red", "strong"]},
 				69: {
 					99: { // FSHedonisticDecadence doesn't matter
@@ -778,18 +785,18 @@ App.Data.SlaveSummary = {
 				110: {desc: "W", style: "strong"},
 				130: {desc: "W+", style: "strong"},
 				195: {
-					0: {desc: "W++", style: ["red", "strong"]},
-					1: {
+					0: {
 						3: {desc: "W++", style: ["red", "strong"]},
-						5: {desc: "W++", style: "strong"}
-					}
+						99: {desc: "W++", style: "strong"}
+					},
+					1: {desc: "W++", style: "strong"}
 				},
 				230: {
-					0: {desc: "W+++", style: ["red", "strong"]},
-					1: {
+					0: {
 						4: {desc: "W+++", style: ["red", "strong"]},
-						5: {desc: "W+++", style: "strong"}
-					}
+						99: {desc: "W+++", style: "strong"}
+					},
+					1: {desc: "W+++", style: "strong"},
 				},
 				260: {
 					0: {desc: "W++++", style: ["red", "strong"]},
diff --git a/player variables documentation - Pregmod.txt b/player variables documentation - Pregmod.txt
index 3fa9a587f2fdb8fcbdeb2d556f8b196d20732380..3536d47f5d3ddd3f79150c2642c1feb79d2ab0e2 100644
--- a/player variables documentation - Pregmod.txt	
+++ b/player variables documentation - Pregmod.txt	
@@ -433,6 +433,16 @@ counter:
 	how many children you've had
 	accepts int
 
+	abortions:
+
+	number of abortions you've had
+	accepts int
+
+	miscarriages:
+
+	number of miscarriage you've had
+	accepts int
+
 	birthElite:
 
 	how many children you've carried for the SE
diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index 39fc114d8b0ef06aec02252cb5e806763f309465..eabbe801fc77140bd94c81fb153d3a2ad0c7de5f 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -2898,22 +2898,31 @@ may accept strings, use at own risk
 "uncomfortable leather"
 "tight steel"
 "shock punishment"
-"dildo gag"
 "heavy gold"
 "pretty jewelry"
 "nice retirement counter"
 "bell collar"
 "leather with cowbell"
 "bowtie"
+"neck tie"
 "neck corset"
 "stylish leather"
 "satin choker"
 "preg biometrics"
-"massive dildo gag"
 "silk ribbon"
+
+faceAccessory:
+"none"
+"porcelain mask"
+"cat ears"
+
+mouth:
+"none"
 "ball gag"
 "bit gag"
-"porcelain mask"
+"ring gag"
+"massive dildo gag"
+"dildo gag"
 
 shoes:
 
@@ -3229,6 +3238,16 @@ counter.birthsTotal:
 How many known times the slave has given birth.
 accepts int
 
+counter.abortions:
+
+number of abortions as your slave
+accepts int
+
+counter.miscarriages:
+
+number of miscarriage as your slave
+accepts int
+
 counter.oral:
 
 oral sex count
@@ -3264,6 +3283,16 @@ counter.pitKills:
 number of slaves killed in pit fights
 accepts int
 
+counter.pitWins:
+
+number of pit fights won
+accepts int
+
+counter.pitLosses:
+
+number of pit fights lost
+accepts int
+
 counter.slavesFathered:
 
 How many slaves she has sired under your ownership.
diff --git a/src/002-config/fc-version.js b/src/002-config/fc-version.js
index b79ddeac5bf44aa395948d524c2909b831150389..29e758ebb74fc57968a4e1450ef65dd189769808 100644
--- a/src/002-config/fc-version.js
+++ b/src/002-config/fc-version.js
@@ -1,7 +1,7 @@
 App.Version = {
 	base: "0.10.7.1", // The vanilla version the mod is based off of, this should never be changed.
 	pmod: "3.5.0",
-	release: 1069,
+	release: 1070,
 };
 
 /* Use release as save version */
diff --git a/src/Mods/SecExp/attackOptions.tw b/src/Mods/SecExp/attackOptions.tw
index a35834ca22790f257d0161370af7b44cc53019b9..926c27574dd64f5cd042bf3eb57fa9590884ee1e 100644
--- a/src/Mods/SecExp/attackOptions.tw
+++ b/src/Mods/SecExp/attackOptions.tw
@@ -8,7 +8,7 @@
 <<set _options = new App.UI.OptionsGroup()>>
 <<run _options.addOption("Unit descriptions are", "unitDescriptions", $SecExp.settings)
 .addValueList([["Abbreviated", 1], ["Summarized", 0]])>>
-<<print App.UI.DOM.includeDOM(_options.render())>>
+<<includeDOM _options.render()>>
 
 <br>
 
@@ -402,7 +402,7 @@ __Battle Plan__:
 	<<run _options.addOption("The incoming attack's scale warrants deploying the special force.", "SFIntervention")
 	.addValue("Green light", 1).on().addValue("Red light", 0).off()
 	.addComment("Some upgrades will be able to support your troops even if the special force is not deployed in the fight.")>>
-	<<print App.UI.DOM.includeDOM(_options.render())>>
+	<<includeDOM _options.render()>>
 <</if>>
 
 <<if $lastSelection.length > 0>> <br>
diff --git a/src/Mods/SecExp/buildings/secBarracks.tw b/src/Mods/SecExp/buildings/secBarracks.tw
index 2e922fded69bea8b8489e4ad1353a68572b810b8..92cbb8d39760eefc67aecdfc07ab69de407de8e2 100644
--- a/src/Mods/SecExp/buildings/secBarracks.tw
+++ b/src/Mods/SecExp/buildings/secBarracks.tw
@@ -130,7 +130,7 @@ Your current maximum number of units is <<print App.SecExp.battle.maxUnits()>> (
 <<set _options = new App.UI.OptionsGroup()>>
 <<run _options.addOption("Unit descriptions are", "unitDescriptions", $SecExp.settings)
 .addValue("Abbreviated", 1).on().addValue("Summarized", 0).off()>>
-<<print App.UI.DOM.includeDOM(_options.render())>>
+<<includeDOM _options.render()>>
 <<if App.SecExp.battle.activeUnits() >= App.SecExp.battle.maxUnits()>>
 	<br>You have reached the maximum number of units. You'll have to disband one or enlarge the barracks before forming a new unit.
 <</if>>
diff --git a/src/arcologyBuilding/cell.tw b/src/arcologyBuilding/cell.tw
index 87d3126b7b743cc49fe39a136c976434407f0f25..aa51dc8caa38271c94c3047b48bde840b61307fe 100644
--- a/src/arcologyBuilding/cell.tw
+++ b/src/arcologyBuilding/cell.tw
@@ -2,4 +2,4 @@
 
 <<set $nextButton = "Back", $nextLink = "Main">>
 
-<<print App.UI.DOM.includeDOM(V.building.renderCell(V.cellPath))>>
+<<includeDOM V.building.renderCell(V.cellPath)>>
diff --git a/src/art/vector/VectorArtJS.js b/src/art/vector/VectorArtJS.js
index ab842c9c0b06812875be75bd0af263ccf8d04937..47d89e44a3cb61d4b3aa34128392f25624642a6f 100644
--- a/src/art/vector/VectorArtJS.js
+++ b/src/art/vector/VectorArtJS.js
@@ -1337,7 +1337,7 @@ App.Art.vectorArtElement = (function() {
 			}
 
 			/* head addons */
-			if (slave.collar === "porcelain mask") {
+			if (slave.faceAccessory  === "porcelain mask") {
 				T.glassesColor = slave.glassesColor || "#FFFFFF"; /* use custom color or white */
 			} else {
 				T.glassesColor = slave.glassesColor || "#010101"; /* use custom color or default */
@@ -1967,7 +1967,7 @@ App.Art.vectorArtElement = (function() {
 			}
 		}
 		/* note: latex clothing actually shows some hair, but there is no appropriate art for it */
-		if (slave.collar === "cat ears") {
+		if (slave.faceAccessory  === "cat ears") {
 			res.appendChild(useSvg("Art_Vector_Cat_Ear_Back"));
 		}
 	}
@@ -2043,7 +2043,7 @@ App.Art.vectorArtElement = (function() {
 			}
 		}
 		/* note: latex clothing actually shows some hair, but there is no appropriate art for it */
-		if (slave.collar === "cat ears") {
+		if (slave.faceAccessory  === "cat ears") {
 			res.appendChild(useSvg("Art_Vector_Cat_Ear_Fore"));
 		}
 	}
@@ -2513,15 +2513,17 @@ App.Art.vectorArtElement = (function() {
 
 		/* ADDONS */
 		if (slave.fuckdoll === 0) { /* Fuckdolls cannot be decorated */
-			if (slave.collar === "dildo gag") {
+			if (slave.mouthAccessory   === "dildo gag") {
 				res.appendChild(useSvg("Art_Vector_Dildo_Gag"));
-			} else if (slave.collar === "ball gag") {
+			} else if (slave.mouthAccessory  === "ball gag") {
 				res.appendChild(useSvg("Art_Vector_Ball_Gag"));
-			} else if (slave.collar === "bit gag") {
+			} else if (slave.mouthAccessory  === "bit gag") {
 				res.appendChild(useSvg("Art_Vector_Bit_Gag"));
-			} else if (slave.collar === "massive dildo gag") {
+			} else if (slave.mouthAccessory  === "massive dildo gag") {
 				res.appendChild(useSvg("Art_Vector_Massive_Dildo_Gag"));
-			} else if (slave.collar === "porcelain mask") {
+			}
+
+			if (slave.faceAccessory   === "porcelain mask") {
 				res.appendChild(useSvg("Art_Vector_Porcelain_Mask"));
 			}
 
@@ -3040,10 +3042,15 @@ App.Art.legacyVectorArtElement = function() {
 			case "shock punishment":
 			case "tight steel":
 			case "uncomfortable leather":
+		}
+
+		/* Gag */
+		switch (slave.mouthAccessory ) {
 			case "dildo gag":
 				addImg(res, `outfit/${slave.collar}`);
 		}
 
+
 		/* Head base image */
 		if (wearingLatex === true) {
 			addImg(res, "outfit/head latex");
diff --git a/src/art/vector_revamp/vectorRevampedArtControl.js b/src/art/vector_revamp/vectorRevampedArtControl.js
index b7b6b3bf725b05efaccb1977d94781ce62a1791e..967fd9094a97677955c8258d05aa32f9824e52e4 100644
--- a/src/art/vector_revamp/vectorRevampedArtControl.js
+++ b/src/art/vector_revamp/vectorRevampedArtControl.js
@@ -1647,7 +1647,7 @@ class RevampedArtControl {
 		}
 
 		if (this.showMouth) {
-			switch (this.artSlave.collar) {
+			switch (this.artSlave.mouthAccessory) {
 				case "dildo gag":
 					result.push("Art_Vector_Revamp_Dildo_Gag");
 					break;
diff --git a/src/data/backwardsCompatibility/datatypeCleanup.js b/src/data/backwardsCompatibility/datatypeCleanup.js
index e3fa0e0b2fae264d53ffde31beb350b36ce2eed5..c7d950bdbd1cd8ab3e7df0dee0dae4f5a5f2b1a6 100644
--- a/src/data/backwardsCompatibility/datatypeCleanup.js
+++ b/src/data/backwardsCompatibility/datatypeCleanup.js
@@ -677,6 +677,9 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		if (typeof slave.ovaImplant !== "string") {
 			slave.ovaImplant = 0;
 		}
+		if (slave.pubertyXX === 0 && slave.ovaries > 0 && slave.preg === -1) {
+			slave.preg = 0; // no contraceptives for prepubescent slaves
+		}
 		slave.fertPeak = Math.clamp(+slave.fertPeak, 0, 4) || 0;
 		slave.broodmother = Math.clamp(+slave.broodmother, 0, 3) || 0;
 		slave.broodmotherFetuses = Math.max(+slave.broodmotherFetuses, 0) || 0;
@@ -880,6 +883,26 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		if (typeof slave.backAccessory !== "string") {
 			slave.backAccessory = "none";
 		}
+		if (typeof slave.faceAccessory !== "string") {
+			slave.faceAccessory = "none";
+		}
+		if (typeof slave.mouthAccessory !== "string") {
+			slave.mouthAccessory = "none";
+		}
+		switch(slave.collar) {
+			case "porcelain mask":
+				slave.faceAccessory = slave.collar;
+				slave.collar = "none";
+				break;
+			case "bit gag":
+			case "dildo gag":
+			case "massive dildo gag":
+			case "ball gag":
+			case "ring gag":
+				slave.mouthAccessory = slave.collar;
+				slave.collar = "none";
+				break;
+		}
 	}
 
 	/**
@@ -981,10 +1004,14 @@ globalThis.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.counter.mammary = Math.max(+slave.counter.mammary, 0) || 0;
 		slave.counter.penetrative = Math.max(+slave.counter.penetrative, 0) || 0;
 		slave.counter.pitKills = Math.max(+slave.counter.pitKills, 0) || 0;
+		slave.counter.pitWins = Math.max(+slave.counter.pitWins, 0) || 0;
+		slave.counter.pitLosses = Math.max(+slave.counter.pitLosses, 0) || 0;
 		slave.counter.milk = Math.max(+slave.counter.milk, 0) || 0;
 		slave.counter.cum = Math.max(+slave.counter.cum, 0) || 0;
 		slave.counter.births = Math.max(+slave.counter.births, 0) || 0;
 		slave.counter.birthsTotal = Math.max(+slave.counter.birthsTotal, 0) || slave.counter.births;
+		slave.counter.abortions = Math.max(+slave.counter.abortions, 0) || 0;
+		slave.counter.miscarriages = Math.max(+slave.counter.miscarriages, 0) || 0;
 		slave.counter.laborCount = Math.max(+slave.counter.laborCount, 0) || slave.counter.birthsTotal;
 		slave.counter.slavesFathered = Math.max(+slave.counter.slavesFathered, 0) || 0;
 		slave.counter.PCChildrenFathered = Math.max(+slave.counter.PCChildrenFathered, 0) || 0;
@@ -2282,7 +2309,7 @@ App.Entity.Utils.GenePoolRecordCleanup = (function() {
 			"useRulesAssistant",
 			"diet", "dietCum", "dietMilk",
 			"drugs", "curatives", "aphrodisiacs",
-			"choosesOwnClothes", "clothes", "collar", "shoes",
+			"choosesOwnClothes", "clothes", "collar", "mouthAccessory", "faceAccessory", "shoes",
 			"makeup", "nails",
 			"vaginalAccessory", "vaginalAttachment", "dickAccessory", "nipplesAccessory", "armAccessory", "legAccessory",
 			"buttplug", "buttplugAttachment",
@@ -2571,6 +2598,20 @@ App.Entity.Utils.RARuleDatatypeCleanup = function() {
 		if (typeof (set.abortion) === "string") {
 			set.abortion = [set.abortion];
 		}
+		switch(set.collar) {
+			case "porcelain mask":
+				set.faceAccessory = set.collar;
+				set.collar = null;
+				break;
+			case "bit gag":
+			case "dildo gag":
+			case "massive dildo gag":
+			case "ball gag":
+			case "ring gag":
+				set.mouthAccessory = set.collar;
+				set.collar = null;
+				break;
+		}
 	}
 }();
 
diff --git a/src/endWeek/saClothes.js b/src/endWeek/saClothes.js
index 593c50e77c984259d65c569e85a76db59f5fbf84..f0d53042d2426cb85e3f572df28bf9928669223a 100644
--- a/src/endWeek/saClothes.js
+++ b/src/endWeek/saClothes.js
@@ -32,6 +32,12 @@ App.SlaveAssignment.clothes = (function() {
 		if (slave.collar !== "none") {
 			collarEffects(slave);
 		}
+		if (slave.faceAccessory  !== "none") {
+			maskEffects(slave);
+		}
+		if (slave.mouthAccessory  !== "none") {
+			mouthEffects(slave);
+		}
 		chastityEffects(slave);
 		if (slave.bellyAccessory !== "none") {
 			bellyAccessories(slave);
@@ -395,25 +401,6 @@ App.SlaveAssignment.clothes = (function() {
 			} else if (slave.collar === "uncomfortable leather" || slave.collar === "neck corset") {
 				r.push(`The uncomfortable leather collar ${he}'s wearing <span class="gold">reminds ${him} to be afraid</span> every time ${he} turns ${his} head.`);
 				slave.trust -= 1;
-			} else if (slave.collar === "dildo gag") {
-				r.push(`The dildo gag ${he}'s wearing <span class="gold">reminds ${him} to be afraid</span> with every breath ${he} must carefully take through ${his} nose.`);
-				slave.trust -= 1;
-			} else if (slave.collar === "ball gag") {
-				r.push(`The ball gag ${he}'s wearing keeps ${his} mouth filled and, since ${he} can't speak out, forces ${him} <span class="hotpink">to submit</span> to your will. ${He} <span class="gold">fears</span> for ${his} safety with every suppressed word.`);
-				slave.devotion++;
-				slave.trust -= 2;
-			} else if (slave.collar === "bit gag") {
-				r.push(`The uncomfortable bit gag ${he}'s wearing keeps ${his} mouth locked and, since ${he} can't speak out, forces ${him} <span class="hotpink">to submit</span> to your will. ${He} <span class="gold">fears</span> for ${his} safety with every suppressed word.`);
-				slave.devotion++;
-				slave.trust -= 2;
-			} else if (slave.collar === "porcelain mask") {
-				r.push(`The beautiful porcelain mask ${he}'s wearing slowly erodes ${his} identity, forcing ${him} <span class="hotpink">to submit</span> to your will. ${He} <span class="gold">questions</span> who ${he} is.`);
-				slave.devotion++;
-				slave.trust -= 2;
-			} else if (slave.collar === "massive dildo gag") {
-				r.push(`The enormous dildo gag ${he}'s wearing <span class="gold">terrifies ${him}</span> that ${he} will soon be choking down cocks of similar size. ${He} can feel ${his} throat stretching around the giant dildo, and <span class="mediumorchid">resents you</span> for tormenting ${him} this way.`);
-				slave.devotion -= 1;
-				slave.trust -= 2;
 			} else if (slave.collar === "shock punishment") {
 				r.push(`The shock collar ${he}'s wearing makes ${his} frequent, deserved punishments <span class="gold">immediate, inescapable,</span> and <span class="mediumorchid">awful.</span>`);
 				slave.devotion -= 2;
@@ -433,8 +420,8 @@ App.SlaveAssignment.clothes = (function() {
 			if (slave.collar === "heavy gold" || slave.collar === "ancient Egyptian") {
 				r.push(`${He} bears the burden of ${his} heavy gold collar with <span class="mediumaquamarine">confidence.</span>`);
 				slave.trust += 1;
-			} else if (slave.collar === "bowtie") {
-				r.push(`The bowtie and shirt collar ${he} wears fill ${him} with <span class="mediumaquamarine">confidence,</span> since although they conceal a more traditional slave collar that can be used to restrain ${him}, they don't look like it.`);
+			} else if (slave.collar === "bowtie" || slave.collar === "neck tie" ) {
+				r.push(`The ${slave.collar} and shirt collar ${he} wears fill ${him} with <span class="mediumaquamarine">confidence,</span> since although they conceal a more traditional slave collar that can be used to restrain ${him}, they don't look like it.`);
 				slave.trust += 1;
 			} else if (["nice retirement counter", "pretty jewelry", "satin choker", "silk ribbon", "stylish leather"].includes(slave.collar)) {
 				r.push(`The lovely collar ${he} wears fills ${him} with <span class="mediumaquamarine">confidence.</span>`);
@@ -447,31 +434,90 @@ App.SlaveAssignment.clothes = (function() {
 					r.push(`${He} <span class="hotpink">likes</span> how ${his} cow collar encourages everyone to touch ${his} udders.`);
 					slave.devotion += 1;
 				}
-			} else if (slave.collar === "ball gag" || slave.collar === "bit gag") {
+			}
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function maskEffects(slave) {
+		if (slave.devotion <= 20) {
+			if (slave.faceAccessory === "porcelain mask") {
+				r.push(`The beautiful porcelain mask ${he}'s wearing slowly erodes ${his} identity, forcing ${him} <span class="hotpink">to submit</span> to your will. ${He} <span class="gold">questions</span> who ${he} is.`);
+				slave.devotion++;
+				slave.trust -= 2;
+			} else if (slave.faceAccessory === "cat ears") {
+				r.push(`The adorable cat ears ${he}'s wearing slowly chip away at ${his} dignity, forcing ${him} <span class="hotpink">to submit</span> to your will. ${He} <span class="gold">feels</span> more and more like a sex object.`);
+				slave.devotion++;
+				slave.trust -= 2;
+			}
+		} else {
+			if (slave.faceAccessory === "porcelain mask") {
 				if (slave.fetish === "submissive" && slave.fetishStrength > 95) {
-					r.push(`${He} <span class="hotpink">loves</span> how ${his} gag forces ${him} to keep silent.`);
+					r.push(`${He} <span class="hotpink">loves</span> how ${his} mask makes ${him} beautiful enough for you.`);
 					slave.devotion += 1;
 				} else if (slave.fetish === "submissive" || slave.energy > 95) {
-					r.push(`${He} <span class="hotpink">likes</span> how ${his} gag forces ${him} to keep silent.`);
+					r.push(`${He} <span class="hotpink">likes</span> how ${his} mask makes ${him} beautiful enough for you.`);
 					slave.devotion += 1;
 				}
-			} else if (slave.collar === "porcelain mask") {
+			} else if (slave.faceAccessory === "cat ears") {
 				if (slave.fetish === "submissive" && slave.fetishStrength > 95) {
-					r.push(`${He} <span class="hotpink">loves</span> how ${his} mask makes ${him} beautiful enough for you.`);
+					r.push(`${He} <span class="hotpink">loves</span> how ${his} cat ears make ${him} especially adorable for you.`);
 					slave.devotion += 1;
 				} else if (slave.fetish === "submissive" || slave.energy > 95) {
-					r.push(`${He} <span class="hotpink">likes</span> how ${his} mask makes ${him} beautiful enough for you.`);
+					r.push(`${He} <span class="hotpink">likes</span> how ${his} cat ears make ${him} especially adorable for you.`);
+					slave.devotion += 1;
+				}
+			}
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 *
+	 */
+	function mouthEffects(slave) {
+		if (slave.devotion <= 20) {
+			if (slave.mouthAccessory === "dildo gag") {
+				r.push(`The dildo gag ${he}'s wearing <span class="gold">reminds ${him} to be afraid</span> with every breath ${he} must carefully take through ${his} nose.`);
+				slave.trust -= 1;
+			} else if (slave.mouthAccessory === "ball gag") {
+				r.push(`The ball gag ${he}'s wearing keeps ${his} mouth filled and, since ${he} can't speak out, forces ${him} <span class="hotpink">to submit</span> to your will. ${He} <span class="gold">fears</span> for ${his} safety with every suppressed word.`);
+				slave.devotion++;
+				slave.trust -= 2;
+			} else if (slave.mouthAccessory === "ring gag") {
+				r.push(`The ring gag ${he}'s wearing keeps ${his} mouth stretched wide and drooling. Since ${he} can't speak clearly, it forces ${him} <span class="hotpink">to submit</span> to your will. ${He} <span class="gold">fears</span> for ${his} safety with every suppressed word.`);
+				slave.devotion++;
+				slave.trust -= 2;
+			} else if (slave.mouthAccessory === "bit gag") {
+				r.push(`The uncomfortable bit gag ${he}'s wearing keeps ${his} mouth locked and, since ${he} can't speak out, forces ${him} <span class="hotpink">to submit</span> to your will. ${He} <span class="gold">fears</span> for ${his} safety with every suppressed word.`);
+				slave.devotion++;
+				slave.trust -= 2;
+			} else if (slave.mouthAccessory === "massive dildo gag") {
+				r.push(`The enormous dildo gag ${he}'s wearing <span class="gold">terrifies ${him}</span> that ${he} will soon be choking down cocks of similar size. ${He} can feel ${his} throat stretching around the giant dildo, and <span class="mediumorchid">resents you</span> for tormenting ${him} this way.`);
+				slave.devotion -= 1;
+				slave.trust -= 2;
+			}
+		} else {
+			if (slave.mouthAccessory === "ball gag" || slave.mouthAccessory === "bit gag" || slave.mouthAccessory === "ring gag") {
+				if (slave.fetish === "submissive" && slave.fetishStrength > 95) {
+					r.push(`${He} <span class="hotpink">loves</span> how ${his} gag forces ${him} to keep silent.`);
+					slave.devotion += 1;
+				} else if (slave.fetish === "submissive" || slave.energy > 95) {
+					r.push(`${He} <span class="hotpink">likes</span> how ${his} gag forces ${him} to keep silent.`);
 					slave.devotion += 1;
 				}
 			}
 		}
-		if (slave.collar === "dildo gag") {
+		if (slave.mouthAccessory === "dildo gag") {
 			if (slave.skill.oral <= 10) {
 				r.push(`Living gagged by a dildo, ${he} can't help but get better at having things down ${his} throat.`);
 				r.push(`${SkillIncrease.Oral(slave, 5)}`);
 			}
 		}
-		if (slave.collar === "massive dildo gag") {
+		if (slave.mouthAccessory === "massive dildo gag") {
 			if (slave.skill.oral < 75) {
 				r.push(`Living gagged by such an immense dildo, ${he} can't help but get even better at having giant things rammed down ${his} throat.`);
 				r.push(`${SkillIncrease.Oral(slave, 5)}`);
@@ -587,6 +633,8 @@ App.SlaveAssignment.clothes = (function() {
 					slave.preg = 0;
 				}
 				TerminatePregnancy(slave);
+				slave.counter.miscarriages++;
+				V.miscarriagesTotal++;
 				if (slave.fuckdoll === 0 && slave.fetish !== "mindbroken") {
 					if (slave.devotion < -50) {
 						r.push(`${He} is <span class="mediumorchid">filled with violent, consuming hatred</span> and <span class="gold">fear.</span> Even though ${he} knew ${his} baby was destined for a slave orphanage, it seems ${he} cared for it and views you as its killer.`);
@@ -1011,6 +1059,8 @@ App.SlaveAssignment.clothes = (function() {
 							slave.preg = 0;
 						}
 						TerminatePregnancy(slave);
+						slave.counter.miscarriages++;
+						V.miscarriagesTotal++;
 						r.push(`${He} is`);
 						if (slave.devotion < -50) {
 							r.push(`<span class="mediumorchid">filled with violent, consuming hatred</span> and <span class="gold">fear.</span> Even though ${he} knew ${his} baby was destined for a slave orphanage, it seems ${he} cared for it and views you as its killer.`);
diff --git a/src/endWeek/saDrugs.js b/src/endWeek/saDrugs.js
index 57f984b3f9ad6429e028a8a74a37a5ee5148edec..4dd9ee17e127ed2d2b6af0f3305f04d55150d4c3 100644
--- a/src/endWeek/saDrugs.js
+++ b/src/endWeek/saDrugs.js
@@ -1588,6 +1588,8 @@ App.SlaveAssignment.drugs = (function() {
 							slave.preg = 0;
 						}
 						TerminatePregnancy(slave);
+						slave.counter.miscarriages++;
+						V.miscarriagesTotal++;
 						if (slave.fetish !== "mindbroken" && slave.fuckdoll === 0) {
 							r += ` ${He} is`;
 							if (slave.devotion < -50) {
diff --git a/src/endWeek/saPorn.js b/src/endWeek/saPorn.js
index e5b71af2f88ada3a66883cf9c0e0454614a62560..2f51af66f0c395659b80586f570a1b217f323df3 100644
--- a/src/endWeek/saPorn.js
+++ b/src/endWeek/saPorn.js
@@ -114,7 +114,7 @@ App.SlaveAssignment.porn = (function() {
 			decayRate = 5000;
 			if (slave.fuckdoll > 0) {
 				face = 50;
-			} else if (slave.collar === "porcelain mask") {
+			} else if (slave.faceAccessory  === "porcelain mask") {
 				face = 20;
 			} else {
 				face = slave.face * 4;
@@ -124,7 +124,7 @@ App.SlaveAssignment.porn = (function() {
 			decayRate = 500;
 			if (slave.fuckdoll > 0) {
 				face = 20;
-			} else if (slave.collar === "porcelain mask") {
+			} else if (slave.faceAccessory  === "porcelain mask") {
 				face = 50;
 			} else {
 				face = slave.face * 2;
@@ -134,7 +134,7 @@ App.SlaveAssignment.porn = (function() {
 			decayRate = 30;
 			if (slave.fuckdoll > 0) {
 				face = 0;
-			} else if (slave.collar === "porcelain mask") {
+			} else if (slave.faceAccessory  === "porcelain mask") {
 				face = 0;
 			} else {
 				face = slave.face / 20;
@@ -167,7 +167,7 @@ App.SlaveAssignment.porn = (function() {
 	function faceCommentary(slave) {
 		if (slave.fuckdoll > 0) {
 			return;
-		} else if (slave.collar === "porcelain mask") {
+		} else if (slave.faceAccessory  === "porcelain mask") {
 			r += `${His} mask adds an air of mystery to ${him}, `;
 			if (slave.porn.prestige > 1) {
 				r += `but people wonder if ${he} is trying to hide something. `;
diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw
index 2140ef648506768ff44e43fc0e0389daa1706434..9abbd5f387e163e784c06cf93865c4f3289be991 100644
--- a/src/events/intro/introSummary.tw
+++ b/src/events/intro/introSummary.tw
@@ -119,7 +119,7 @@ You may review your settings before clicking "Continue" to begin.<br>
 	<<run _options.addOption("Economic Tabs on weekly reports are", "useTabs")
 	.addValue("Enabled", 1).on().addValue("Disabled", 0).off()>>
 	
-	<<print App.UI.DOM.includeDOM(_options.render())>>
+	<<includeDOM _options.render()>>
 
 	<h2>Images</h2>
 	<<set _options = new App.UI.OptionsGroup()>>
@@ -127,7 +127,7 @@ You may review your settings before clicking "Continue" to begin.<br>
 	<<run _options.addOption("Images are", "seeImages")
 	.addValue("Enabled", 1).on().addValue("Disabled", 0).off()>>
 	
-	<<print App.UI.DOM.includeDOM(_options.render())>>
+	<<includeDOM _options.render()>>
 
 	<<if $seeImages > 0>>
 		<div class="imageRef" style="width:200px;height:200px;margin-left:50px;">
@@ -177,7 +177,7 @@ You may review your settings before clicking "Continue" to begin.<br>
 		<<run _options.addOption("Slave images in the weekly report are", "seeReportImages")
 		.addValue("Enabled", 1).on().addValue("Disabled", 0).off()>>
 		
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 	<</if>>
 	</div>
 </div>
@@ -259,7 +259,7 @@ You may review your settings before clicking "Continue" to begin.<br>
 	.addValue("Enable non-erotic events", 1).on().customDescription("Game mode: ''two-handed''. Includes non-erotic events concerning the changing world.")
 	.addValue("Disable non-erotic events", 0).off().customDescription("Game mode: ''one-handed''. No non-erotic events concerning the changing world.")>>
 
-	<<print App.UI.DOM.includeDOM(_options.render())>>
+	<<includeDOM _options.render()>>
 
 	<h2>The Free City</h2>
 	<<set _options = new App.UI.OptionsGroup()>>
@@ -302,7 +302,7 @@ You may review your settings before clicking "Continue" to begin.<br>
 	<<run _options.addOption("The Free City could develop as many as ''$FSCreditCount'' future societies.", "FSCreditCount")
 	.showTextBox().addComment("5 is default, 4 behaves the same as pre-patch 0.9.9.0, max is 7. This option cannot be changed during the game.")>>
 
-	<<print App.UI.DOM.includeDOM(_options.render())>>
+	<<includeDOM _options.render()>>
 
 	<h2>Content</h2>
 	<<set _options = new App.UI.OptionsGroup()>>
@@ -355,7 +355,7 @@ You may review your settings before clicking "Continue" to begin.<br>
 		.addValue("Enabled", 1).on().addValue("Disabled", 0).off()>>
 	<</if>>
 
-	<<print App.UI.DOM.includeDOM(_options.render())>>
+	<<includeDOM _options.render()>>
 
 	<h2>Mods</h2>
 	<<set _options = new App.UI.OptionsGroup()>>
@@ -373,7 +373,7 @@ You may review your settings before clicking "Continue" to begin.<br>
 	<<run _options.addOption("The Security Expansion Mod is", "secExpEnabled").addComment("This mod introduces security and crime in the arcology, as well as attacks and battles.")
 	.addValue("Enabled", 1).on().addValue("Disabled", 0).off()>>
 
-	<<print App.UI.DOM.includeDOM(_options.render())>>
+	<<includeDOM _options.render()>>
 	</div>
 </div>
 
@@ -425,7 +425,7 @@ You may review your settings before clicking "Continue" to begin.<br>
 	<<run _options.addOption("Slaves with fat lips or heavy oral piercings may lisp", "disableLisping")
 	.addValue("Yes", 0).on().addValue("No", 1).off()>>
 
-	<<print App.UI.DOM.includeDOM(_options.render())>>
+	<<includeDOM _options.render()>>
 
 	<h2>Age</h2>
 	<<set _options = new App.UI.OptionsGroup()>>
@@ -461,7 +461,7 @@ You may review your settings before clicking "Continue" to begin.<br>
 	<<run _options.addOption("Children growing as they age is", "loliGrow")
 	.addValue("Enabled", 1).on().addValue("Disabled", 0).off()>>
 
-	<<print App.UI.DOM.includeDOM(_options.render())>>
+	<<includeDOM _options.render()>>
 	</div>
 </div>
 
@@ -591,7 +591,7 @@ You may review your settings before clicking "Continue" to begin.<br>
 			["Blind luck", "luck"]]
 		)>>
 
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 
 		<h2>Sexuality</h2>
 		<<set _options = new App.UI.OptionsGroup()>>
@@ -673,7 +673,7 @@ You may review your settings before clicking "Continue" to begin.<br>
 			.addValueList([["All natural", 0], ["Fake", 400]])>>
 		<</if>>
 
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 	<<else>>
 
 		You are a
@@ -695,17 +695,10 @@ You may review your settings before clicking "Continue" to begin.<br>
 			''surprisingly young''.
 		<</if>>
 
-		<<options $playerAging>>
-			Your birthday will be in $PC.birthWeek weeks
-			<<option 2 "Enable aging">>
-				and you ''age naturally''.
-			<<option 1 "Semi aging">>
-				and you ''will'' celebrate birthdays, but ''not age''.
-			<<option 0 "Disable aging">>
-				and you will ''not age,'' nor experience birthdays.
-			<<comment>>
-			This option cannot be changed during the game
-		<</options>>
+		<<run _options.addOption("Player aging is", "playerAging")
+		.addValue("Enabled", 2).on().addValue("Celebrate birthdays, but don't age.", 1).neutral().addValue("Disabled", 0).off()
+		.addComment("This option cannot be changed during the game.")>>
+
 		<p>
 			Your custom title is ''<<textbox2 "$PC.customTitle" $PC.customTitle "Intro Summary">>''
 			and when lisped it is ''<<textbox2 "$PC.customTitleLisp" $PC.customTitleLisp "Intro Summary">>''.
diff --git a/src/events/intro/takeoverTarget.tw b/src/events/intro/takeoverTarget.tw
index 231ec44ca006e908742433560d40932fbc75bb2b..4d59a6556e32ed32da633ac89e56231fca753d54 100644
--- a/src/events/intro/takeoverTarget.tw
+++ b/src/events/intro/takeoverTarget.tw
@@ -43,4 +43,4 @@
 </div>
 </div>
 
-<<print App.UI.DOM.includeDOM(App.Intro.generateEstablishedArcologies(), "list")>>
+<<includeDOM App.Intro.generateEstablishedArcologies()>>
diff --git a/src/facilities/nursery/nurseryDatatypeCleanup.js b/src/facilities/nursery/nurseryDatatypeCleanup.js
index de65be9984e94e87339540509349f87e52918b76..e57f1d4a33976617e7f8b804ae54668bad2da2ba 100644
--- a/src/facilities/nursery/nurseryDatatypeCleanup.js
+++ b/src/facilities/nursery/nurseryDatatypeCleanup.js
@@ -344,6 +344,26 @@ App.Facilities.Nursery.ChildDatatypeCleanup = function(child) {
 		if (typeof child.backAccessory !== "string") {
 			child.backAccessory = "none";
 		}
+		if (typeof slave.faceAccessory !== "string") {
+			slave.faceAccessory = "none";
+		}
+		if (typeof slave.mouthAccessory !== "string") {
+			slave.mouthAccessory = "none";
+		}
+		switch(slave.collar) {
+			case "porcelain mask":
+				slave.faceAccessory = slave.collar;
+				slave.collar = "none";
+				break;
+			case "bit gag":
+			case "dildo gag":
+			case "massive dildo gag":
+			case "ball gag":
+			case "ring gag":
+				slave.mouthAccessory = slave.collar;
+				slave.collar = "none";
+				break;
+		}
 	}
 
 	function childDietDatatypeCleanup(child) {
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index 5c6fa56fe2b4d6f191fd54d647f4d19128220dd4..5cda07d18f50466b78df9dea16db9fd58a509a86 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -867,56 +867,56 @@ SLAVE ASSIGNMENTS:
 SLAVE ASSIGNMENTS (COMMON):
 **********/
 <<case "Attending Classes">>
-	<<print App.UI.DOM.includeDOM(App.Encyclopedia.Entries.attendingClasses(), "encyclasses")>>
+	<<includeDOM App.Encyclopedia.Entries.attendingClasses()>>
 	//Associated facility: [[Schoolroom|Encyclopedia][$encyclopedia = "Schoolroom"]]//
 
 
 <<case "Confinement">>
-	<<print App.UI.DOM.includeDOM(App.Encyclopedia.Entries.confinement(), "encyconfine")>>
+	<<includeDOM App.Encyclopedia.Entries.confinement()>>
 	//Associated facility: [[Cellblock|Encyclopedia][$encyclopedia = "Cellblock"]]//
 
 
 <<case "Fucktoy">>
-	<<print App.UI.DOM.includeDOM(App.Encyclopedia.Entries.fucktoy(), "encyfucktoy")>>
+	<<includeDOM App.Encyclopedia.Entries.fucktoy()>>
 	//Associated facility: [[Master Suite|Encyclopedia][$encyclopedia = "Master Suite"]]//
 
 
 <<case "Glory Hole">>
-	<<print App.UI.DOM.includeDOM(App.Encyclopedia.Entries.gloryHole(), "encyglory")>>
+	<<includeDOM App.Encyclopedia.Entries.gloryHole()>>
 	//Associated facility: [[Arcade|Encyclopedia][$encyclopedia = "Arcade"]]//
 
 
 <<case "Milking">>
-	<<print App.UI.DOM.includeDOM(App.Encyclopedia.Entries.milking(), "encymilk")>>
+	<<includeDOM App.Encyclopedia.Entries.milking()>>
 	//Associated facility: [[Dairy|Encyclopedia][$encyclopedia = "Dairy"]]//
 
 
 <<case "Farming">>
-	<<print App.UI.DOM.includeDOM(App.Encyclopedia.Entries.farming(), "encyfarm")>>
+	<<includeDOM App.Encyclopedia.Entries.farming()>>
 	//Associated facility: [[Farmyard|Encyclopedia][$encyclopedia = "Farmyard"]]//
 
 
 <<case "Public Service">>
-	<<print App.UI.DOM.includeDOM(App.Encyclopedia.Entries.publicService(), "encypublic")>>
+	<<includeDOM App.Encyclopedia.Entries.publicService()>>
 	//Associated facility: [[Club|Encyclopedia][$encyclopedia = "Club"]]//
 
 
 <<case "Rest">>
-	<<print App.UI.DOM.includeDOM(App.Encyclopedia.Entries.rest(), "encyrest")>>
+	<<includeDOM App.Encyclopedia.Entries.rest()>>
 	//Associated facilities: [[Spa|Encyclopedia][$encyclopedia = "Spa"]], [[Clinic|Encyclopedia][$encyclopedia = "Clinic"]]//
 
 
 <<case "Sexual Servitude">>
-	<<print App.UI.DOM.includeDOM(App.Encyclopedia.Entries.sexualServitude(), "encysexServ")>>
+	<<includeDOM App.Encyclopedia.Entries.sexualServitude()>>
 
 
 <<case "Servitude">>
-	<<print App.UI.DOM.includeDOM(App.Encyclopedia.Entries.servitude(), "encyserve")>>
+	<<includeDOM App.Encyclopedia.Entries.servitude()>>
 	//Associated facility: [[Servants' Quarters|Encyclopedia][$encyclopedia = "Servants' Quarters"]]//
 
 
 <<case "Whoring">>
-	<<print App.UI.DOM.includeDOM(App.Encyclopedia.Entries.whoring(), "encywhore")>>
+	<<includeDOM App.Encyclopedia.Entries.whoring()>>
 	//Associated facility: [[Brothel|Encyclopedia][$encyclopedia = "Brothel"]]//
 
 /**********
diff --git a/src/gui/options.js b/src/gui/options.js
index 4c1996f159f8250a0ff6888bfb3ee36067a16bc0..01035bf3f3342bfd95fb9c6002981691b3b0d3f5 100644
--- a/src/gui/options.js
+++ b/src/gui/options.js
@@ -1,293 +1,306 @@
 App.UI.OptionsGroup = (function() {
+	/**
+	 * @typedef value
+	 * @property {*} value
+	 * @property {string} [name]
+	 * @property {string} mode
+	 * @property {number} [compareValue]
+	 * @property {string} [descAppend] can be SC markup
+	 * @property {boolean} [on]
+	 * @property {boolean} [off]
+	 * @property {boolean} [neutral]
+	 * @property {Function} [callback]
+	 */
+
+	const Option = class {
 		/**
-		 * @typedef value
-		 * @property {*} value
-		 * @property {string} [name]
-		 * @property {string} mode
-		 * @property {number} [compareValue]
-		 * @property {string} [descAppend] can be SC markup
-		 * @property {boolean} [on]
-		 * @property {boolean} [off]
-		 * @property {boolean} [neutral]
-		 * @property {Function} [callback]
+		 * @param {string} description can be SC markup
+		 * @param {string} property
+		 * @param {object} [object=V]
 		 */
-
-		const Option = class {
+		constructor(description, property, object = V) {
+			this.description = description;
+			this.property = property;
+			this.object = object;
 			/**
-			 * @param {string} description can be SC markup
-			 * @param {string} property
-			 * @param {object} [object=V]
+			 * @type {Array<value>}
 			 */
-			constructor(description, property, object = V) {
-				this.description = description;
-				this.property = property;
-				this.object = object;
-				/**
-				 * @type {Array<value>}
-				 */
-				this.valuePairs = [];
-			}
+			this.valuePairs = [];
+		}
 
-			/**
-			 * @param {*} name
-			 * @param {*} [value=name]
-			 * @param {Function} [callback]
-			 * @returns {Option}
-			 */
-			addValue(name, value = name, callback = undefined) {
-				this.valuePairs.push({name: name, value: value, mode: "=", callback: callback});
-				return this;
-			}
+		/**
+		 * @param {*} name
+		 * @param {*} [value=name]
+		 * @param {Function} [callback]
+		 * @returns {Option}
+		 */
+		addValue(name, value = name, callback = undefined) {
+			this.valuePairs.push({
+				name: name, value: value, mode: "=", callback: callback
+			});
+			return this;
+		}
 
-			/**
-			 * @param {Array<*|Array>} values
-			 * @returns {Option}
-			 */
-			addValueList(values) {
-				for (const value of values) {
-					if (Array.isArray(value)) {
-						this.addValue(value[0], value[1]);
-					} else {
-						this.addValue(value);
-					}
+		/**
+		 * @param {Array<*|Array>} values
+		 * @returns {Option}
+		 */
+		addValueList(values) {
+			for (const value of values) {
+				if (Array.isArray(value)) {
+					this.addValue(value[0], value[1]);
+				} else {
+					this.addValue(value);
 				}
-				return this;
 			}
+			return this;
+		}
 
-			/**
-			 * @param {*} value
-			 * @param {number} compareValue
-			 * @param {string} mode on of: "<", "<=", ">", ">="
-			 * @param {string} [name=value]
-			 */
-			addRange(value, compareValue, mode, name = value) {
-				this.valuePairs.push({
-					name: name, value: value, mode: mode, compareValue: compareValue
-				});
-				return this;
-			}
+		/**
+		 * @param {*} value
+		 * @param {number} compareValue
+		 * @param {string} mode on of: "<", "<=", ">", ">="
+		 * @param {string} [name=value]
+		 */
+		addRange(value, compareValue, mode, name = value) {
+			this.valuePairs.push({
+				name: name, value: value, mode: mode, compareValue: compareValue
+			});
+			return this;
+		}
 
-			/**
-			 * @returns {Option}
-			 */
-			showTextBox() {
-				this.textbox = true;
-				return this;
+		/**
+		 * @param {string} [unit]
+		 * @returns {Option}
+		 */
+		showTextBox(unit) {
+			this.textbox = true;
+			if (unit) {
+				this.unit = unit;
 			}
+			return this;
+		}
 
-			/**
-			 * @param {string} comment can be SC markup
-			 * @returns {Option}
-			 */
-			addComment(comment) {
-				this.comment = comment;
-				return this;
-			}
+		/**
+		 * @param {string} comment can be SC markup
+		 * @returns {Option}
+		 */
+		addComment(comment) {
+			this.comment = comment;
+			return this;
+		}
 
-			/**
-			 * Adds a button that executes the callback when clicked AND reloads the passage
-			 *
-			 * @param {string} name
-			 * @param {Function} callback
-			 * @param {string} passage
-			 */
-			customButton(name, callback, passage) {
-				this.valuePairs.push({
-					name: name, value: passage, callback: callback, mode: "custom"
-				});
-				return this;
-			}
+		/**
+		 * Adds a button that executes the callback when clicked AND reloads the passage
+		 *
+		 * @param {string} name
+		 * @param {Function} callback
+		 * @param {string} passage
+		 */
+		customButton(name, callback, passage) {
+			this.valuePairs.push({
+				name: name, value: passage, callback: callback, mode: "custom"
+			});
+			return this;
+		}
 
-			/**
-			 * @param {string} element can be SC markup
-			 * @returns {Option}
-			 */
-			addCustomElement(element) {
-				this.valuePairs.push({value: element, mode: "plain"});
-				return this;
-			}
+		/**
+		 * @param {string} element can be SC markup
+		 * @returns {Option}
+		 */
+		addCustomElement(element) {
+			this.valuePairs.push({
+				value: element, mode: "plain"
+			});
+			return this;
+		}
 
-			/* modify last added option */
+		/* modify last added option */
 
-			/**
-			 * Added to the description if last added value is selected.
-			 * example use: addValue(...).customDescription(...).addValue(...).customDescription(...)
-			 * @param {string} description can be SC markup
-			 */
-			customDescription(description) {
-				this.valuePairs.last().descAppend = description;
-				return this;
-			}
+		/**
+		 * Added to the description if last added value is selected.
+		 * example use: addValue(...).customDescription(...).addValue(...).customDescription(...)
+		 * @param {string} description can be SC markup
+		 */
+		customDescription(description) {
+			this.valuePairs.last().descAppend = description;
+			return this;
+		}
 
-			/**
-			 * @param {Function} callback gets executed on every button click. Selected value is given as argument.
-			 */
-			addCallback(callback) {
-				this.valuePairs.last().callback = callback;
-				return this;
-			}
+		/**
+		 * @param {Function} callback gets executed on every button click. Selected value is given as argument.
+		 */
+		addCallback(callback) {
+			this.valuePairs.last().callback = callback;
+			return this;
+		}
 
-			/**
-			 * Mark option as on to style differently.
-			 * @returns {Option}
-			 */
-			on() {
-				this.valuePairs.last().on = true;
-				return this;
-			}
+		/**
+		 * Mark option as on to style differently.
+		 * @returns {Option}
+		 */
+		on() {
+			this.valuePairs.last().on = true;
+			return this;
+		}
 
-			/**
-			 * Mark option as off to style differently.
-			 * @returns {Option}
-			 */
-			off() {
-				this.valuePairs.last().off = true;
-				return this;
-			}
+		/**
+		 * Mark option as off to style differently.
+		 * @returns {Option}
+		 */
+		off() {
+			this.valuePairs.last().off = true;
+			return this;
+		}
 
+		/**
+		 * Mark option as neutral to style differently.
+		 * @returns {Option}
+		 */
+		neutral() {
+			this.valuePairs.last().neutral = true;
+			return this;
+		}
+	};
+
+	return class {
+		constructor() {
 			/**
-			 * Mark option as neutral to style differently.
-			 * @returns {Option}
+			 * @type {Array<Option>}
 			 */
-			neutral() {
-				this.valuePairs.last().neutral = true;
-				return this;
-			}
-		};
+			this.options = [];
+		}
 
-		return class {
-			constructor() {
-				/**
-				 * @type {Array<Option>}
-				 */
-				this.options = [];
-			}
+		/**
+		 * @returns {App.UI.OptionsGroup}
+		 */
+		enableDoubleColumn() {
+			this.doubleColumn = true;
+			return this;
+		}
 
-			/**
-			 * @returns {App.UI.OptionsGroup}
-			 */
-			enableDoubleColumn() {
-				this.doubleColumn = true;
-				return this;
-			}
+		addOption(name, property, object = V) {
+			const option = new Option(name, property, object);
+			this.options.push(option);
+			return option;
+		}
 
-			addOption(name, property, object = V) {
-				const option = new Option(name, property, object);
-				this.options.push(option);
-				return option;
+		render() {
+			const container = document.createElement("div");
+			container.className = "options-group";
+			if (this.doubleColumn) {
+				container.classList.add("double");
 			}
+			for (/** @type {Option} */ const option of this.options) {
+				/* left side */
+				const desc = document.createElement("div");
+				desc.className = "description";
+				$(desc).wiki(option.description);
+				container.append(desc);
 
-			render() {
-				const container = document.createElement("div");
-				container.className = "options-group";
-				if (this.doubleColumn) {
-					container.classList.add("double");
-				}
-				for (/** @type {Option} */ const option of this.options) {
-					/* left side */
-					const desc = document.createElement("div");
-					desc.className = "description";
-					$(desc).wiki(option.description);
-					container.append(desc);
+				/* right side */
+				const currentValue = option.object[option.property];
+				let anySelected = false;
 
-					/* right side */
-					const currentValue = option.object[option.property];
-					let anySelected = false;
-
-					const buttonGroup = document.createElement("div");
-					buttonGroup.classList.add("button-group");
-					for (const value of option.valuePairs) {
-						if (value.mode === "plain") {
-							/* insert custom SC markup and go to next element */
-							$(buttonGroup).wiki(value.value);
-							continue;
-						}
-						const button = document.createElement("button");
-						button.append(value.name);
-						if (value.on) {
-							button.classList.add("on");
-						} else if (value.off) {
-							button.classList.add("off");
-						} else if (value.neutral) {
-							button.classList.add("neutral");
+				const buttonGroup = document.createElement("div");
+				buttonGroup.classList.add("button-group");
+				for (const value of option.valuePairs) {
+					if (value.mode === "plain") {
+						/* insert custom SC markup and go to next element */
+						$(buttonGroup).wiki(value.value);
+						continue;
+					}
+					const button = document.createElement("button");
+					button.append(value.name);
+					if (value.on) {
+						button.classList.add("on");
+					} else if (value.off) {
+						button.classList.add("off");
+					} else if (value.neutral) {
+						button.classList.add("neutral");
+					}
+					if (value.mode === "custom") {
+						button.onclick = () => {
+							value.callback();
+							if (value.value) {
+								Engine.play(value.value);
+							} else {
+								reload();
+							}
+						};
+					} else {
+						if (value.mode === "=" && currentValue === value.value) {
+							button.classList.add("selected", "disabled");
+							anySelected = true;
+							if (value.descAppend !== undefined) {
+								desc.append(" ");
+								$(desc).wiki(value.descAppend);
+							}
+						} else if (!anySelected && inRange(value.mode, value.compareValue, currentValue)) {
+							button.classList.add("selected");
+							// disable the button if clicking it won't change the variable value
+							if (currentValue === value.value) {
+								button.classList.add("disabled");
+							}
+							anySelected = true;
+							if (value.descAppend !== undefined) {
+								desc.append(" ");
+								$(desc).wiki(value.descAppend);
+							}
 						}
-						if (value.mode === "custom") {
-							button.onclick = () => {
+						button.onclick = () => {
+							option.object[option.property] = value.value;
+							if (value.callback) {
 								value.callback();
-								if (value.value) {
-									Engine.play(value.value);
-								} else {
-									reload();
-								}
-							};
-						} else {
-							if (value.mode === "=" && currentValue === value.value) {
-								button.classList.add("selected", "disabled");
-								anySelected = true;
-								if (value.descAppend !== undefined) {
-									desc.append(" ");
-									$(desc).wiki(value.descAppend);
-								}
-							} else if (!anySelected && inRange(value.mode, value.compareValue, currentValue)) {
-								button.classList.add("selected");
-								anySelected = true;
-								if (value.descAppend !== undefined) {
-									desc.append(" ");
-									$(desc).wiki(value.descAppend);
-								}
 							}
-							button.onclick = () => {
-								option.object[option.property] = value.value;
-								if (value.callback) {
-									value.callback();
-								}
-								reload();
-							};
-						}
-						buttonGroup.append(button);
-					}
-					if (option.textbox) {
-						const isNumber = typeof currentValue === "number";
-						const textbox = App.UI.DOM.makeTextBox(currentValue, input => {
-							option.object[option.property] = input;
 							reload();
-						}, isNumber);
-						if (isNumber) {
-							textbox.classList.add("number");
-						}
-						buttonGroup.append(textbox);
+						};
 					}
-					if (option.comment) {
-						const comment = document.createElement("span");
-						comment.classList.add("comment");
-						$(comment).wiki(option.comment);
-						buttonGroup.append(comment);
+					buttonGroup.append(button);
+				}
+				if (option.textbox) {
+					const isNumber = typeof currentValue === "number";
+					const textbox = App.UI.DOM.makeTextBox(currentValue, input => {
+						option.object[option.property] = input;
+						reload();
+					}, isNumber);
+					if (isNumber) {
+						textbox.classList.add("number");
+					}
+					buttonGroup.append(textbox);
+					if (option.unit) {
+						buttonGroup.append(" ", option.unit);
 					}
-					container.append(buttonGroup);
-
 				}
+				if (option.comment) {
+					const comment = document.createElement("span");
+					comment.classList.add("comment");
+					$(comment).wiki(option.comment);
+					buttonGroup.append(comment);
+				}
+				container.append(buttonGroup);
+			}
 
-				return container;
+			return container;
 
-				function reload() {
-					const position = window.pageYOffset;
-					Engine.play(passage());
-					window.scrollTo(0, position);
-				}
+			function reload() {
+				const position = window.pageYOffset;
+				Engine.play(passage());
+				window.scrollTo(0, position);
+			}
 
-				function inRange(mode, compareValue, value) {
-					if (mode === "<") {
-						return value < compareValue;
-					} else if (mode === "<=") {
-						return value <= compareValue;
-					} else if (mode === ">") {
-						return value > compareValue;
-					} else if (mode === ">=") {
-						return value >= compareValue;
-					}
-					return false;
+			function inRange(mode, compareValue, value) {
+				if (mode === "<") {
+					return value < compareValue;
+				} else if (mode === "<=") {
+					return value <= compareValue;
+				} else if (mode === ">") {
+					return value > compareValue;
+				} else if (mode === ">=") {
+					return value >= compareValue;
 				}
+				return false;
 			}
-		};
-	}
-)();
+		}
+	};
+})();
diff --git a/src/gui/storyCaption.tw b/src/gui/storyCaption.tw
index 52c9d78cc6ba2fcd42c9fbe25eb218b56d74a641..22a5317b56705546419fce7af09f10170a2efe5b 100644
--- a/src/gui/storyCaption.tw
+++ b/src/gui/storyCaption.tw
@@ -269,7 +269,7 @@
 	<</if>> /* Closes Pass != "Manage Penthouse""*/
 
 	<<if $nextButton != "Continue" && $nextButton != " ">>
-		<<if $nextButton != "Refresh">>
+		<<if $nextButton != "Refresh" && _Pass != "RE recruit">>
 			<<if _Pass != "Manage Penthouse">> <br>
 				<span id="managePenthouse">
 					<<link [[Manage Penthouse]]>><</link>>
@@ -300,7 +300,7 @@
 			</span>
 		<</if>>
 
-		<<if $sideBarOptions.compact == 0 && _Pass == "Main" || $sideBarOptions.compact == 1 && _Pass == "Manage Arcology">> <br>
+		<<if ($sideBarOptions.compact == 0 && _Pass == "Main") || ($sideBarOptions.compact == 1 && _Pass == "Manage Arcology")>> <br>
 			<<if $FSAnnounced>>
 				<span id="FSButton"> <br>
 				<<link [[Future Societies|Future Society][$nextButton = "Back", $nextLink = "Main"]]>><</link>>
@@ -452,7 +452,7 @@
 				<</if>>
 		<</if>> /* closes _Pass == "Main" && $newModelUI == 0 */
 
-		<<if $sideBarOptions.compact == 0 && _Pass == "Main" || $sideBarOptions.compact == 1 && _Pass == "Manage Arcology">>
+		<<if ($sideBarOptions.compact == 0 && _Pass == "Main") || ($sideBarOptions.compact == 1 && _Pass == "Manage Arcology")>>
 			<span id="policyButton"> <br>
 				<<link [[Policies]]>><</link>>
 			</span> @@.cyan;[Y]@@
@@ -511,7 +511,7 @@
 		<</if>> /* Closes Pass state check */
 
 		<br><br>
-		<<if $nextButton != "Refresh">>
+		<<if $nextButton != "Refresh" && _Pass != "RE recruit">>
 			<<if !["Description Options", "Options", "Summary Options"].includes(_Pass)>>
 				<span id="optionsButton">
 					<<link [[Game Options|Options][$nextButton = "Back", $nextLink = _Pass]]>><</link>>
diff --git a/src/interaction/main/walkPast.js b/src/interaction/main/walkPast.js
index 22c8ef88c804b6eb45cac0f692cbec138e61d7e4..c9e941edc2178fb00bff347c9862adff8d7df1bb 100644
--- a/src/interaction/main/walkPast.js
+++ b/src/interaction/main/walkPast.js
@@ -9120,9 +9120,6 @@ globalThis.walkPast = (function() {
 		t += `<<faceDescription>>`;
 		t += `<<mouthDescription>>`;
 		switch (slave.collar) {
-			case "a Fuckdoll suit":
-				t += `${His} suit is expressly designed to encourage use of ${his} face hole.`;
-				break;
 			case "uncomfortable leather":
 				t += `${His} uncomfortable leather collar makes ${him} swallow and lick ${his} lips periodically, making it look like ${he}'s offering oral even though ${he}'s just trying to relieve the discomfort.`;
 				break;
@@ -9133,12 +9130,6 @@ globalThis.walkPast = (function() {
 			case "preg biometrics":
 				t += `${His} collar reveals everything about ${his} womb, bringing eyes straight to ${his} belly before drawing them back to ${his} neck.`;
 				break;
-			case "dildo gag":
-				t += `${His} ring gag would make ${him} ready for oral service, as soon as the formidable dildo it secures down ${his} throat is removed.`;
-				break;
-			case "massive dildo gag":
-				t += `Your eyes are drawn to the distinct bulge in ${his} throat caused by the enormous dildo in it, though ${his} mouth would only be suitable for the largest of cocks right now.`;
-				break;
 			case "shock punishment":
 				t += `${His} shock collar rests threateningly at ${his} throat, ready to compel ${him} to do anything you wish.`;
 				break;
@@ -9170,26 +9161,48 @@ globalThis.walkPast = (function() {
 			case "bowtie":
 				t += `${His} black bowtie contrasts with ${his} white collar, drawing the eye towards ${his} neck and face.`;
 				break;
+			case "neck tie":
+				t += `${His} neck tie is a reminder of old world business, although ${his} body is a reminder of the oldest business in the world.`;
+				break;
 			case "ancient Egyptian":
 				t += `${His} wesekh glints richly as ${he} moves, sparkling with opulence and sensuality.`;
 				break;
+			default:
+				if (slave.clothes === "a Fuckdoll suit") {
+					t += `${His} suit is expressly designed to encourage use of ${his} face hole.`;
+				} else {
+					t += `${His} unadorned `;
+					if (V.PC.dick !== 0) {
+						t += `throat is just waiting to be wrapped around a thick shaft.`;
+					} else {
+						t += `lips are just begging for a cunt to lavish attention on.`;
+					}
+				}
+		}
+		switch (slave.mouthAccessory ) {
+			case "dildo gag":
+				t += `${His} ring gag would make ${him} ready for oral service, as soon as the formidable dildo it secures down ${his} throat is removed.`;
+				break;
+			case "massive dildo gag":
+				t += `Your eyes are drawn to the distinct bulge in ${his} throat caused by the enormous dildo in it, though ${his} mouth would only be suitable for the largest of cocks right now.`;
+				break;
 			case "ball gag":
 				t += `${His} ball gag uncomfortably holds ${his} jaw apart as it fills ${his} mouth.`;
 				break;
 			case "bit gag":
 				t += `${His} bit gag uncomfortably keeps ${him} from closing ${his} jaw; drool visibly pools along the corners of ${his} mouth, where the rod forces back ${his} cheeks.`;
 				break;
+			case "ring gag":
+				t += `${His} ring gag uncomfortably keeps ${him} from closing ${his} mouth; drool visibly pools around ${his} tongue, and trickles down ${his} chin unless ${he} can keep ${his} head back.`;
+				break;
+		}
+
+		switch (slave.faceAccessory ) {
 			case "porcelain mask":
 				t += `${His} beautiful porcelain mask hides ${his} face and any unsightly facial features.`;
 				break;
-			default:
-				t += `${His} unadorned `;
-				if (V.PC.dick !== 0) {
-					t += `throat is just waiting to be wrapped around a thick shaft.`;
-				} else {
-					t += `lips are just begging for a cunt to lavish attention on.`;
-				}
 		}
+
 		if (jsRandom(1, 3) === 1) {
 			V.target = "FKiss";
 		} else {
diff --git a/src/interaction/policies/policies.tw b/src/interaction/policies/policies.tw
index 6083c16b49451102e2e50883271941ce763bd06d..3bdbe074d998e4197a6f81d3ea7e4519235d2820 100644
--- a/src/interaction/policies/policies.tw
+++ b/src/interaction/policies/policies.tw
@@ -456,7 +456,7 @@ More policies will become available as the arcology develops.//
 	<<if $policies.immmigrationRep == 1>>
 		<br>''Welcome Program:'' you are using your personal influence to encourage wealthy people to immigrate.
 		<span class="yellow">[[Repeal|Policies][$policies.immmigrationRep = 0]]</span>
-	<<e;seif $policies.immmigrationRep == -1>>
+	<<elseif $policies.immmigrationRep == -1>>
 		<br>''Citizen Input on Immigration:'' you are selectively turning away potential immigrants to the arcology based on the recommendations of citizens.
 		<span class="yellow">[[Repeal|Policies][$policies.immmigrationRep = 0]]</span>
 	<<else>>
diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js
index 45f028983e4e7cc1929d86ba81b0401e5df71451..89aa2cb3e3152f83de892322ef18e6e86e5ffbfc 100644
--- a/src/interaction/slaveInteract.js
+++ b/src/interaction/slaveInteract.js
@@ -937,18 +937,6 @@ App.UI.SlaveInteract.useSlaveDisplay = function(slave) {
 				if (canDoAnal(slave)) {
 					sexOptions.push({text: `Use ${his} holes`, scene: `FButt`});
 				}
-				if (slave.bellyPreg >= 300000) {
-					sexOptions.push({text: `Fuck ${him} on ${his} belly`, scene: `FBellyFuck`});
-				}
-				if (slave.bellyPreg >= 300000 && V.pregInventions >= 1) {
-					sexOptions.push({text: `Fuck ${him} in ${his} maternity swing`, scene: `FMaternitySwing`});
-				}
-				if (slave.bellyPreg >= 300000 && V.pregInventions >= 1) {
-					sexOptions.push({text: `Fuck ${him} with the help of ${his} assistants`, scene: `FAssistedSex`});
-				}
-				if (slave.bellyPreg >= 300000 && V.pregInventions >= 1) {
-					sexOptions.push({text: `Fuck ${him} in your goo pool`, scene: `FPoolSex`});
-				}
 			} else {
 				sexOptions.push({text: `Fuck ${him}`, disabled: `Remove ${his} chastity belt if you wish to fuck ${him}`});
 			}
@@ -2198,7 +2186,7 @@ App.UI.SlaveInteract.custom = (function() {
 		el.appendChild(slaveFullName(slave));
 
 		title = document.createElement('h3');
-		title.textContent = `Desctiption`;
+		title.textContent = `Description`;
 		el.appendChild(title);
 		el.appendChild(hair(slave));
 		el.appendChild(eyeColor(slave));
diff --git a/src/interaction/wardrobeUse.js b/src/interaction/wardrobeUse.js
index b357de90b58156a94d329d5a4f71d739dec0544d..44173c6b895558ebd8c68cd02b79fba753b444dc 100644
--- a/src/interaction/wardrobeUse.js
+++ b/src/interaction/wardrobeUse.js
@@ -158,7 +158,55 @@ App.UI.Wardrobe.collar = function(slave) {
 	links.appendChild(App.UI.SlaveInteract.generateRows(harshOptionsArray, slave, "collar", true));
 	el.appendChild(links);
 
-	if (slave.eyewear === "corrective glasses" || slave.eyewear === "glasses" || slave.eyewear === "blurring glasses" || slave.collar === "porcelain mask") {
+	return jQuery('#collar').empty().append(el);
+};
+
+App.UI.Wardrobe.mask = function(slave) {
+	if (slave.fuckdoll !== 0) {
+		return;
+	}
+	let el = document.createElement('div');
+
+	let label = document.createElement('div');
+	label.append(`Mask: `);
+
+	let choice = document.createElement('span');
+	choice.style.fontWeight = "bold";
+	choice.textContent = (`${slave.faceAccessory} `);
+	label.appendChild(choice);
+
+	// Choose her own
+	if (slave.faceAccessory !== `none`) {
+		let choiceOptionsArray = [];
+		choiceOptionsArray.push({text: `None`, updateSlave: {faceAccessory: `none`}});
+		label.appendChild(App.UI.SlaveInteract.generateRows(choiceOptionsArray, slave, "faceAccessory", false));
+	}
+
+	el.appendChild(label);
+
+	let array = [];
+
+	let clothingOption;
+	App.Data.misc.faceAccessory.forEach(item => {
+		clothingOption = {
+			text: item.name,
+			updateSlave: {faceAccessory: item.value}
+		};
+		if (item.fs) {
+			clothingOption.FS = item.fs;
+		}
+		array.push(clothingOption);
+	});
+
+	// Sort
+	array = array.sort((a, b) => (a.text > b.text) ? 1 : -1);
+
+	let links = document.createElement('div');
+	links.className = "choices";
+	links.appendChild(App.UI.SlaveInteract.generateRows(array, slave, "faceAccessory", true));
+	el.appendChild(links);
+
+	if (slave.eyewear === "corrective glasses" || slave.eyewear === "glasses" || slave.eyewear === "blurring glasses" || slave.faceAccessory === "porcelain mask") {
 		// Color options
 		links = document.createElement('div');
 		links.className = "choices";
@@ -171,7 +219,56 @@ App.UI.Wardrobe.collar = function(slave) {
 		el.appendChild(links);
 	}
 
-	return jQuery('#collar').empty().append(el);
+	return jQuery('#faceAccessory').empty().append(el);
+};
+
+App.UI.Wardrobe.mouth = function(slave) {
+	if (slave.fuckdoll !== 0) {
+		return;
+	}
+	let el = document.createElement('div');
+
+	let label = document.createElement('div');
+	label.append(`Gag: `);
+
+	let choice = document.createElement('span');
+	choice.style.fontWeight = "bold";
+	choice.textContent = (`${slave.mouthAccessory} `);
+	label.appendChild(choice);
+
+	// Choose her own
+	if (slave.mouthAccessory !== `none`) {
+		let choiceOptionsArray = [];
+		choiceOptionsArray.push({text: `None`, updateSlave: {mouthAccessory: `none`}});
+		label.appendChild(App.UI.SlaveInteract.generateRows(choiceOptionsArray, slave, "mouthAccessory", false));
+	}
+
+	el.appendChild(label);
+
+	let array = [];
+
+	let clothingOption;
+	// mouthAccessory
+	App.Data.misc.mouthAccessory.forEach(item => {
+		clothingOption = {
+			text: item.name,
+			updateSlave: {mouthAccessory: item.value}
+		};
+		if (item.fs) {
+			clothingOption.FS = item.fs;
+		}
+		array.push(clothingOption);
+	});
+
+	// Sort
+	array = array.sort((a, b) => (a.text > b.text) ? 1 : -1);
+
+	let links = document.createElement('div');
+	links.className = "choices";
+	links.appendChild(App.UI.SlaveInteract.generateRows(array, slave, "mouthAccessory", true));
+	el.appendChild(links);
+
+	return jQuery('#mouthAccessory').empty().append(el);
 };
 
 App.UI.Wardrobe.armAccessory = function(slave) {
@@ -408,7 +505,7 @@ App.UI.Wardrobe.buttplug = function(slave) {
 
 	if (slave.buttplug !== `none`) {
 		let choiceOptionsArray = [];
-		choiceOptionsArray.push({text: `None`, updateSlave: {buttplug: `none`}});
+		choiceOptionsArray.push({text: `None`, updateSlave: {buttplug: `none`, buttplugAttachment: `none`}});
 		label.appendChild(App.UI.SlaveInteract.generateRows(choiceOptionsArray, slave, "buttplug", false));
 	}
 	el.appendChild(label);
@@ -807,6 +904,8 @@ App.UI.Wardrobe.colorOptions = function(slave, update) {
 App.UI.Wardrobe.refreshAll = function(slave) {
 	App.UI.Wardrobe.clothes(slave);
 	App.UI.Wardrobe.collar(slave);
+	App.UI.Wardrobe.mask(slave);
+	App.UI.Wardrobe.mouth(slave);
 	App.UI.Wardrobe.armAccessory(slave);
 	App.UI.Wardrobe.shoes(slave);
 	App.UI.Wardrobe.legAccessory(slave);
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index 8b565adae01fc363914756ac81c9e55beec6adcb..a20fcec1af1674d0684b491e75ebbb6db39b26ad 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -46,6 +46,8 @@ globalThis.DefaultRules = (function() {
 		if (slave.fuckdoll === 0) {
 			ProcessClothing(slave, rule);
 			ProcessCollar(slave, rule);
+			ProcessMask(slave, rule);
+			ProcessGag(slave, rule);
 			ProcessEyewear(slave, rule);
 			ProcessEarwear(slave, rule);
 			ProcessDildos(slave, rule);
@@ -206,9 +208,6 @@ globalThis.DefaultRules = (function() {
 				if (rule.collar === "preg biometrics" && slave.preg <= -1 && slave.ovaries === 0 && slave.mpreg === 0) {
 					slave.collar = "none";
 					r += `${slave.slaveName} cannot utilize preg biometrics. `;
-				} else if ((rule.collar === "massive dildo gag" && slave.skill.oral <= 50)) {
-					slave.collar = "none";
-					r += `${slave.slaveName} lacks the oral skill to successfully keep the massive dildo gag in ${his} throat. `;
 				} else {
 					slave.collar = rule.collar;
 				}
@@ -216,7 +215,7 @@ globalThis.DefaultRules = (function() {
 					r += `${slave.slaveName} has been given no collar.`;
 				} else if ((slave.collar === "pretty jewelry")) {
 					r += `${slave.slaveName} has been given ${slave.collar}.`;
-				} else if ((["ball gag", "bell collar", "bit gag", "bowtie", "dildo gag", "massive dildo gag", "neck corset", "porcelain mask"].includes(slave.collar))) {
+				} else if ((["bell collar", "bowtie", "neck corset", "neck tie"].includes(slave.collar))) {
 					r += `${slave.slaveName} has been given a ${slave.collar}.`;
 				} else {
 					r += `${slave.slaveName} has been given a ${slave.collar} collar.`;
@@ -225,6 +224,49 @@ globalThis.DefaultRules = (function() {
 		}
 	}
 
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @param {App.RA.RuleSetters} rule
+	 */
+	function ProcessMask(slave, rule) {
+		// apply faceAccessory to slave
+		if ((rule.faceAccessory !== undefined) && (rule.faceAccessory !== null)) {
+			if (slave.faceAccessory !== rule.faceAccessory) {
+				r += "<br>";
+				slave.faceAccessory = rule.faceAccessory;
+				if (slave.faceAccessory === "none") {
+					r += `${slave.slaveName} has had their mask removed.`;
+				} else {
+					r += `${slave.slaveName} has been given a ${slave.faceAccessory}.`;
+				}
+			}
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @param {App.RA.RuleSetters} rule
+	 */
+	function ProcessGag(slave, rule) {
+		// apply mouthAccessory to slave
+		if ((rule.mouthAccessory !== undefined) && (rule.mouthAccessory !== null)) {
+			if (slave.mouthAccessory !== rule.mouthAccessory) {
+				r += "<br>";
+				if ((rule.mouthAccessory === "massive dildo gag" && slave.skill.oral <= 50)) {
+					slave.mouthAccessory = "none";
+					r += `${slave.slaveName} lacks the oral skill to successfully keep the massive dildo gag in ${his} throat. `;
+				} else {
+					slave.mouthAccessory = rule.mouthAccessory;
+				}
+				if (slave.mouthAccessory === "none") {
+					r += `${slave.slaveName} has been given no gag.`;
+				} else {
+					r += `${slave.slaveName} has been given a ${slave.mouthAccessory}.`;
+				}
+			}
+		}
+	}
+
 	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {App.RA.RuleSetters} rule
@@ -1008,7 +1050,7 @@ globalThis.DefaultRules = (function() {
 	 */
 	function ProcessContraceptives(slave, rule) {
 		if ((rule.preg !== undefined) && (rule.preg !== null)) {
-			if (rule.preg === true && slave.preg === 0) {
+			if (rule.preg === true && slave.preg === 0 && slave.pubertyXX === 1) {
 				r += `<br>${slave.slaveName} is being given contraceptives.`;
 				slave.preg = -1;
 			} else if (slave.preg === -1 && rule.preg === false) {
@@ -1037,6 +1079,8 @@ globalThis.DefaultRules = (function() {
 				}
 				if (WL === 0) {
 					TerminatePregnancy(slave);
+					slave.counter.abortions++;
+					V.abortionsTotal++;
 				}
 			}
 			return res;
@@ -1095,6 +1139,8 @@ globalThis.DefaultRules = (function() {
 					V.reservedChildren = FetusGlobalReserveCount("incubator");
 					V.reservedChildrenNursery = FetusGlobalReserveCount("nursery");
 					TerminatePregnancy(slave);
+					slave.counter.abortions++;
+					V.abortionsTotal++;
 				} else if (ar === "male") {
 					if (conditionalTermination(slave, fetus => fetus.genetics.gender === "XY")) {
 						r += `<br>${slave.slaveName}'s male fetuses have been terminated.`;
@@ -1242,7 +1288,7 @@ globalThis.DefaultRules = (function() {
 				slave.drugs = action.drug;
 				r += `<br>${slave.slaveName} has been put on ${slave.drugs}, since `;
 				if (action.drug.startsWith("intensive")) {
-					r += `since ${he}'s healthy enough to take them, and `;
+					r += `${he}'s healthy enough to take them, and `;
 				}
 				if (_priorities.length > 1) {
 					r += `that part of ${his} body is `;
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 381f9e6605cabbdec98ea673e30f7015c99b242a..586b3d545fee312bd68379fe71c8a7ea738ce25e 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -260,6 +260,10 @@ App.Entity.SlaveActionsCountersState = class {
 		this.births = 0;
 		/** How many known times the slave has given birth. */
 		this.birthsTotal = 0;
+		/** number of abortions as your slave */
+		this.abortions = 0;
+		/** number of miscarriages as your slave */
+		this.miscarriages = 0;
 		this.laborCount = 0;
 		/** oral sex count */
 		this.oral = 0;
@@ -275,6 +279,10 @@ App.Entity.SlaveActionsCountersState = class {
 		this.publicUse = 0;
 		/** number of slaves killed in pit fights*/
 		this.pitKills = 0;
+		/** number of pit fights won */
+		this.pitWins = 0;
+		/** number of pit fights lost */
+		this.pitLosses = 0;
 		/** How many slaves she has sired under your ownership. */
 		this.slavesFathered = 0;
 		/** How many children she has fucked into you that you later birthed. */
@@ -1789,25 +1797,36 @@ App.Entity.SlaveState = class SlaveState {
 		 * * "uncomfortable leather"
 		 * * "tight steel"
 		 * * "shock punishment"
-		 * * "dildo gag"
 		 * * "heavy gold"
 		 * * "pretty jewelry"
 		 * * "nice retirement counter"
 		 * * "bell collar"
 		 * * "leather with cowbell"
 		 * * "bowtie"
+		 * * "neck tie"
 		 * * "neck corset"
 		 * * "stylish leather"
 		 * * "satin choker"
 		 * * "preg biometrics"
-		 * * "massive dildo gag"
 		 * * "silk ribbon"
+		 */
+		this.collar = "none";
+		/**
+		 * may accept strings, use at own risk
+		 * * "none"
+		 * * "porcelain mask"
+		 */
+		this.faceAccessory = "none";
+		/**
+		 * may accept strings, use at own risk
+		 * * "none"
+		 * * "dildo gag"
+		 * * "massive dildo gag"
 		 * * "ball gag"
 		 * * "bit gag"
 		 * * "ring gag"
-		 * * "porcelain mask"
 		 */
-		this.collar = "none";
+		this.mouthAccessory = "none";
 		/**
 		 * may accept strings, use at own risk
 		 * * "none"
diff --git a/src/js/descriptionWidgets.js b/src/js/descriptionWidgets.js
index 86a273ae8a5ed236e7445f7f2351bc0f2d87d426..d16edf5e01fe60817d3fe0225560d4856da1a986 100644
--- a/src/js/descriptionWidgets.js
+++ b/src/js/descriptionWidgets.js
@@ -1705,6 +1705,14 @@ App.Desc.sexualHistory = function(slave) {
 		}
 		r += `within the walls of ${V.arcologies[0].name}. `;
 	}
+	
+	if (slave.counter.abortions > 0) {
+		r += `${He} has had a total of ${numberWithPluralOne(slave.counter.abortions, "abortion")}. `;	
+	}
+	
+	if (slave.counter.miscarriages > 0) {
+		r += `${He} has had a total of ${numberWithPluralOne(slave.counter.miscarriages, "miscarriage")}. `;	
+	}
 
 	if (slave.counter.slavesKnockedUp > 0) {
 		r += `${He}'s knocked up ${numberWithPluralOne(slave.counter.slavesKnockedUp, "other slave girl")} `;
@@ -1727,3 +1735,42 @@ App.Desc.sexualHistory = function(slave) {
 
 	return r;
 };
+
+App.Desc.faceAccessory  = function(slave) {
+	const {He, his} = getPronouns(slave);
+	switch (slave.faceAccessory) {
+		case "porcelain mask":
+			return `${He} is wearing a beautiful porcelain mask to hide ${his} unsightly facial features.`;
+		case "cat ears":
+			return `${He} is wearing an adorable pair of cat ears.`;
+	}
+};
+
+App.Desc.mouthAccessory   = function(slave) {
+	const {He, His, him, he, his, himself, girl} = getPronouns(slave);
+	let r = ``;
+	switch (slave.mouthAccessory ) {
+		case "ball gag":
+			r += `${He} is wearing a mouth filling, `;
+			if (slave.makeup === 3 || slave.makeup === 6 || slave.makeup === 8) {
+				r += `${slave.hColor} `;
+			} else {
+				r += `red `;
+			 }
+			r += `ball-shaped gag that prevents ${him} from uttering a word while keeping ${him} uncomfortably aware of ${his} status.`;
+			break;
+		case "bit gag":
+			r += `${He} is wearing a jaw spreading, bar-shaped gag that prevents ${him} from speaking while keeping $him uncomfortably aware of ${his} status.`;
+			break;
+		case "dildo gag":
+			r +=  `${He} is wearing a sturdy leather collar that continues up to restrict ${his} jaw as well. It holds a ring gag in ${his} mouth, into which slots a formidable inward-facing dildo that reaches down ${his} throat. It can be removed to facefuck ${him}.`;
+			break;
+		case "massive dildo gag":
+			r += `${He} is wearing a sturdy leather collar that continues up to restrict ${his} jaw as well. It acts as an anchor for an enormous inward-facing dildo that reaches deep down ${his} throat. The sheer size of the phallus forces ${his} mouth as wide as it will go and considerably bulges ${his} throat. Fortunately for ${him}, it is designed to allow ${him} to be able to breathe through ${his} nose; though when removed, the poor ${girl} finds ${himself} incapable of closing ${his} mouth for some time.`;
+			break;
+		case "ring gag":
+			r += `${His} ring gag uncomfortably keeps ${him} from closing ${his} mouth; drool visibly pools around ${his} tongue, and trickles down ${his} chin unless ${he} can keep ${his} head back.`;
+			break;
+	}
+	return r;
+};
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index 0bda43a6d0514d9952b5887b240c41b42c5d86a9..f8188c36eddb712f18ec3248d31db9587de9c55f 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -816,7 +816,7 @@ globalThis.generateRandomEventPoolStandard = function(eventSlave) {
 			} /* closes mute exempt */
 
 			if (eventSlave.devotion > 20) {
-				if (["ball gag", "bit gag", "dildo gag", "massive dildo gag"].includes(eventSlave.collar)) {
+				if (eventSlave.mouthAccessory !== "none") {
 					State.variables.RESSevent.push("gagged slave");
 				}
 			}
@@ -1025,7 +1025,7 @@ globalThis.generateRandomEventPoolStandard = function(eventSlave) {
 
 			if (eventSlave.voice > 0) {
 				if (eventSlave.lips <= 95) {
-					if (!["ball gag", "bit gag", "dildo gag", "massive dildo gag"].includes(eventSlave.collar)) {
+					if (eventSlave.mouthAccessory === "none") {
 						if (eventSlave.accent === 3) {
 							if (eventSlave.devotion <= 50) {
 								if (eventSlave.trust > -10) {
@@ -2226,7 +2226,7 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) {
 			} /* closes mute exempt */
 
 			if (eventSlave.devotion > 20) {
-				if (["ball gag", "bit gag", "dildo gag", "massive dildo gag"].includes(eventSlave.collar)) {
+				if (eventSlave.mouthAccessory !== "none") {
 					State.variables.RESSevent.push("gagged slave");
 				}
 			}
@@ -2251,17 +2251,8 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) {
 						if (eventSlave.ovaries === 1) {
 							if (eventSlave.pubertyXX === 0) {
 								if (eventSlave.preg === 0) {
-									if (eventSlave.physicalAge >= eventSlave.pubertyAgeXX - 0.5) {
-										State.variables.RESSevent.push("first period");
-										State.variables.RESSevent.push("first period");
-										State.variables.RESSevent.push("first period");
-										State.variables.RESSevent.push("first period");
-										State.variables.RESSevent.push("first period");
-										State.variables.RESSevent.push("first period");
-										State.variables.RESSevent.push("first period");
-										State.variables.RESSevent.push("first period");
-										State.variables.RESSevent.push("first period");
-										State.variables.RESSevent.push("first period");
+									if (eventSlave.physicalAge + eventSlave.birthWeek / 52 >= eventSlave.pubertyAgeXX - 0.5) {
+										State.variables.RESSevent.push(...Array.from({length: 10}, () => "first period"));
 									}
 								}
 							}
@@ -2269,17 +2260,8 @@ globalThis.generateRandomEventPoolServant = function(eventSlave) {
 						if (canPenetrate(eventSlave)) {
 							if (eventSlave.balls > 0) {
 								if (eventSlave.pubertyXY === 0) {
-									if (eventSlave.physicalAge >= eventSlave.pubertyAgeXY - 0.5) {
-										State.variables.RESSevent.push("wet dreams");
-										State.variables.RESSevent.push("wet dreams");
-										State.variables.RESSevent.push("wet dreams");
-										State.variables.RESSevent.push("wet dreams");
-										State.variables.RESSevent.push("wet dreams");
-										State.variables.RESSevent.push("wet dreams");
-										State.variables.RESSevent.push("wet dreams");
-										State.variables.RESSevent.push("wet dreams");
-										State.variables.RESSevent.push("wet dreams");
-										State.variables.RESSevent.push("wet dreams");
+									if (eventSlave.physicalAge + eventSlave.birthWeek / 52 >= eventSlave.pubertyAgeXY - 0.5) {
+										State.variables.RESSevent.push(...Array.from({length: 10}, () => "wet dreams"));
 									}
 								}
 							}
diff --git a/src/js/generateMarketSlave.js b/src/js/generateMarketSlave.js
index 19bb229f68e329c4a3205dbb8d3e43140317ec07..aa24346754e6ac5c90090e9f7cb56a263ddc9b92 100644
--- a/src/js/generateMarketSlave.js
+++ b/src/js/generateMarketSlave.js
@@ -1344,7 +1344,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 			if (slave.vagina > -1) {
 				slave.preg = jsEither([-2, -1, -1, -1, -1, -1, -1, -1, 1, 1]);
 				if (slave.physicalAge < slave.pubertyAgeXX) {
-					slave.preg = -1;
+					slave.preg = 0;
 				}
 				if (slave.preg > 0) {
 					slave.pregType = setPregType(slave);
diff --git a/src/js/optionsMacro.js b/src/js/optionsMacro.js
deleted file mode 100644
index 6fa1158c0c32ceda31d577b9ec68814017c99321..0000000000000000000000000000000000000000
--- a/src/js/optionsMacro.js
+++ /dev/null
@@ -1,180 +0,0 @@
-/* eslint-disable camelcase */
-/* eslint-disable no-empty */
-/* Use like:
-	<<options $varname "New Passage (defaults to current passage)">>
-	  A title
-	  <<option "value_to_set_varname_to" "English text to show user" "additional variables to set when clicked" "Extra English text to show, but not as a link">>
-		 Text to show if $varname matches this option
-	  <<option ....>>
-	  <<comment>>
-		Some comment to add at the end
-	<</option>>
-
-	optionlt and optionslte lets you also specify a 'less than' or 'less than or
-	equal' value, to show an option as selected if it is less than this amount
-	(and not selected by a previous option)
-
-	<<optionlt "less than value" "value_to_set_varname_to" "English text to show user" "additional variables to set when clicked" "Extra English text to show, but not as a link">>
-  */
-Macro.add('options', {
-	skipArgs : false,
-	tags	 : ['option', 'comment', 'optionlt', 'optionlte', 'optiongt', 'optiongte',
-				'optiondefault', 'optionif'],
-	handler : function() {
-		try {
-			let currentOption = this.payload[0].args[0];
-			let currentOptionIsNumber = typeof currentOption === "number";
-			let variable = null;
-			let title = this.payload[0].contents || '';
-			let passageName = this.payload[0].args[1] || passage();
-			let found = false;
-			let found_index = 0;
-			let comment = null;
-			let hasMultipleOptionsWithSameValue = false;
-			let description = "";
-			let hasCurrentOption = this.payload[0].args.full &&
-				this.payload[0].args.full !== '""' && this.payload[0].args.full !== "''";
-
-			// Check if we have a first argument - if we do, it should be a variable like $foo
-			if (hasCurrentOption) {
-				if (currentOption === undefined) {
-					currentOption = false;
-				}
-				if (this.payload[0].args.full.startsWith("State.temporary.")) {
-					variable = "_" + this.payload[0].args.full.split(' ', 1)[0].substring("State.temporary.".length);
-				} else if (this.payload[0].args.full.startsWith("State.variables.")) {
-					variable = "$" + this.payload[0].args.full.split(' ', 1)[0].substring("State.variables.".length);
-				} else {
-					// eslint-disable-next-line no-console
-					console.log(this.payload[0].args.full);
-					throw new Error("First parameter to 'options' must be a variable");
-				}
-
-				/* First print out the string for the current value */
-				for (let i = 1, len = this.payload.length; i < len; ++i) {
-					if (this.payload[i].name === 'option') {
-						if (this.payload[i].args[0] === currentOption) {
-							if (found) {
-								hasMultipleOptionsWithSameValue = true;
-							} else {
-								description = this.payload[i].contents;
-								found_index = i;
-								found = true;
-							}
-						}
-					} else if (this.payload[i].name === 'optionlt') {
-						if (!found && this.payload[i].args[0] > currentOption) {
-							description = this.payload[i].contents;
-							found = true;
-							found_index = i;
-						}
-					} else if (this.payload[i].name === 'optionlte') {
-						if (!found && this.payload[i].args[0] >= currentOption) {
-							description = this.payload[i].contents;
-							found = true;
-							found_index = i;
-						}
-					} else if (this.payload[i].name === 'optiongt') {
-						if (!found && this.payload[i].args[0] < currentOption) {
-							description = this.payload[i].contents;
-							found = true;
-							found_index = i;
-						}
-					} else if (this.payload[i].name === 'optiongte') {
-						if (!found && this.payload[i].args[0] <= currentOption) {
-							description = this.payload[i].contents;
-							found = true;
-							found_index = i;
-						}
-					} else if (this.payload[i].name === 'optiondefault') {
-						if (!found) {
-							description = this.payload[i].contents;
-							found = true;
-							found_index = i;
-						}
-					} else if (this.payload[i].name === 'comment') {
-					} else if (this.payload[i].name === 'optionif') {
-					} else {
-						throw new Error("Only valid tag is 'option' inside 'options'");
-					}
-				}
-			} else {
-				// No variable was passed to <<options>>
-				// This is valid, but then we only allow an empty <<option>> or <<comment>>
-				// inside
-				for (let i = 1, len = this.payload.length; i < len; ++i) {
-					if (this.payload[i].name === 'option' && this.payload[i].args.length === 0) {
-						// This is valid for an empty <<options>>
-					} else if (this.payload[i].name === "comment") {
-						// This is valid for an empty <<options>>
-					} else {
-						throw new Error("Missing variable to <<options>>");
-					}
-				}
-			}
-
-			let showSelectedOption = true; // this.payload.length !== 3 || !description;
-			/* Now print out the list of options */
-			let output = "";
-			let optionIfIsFalse = false;
-			for (let i = 1, len = this.payload.length; i < len; ++i) {
-				if (this.payload[i].name === "optionif") {
-					if (this.payload[i].args.length === 0) {
-						optionIfIsFalse = false; /* No options means to turn off optionif */
-					} else if (this.payload[i].args.length === 1) {
-						// Evaluate it and see if is false
-						if (typeof (this.payload[i].args[0]) !== 'boolean') {
-							throw new Error("optionif requires true or false for the first (and only) parameter");
-						}
-						optionIfIsFalse = !this.payload[i].args[0];
-					} else {
-						throw new Error("Only one argument expected to 'optionif'");
-					}
-					continue;
-				}
-				if (optionIfIsFalse) {
-					continue;
-				} else if (this.payload[i].name.startsWith('option')) {
-					let args = this.payload[i].args;
-					let hasComparitor = this.payload[i].name !== "option" && this.payload[i].name !== "optiondefault";
-					let argText = args[hasComparitor ? 2 : 1] || "";
-					if (args.length === 0) {
-						output += this.payload[i].contents.trim();
-					} else {
-						let extraComment = args[hasComparitor ? 4 : 3];
-						extraComment = extraComment ? ' ' + extraComment : '';
-						// We use a very crude heuristic for styling 'Enable'
-						// and 'Disable' buttons differently.
-						const isEnableOption = argText && (argText.startsWith("Enable") || argText === "Yes" || argText.startsWith("Allow"));
-						const isDisableOption = argText && (argText.startsWith("Disable") || argText === "No" || argText.startsWith("Deny"));
-						let className = "optionMacroOption ";
-						if (isEnableOption) {
-							className += "optionMacroEnable";
-						} else if (isDisableOption) {
-							className += "optionMacroDisable";
-						}
-						if (found_index !== i || hasMultipleOptionsWithSameValue) {
-							let onClickChange = args[hasComparitor ? 3 : 2];
-							onClickChange = onClickChange ? ', ' + onClickChange : '';
-							output += `<span class="${className}">[[${argText}${extraComment}|${passageName}][${variable}=${JSON.stringify(args[hasComparitor ? 1 : 0])}${onClickChange}]]</span>`;
-						} else if (showSelectedOption) {
-							output += `<span class="optionMacroSelected ${className}">${argText}${extraComment}</span>`;
-						}
-					}
-				} else if (this.payload[i].name === 'comment') {
-					comment = this.payload[i].contents;
-				}
-			}
-			jQuery(this.output).wiki(
-				'<span class="optionMacro ' + (currentOptionIsNumber ? 'optionMacroNumber' : '') + '">' +
-					'<span class="optionDescription">' + title + ' ' + description +
-						(comment ? '<span class="optionComment"><span class="detail"><br>' + comment + "</span></span>" : '') +
-					"</span>" +
-					'<span class="optionValue">' + output + "</span>" +
-				'</span>'
-				);
-		} catch (ex) {
-			return this.error('bad options expression: ' + ex.message);
-		}
-	}
-});
diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index 27554ebb74a037bebae672b5144a0a41b47c159f..08d195385554f6056bd3aad5df7c7d06573944b0 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -1573,6 +1573,8 @@ globalThis.rulesAssistantOptions = (function() {
 			super("appearance", "Appearance", tabButtons);
 			this.appendChild(new ClothesList());
 			this.appendChild(new CollarList());
+			this.appendChild(new GagList());
+			this.appendChild(new MaskList());
 			this.appendChild(new ShoeList());
 			this.appendChild(new CorsetList());
 			this.appendChild(new GlovesList());
@@ -1822,6 +1824,21 @@ globalThis.rulesAssistantOptions = (function() {
 		}
 	}
 
+	class MaskList extends ListSelector {
+		constructor() {
+			super("Mask", isItemAccessible.array(App.Data.misc.faceAccessory ));
+			this.setValue(current_rule.set.faceAccessory );
+			this.onchange = (value) => current_rule.set.faceAccessory  = value;
+		}
+	}
+
+	class GagList extends ListSelector {
+		constructor() {
+			super("Gag", isItemAccessible.array(App.Data.misc.mouthAccessory ));
+			this.setValue(current_rule.set.mouthAccessory );
+			this.onchange = (value) => current_rule.set.mouthAccessory = value;
+		}
+	}
 	class ShoeList extends ListSelector {
 		constructor() {
 			super("Shoes", isItemAccessible.array(App.Data.misc.shoes));
diff --git a/src/js/slaveGenerationJS.js b/src/js/slaveGenerationJS.js
index c724790fe76adb713cb7c4590cfea0e3686f73dd..59d8bff58ad784a0716ef853b06c3bbbc5441b01 100644
--- a/src/js/slaveGenerationJS.js
+++ b/src/js/slaveGenerationJS.js
@@ -1540,6 +1540,9 @@ globalThis.generatePuberty = function(slave) {
 	if ((slave.ovaries === 1 || slave.mpreg === 1) && slave.physicalAge >= slave.pubertyAgeXX) {
 		slave.pubertyXX = 1;
 	} else {
+		if (slave.preg >= -1) {
+			slave.preg = 0;
+		}
 		slave.pubertyXX = 0;
 	}
 	if (slave.balls > 0 && slave.ballType !== "sterile" && slave.physicalAge >= slave.pubertyAgeXY) {
diff --git a/src/js/slaveSummaryHelpers.js b/src/js/slaveSummaryHelpers.js
index ec2449ca055dfaa70f4d45ff3fee40002ac328dd..e0c1fc79590a7d520cf59aff383473fc0054520e 100644
--- a/src/js/slaveSummaryHelpers.js
+++ b/src/js/slaveSummaryHelpers.js
@@ -945,6 +945,24 @@ App.UI.SlaveSummaryImpl = function() {
 			helpers.makeMappedSpan(c, data.long.accessory.collar, slave.collar);
 		}
 
+		/**
+		 * @param {App.Entity.SlaveState} slave
+		 * @param {Node} c
+		 * @returns {void}
+		 */
+		function long_mask(slave, c) {
+			helpers.makeMappedSpan(c, data.long.accessory.faceAccessory, slave.faceAccessory);
+		}
+
+		/**
+		 * @param {App.Entity.SlaveState} slave
+		 * @param {Node} c
+		 * @returns {void}
+		 */
+		function long_mouth(slave, c) {
+			helpers.makeMappedSpan(c, data.long.accessory.mouthAccessory, slave.mouthAccessory);
+		}
+
 		/**
 		 * @param {App.Entity.SlaveState} slave
 		 * @param {Node} c
@@ -1673,6 +1691,8 @@ App.UI.SlaveSummaryImpl = function() {
 				porn_prestige: long_porn_prestige,
 				clothes: long_clothes,
 				collar: long_collar,
+				mask: long_mask,
+				mouth: long_mouth,
 				belly: long_belly,
 				arms: long_arms,
 				legs: long_legs,
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index 10cd93fc06b6bc01c312d62c32d83937d4a113e2..adb622a4bb353e13c67ef96a9e73d187990b23a9 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -663,6 +663,8 @@ App.UI.SlaveSummaryRenderers = function() {
 			}
 			b.clothes(slave, dressingBlock);
 			b.collar(slave, dressingBlock);
+			b.mask(slave, dressingBlock);
+			b.mouth(slave, dressingBlock);
 			b.belly(slave, dressingBlock);
 			if (hasAnyArms(slave)) {
 				b.arms(slave, dressingBlock);
diff --git a/src/js/statsChecker/statsChecker.js b/src/js/statsChecker/statsChecker.js
index a4e164f4b5b78184c147bd750533030f89995935..c30d8c5bf8ea0cee0929d01a6990a5b7e44e9318 100644
--- a/src/js/statsChecker/statsChecker.js
+++ b/src/js/statsChecker/statsChecker.js
@@ -766,13 +766,15 @@ globalThis.canTalk = function(slave, checkLanguage = true) {
 		return false;
 	} else if (slave.lips > 95) {
 		return false;
-	} else if (slave.collar === "dildo gag") {
+	} else if (slave.mouthAccessory  === "dildo gag") {
 		return false;
-	} else if (slave.collar === "massive dildo gag") {
+	} else if (slave.mouthAccessory  === "massive dildo gag") {
 		return false;
-	} else if (slave.collar === "ball gag") {
+	} else if (slave.mouthAccessory  === "ball gag") {
 		return false;
-	} else if (slave.collar === "bit gag") {
+	} else if (slave.mouthAccessory  === "bit gag") {
+		return false;
+	} else if (slave.mouthAccessory  === "ring gag") {
 		return false;
 	}
 	return true;
diff --git a/src/js/utilsDOM.js b/src/js/utilsDOM.js
index 967c6d1587eed64bae8b3024c483c67074d25cd0..2a87caf769ae3f6bae018ff770c4e2981cb33567 100644
--- a/src/js/utilsDOM.js
+++ b/src/js/utilsDOM.js
@@ -356,3 +356,15 @@ App.UI.DOM.generateLinksStrip = function(links) {
 	}, strip);
 	return strip;
 };
+
+/*
+	<<includeDOM element>>
+	Simply inserts a given DOM element.
+ */
+Macro.add("includeDOM", {
+	handler() {
+		// When given a function that expects a specific context (eg, called like "foo.bar()"), SC will screw it up and
+		// execute it in a different context. Putting the expanded argument through eval retains the context.
+		this.output.append(eval(this.args.full));
+	}
+});
diff --git a/src/npc/interaction/fDance.tw b/src/npc/interaction/fDance.tw
index c02b251217cac39298301e0494713f3bfccaa1d7..7a1c6a83e086ed8bbe6af87e1a6d84f2e1a2afea 100644
--- a/src/npc/interaction/fDance.tw
+++ b/src/npc/interaction/fDance.tw
@@ -164,68 +164,80 @@ $His face is
 		but $he is to terrified of you to see what happens if $he resists
 	<<else>>
 		and refuses to comply. In order to make $him obey, a leash is attached from
-		<<switch getSlave($AS).collar>>
-		<<case "uncomfortable leather">>
-			the steel ring on $his leather collar
-		<<case "dildo gag">>
-			a ring on $his gag strap
-		<<case "massive dildo gag">>
-			a ring on $his gag strap
-		<<case "preg biometrics">>
-			$his collar
-		<<case "silk ribbon">>
-			$his silk ribbon
-		<<case "tight steel">>
-			$his steel collar
-		<<case "porcelain mask">>
-			<<if getSlave($AS).nosePiercing == 2>>
-				$his nose ring
-			<<elseif getSlave($AS).nipplesPiercing == 2>>
-				$his nipple chain
-			<<else>>
-				a collar that is placed around $his neck
-			<</if>>
-		<<case "shock punishment">>
-			$his shock collar
-		<<case "neck corset">>
-			an O-ring at the from of $his neck corset
-		<<case "stylish leather">>
-			$his collar
-		<<case "satin choker">>
-			$his choker collar
-		<<case "heavy gold">>
-			$He is wearing a heavy gold collar, an outstanding bit of ostentation.
-		<<case "pretty jewelry">>
-			$his ornate collar
-		<<case "bell collar">>
-			the ring attaching $his bell to $his collar, and
-		<<case "leather with cowbell">>
-			the ring attaching $his bell to $his collar, and
-		<<case "bowtie">>
-			$his bowtie collar
-		<<case "ancient Egyptian">>
-			<<if getSlave($AS).nosePiercing == 2>>
-				$his nose ring
-			<<elseif getSlave($AS).nipplesPiercing == 2>>
-				$his nipple chain
-			<<else>>
-				$his wesekh
-			<</if>>.
-		<<case "ball gag">>
-			a ring on the back of $his gag
-		<<case "bit gag">>
-			the ring on the side of $his bit
-		<<case "cruel retirement counter" "nice retirement counter">>
-			$his retirement counter
-		<<case "default">>
-			<<if getSlave($AS).nosePiercing == 2>>
-				$his nose ring
-			<<elseif getSlave($AS).nipplesPiercing == 2>>
-				$his nipple chain
-			<<else>>
-				a collar that is placed on $his neck for the occasion, and
-			<</if>>
-		<</switch>>
+		<<if getSlave($AS).collar != "none">>
+			<<switch getSlave($AS).collar>>
+			<<case "uncomfortable leather">>
+				the steel ring on $his leather collar
+			<<case "preg biometrics">>
+				$his collar
+			<<case "silk ribbon">>
+				$his silk ribbon
+			<<case "tight steel">>
+				$his steel collar
+			<<case "shock punishment">>
+				$his shock collar
+			<<case "neck corset">>
+				an O-ring at the from of $his neck corset
+			<<case "stylish leather">>
+				$his collar
+			<<case "satin choker">>
+				$his choker collar
+			<<case "heavy gold">>
+				$He is wearing a heavy gold collar, an outstanding bit of ostentation.
+			<<case "pretty jewelry">>
+				$his ornate collar
+			<<case "bell collar">>
+				the ring attaching $his bell to $his collar, and
+			<<case "leather with cowbell">>
+				the ring attaching $his bell to $his collar, and
+			<<case "bowtie">>
+				$his bowtie collar
+			<<case "bowtie">>
+				$his neck tie
+			<<case "ancient Egyptian">>
+				<<if getSlave($AS).nosePiercing == 2>>
+					$his nose ring
+				<<elseif getSlave($AS).nipplesPiercing == 2>>
+					$his nipple chain
+				<<else>>
+					$his wesekh
+				<</if>>.
+			<<case "cruel retirement counter" "nice retirement counter">>
+				$his retirement counter
+			<<case "default">>
+				<<if getSlave($AS).nosePiercing == 2>>
+					$his nose ring
+				<<elseif getSlave($AS).nipplesPiercing == 2>>
+					$his nipple chain
+				<<else>>
+					a collar that is placed on $his neck for the occasion, and
+				<</if>>
+			<</switch>>
+		<<elseif getSlave($AS).mouthAccessory != "none">>
+			<<switch getSlave($AS).mouthAccessory>>
+			<<case "dildo gag">>
+				a ring on $his gag strap
+			<<case "massive dildo gag">>
+				a ring on $his gag strap
+			<<case "ball gag">>
+				a ring on the back of $his gag
+			<<case "bit gag">>
+				the ring on the side of $his bit
+			<<case "ring gag">>
+				a bar in $his mouth slightly wider than $his ring gag
+			<</switch>>
+		<<elseif getSlave($AS).faceAccessory != "none">>
+			<<switch getSlave($AS).faceAccessory>>
+			<<case "porcelain mask">>
+				<<if getSlave($AS).nosePiercing == 2>>
+					$his nose ring
+				<<elseif getSlave($AS).nipplesPiercing == 2>>
+					$his nipple chain
+				<<else>>
+					a collar that is placed around $his neck
+				<</if>>
+			<</switch>>
+		<</if>>
 		to the pole in order to keep $him from getting down. Whenever $he stops dancing the chain is tightened a bit more,
 		<<switch getSlave($AS).collar>>
 		<<case "uncomfortable leather">>
diff --git a/src/npc/interaction/fKiss.tw b/src/npc/interaction/fKiss.tw
index 55b7b267b2bcca0ad49ce1939c854a2b6eb101d7..a377816d00d355bea8c05d580d192c8996859fc9 100644
--- a/src/npc/interaction/fKiss.tw
+++ b/src/npc/interaction/fKiss.tw
@@ -5,34 +5,34 @@
 <<setPlayerPronouns>>
 
 You tell <<= getSlave($AS).slaveName>> to
-<<switch getSlave($AS).collar>>
+<<switch getSlave($AS).mouthAccessory>>
+<<case "none">>
+	<<if canWalk(getSlave($AS))>>
+		approach you.
+	<<else>>
+		have another slave help $him to your desk.
+	<</if>>
 <<case "dildo gag">>
 	<<if hasAnyArms(getSlave($AS))>>
 		remove $his dildo gag and approach you.
 	<<else>>
 		have another slave remove $his dildo gag and set $him down on your desk.
 	<</if>>
-	<<set _tempGag = getSlave($AS).collar, getSlave($AS).collar = "none">>
+	<<set _tempGag = getSlave($AS).mouthAccessory, getSlave($AS).mouthAccessory = "none">>
 <<case "massive dildo gag">>
 	<<if hasAnyArms(getSlave($AS))>>
 		pull $his enormous dildo gag out of the depths of $his throat and approach you.
 	<<else>>
 		have another slave pull the enormous dildo gag out of the depths of $his throat and set $him down on your desk.
 	<</if>>
-	<<set _tempGag = getSlave($AS).collar, getSlave($AS).collar = "none">>
-<<case "ball gag" "bit gag">>
+	<<set _tempGag = getSlave($AS).mouthAccessory, getSlave($AS).mouthAccessory = "none">>
+<<default>>
 	<<if hasAnyArms(getSlave($AS))>>
 		undo $his gag and approach you.
 	<<else>>
 		have another slave undo $his gag and set $him down on your desk.
 	<</if>>
-	<<set _tempGag = getSlave($AS).collar, getSlave($AS).collar = "none">>
-<<default>>
-	<<if canWalk(getSlave($AS))>>
-		approach you.
-	<<else>>
-		have another slave help $him to your desk.
-	<</if>>
+	<<set _tempGag = getSlave($AS).mouthAccessory, getSlave($AS).mouthAccessory = "none">>
 <</switch>>
 
 <<run Enunciate(getSlave($AS))>>
@@ -323,5 +323,5 @@ Then, you gently raise $his <<if getSlave($AS).face > 95>>heartrendingly beautif
 <</if>>
 
 <<if def _tempGag>>
-	<<set getSlave($AS).collar = _tempGag>>
+	<<set getSlave($AS).mouthAccessory = _tempGag>>
 <</if>>
diff --git a/src/npc/interaction/fLips.tw b/src/npc/interaction/fLips.tw
index 5c674dfa777d8631e0ba946634f91965fcd7ba9d..0cc558174b3adf3aa96660106ca3088ce231c021 100644
--- a/src/npc/interaction/fLips.tw
+++ b/src/npc/interaction/fLips.tw
@@ -26,7 +26,7 @@ You tell <<= getSlave($AS).slaveName>> to
 	$He's delighted at the prospect of $his favorite activity.
 <</if>>
 
-<<switch getSlave($AS).collar>>
+<<switch getSlave($AS).mouthAccessory>>
 <<case "dildo gag">>
 	<<if hasAnyArms(getSlave($AS))>>
 		$He removes the dildo from $his throat, leaving the ring gag in place.
@@ -48,6 +48,13 @@ You tell <<= getSlave($AS).slaveName>> to
 		As an amputee, $he requires your assistance to get the gag unfastened.
 	<</if>>
 	Able to breathe through $his mouth for the first time in a while, $he gasps gratefully, knowing the respite will be brief.
+<<case "ring gag">>
+	<<if hasAnyArms(getSlave($AS))>>
+		$He unfastens $his gag.
+	<<else>>
+		As an amputee, $he requires your assistance to get the gag unfastened.
+	<</if>>
+	Able to flew $his jaw for the first time in a while, $he swallows gratefully, knowing the respite will be brief.
 <</switch>>
 
 <<if (getSlave($AS).lipsTat == "tribal patterns")>>
@@ -120,10 +127,10 @@ You tell <<= getSlave($AS).slaveName>> to
 <<elseif getSlave($AS).devotion < -20>>
 	$He tries to back away, so you
 	<<if ($PC.dick != 0)>>
-		<<if getSlave($AS).collar == "dildo gag">>
+		<<if getSlave($AS).mouthAccessory == "dildo gag">>
 			grab $him; $his <<if $seeRace == 1>><<= getSlave($AS).race>> <</if>>mouth is already held invitingly open by $his gag, and $he's prevented from biting. You push $him down to <<if hasAnyLegs(getSlave($AS))>>$his knee<<if hasBothLegs(getSlave($AS))>>s<</if>><<else>>the ground<</if>> with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his <<= getSlave($AS).skin>> throat $he retches through $his tears.
 			<<if $PC.vagina != -1>>$He has a mere moment to get $his breath back before you press your pussy against $his unwilling mouth.<</if>>
-		<<elseif getSlave($AS).collar == "massive dildo gag">>
+		<<elseif getSlave($AS).mouthAccessory == "massive dildo gag">>
 			grab $him; $his <<if $seeRace == 1>><<= getSlave($AS).race>> <</if>>mouth is left agape, unable to close after being forced so widely open for so long, so $he is unlikely to bite. You push $him down to <<if hasAnyLegs(getSlave($AS))>>$his knee<<if hasBothLegs(getSlave($AS))>>s<</if>><<else>>the ground<</if>> with $his head against the couch next to your desk so you can give $him a good hard throat fuck. When you cum down $his <<= getSlave($AS).skin>> throat $he retches through $his tears.
 			<<if $PC.vagina != -1>>$He has a mere moment to get $his breath back before you press your pussy against $his unwilling mouth.<</if>>
 		<<else>>
diff --git a/src/npc/interaction/passage/abort.tw b/src/npc/interaction/passage/abort.tw
index 408f3dedcc939ccb2f33f6f06a633f96c4525c4b..599532ce574a4b864b3a70a5362161871c9753f0 100644
--- a/src/npc/interaction/passage/abort.tw
+++ b/src/npc/interaction/passage/abort.tw
@@ -48,3 +48,5 @@ The remote surgery makes aborting a pregnancy quick and efficient.
 <<set $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>>
 
 <<run TerminatePregnancy(getSlave($AS))>>
+<<set getSlave($AS).counter.abortions++>>
+<<set $abortionsTotal++>>
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index 9c6edd7fbf3beb17f5eebe4606984e1fd5145c5f..0223876a610a6bd247c5c2f1e8eae1d8786470a7 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -384,1145 +384,667 @@
 <div id="Overview" class="tabcontent">
 	<div class="content">
 
-	<<options $activeSlave.devotion>>
-	''Devotion:''
-	<<optionlt -95 -100 "Utterly hateful">>
-		@@.darkviolet;Utterly hateful.@@
-	<<optionlt -50 -70 "Hateful">>
-		@@.darkviolet;Hateful.@@
-	<<optionlt -20 -35 "Resistant">>
-		@@.mediumorchid;Resistant.@@
-	<<optionlte 20 0 "Ambivalent">>
-		@@.yellow;Ambivalent.@@
-	<<optionlte 50 35 "Accepting">>
-		@@.hotpink;Accepting.@@
-	<<optionlte 95 70 "Devoted">>
-		@@.deeppink;Devoted.@@
-	<<optiondefault 100 "Worshipful">>
-		@@.magenta;Worshipful.@@
-	<<option>>
-		<<textbox2 "$activeSlave.devotion" $activeSlave.devotion "Starting Girls">>
-	<<comment>>
-		<<if $activeSlave.devotion > 20>>
-			<span class="red" style="font-style: italic">
-				Starting slaves incur
-				<<if $activeSlave.devotion > 50>>
-					a severe cost penalty at very high
-				<<else>>
-					an additional cost penalty at high
-				<</if>>
-				levels of devotion. This slave's
-				<<if $activeSlave.actualAge >= 25>>
-					<<if $activeSlave.actualAge > 35>>advanced	<</if>>
-					age decreases the penalty.
-				<<else>>
-					young age requires paying the full penalty.
-				<</if>>
-			</span>
+	<<set _options = new App.UI.OptionsGroup()>>
+	
+	<<set _option = _options.addOption("Devotion", "devotion", $activeSlave).showTextBox()
+	.addRange(-100, -95, "<", "Utterly hateful")
+	.addRange(-70, -50, "<", "Hateful")
+	.addRange(-35, -20, "<", "Resistant")
+	.addRange(0, 20, "<", "Ambivalent")
+	.addRange(35, 50, "<", "Accepting")
+	.addRange(70, 95, "<", "Devoted")
+	.addRange(100, 95, ">=", "Worshipful")>>
+	<<if $activeSlave.devotion > 20>>
+		<<set _comment = "Starting slaves incur">>
+		<<if $activeSlave.devotion > 50>>
+			<<run _comment += " severe cost penalty at very high">>
+		<<else>>
+			<<run _comment += " an additional cost penalty at high">>
 		<</if>>
-	<</options>>
-
-	<<options $activeSlave.trust>>
-		''Trust:''
-		<<optionlt -95 -100 "Abjectly terrified">>
-			@@.goldenrod;Abjectly terrified.@@
-		<<optionlt -50 -70 "Terrified">>
-			@@.goldenrod;Terrified.@@
-		<<optionlt -20 -35 "Frightened">>
-			@@.gold;Frightened.@@
-		<<optionlte 20 0 "Fearful">>
-			@@.yellow;Fearful.@@
-		<<optionlte 50 35 "Careful">>
-			@@.mediumaquamarine;Careful.@@
-		<<optionlte 95 70 "Trusting">>
-			@@.mediumseagreen;Trusting.@@
-		<<optiondefault 100 "Absolute trust">>
-			@@.seagreen;Absolute trust.@@
-		<<option>>
-			<<textbox2 "$activeSlave.trust" $activeSlave.trust "Starting Girls">>
-	<</options>>
-
-	<<if $activeSlave.indenture == -1>>
-		<<options $activeSlave.indenture>>
-			''Legal status:''
-			<<option -1 "Slave" "$activeSlave.indentureRestrictions = 0">>
-				Slave.
-			<<optiondefault 52 "Indentured Servant" "$activeSlave.indentureRestrictions = 0">>
-		<</options>>
-	<<else>>
-		<<options $activeSlave.indenture>>
-			''Legal status:'' Indentured servant
-			<<option -1 "Slave" "$activeSlave.indentureRestrictions = 0">>
-			<<optiondefault 52 "Indentured Servant" "$activeSlave.indentureRestrictions = 0">>
-			<<option>>
-				&nbsp;with <<textbox2 "$activeSlave.indenture" $activeSlave.indenture "Starting Girls">> weeks remaining.
-		<</options>>
-
-		<<options $activeSlave.indentureRestrictions>>
-			''Indenture restrictions:''
-			<<option 0 "None">>
-				None.
-			<<option 1 "Protective">>
-				Protective.
-			<<option 2 "Restrictive">>
-				Restrictive.
-		<</options>>
+		<<run _comment += " levels of devotion. This slave's">>
+		<<if $activeSlave.actualAge >= 25>>
+			<<if $activeSlave.actualAge > 35>>advanced	<</if>>
+			<<run _comment += " age decreases the penalty.">>
+		<<else>>
+			<<run _comment += " young age requires paying the full penalty.">>
+		<</if>>
+		<<run _option.addComment(`<span class=warning>${_comment}</span>`)>>
 	<</if>>
 
-	<<options $activeSlave.actualAge>>
-		''Age:''
-		<<option>>
-			<<textbox2 "$activeSlave.actualAge" $activeSlave.actualAge "Starting Girls" "SlaveDatatypeCleanup($activeSlave)">>
-		<<option>>&nbsp;&nbsp;
-			[[Resync characteristics to age|Starting Girls][resyncSlaveToAge($activeSlave)]]	 &nbsp;|&nbsp;
-			[[Resync only height to age|Starting Girls][$activeSlave.height = Height.random($activeSlave)]]
-		<<comment>>
-			(It is recommended to resync if you change age significantly)
-	<</options>>
-
-	<<options $activeSlave.birthWeek>>
-		''Birth week:''
-		<<option>>
-			<<textbox2 "$activeSlave.birthWeek" $activeSlave.birthWeek "Starting Girls">>
-	<</options>>
-
-	<<options $activeSlave.genes>>
-		''Genes:''
-		<<option "XX" "XX" "$activeSlave.dick = 0, $activeSlave.balls = 0, $activeSlave.clit = 0, $activeSlave.pubertyXY = 0, $activeSlave.pubertyAgeXY = $potencyAge, $activeSlave.pubertyXX = ($activeSlave.pubertyAgeXX < $activeSlave.actualAge ? 1 : 0), $activeSlave.vagina = Math.max(0, $activeSlave.vagina), $activeSlave.boobs = Math.max(500, $activeSlave.boobs), $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.prostate = 0, $activeSlave.shoulders = either(-2,-1,0), $activeSlave.hips = either(-2,-1,0)">>
-			@@.yellow;XX@@ (Female)
-		<<option "XY" "XY" "$activeSlave.dick = 3, $activeSlave.vagina = -1, WombFlush($activeSlave), $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.pubertyXY = ($activeSlave.pubertyAgeXY < $activeSlave.actualAge ? 1 : 0), $activeSlave.pubertyXX = 0, $activeSlave.pubertyAgeXX = $fertilityAge, $activeSlave.ovaries = 0, $activeSlave.boobs = 0, $activeSlave.balls = 3, $activeSlave.scrotum = 3, $activeSlave.prostate = 1, $activeSlave.shoulders = either(0,1,2), $activeSlave.hips = either(0,1,2)">>
-			@@.yellow;XY@@ (Male)
-	<</options>>
-
-	<<options $activeSlave.health.condition>>
-		''Condition:''
-		<<optionlt -20 -40 "Unhealthy">>
-			@@.red;Unhealthy.@@
-		<<optionlt 20 0 "Healthy">>
-			@@.yellow;Healthy.@@
-		<<optionlt 60 40 "Very healthy">>
-			@@.green;Very healthy.@@
-		<<optiondefault 80 "Extremely healthy">>
-			@@.green;Extremely healthy.@@
-	<</options>>
-
-	<<options $activeSlave.prestige>>
-		''Prestige:''
-		<<option 0 "None">>
-			None.
-		<<option 1 "Locally known">>
-			@@.green;Locally known.@@
-		<<option 2 "Regionally famous">>
-			@@.green;Regionally famous.@@
-		<<option 3 "World renowned">>
-			@@.green;World renowned.@@
-		<<comment>>
-			<<if $activeSlave.prestige>>
-				<span class="red" style="font-style: italic">
-					Starting slaves incur an extreme cost penalty for prestige. This slave's
-					<<if $activeSlave.actualAge >= 25>>
-						<<if $activeSlave.actualAge > 35>>advanced	<</if>>
-						age decreases the penalty.
-					<<else>>
-						young age requires paying the full penalty.
-					<</if>>
-				</span>
+	<<run _options.addOption("Trust", "trust", $activeSlave).showTextBox()
+	.addRange(-100, -95, "<", "Abjectly terrified")
+	.addRange(-70, -50, "<", "Terrified")
+	.addRange(-35, -20, "<", "Frightened")
+	.addRange(0, 20, "<", "Fearful")
+	.addRange(35, 50, "<", "Careful")
+	.addRange(70, 95, "<", "Trusting")
+	.addRange(100, 95, ">=", "Absolute trust")>>
+
+	<<run _options.addOption("Legal status", "indenture", $activeSlave)
+	.addValue("Slave", -1, () => V.activeSlave.indentureRestrictions = 0)
+	.addRange(52, 0, ">=", "Indentured Servant")>>
+	<<if $activeSlave.indenture > -1>>
+		<<run _options.addOption("Remaining weeeks", "indenture", $activeSlave).showTextBox()>>
+		
+		<<run _options.addOption("Indenture restrictions", "indentureRestrictions", $activeSlave)
+		.addValueList([["None", 0], ["Protective", 1], ["Restrictive", 2]])>>
+	<</if>>
+
+	<<run _options.addOption("Age", "actualAge", $activeSlave).showTextBox()
+	.customButton("Resync characteristics to age", () => resyncSlaveToAge(V.activeSlave))
+	.customButton("Resync only height to age", () => V.activeSlave.height = Height.random(V.activeSlave))
+	.addComment("It is recommended to resync if you change age significantly")>>
+
+	<<run _options.addOption("Birth week", "birthWeek", $activeSlave).showTextBox()>>
+
+	<<run _options.addOption("Genes", "genes", $activeSlave)
+	.addValue("XX (Female)", "XX", () => {
+		V.activeSlave.dick = 0;
+		V.activeSlave.balls = 0;
+		V.activeSlave.clit = 0;
+		V.activeSlave.pubertyXY = 0;
+		V.activeSlave.pubertyAgeXY = V.potencyAge;
+		V.activeSlave.pubertyXX = (V.activeSlave.pubertyAgeXX < V.activeSlave.actualAge ? 1 : 0);
+		V.activeSlave.vagina = Math.max(0, V.activeSlave.vagina);
+		V.activeSlave.boobs = Math.max(500, V.activeSlave.boobs);
+		V.activeSlave.balls = 0;
+		V.activeSlave.scrotum = 0;
+		V.activeSlave.prostate = 0;
+		V.activeSlave.shoulders = either(-2,-1,0);
+		V.activeSlave.hips = either(-2,-1,0);
+	}).addValue("XY (Male)", "XY", () => {
+		V.activeSlave.dick = 3;
+		V.activeSlave.vagina = -1;
+		WombFlush(V.activeSlave);
+		V.activeSlave.belly = 0;
+		V.activeSlave.bellyPreg = 0;
+		V.activeSlave.pubertyXY = (V.activeSlave.pubertyAgeXY < V.activeSlave.actualAge ? 1 : 0);
+		V.activeSlave.pubertyXX = 0;
+		V.activeSlave.pubertyAgeXX = V.fertilityAge;
+		V.activeSlave.ovaries = 0;
+		V.activeSlave.boobs = 0;
+		V.activeSlave.balls = 3;
+		V.activeSlave.scrotum = 3;
+		V.activeSlave.prostate = 1;
+		V.activeSlave.shoulders = either(0,1,2);
+		V.activeSlave.hips = either(0,1,2);
+	})>>
+
+	<<run _options.addOption("Condition", "condition", $activeSlave.health)
+	.addValueList([["Unhealthy", -40], ["Healthy", 0], ["Very healthy", 40], ["Extremely healthy", 80]])>>
+
+	<<set _option = _options.addOption("Prestige", "prestige", $activeSlave)
+	.addValueList([["None", 0], ["Locally known", 1], ["Regionally famous", 2], ["World renowned", 3]])>>
+	<<if $activeSlave.prestige > 0>>
+		<<set _comment = "Starting slaves incur an extreme cost penalty for prestige. This slave's">>
+		<<if $activeSlave.actualAge >= 25>>
+			<<if $activeSlave.actualAge > 35>>
+				<<set _comment += " advanced">>
 			<</if>>
-	<</options>>
+			<<set _comment += " age decreases the penalty.">>
+		<<else>>
+			<<set _comment += " young age requires paying the full penalty.">>
+		<</if>>
+		<<run _option.addComment(`<span class=warning>${_comment}</span>`)>>
+	<</if>>
+	
+	<<run _options.addOption("$His nationality is", "nationality", $activeSlave).showTextBox()>>
 
-	<<options>>
-		$His nationality is $activeSlave.nationality.
-		<<option>>
-			<<textbox2 "$activeSlave.nationality" $activeSlave.nationality "Starting Girls">>
-	<</options>>
 	<<if $seeRace == 1>>
-		<<options $activeSlave.race>>
-			''Ethnicity:'' $activeSlave.race
-			<<option "white"             "White">>
-			<<option "black"             "Black">>
-			<<option "latina"            "Latina">>
-			<<option "asian"             "Asian">>
-			<<option "middle eastern"    "Middle Eastern">>
-			<<option "amerindian"        "Amerindian">>
-			<<option "southern european" "Southern European">>
-			<<option "semitic"           "Semitic">>
-			<<option "malay"             "Malay">>
-			<<option "indo-aryan"        "Indo-Aryan">>
-			<<option "pacific islander"  "Pacific Islander">>
-			<<option "mixed race"        "Mixed Race">>
-			<<option>>
-				<<textbox2 "$activeSlave.race" $activeSlave.race "Starting Girls">>
-		<</options>>
+		<<run _options.addOption("$His ethnicity is", "nationality", $activeSlave).showTextBox()
+		.addValueList([["White", "white"], ["Asian", "asian"], ["Latina", "latina"], ["Middle Eastern", "middle eastern"],
+			["Black", "black"], ["Semetic", "semetic"], ["Southern European", "southern european"], ["Indo-Aryan", "indo-aryan"],
+			["Amerindian", "amerindian"], ["Pacific Islander", "pacific islander"], ["Malay", "malay"], ["Mixed Race", "mixed race"]])>>
 	<</if>>
 
-	<<options $activeSlave.origSkin>>
-		''Skin color:'' $activeSlave.origSkin
-		<<option "pure white"  "Pure White">>
-		<<option "ivory"   "Ivory">>
-		<<option "white"   "White">>
-		<<option "extremely pale" "Extremely Pale">>
-		<<option "very pale"  "Very Pale">>
-		<<option "pale"    "Pale">>
-		<<option "extremely fair" "Extremely Fair">>
-		<<option "very fair"  "Very Fair">>
-		<<option "fair"    "Fair">>
-		<<option "light"   "Light">>
-		<<option "light olive"  "Light Olive">>
-		<<option "tan"    "Tan">>
-		<<option "olive"   "Olive">>
-		<<option "bronze"   "Bronze">>
-		<<option "dark olive"  "Dark Olive">>
-		<<option "dark"    "Dark">>
-		<<option "light beige"  "Light Beige">>
-		<<option "beige"   "Beige" >>
-		<<option "dark beige"  "Dark Beige">>
-		<<option "light brown"  "Light Brown">>
-		<<option "brown"   "Brown">>
-		<<option "dark brown"  "Dark Brown">>
-		<<option "black"   "Black">>
-		<<option "ebony"   "Ebony">>
-		<<option "pure black"  "Pure Black">>
-		<<option>>
-			<<textbox2 "$activeSlave.origSkin" $activeSlave.origSkin "Starting Girls">>
-	<</options>>
-
-	<<options $activeSlave.intelligence>>
-		''Intelligence:''
-		<<optionlt -95 -100 "Moronic">>@@.orangered;Moronic.@@
-		<<optionlt -50 -60  "Very stupid">>@@.orangered;Very stupid.@@
-		<<optionlt -15 -30  "Stupid">>@@.orangered;Stupid.@@
-		<<optionlt  15  0   "Average">>Average.
-		<<optionlte 50  30  "Smart">>@@.deepskyblue;Smart.@@
-		<<optionlte 95  60  "Very smart">>@@.deepskyblue;Very smart.@@
-		<<optiondefault 100 "Brilliant">>@@.deepskyblue;Brilliant.@@
-	<</options>>
-
-	<<options $activeSlave.intelligenceImplant>>
-		''Education:''
-		<<optionlt 15 0 "Uneducated">> Uneducated.
-		<<optionlt 30 15 "Educated">> @@.deepskyblue;Educated.@@
-		<<optiondefault 30 "Well educated">> @@.deepskyblue;Well educated.@@
-	<</options>>
+	<<run _options.addOption("$His skin color is", "origSkin", $activeSlave).showTextBox()
+	.addValueList([["Pure White", "pure white"], ["Ivory", "ivory"], ["White", "white"], ["Extremely Pale", "extremely pale"],
+			["Very Pale", "very pale"], ["Pale", "pale"], ["Extremely Fair", "extremely fair"], ["Very Fair", "very fair"],
+			["Fair", "fair"], ["Light", "light"], ["Light Olive", "light olive"], ["Tan", "tan"], ["Olive", "olive"], ["Bronze", "bronze"],
+			["Dark Olive", "dark olive"], ["Dark", "dark"], ["Light Beige", "light beige"], ["Beige", "beige"],
+			["Dark Beige", "dark beige"], ["Light Brown", "light brown"], ["Brown", "brown"], ["Dark Brown", "dark brown"],
+			["Black", "black"], ["Ebony", "ebony"], ["Pure Black", "pure black"]])>>
+
+	<<run _options.addOption("Intelligence", "intelligence", $activeSlave)
+	.addValueList([["Moronic", -100], ["Very stupid", -60], ["Stupid", -30], ["Average", 0], ["Smart", 30], ["Very smart", 60], ["Brilliant", 100]])>>
+
+	<<run _options.addOption("Education", "intelligenceImplant", $activeSlave)
+	.addValueList([["Uneducated", 0], ["Educated", 15], ["Well educated", 30]])>>
 
+	<<includeDOM _options.render()>>
 	</div>
 </div>
 
 <div id="Physical" class="tabcontent">
 	<div class="content">
 
-	<<options $activeSlave.height>>
-		''Height:'' <<= heightToEitherUnit($activeSlave.height)>>
-		<<optionlt 150 145 "Petite">>
-			Petite.
-		<<optionlt 160 155 "Short">>
-			Short.
-		<<optionlt 170 165 "Average">>
-			Average.
-		<<optionlt 185 180 "Tall">>
-			Tall.
-		<<optiondefault 190 "Very tall">>
-			Very tall.
-		<<option>>
-			<<textbox2 "$activeSlave.height" $activeSlave.height "Starting Girls">>cm
-		<<comment>>
-			<<link `"Average height for a " + $activeSlave.actualAge + " year old is " + Math.round(Height.mean($activeSlave)) + "cm. Apply."`>>
-				<<= resyncSlaveHight($activeSlave)>> <<goto "Starting Girls">>
-			<</link>>
-			<<if $cheatMode == 1>>	 &nbsp;|&nbsp;	[[Make dwarf|Starting Girls][$activeSlave.height = Height.random($activeSlave, {limitMult:	[-4, -1], spread: 0.15})]]	<</if>>
-			<<if $cheatMode == 1>>	 &nbsp;|&nbsp;	[[Make giant|Starting Girls][$activeSlave.height = Height.random($activeSlave, {limitMult:	[3, 10], spread: 0.15})]]	<</if>>
-	<</options>>
-
-	<<options $activeSlave.weight>>
-		''Weight:''
-		<<optionlt -95 -100 "Emaciated">>
-			@@.red;Emaciated.@@
-		<<optionlt -30 -50 "Skinny">>
-			@@.red;Skinny.@@
-		<<optionlt -10 -20 "Thin">>
-			Thin.
-		<<optionlte 10 0 "Average">>
-			Average.
-		<<optionlte 30 20 "Plush">>
-			Plush.
-		<<optionlte 95 50 "Chubby">>
-			@@.red;Chubby.@@
-		<<optionlte 130 100 "Fat">>
-			@@.red;Fat.@@
-		<<optionlte 160 140 "Obese">>
-			@@.red;Obese.@@
-		<<optionlte 190 180 "Super obese">>
-			@@.red;Super obese.@@
-		<<optiondefault 200 "Dangerously obese">>
-			@@.red;Dangerously obese.@@
-	<</options>>
-
-	<<options $activeSlave.muscles>>
-		''Muscles:''
-		<<optionlt -96 -97 "Frail">>
-			Frail.
-		<<optionlt -51 -66 "Very weak">>
-			Very weak.
-		<<optionlt -6 -41 "Weak">>
-			Weak.
-		<<optionlt 5 0 "Normal">>
-			Normal.
-		<<optionlt 30 20 "Toned">>
-			Toned.
-		<<optionlt 50 40 "Well built">>
-			Well built.
-		<<optionlt 95 65 "Quite muscular">>
-			Quite muscular.
-		<<optiondefault 96 "Ripped">>
-			Ripped.
-	<</options>>
-
-	<<options $activeSlave.waist>>
-		''Waist:''
-		<<optionlt -95 -100 "Absurd">>
-			Absurd.
-		<<optionlt -40 -55 "Hourglass">>
-			Hourglass.
-		<<optionlt -15 -25 "Feminine">>
-			Feminine.
-		<<optionlte 10 0 "Average">>
-			Average.
-		<<optionlte 40 15 "Unattractive">>
-			Unattractive.
-		<<optionlte 95 55 "Ugly">>
-			Ugly.
-		<<optiondefault 100 "Masculine">>
-			Masculine.
-	<</options>>
-
-	<<if $seeDicks != 0>>
-		<<options $activeSlave.faceShape>>
-			''Facial appearance:'' $activeSlave.faceShape
-			<<option "normal" "Normal">>
-			<<option "masculine" "Masculine">>
-			<<option "androgynous" "Androgynous">>
-			<<option "cute" "Cute">>
-			<<option "sensual" "Sensual">>
-			<<option "exotic" "Exotic">>
-		<</options>>
-	<<else>>
-		<<options $activeSlave.faceShape>>
-			''Facial appearance:'' $activeSlave.faceShape
-			<<option "normal" "Normal">>
-			<<option "androgynous" "Androgynous">>
-			<<option "cute" "Cute">>
-			<<option "sensual" "Sensual">>
-			<<option "exotic" "Exotic">>
-		<</options>>
+	<<set _options = new App.UI.OptionsGroup()>>
+
+	<<run _options.addOption("Height: <<= heightToEitherUnit($activeSlave.height)>>", "height", $activeSlave).showTextBox("cm")
+	.addRange(145, 150, "<", "Petite")
+	.addRange(155, 160, "<", "Short")
+	.addRange(165, 170, "<", "Average")
+	.addRange(180, 185, "<", "Tall")
+	.addRange(190, 185, ">=", "Very tall")>>
+	<<set _option = _options.addOption(`Average height for a ${$activeSlave.actualAge} year old """is ${heightToEitherUnit(Math.round(Height.mean(V.activeSlave)))}"""`)
+	.customButton("Make average", () => resyncSlaveHight($activeSlave))>>
+	<<if $cheatMode === 1>>
+		<<run _option.customButton("Make dwarf", () => V.activeSlave.height = Height.random(V.activeSlave, {limitMult:	[-4, -1], spread: 0.15}))
+		.customButton("Make giant", () => V.activeSlave.height = Height.random(V.activeSlave, {limitMult:	[3, 10], spread: 0.15}))>>
 	<</if>>
 
-	<<options $activeSlave.face>>
-		''Facial attractiveness:''
-	<<optionlt -95 -100 "Very ugly">> Very ugly.
-	<<optionlt -40 -55 "Ugly">> Ugly.
-	<<optionlt -10 -15 "Unattractive">> Unattractive.
-	<<optionlte 10 0 "Average">> Average.
-	<<optionlte 40 15 "Attractive">> Attractive.
-	<<optionlte 95 55 "Beautiful">> Beautiful.
-	<<optiondefault 100 "Very beautiful">> Very beautiful.
-	<</options>>
-
+	<<run _options.addOption("Weight", "weight", $activeSlave)
+	.addRange(-100, -95, "<", "Emaciated")
+	.addRange(-50, -30, "<", "Skinny")
+	.addRange(-20, -10, "<", "Thin")
+	.addRange(0, 10, "<", "Average")
+	.addRange(20, 30, "<", "Plush")
+	.addRange(50, 95, "<", "Chubby")
+	.addRange(100, 130, "<", "Fat")
+	.addRange(140, 160, "<", "Obese")
+	.addRange(180, 190, "<", "Super obese")
+	.addRange(200, 190, ">=", "Dangerously obese")>>
+
+	<<run _options.addOption("Muscles", "muscles", $activeSlave)
+	.addRange(-100, -96, "<", "Frail")
+	.addRange(-66, -51, "<", "Very weak")
+	.addRange(-41, -6, "<", "Weak")
+	.addRange(0, 5, "<", "Normal")
+	.addRange(20, 30, "<", "Toned")
+	.addRange(40, 50, "<", "Well built")
+	.addRange(65, 95, "<", "Quite muscular")
+	.addRange(100, 95, ">=", "Ripped")>>
+
+	<<run _options.addOption("Waist", "waist", $activeSlave)
+	.addRange(-100, -95, "<", "	Absurd")
+	.addRange(-55, -40, "<", "Hourglass")
+	.addRange(-25, -15, "<", "Feminine")
+	.addRange(0, 10, "<", "Average")
+	.addRange(15, 40, "<", "Unattractive")
+	.addRange(55, 95, "<", "Ugly")
+	.addRange(100, 10, ">=", "Masculine")>>
+
+	<<set _option = _options.addOption("Facial appearance", "faceShape", $activeSlave)
+	.addValue("Normal", "normal")>>
+	<<if $seeDicks !== 0>>
+		<<run _option.addValue("Masculine", "masculine")>>
+	<</if>>
+	<<run _option.addValueList([["Androgynous", "androgynous"], ["Cute", "cute"], ["Sensual", "sensual"], ["Exotic", "exotic"]])>>
+
+	<<run _options.addOption("Facial attractiveness", "face", $activeSlave)
+	.addRange(-100, -95, "<", "Very ugly")
+	.addRange(-55, -40, "<", "Ugly")
+	.addRange(-15, -10, "<", "Unattractive")
+	.addRange(0, 10, "<", "Average")
+	.addRange(15, 40, "<", "Attractive")
+	.addRange(55, 95, "<", "Beautiful")
+	.addRange(100, 95, ">=", "Very beautiful")>>
+
+	<<set _option = _options.addOption("Lips", "lips", $activeSlave)
+	.addRange(5, 10, "<", "Thin")
+	.addRange(15, 20, "<", "Normal")
+	.addRange(25, 40, "<", "Pretty")
+	.addRange(55, 70, "<", "Plush")>>
 	<<if $seeExtreme == 1>>
-		<<options $activeSlave.lips>>
-			''Lips:''
-			<<optionlte 10 5 "Thin">> Thin.
-			<<optionlte 20 15 "Normal">> Normal.
-			<<optionlte 40 25 "Pretty">> Pretty.
-			<<optionlte 70 55 "Plush">> Plush.
-			<<optionlte 95 85 "Huge">> Huge.
-			<<optiondefault 100 "Facepussy">> Facepussy.
-		<</options>>
+		<<run _option.addRange(85, 95, "<", "Huge")
+			.addRange(100, 95, ">=", "Facepussy")>>
 	<<else>>
-		<<options $activeSlave.lips>>
-			''Lips:''
-			<<optionlte 10 5 "Thin">> Thin.
-			<<optionlte 20 15 "Normal">> Normal.
-			<<optionlte 40 25 "Pretty">> Pretty.
-			<<optionlte 70 55 "Plush">> Plush.
-			<<optionlte 95 85 "Huge">> Huge.
-		<</options>>
+		<<run _option.addRange(85, 70, ">=", "Huge")>>
 	<</if>>
 
-	<<options $activeSlave.voice>>
-		''Voice:''
-		<<option 0 "Mute">>
-			Mute.
-		<<option 1 "Deep">>
-			Deep.
-		<<option 2 "Normal">>
-			Normal.
-		<<option 3 "High">>
-			High.
-	<</options>>
-
-	<<if $activeSlave.voice != 0>>
-		<<options $activeSlave.accent>>
-			''$language:''
-			<<option 0 "Unaccented">>
-				Unaccented.
-			<<option 1 `"Pretty " + aNational($activeSlave.nationality) + " accent"`>>
-				Pretty <<print aNational($activeSlave.nationality)>> accent.
-			<<option 2 `"Thick " + aNational($activeSlave.nationality) + " accent"`>>
-				Thick <<print aNational($activeSlave.nationality)>> accent.
-			<<optiondefault 3 "Not fluent">>
-				Not fluent.
-		<</options>>
+	<<run _options.addOption("Voice", "voice", $activeSlave)
+	.addValueList([["Mute", 0], ["Deep", 1], ["Normal", 2], ["High", 3]])>>
+
+	<<if $activeSlave.voice !== 0>>
+		<<run _options.addOption("$language", "accent", $activeSlave)
+		.addValueList([["Unaccented", 0], [`Pretty ${aNational($activeSlave.nationality)} accent`, 1],
+		[`Thick ${aNational($activeSlave.nationality)} accent`, 2], ["Not fluent", 3]])>>
 	<</if>>
 
+	<<set _option = _options.addOption("Teeth", "teeth", $activeSlave)
+	.addValueList([["Croooked", "crooked"], ["Gapped", "gapped"], ["Braces", "straightening braces"]])>>
 	<<if $activeSlave.physicalAge >= 12>>
 		<<if $activeSlave.teeth == "baby" || $activeSlave.teeth == "mixed">>
 			<<set $activeSlave.teeth = "normal">>
 		<</if>>
-		<<options $activeSlave.teeth>>
-			''Teeth:'' $activeSlave.teeth
-			<<option "crooked" "Crooked">>
-			<<option "gapped" "Gapped">>
-			<<option "straightening braces" "Braces">>
-			<<optiondefault "normal" "Straight">>
-		<</options>>
+		<<run _option.addValue("Straight", "normal")>>
 	<<elseif $activeSlave.physicalAge >= 6>>
 		<<if $activeSlave.teeth == "baby" || $activeSlave.teeth == "normal" || $activeSlave.teeth == "">>
 			<<set $activeSlave.teeth = "mixed">>
 		<</if>>
-		<<options $activeSlave.teeth>>
-			''Teeth:'' $activeSlave.teeth
-			<<option "crooked" "Crooked">>
-			<<option "gapped" "Gapped">>
-			<<option "straightening braces" "Braces">>
-			<<option "mixed" "Mixed adult & child">>
-		<</options>>
+		<<run _option.addValue("Mixed adult & child", "mixed")>>
 	<<else>>
 		<<if $activeSlave.teeth == "mixed" || $activeSlave.teeth == "normal" || $activeSlave.teeth == "">>
 			<<set $activeSlave.teeth = "mixed">>
 		<</if>>
-		<<options $activeSlave.teeth>>
-			''Teeth:'' $activeSlave.teeth
-			<<option "crooked" "Crooked">>
-			<<option "gapped" "Gapped">>
-			<<option "straightening braces" "Braces">>
-			<<option "baby" "Baby">>
-		<</options>>
+		<<run _option.addValue("Baby", "baby")>>
 	<</if>>
 
-	<<options $activeSlave.boobs>>
-		''Breasts:''
-		<<optionlte 200 200 "Flat">> Flat (AA-cup).
-		<<optionlte 300 300 "Small">> Small (A-cup).
-		<<optionlte 400 400 "Medium">> Medium (B-cup).
-		<<optionlte 500 500 "Healthy">> Healthy (C-cup).
-		<<optionlte 800 800 "Large">> Large (DD-cup).
-		<<optionlte 1200 1200 "Very Large">> Very Large (G-cup).
-		<<optionlte 2050 2050 "Huge">> Huge (K-cup).
-		<<optionlte 3950 3950 "Massive">> Massive (Q-cup).
-		<<optionlte 6000 6000 "Monstrous">> Monstrous.
-		<<optiondefault 8000 "Science experiment">> Science Experiment.
-		<<option>>
-			<<textbox2 "$activeSlave.boobs" $activeSlave.boobs "Starting Girls">> CCs
-	<</options>>
-
-	<<options $activeSlave.lactation>>
-		''Lactation:''
-		<<option 2 "Artificial" "$activeSlave.lactationDuration = 2">> Artificial.
-		<<option 1 "Natural" "$activeSlave.lactationDuration = 2">> Natural.
-		<<option 0 "None" "$activeSlave.lactationDuration = 0">> None.
-	<</options>>
-
-	<<options $activeSlave.nipples>>
-		''Nipples:'' $activeSlave.nipples
-		<<option "tiny"     "Tiny">>
-		<<option "cute"     "Cute">>
-		<<option "puffy"    "Puffy">>
-		<<option "inverted" "Inverted">>
-		<<option "huge"     "Huge">>
-	<</options>>
-
-	<<options $activeSlave.areolae>>
-		''Areolae:''
-		<<option 0 "Normal">> Normal.
-		<<option 1 "Large">> Large.
-		<<option 2 "Wide">> Wide.
-		<<option 3 "Huge">> Huge.
-		<<option 4 "Massive">> Massive.
-	<</options>>
-
-	<<options $activeSlave.shoulders>>
-		''Shoulders:''
-		<<option -2 "Very narrow">> Very narrow.
-		<<option -1 "Narrow">> Narrow.
-		<<option 0 "Feminine">> Feminine.
-		<<option 1 "Broad">> Broad.
-		<<option 2 "Very broad">> Very broad.
-	<</options>>
-
-	<<options $activeSlave.hips>>
-		''Hips:''
-		<<option -2 "Very narrow">> Very narrow.
-		<<option -1 "Narrow">> Narrow.
-		<<option 0 "Normal">> Normal.
-		<<option 1 "Broad">> Broad.
-		<<option 2 "Very broad">> Very broad.
-	<</options>>
-
-	<<options $activeSlave.butt>>
-		''Butt:''
-		<<option 0 "Flat">> Flat.
-		<<option 1 "Small">> Small.
-		<<option 2 "Plump">> Plump.
-		<<option 3 "Big">> Big.
-		<<option 4 "Huge">> Huge.
-		<<option 5 "Enormous">> Enormous.
-		<<option 6 "Gigantic">> Gigantic.
-		<<optiondefault 7 "Massive">> Massive.
-	<</options>>
-
-	<<options $activeSlave.anus>>
-		''Anus:''
-		<<option 0 "Virgin">> @@.lime;Virgin.@@
-		<<option 1 "Normal">> Normal.
-		<<option 2 "Veteran">> Veteran.
-		<<optiondefault 3 "Gaping">> Gaping.
-	<</options>>
-
-	<<options $activeSlave.vagina>>
-		''Vagina:''
-		<<option -1 "No vagina" "$activeSlave.preg = 0, WombFlush($activeSlave), $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.pubertyXX = 0,$activeSlave.pubertyAgeXX = $fertilityAge, $activeSlave.ovaries = 0">> //No vagina//.
-		<<option 0 "Virgin" "$activeSlave.preg = -1, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.ovaries = 1">> @@.lime;Virgin.@@
-		<<option 1 "Normal" "$activeSlave.preg = -1, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.ovaries = 1">> Normal.
-		<<option 2 "Veteran" "$activeSlave.preg = -1, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.ovaries = 1">> Veteran.
-		<<optiondefault 3 "Gaping" "$activeSlave.preg = -1, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, $activeSlave.ovaries = 1">> Gaping.
-	<</options>>
-
+	<<run _options.addOption("Breasts", "boobs", $activeSlave).showTextBox("CCs")
+	.addRange(200, 200, "<=", "Flat (AA-cup)")
+	.addRange(300, 300, "<=", "Small (A-cup)")
+	.addRange(400, 400, "<=", "Medium (B-cup)")
+	.addRange(500, 500, "<=", "Healthy (C-cup)")
+	.addRange(800, 800, "<=", "Large (DD-cup)")
+	.addRange(1200, 1200, "<=", "Very Large (G-cup)")
+	.addRange(2050, 2050, "<=", "Huge (K-cup)")
+	.addRange(3950, 3950, "<=", "Massive (Q-cup)")
+	.addRange(6000, 6000, "<=", "Monstrous")
+	.addRange(8000, 6000, ">", "Science Experiment")>>
+
+	<<run _options.addOption("Lactation", "lactation", $activeSlave)
+	.addValue("Artificial", 2, () => V.activeSlave.lactationDuration = 2)
+	.addValue("Natural", 1, () => V.activeSlave.lactationDuration = 2)
+	.addValue("None", 0)>>
+
+	<<run _options.addOption("Nipples", "nipples", $activeSlave)
+	.addValueList([["Tiny", "tiny"], ["Cute", "cute"], ["Puffy", "puffy"], ["Inverted", "inverted"], ["Huge", "huge"]])>>
+
+	<<run _options.addOption("Areolae", "areolae", $activeSlave)
+	.addValueList([["Normal", 0], ["Large", 1], ["Wide", 2], ["Huge", 3], ["Massive", 4]])>>
+
+	<<run _options.addOption("Shoulders", "shoulders", $activeSlave)
+	.addValueList([["Very narrow", -2], ["Narrow", -1], ["Feminine", 0], ["Broad", 1], ["Very broad", 2]])>>
+
+	<<run _options.addOption("Hips", "hips", $activeSlave)
+	.addValueList([["Very narrow", -2], ["Narrow", -1], ["Normal", 0], ["Broad", 1], ["Very broad", 2]])>>
+
+	<<run _options.addOption("Butt", "butt", $activeSlave)
+	.addValueList([["Flat", 0], ["Small", 1], ["Plumb", 2], ["Big", 3], ["Huge", 4], ["Enormous", 5], ["Gigantic", 6], ["Massive", 7]])>>
+
+	<<run _options.addOption("Anus", "anus", $activeSlave)
+	.addValueList([["Virgin", 0], ["Normal", 1], ["Veteran", 2], ["Gaping", 3]])>>
+
+	<<run _options.addOption("Vagina", "vagina", $activeSlave)
+	.addValue("No vagina", -1, () => {
+		V.activeSlave.preg = 0;
+		WombFlush(V.activeSlave);
+		V.activeSlave.belly = 0;
+		V.activeSlave.bellyPreg = 0;
+		V.activeSlave.pubertyXX = 0;
+		V.activeSlave.pubertyAgeXX = V.fertilityAge;
+		V.activeSlave.ovaries = 0;
+	}).addValue("Virgin", 0, () => {
+		V.activeSlave.preg = -1;
+		V.activeSlave.belly = 0;
+		V.activeSlave.bellyPreg = 0;
+		V.activeSlave.ovaries = 1
+	}).addValue("Normal", 1, () => {
+		V.activeSlave.preg = -1;
+		V.activeSlave.belly = 0;
+		V.activeSlave.bellyPreg = 0;
+		V.activeSlave.ovaries = 1
+	}).addValue("Veteran", 2, () => {
+		V.activeSlave.preg = -1;
+		V.activeSlave.belly = 0;
+		V.activeSlave.bellyPreg = 0;
+		V.activeSlave.ovaries = 1
+	}).addValue("Gaping", 3, () => {
+		V.activeSlave.preg = -1;
+		V.activeSlave.belly = 0;
+		V.activeSlave.bellyPreg = 0;
+		V.activeSlave.ovaries = 1
+	})>>
+	
 	<<if $activeSlave.vagina > -1>>
-		<<if $activeSlave.dick == 0>>
-			<<options $activeSlave.clit>>
-				''Clit:''
-				<<option 0 "Normal">> Normal.
-				<<option 1 "Large">> Large.
-				<<optiondefault 2 "Huge">> Huge.
-			<</options>>
+		<<if $activeSlave.dick === 0>>
+			<<run _options.addOption("Clit", "clit", $activeSlave)
+			.addValueList([["Normal", 0], ["Large", 1], ["Huge", 2]])>>
 		<</if>>
-		<<options $activeSlave.labia>>
-			''Labia:''
-			<<option 0 "Normal">> Normal.
-			<<option 1 "Large">> Large.
-			<<optiondefault 2 "Huge">> Huge.
-		<</options>>
-		<<options $activeSlave.vaginaLube>>
-			''Vaginal wetness:''
-			<<option 0 "Dry">> Dry.
-			<<option 1 "Normal">> Normal.
-			<<optiondefault 2 "Excessive">> Excessive.
-		<</options>>
-
-		<<if $seePreg != 0>>
+
+		<<run _options.addOption("Labia", "labia", $activeSlave)
+		.addValueList([["Normal", 0], ["Large", 1], ["Huge", 2]])>>
+
+		<<run _options.addOption("Vaginal wetness", "vaginaLube", $activeSlave)
+		.addValueList([["Dry", 0], ["Normal", 1], ["Excessive", 2]])>>
+
+		<<if $seePreg !== 0>>
 			/* This is only shown if slave has vagina */
-			<<options $activeSlave.pubertyXX>>
-				''Puberty:''
-				<<option 0 "Prepubescent" "$activeSlave.pubertyAgeXX = $fertilityAge, $activeSlave.belly = 0, $activeSlave.bellyPreg = 0, WombFlush($activeSlave)">> Prepubescent.
-				<<option 1 "Postpubescent">> Postpubescent.
-			<</options>>
-
-			<<options $activeSlave.pubertyAgeXX>>
-				''Age of puberty:''
-				<<option>>
-					<<textbox2 "$activeSlave.pubertyAgeXX" $activeSlave.pubertyAgeXX "Starting Girls">>
-			<</options>>
-
-			<<if $seeHyperPreg == 1 && $cheatMode == 1 && $activeSlave.pubertyXX == 1>>
-				<<options $activeSlave.preg>>
-					''Pregnancy:''
-					<<option 43 "Bursting at the seams" "$activeSlave.pregType = 150,$activeSlave.pregWeek = 43,$activeSlave.pregKnown = 1,$activeSlave.belly = 2700000,$activeSlave.bellyPreg = 2700000,$activeSlave.pubertyXX = 1">>Bursting at the seams
-					(Extreme hyper pregnancy!).
-					<<optiongt 40 42 "Completely Filled" "$activeSlave.pregType = 8,$activeSlave.pregWeek = 42,$activeSlave.pregKnown = 1,$activeSlave.belly = 120000,$activeSlave.bellyPreg = 120000,$activeSlave.pubertyXX = 1">> Completely Filled.
-					<<optiongt 39 40 "Ready to drop" "$activeSlave.pregType = 1,$activeSlave.pregWeek = 40,$activeSlave.pregKnown = 1,$activeSlave.belly = 15000,$activeSlave.bellyPreg = 15000,$activeSlave.pubertyXX = 1">> Ready to drop.
-					<<optiongt 30 34 "Advanced" "$activeSlave.pregType = 1,$activeSlave.pregWeek = 34,$activeSlave.pregKnown = 1,$activeSlave.belly = 10000,$activeSlave.bellyPreg = 10000,$activeSlave.pubertyXX = 1">> Advanced.
-					<<optiongt 20 27 "Showing" "$activeSlave.pregType = 1,$activeSlave.pregWeek = 27,$activeSlave.pregKnown = 1,$activeSlave.belly = 5000,$activeSlave.bellyPreg = 5000,$activeSlave.pubertyXX = 1">> Showing.
-					<<optiongt 10 12 "Early" "$activeSlave.pregType = 1,$activeSlave.pregWeek = 12,$activeSlave.pregKnown = 1,$activeSlave.belly = 100,$activeSlave.bellyPreg = 100,$activeSlave.pubertyXX = 1">> Early.
-					<<optiongt -2 0 "None" "$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0">> None.
-					<<optiondefault -2 "Barren" "$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0">>Barren.
-				<</options>>
-			<<elseif $activeSlave.pubertyXX == 1>>
-				<<options $activeSlave.preg>>
-					''Pregnancy:''
-					<<optiongt 40 42 "Completely Filled" "$activeSlave.pregType = 8,$activeSlave.pregWeek = 42,$activeSlave.pregKnown = 1,$activeSlave.belly = 120000,$activeSlave.bellyPreg = 120000,$activeSlave.pubertyXX = 1">> Completely Filled.
-					<<optiongt 39 40 "Ready to drop" "$activeSlave.pregType = 1,$activeSlave.pregWeek = 40,$activeSlave.pregKnown = 1,$activeSlave.belly = 15000,$activeSlave.bellyPreg = 15000,$activeSlave.pubertyXX = 1">> Ready to drop.
-					<<optiongt 30 34 "Advanced" "$activeSlave.pregType = 1,$activeSlave.pregWeek = 34,$activeSlave.pregKnown = 1,$activeSlave.belly = 10000,$activeSlave.bellyPreg = 10000,$activeSlave.pubertyXX = 1">> Advanced.
-					<<optiongt 20 27 "Showing" "$activeSlave.pregType = 1,$activeSlave.pregWeek = 27,$activeSlave.pregKnown = 1,$activeSlave.belly = 5000,$activeSlave.bellyPreg = 5000,$activeSlave.pubertyXX = 1">> Showing.
-					<<optiongt 10 12 "Early" "$activeSlave.pregType = 1,$activeSlave.pregWeek = 12,$activeSlave.pregKnown = 1,$activeSlave.belly = 100,$activeSlave.bellyPreg = 100,$activeSlave.pubertyXX = 1">> Early.
-					<<optiongt -2 0 "None" "$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0">> None.
-					<<optiondefault -2 "Barren" "$activeSlave.pregType = 0,$activeSlave.belly = 0,$activeSlave.bellyPreg = 0,$activeSlave.pregSource = 0,$activeSlave.pregWeek = 0,$activeSlave.pregKnown = 0">>Barren.
-				<</options>>
+			<<run _options.addOption("Puberty", "pubertyXX", $activeSlave)
+			.addValue("Prepubescent", 0, () => {
+				V.activeSlave.pubertyAgeXX = V.fertilityAge;
+				V.activeSlave.belly = 0;
+				V.activeSlave.bellyPreg = 0;
+				WombFlush(V.activeSlave)
+			}).addValue("Postpubescent", 1)>>
+
+			<<run _options.addOption("Age of puberty", "pubertyAgeXX", $activeSlave).showTextBox()>>
+
+			<<if $activeSlave.pubertyXX === 1>>
+				<<set _option = _options.addOption("Age of puberty", "preg", $activeSlave)>>
+				<<if $seeHyperPreg === 1 && $cheatMode === 1>>
+					<<run _option.addValue("Bursting at the seams", 43, () => {
+						V.activeSlave.pregType = 150;
+						V.activeSlave.pregWeek = 43;
+						V.activeSlave.pregKnown = 1;
+						V.activeSlave.belly = 2700000;
+						V.activeSlave.bellyPreg = 2700000;
+						V.activeSlave.pubertyXX = 1;
+					})>>
+					<<if $activeSlave.preg === 43>>
+						<<run _option.addComment("Extreme hyper pregnancy!")>>
+					<</if>>
+				<</if>>
+				<<run _option.addValue("Completely Filled", 42, () => {
+					V.activeSlave.pregType = 8;
+					V.activeSlave.pregWeek = 42;
+					V.activeSlave.pregKnown = 1;
+					V.activeSlave.belly = 120000;
+					V.activeSlave.bellyPreg = 120000;
+					V.activeSlave.pubertyXX = 1;
+				}).addValue("Ready to drop", 40, () => {
+					V.activeSlave.pregType = 1;
+					V.activeSlave.pregWeek = 40;
+					V.activeSlave.pregKnown = 1;
+					V.activeSlave.belly = 15000;
+					V.activeSlave.bellyPreg = 15000;
+					V.activeSlave.pubertyXX = 1;
+				}).addValue("Advanced", 34, () => {
+					V.activeSlave.pregType = 1;
+					V.activeSlave.pregWeek = 34;
+					V.activeSlave.pregKnown = 1;
+					V.activeSlave.belly = 10000;
+					V.activeSlave.bellyPreg = 10000;
+					V.activeSlave.pubertyXX = 1;
+				}).addValue("Showing", 27, () => {
+					V.activeSlave.pregType = 1;
+					V.activeSlave.pregWeek = 27;
+					V.activeSlave.pregKnown = 1;
+					V.activeSlave.belly = 5000;
+					V.activeSlave.bellyPreg = 5000;
+					V.activeSlave.pubertyXX = 1;
+				}).addValue("Early", 12, () => {
+					V.activeSlave.pregType = 1;
+					V.activeSlave.pregWeek = 12;
+					V.activeSlave.pregKnown = 1;
+					V.activeSlave.belly = 100;
+					V.activeSlave.bellyPreg = 100;
+					V.activeSlave.pubertyXX = 1;
+				}).addValue("None", 0, () => {
+					V.activeSlave.pregType = 0;
+					V.activeSlave.belly = 0;
+					V.activeSlave.bellyPreg = 0;
+					V.activeSlave.pregSource = 0;
+					V.activeSlave.pregWeek = 0;
+					V.activeSlave.pregKnown = 0;
+				}).addValue("Barren", -2, () => {
+					V.activeSlave.pregType = 0;
+					V.activeSlave.belly = 0;
+					V.activeSlave.bellyPreg = 0;
+					V.activeSlave.pregSource = 0;
+					V.activeSlave.pregWeek = 0;
+					V.activeSlave.pregKnown = 0;
+				})>>
 			<</if>>
+
 			<<if $PC.dick > 0 && $activeSlave.preg > 0>>
-				<<options $activeSlave.pregSource>>
-					''Father of child:''
-					<<option -1 "My child">> Carrying my child.
-					<<option 0 "Other">> Not me.
-				<</options>>
+				<<run _options.addOption("Father of child", "pregSource", $activeSlave)
+				.addValueList([["My child", -1], ["Not me", 0]])>>
 			<</if>>
 		<</if>>
 	<</if>>
 
-	<<if $seeDicks != 0	|| $makeDicks == 1>>
-		<<options $activeSlave.dick>>
-			''Penis:''
-			<<option 0 "None" "$activeSlave.balls = 0,$activeSlave.clit = 0,$activeSlave.pubertyXY = 0,$activeSlave.pubertyAgeXY = $potencyAge">> None.
-			<<option 1 "Tiny" "$activeSlave.clit = 0">> Tiny.
-			<<option 2 "Small" "$activeSlave.clit = 0">> Small.
-			<<option 3 "Normal" "$activeSlave.clit = 0">> Normal.
-			<<option 4 "Large" "$activeSlave.clit = 0">> Large.
-			<<optiondefault 5 "Massive" "$activeSlave.clit = 0">> Massive.
-		<</options>>
+	<<if $seeDicks !== 0 || $makeDicks === 1>>
+		<<run _options.addOption("Penis", "dick", $activeSlave)
+		.addValue("None", 0, () => {
+			V.activeSlave.balls = 0;
+			V.activeSlave.pubertyXY = 0;
+			V.activeSlave.pubertyAgeXY = V.potencyAge;
+		}).addValue("Tiny", 1, () => {V.activeSlave.clit = 0})
+		.addValue("Small", 2, () => {V.activeSlave.clit = 0})
+		.addValue("Normal", 3, () => {V.activeSlave.clit = 0})
+		.addValue("Large", 4, () => {V.activeSlave.clit = 0})
+		.addValue("Massive", 5, () => {V.activeSlave.clit = 0})>>
 
 		<<if $activeSlave.dick > 0>>
-			<<if $seeCircumcision == 1>>
-				<<options $activeSlave.foreskin>>
-					''Foreskin:''
-					<<option 0 "Circumcised">> Circumcised.
-					<<option 1 "Tiny">> Tiny.
-					<<option 2 "Small">> Small.
-					<<option 3 "Normal">> Normal.
-					<<option 4 "Large">> Large.
-					<<optiondefault 5 "Massive">> Massive.
-				<</options>>
-			<<else>>
-				<<if $activeSlave.foreskin == 0>><<set $activeSlave.foreskin = 3>><</if>>
-				<<options $activeSlave.foreskin>>
-					''Foreskin:''
-					<<option 1 "Tiny">> Tiny.
-					<<option 2 "Small">> Small.
-					<<option 3 "Normal">> Normal.
-					<<option 4 "Large">> Large.
-					<<optiondefault 5 "Massive">> Massive.
-				<</options>>
+			<<set _option = _options.addOption("Foreskin", "foreskin", $activeSlave)>>
+			<<if $seeCircumcision === 1>>
+				<<run _option.addValue("Circumcised", 0)>>
+			<<elseif $activeSlave.foreskin === 0>>
+				<<set $activeSlave.foreskin = 3>>
 			<</if>>
+			<<run _option.addValueList([["Tiny", 1], ["Small", 2], ["Normal", 3], ["Large", 4], ["Massive", 5]])>>
 		<</if>>
 
-		<<options $activeSlave.balls>>
-			''Testicles:''
-			<<option 0 "None" "$activeSlave.pubertyXY = 0,$activeSlave.pubertyAgeXY = $potencyAge, $activeSlave.scrotum=0">> No testicles.
-			<<option 1 "Vestigial">> Vestigial.
-			<<option 2 "Small">> Small.
-			<<option 3 "Normal">> Normal.
-			<<option 4 "Large">> Large.
-			<<optiondefault 5 "Massive">> Massive.
-		<</options>>
-
-		<<options $activeSlave.pubertyAgeXY>>
-			''Age of Male Puberty:''
-			<<option>>
-				<<textbox2 "$activeSlave.pubertyAgeXY" $activeSlave.pubertyAgeXY "Starting Girls">>
-		<</options>>
+		<<run _options.addOption("Testicles", "balls", $activeSlave)
+		.addValue("None", 0, () => {
+			V.activeSlave.pubertyXY = 0;
+			V.activeSlave.pubertyAgeXY = V.potencyAge;
+			V.activeSlave.scrotum = 0;
+		}).addValueList([["Vestigial", 1], ["Small", 2], ["Normal", 3], ["Large", 4], ["Massive", 5]])>>
+
+		<<run _options.addOption("Age of Male Puberty", "pubertyAgeXY", $activeSlave).showTextBox()>>
+		
 		<<if $activeSlave.balls > 0>>
-			<<options $activeSlave.scrotum>>
-				''Ballsack:''
-				<<option 0 "None">> None.
-				<<option 1 "Tiny">> Tiny.
-				<<option 2 "Small">> Small.
-				<<option 3 "Normal">> Normal.
-				<<option 4 "Large">> Large.
-				<<optiondefault 5 "Massive">> Massive.
-			<</options>>
-
-			<<options $activeSlave.pubertyXY>>
-				''Male Puberty:''
-				<<option 0 "Prepubescent" "$activeSlave.pubertyAgeXY = $potencyAge">> Prepubescent.
-				<<option 1 "Postpubescent">> Postpubescent.
-			<</options>>
+			<<run _options.addOption("Ballsack", "scrotum", $activeSlave)
+			.addValueList([["None", 0], ["Tiny", 1], ["Small", 2], ["Normal", 3], ["Large", 4], ["Massive", 5]])>>
+
+			<<run _options.addOption("Male Puberty", "pubertyXY", $activeSlave)
+			.addValue("Prepubescent", 0, () => {V.activeSlave.pubertyAgeXY = V.potencyAge})
+			.addValue("Postpubescent", 1)>>
 		<</if>>
 	<</if>>
 
-	<<options $activeSlave.prostate>>
-		''Prostate:''
-		<<option 0 "No prostate">> No prostate.
-		<<option 1 "Has a prostate">> Has a prostate.
-	<</options>>
+	<<run _options.addOption("Prostate", "prostate", $activeSlave)
+	.addValueList([["No prostate", 0], ["Has a prostate", 1]])>>
 
-	<<if $seeExtreme == 1>>
-		<<options $activeSlave.eye.left.vision>>
-			''Left eye:''
-			<<option 0 "Blind">> Blind
-			<<option 1 "Nearsighted">> Nearsighted
-			<<optiondefault 2 "Normal">> Normal
-		<</options>>
-		<<options $activeSlave.eye.right.vision>>
-			''Right eye:''
-			<<option 0 "Blind">> Blind
-			<<option 1 "Nearsighted">> Nearsighted
-			<<optiondefault 2 "Normal">> Normal
-		<</options>>
+	<<set _optionLeft = _options.addOption("Left eye", "vision", $activeSlave.eye.left)>>
+	<<set _optionRight = _options.addOption("Right eye", "vision", $activeSlave.eye.right)>>
+	<<if $seeExtreme === 1>>
+		<<run _optionLeft.addValue("Blind", 0),  _optionRight.addValue("Blind", 0)>>
 	<<else>>
-		<<options $activeSlave.eye.left.vision>>
-			''Left eye:''
-			<<option 1 "Nearsighted">> Nearsighted
-			<<optiondefault 2 "Normal">> Normal
-		<</options>>
-		<<options $activeSlave.eye.right.vision>>
-			''Right eye:''
-			<<option 1 "Nearsighted">> Nearsighted
-			<<optiondefault 2 "Normal">> Normal
-		<</options>>
+		<<if $activeSlave.eye.left.vision === 0>>
+			<<set $activeSlave.eye.left.vision = 2>>
+		<</if>>
+		<<if $activeSlave.eye.right.vision === 0>>
+			<<set $activeSlave.eye.right.vision = 2>>
+		<</if>>
 	<</if>>
+	<<run _optionLeft.addValueList([["Nearsighted", 1], ["Normal", 2]]), _optionRight.addValueList([["Nearsighted", 1], ["Normal", 2]])>>
 
+	<<set _option = _options.addOption("Hearing", "hears", $activeSlave)>>
 	<<if $seeExtreme == 1>>
-		<<options $activeSlave.hears>>
-			''Hearing:''
-			<<option -2 "Deaf">> Deaf
-			<<option -1 "Hard of hearing">> Hard of hearing
-			<<optiondefault 0 "Normal">> Normal
-		<</options>>
-	<<else>>
-		<<options $activeSlave.hears>>
-			''Hearing:''
-			<<option -1 "Hard of hearing">> Hard of hearing
-			<<optiondefault 0 "Normal">> Normal
-		<</options>>
+		<<run _option.addValue("Deaf", -2)>>
+	<<elseif $activeSlave.hears === 0>>
+		<<set $activeSlave.hears = 2>>
 	<</if>>
+	<<run _option.addValueList([["Hard of hearing", -1], ["Normal", 0]])>>
 
 	<<if $seeExtreme == 1>>
-		<<options $activeSlave.smells>>
-			''Smell ability:''
-			<<option 0 "Normal">> Normal
-			<<option -1 "None">> Unable to smell
-		<</options>>
-
-		<<options $activeSlave.tastes>>
-			''Taste ability:''
-			<<option 0 "Normal">> Normal
-			<<option -1 "None">> Unable to taste
-		<</options>>
-	<</if>>
-
-	<<if $seeExtreme == 1>>
-		/* TODO rewrite this so it looks like the rest (if possible expand options macro) */
-		<p style="text-align: center;">
-			<div>
-				Left arm:
-				<span id = "ampLA">
-					<<if hasLeftArm($activeSlave)>>Yes
-					<<else>>No
-					<</if>>
-				</span>
-				<<link "Remove">>
-					<<set $activeSlave.arm.left = null>>
-					<<replace #ampLA>>
-						No
-					<</replace>>
-				<</link>>
-				<<link "Add">>
-					<<set $activeSlave.arm.left = new App.Entity.LimbState()>>
-					<<replace #ampLA>>
-						Yes
-					<</replace>>
-				<</link>>
-			</div>
-
-			<div>
-				Right arm:
-				<span id = "ampRA">
-					<<if hasRightArm($activeSlave)>>Yes
-					<<else>>No
-					<</if>>
-				</span>
-				<<link "Remove">>
-					<<set $activeSlave.arm.right = null>>
-					<<replace #ampRA>>
-						No
-					<</replace>>
-				<</link>>
-				<<link "Add">>
-					<<set $activeSlave.arm.right = new App.Entity.LimbState()>>
-					<<replace #ampRA>>
-						Yes
-					<</replace>>
-				<</link>>
-			</div>
-
-			<div>
-				Left leg:
-				<span id = "ampLL">
-					<<if hasLeftLeg($activeSlave)>>Yes
-					<<else>>No
-					<</if>>
-				</span>
-				<<link "Remove">>
-					<<set $activeSlave.leg.left = null>>
-					<<replace #ampLL>>
-						No
-					<</replace>>
-				<</link>>
-				<<link "Add">>
-					<<set $activeSlave.leg.left = new App.Entity.LimbState()>>
-					<<replace #ampLL>>
-						Yes
-					<</replace>>
-				<</link>>
-			</div>
-
-			<div>
-				Right leg:
-				<span id = "ampRL">
-					<<if hasRightLeg($activeSlave)>>Yes
-					<<else>>No
-					<</if>>
-				</span>
-				<<link "Remove">>
-					<<set $activeSlave.leg.right = null>>
-					<<replace #ampRL>>
-						No
-					<</replace>>
-				<</link>>
-				<<link "Add">>
-					<<set $activeSlave.leg.right = new App.Entity.LimbState()>>
-					<<replace #ampRL>>
-						Yes
-					<</replace>>
-				<</link>>
-			</div>
-		</p>
+		<<run _options.addOption("Smell ability", "smells", $activeSlave)
+		.addValueList([["Normal", 0], ["None", -1]])>>
+
+		<<run _options.addOption("Taste ability", "tastes", $activeSlave)
+		.addValueList([["Normal", 0], ["None", -1]])>>
+
+		<<set _LA = hasLeftArm($activeSlave)>>
+		<<run _options.addOption("Left arm", "LA", State.temporary)
+		.addValue("Healthy", true, () => V.activeSlave.arm.left = new App.Entity.LimbState())
+		.addValue("Amputated", false, () => V.activeSlave.arm.left = null)>>
+
+		<<set _RA = hasRightArm($activeSlave)>>
+		<<run _options.addOption("Right arm", "RA", State.temporary)
+		.addValue("Healthy", true, () => V.activeSlave.arm.right = new App.Entity.LimbState())
+		.addValue("Amputated", false, () => V.activeSlave.arm.right = null)>>
+
+		<<set _LL = hasLeftLeg($activeSlave)>>
+		<<run _options.addOption("Left leg", "LL", State.temporary)
+		.addValue("Healthy", true, () => V.activeSlave.leg.left = new App.Entity.LimbState())
+		.addValue("Amputated", false, () => V.activeSlave.leg.left = null)>>
+
+		<<set _RL = hasRightLeg($activeSlave)>>
+		<<run _options.addOption("Right leg", "RL", State.temporary)
+		.addValue("Healthy", true, () => V.activeSlave.leg.right = new App.Entity.LimbState())
+		.addValue("Amputated", false, () => V.activeSlave.leg.right = null)>>
 	<</if>>
 
+	<<includeDOM _options.render()>>
 	</div>
 </div>
 
 <div id="Mental" class="tabcontent">
-
 	<div class="content">
-	<<if $activeSlave.fetishKnown == 0>>
-		<<options $activeSlave.fetishKnown>>
-			''Fetish:''
-			<<option 0 "Unknown">>
-				//Not known.//
-			<<option 1 "Known">>
-		<</options>>
+	
+	<<set _options = new App.UI.OptionsGroup()>>
+	<<if $activeSlave.fetishKnown === 0>>
+		<<run _options.addOption("Fetish", "fetishKnown", $activeSlave)
+		.addValueList([["Unknown", 0], ["Known", 1]])>>
 	<<else>>
-		<<if $seeExtreme != 1>>
-			<<options $activeSlave.fetish>>
-				''Fetish:''
-					<<if $activeSlave.fetish == "none">>
-						@@.pink;$activeSlave.fetish.@@
-					<<else>>
-						@@.lightcoral;$activeSlave.fetish.@@
-					<</if>>
-				<<option ""            "Unknown" "$activeSlave.fetish=either('boobs', 'buttslut', 'cumslut', 'dom', 'humiliation', 'masochist', 'none', 'none', 'none', 'none', 'none', 'none', 'none', 'none', 'none', 'none', 'pregnancy', 'sadist', 'submissive'),$activeSlave.fetishKnown=0">>
-				<<option "none"        "None">>
-				<<option "submissive"  "Sub">>
-				<<option "dom"         "Dom">>
-				<<option "cumslut"     "Cumslut">>
-				<<option "humiliation" "Humiliation">>
-				<<option "buttslut"    "Buttslut">>
-				<<option "boobs"       "Breasts">>
-				<<option "pregnancy"   "Pregnancy">>
-				<<option "sadist"      "Sadism">>
-				<<option "masochist"   "Masochism">>
-			<</options>>
-		<<else>>
-			<<options $activeSlave.fetish>>
-				''Fetish:''
-					<<if $activeSlave.fetish == "none">>
-						@@.pink;$activeSlave.fetish.@@
-					<<else>>
-						@@.lightcoral;$activeSlave.fetish.@@
-					<</if>>
-				<<option ""            "Unknown" "$activeSlave.fetish=either('boobs', 'buttslut', 'cumslut', 'dom', 'humiliation', 'masochist', 'none', 'none', 'none', 'none', 'none', 'none', 'none', 'none', 'none', 'none', 'pregnancy', 'sadist', 'submissive'),$activeSlave.fetishKnown=0">>
-				<<option "none"        "None">>
-				<<option "submissive"  "Sub">>
-				<<option "dom"         "Dom">>
-				<<option "cumslut"     "Cumslut">>
-				<<option "humiliation" "Humiliation">>
-				<<option "buttslut"    "Buttslut">>
-				<<option "boobs"       "Breasts">>
-				<<option "pregnancy"   "Pregnancy">>
-				<<option "sadist"      "Sadism">>
-				<<option "masochist"   "Masochism">>
-				<<option "mindbroken"  "Mindbroken" "$activeSlave.sexualFlaw = 'none', $activeSlave.behavioralFlaw = 'none', $activeSlave.sexualQuirk = 'none', $activeSlave.sexualFlaw = 'none'">>
-			<</options>>
+		<<set _option = _options.addOption("Fetish", "fetish", $activeSlave)
+		.addValue("Unknown", "", () => {
+			V.activeSlave.fetish = either("boobs", "buttslut", "cumslut", "dom", "humiliation", "masochist", "pregnancy", "sadist",
+				"submissive", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none");
+			V.activeSlave.fetishKnown = 0
+		}).addValueList([["None", "none"], ["Sub", "submissive"], ["Dom", "dom"], ["Cumslut", "cumslut"], ["Humilation", "humilation"],
+		["Buttslut", "buttslut"], ["Breasts", "breasts"], ["Pregnancy", "pregnancy"], ["Sadism", "sadism"], ["Masochism", "masochism"]])>>
+		<<if $seeExtreme === 1>>
+			<<run _option.addValue("Mindbroken", "mindbroken", () => {
+				V.activeSlave.fetishStrength = 10;
+				V.activeSlave.sexualFlaw = "none";
+				V.activeSlave.sexualQuirk = "none";
+				V.activeSlave.behavioralFlaw = "none";
+				V.activeSlave.behavioralQuirk = "none";
+			})>>
+		<</if>>
+
+		<<if $activeSlave.fetish !== "none" && $activeSlave.fetish !== "mindbroken">>
+			<<run _options.addOption("Fetish strength", "fetishStrength", $activeSlave)
+			.addRange(15, 30, "<=", "Very Low")
+			.addRange(45, 60, "<=", "Low")
+			.addRange(75, 85, "<=", "Normal")
+			.addRange(90, 95, "<=", "High")
+			.addRange(100, 95, ">", "Extremely High")>>
 		<</if>>
-		/* fetish is known */
-		<<if $activeSlave.fetish != "none">>
-			<<options $activeSlave.fetishStrength>>
-				''Fetish strength:'' $activeSlave.fetishStrength
-				<<if $activeSlave.fetishStrength > 95>>
-					@@.lightcoral;Extremely High.@@
-				<<elseif $activeSlave.fetishStrength > 85>>
-					@@.lightcoral;High.@@
-				<<elseif $activeSlave.fetishStrength > 60>>
-					@@.hotpink;Normal.@@
-				<<elseif $activeSlave.fetishStrength > 30>>
-					@@.pink;Low.@@
-				<<else>>
-					@@.pink;Very Low.@@
-				<</if>>
-				<<option>>
-					<<if $activeSlave.fetishStrength >= 5>>
-						[[Decrease|Starting Girls][$activeSlave.fetishStrength -= 5]]
-						<<if $activeSlave.fetishStrength <= 95>>
-							&nbsp;|&nbsp;
-						<</if>>
-					<</if>>
-				<<option>>
-					<<if $activeSlave.fetishStrength <= 95>>
-						[[Increase|Starting Girls][$activeSlave.fetishStrength += 5]]
-					<</if>>
-			<</options>>
-		<</if>> /* Fetish != "none" */
-	<</if>> /* fetishKnown */
-
-	<<if $activeSlave.attrKnown == 0>>
-		<<options $activeSlave.attrKnown>>
-			''Sexuality:''
-			<<option 0 "Unknown">>
-				//Not known.//
-			<<option 1 "Known">>
-		<</options>>
-	<<else>>
-		<<options $activeSlave.attrXY>>
-			''Sexuality:''
-				<<if $activeSlave.attrXY <= 5>>
-					@@.red;Disgusted by men,@@
-				<<elseif $activeSlave.attrXY <= 15>>
-					@@.red;Turned off by men,@@
-				<<elseif $activeSlave.attrXY <= 35>>
-					@@.red;Not attracted to men,@@
-				<<elseif $activeSlave.attrXY <= 65>>
-					Indifferent to men,
-				<<elseif $activeSlave.attrXY <= 85>>
-					@@.green;Attracted to men,@@
-				<<elseif $activeSlave.attrXY <= 95>>
-					@@.green;Aroused by men,@@
-				<<else>>
-					@@.green;Passionate about men,@@
-				<</if>>
-				<<if $activeSlave.attrXX <= 5>>
-					@@.red;disgusted by women.@@
-				<<elseif $activeSlave.attrXX <= 15>>
-					@@.red;turned off by women.@@
-				<<elseif $activeSlave.attrXX <= 35>>
-					@@.red;not attracted to women.@@
-				<<elseif $activeSlave.attrXX <= 65>>
-					indifferent to women.
-				<<elseif $activeSlave.attrXX <= 85>>
-					@@.green;attracted to women.@@
-				<<elseif $activeSlave.attrXX <= 95>>
-					@@.green;aroused by women.@@
-				<<else>>
-					@@.green;passionate about women.@@
-				<</if>>
-			<<option "" "Unknown" "$activeSlave.attrXX = random(0,100), $activeSlave.attrXY = random(0,100), $activeSlave.energy = random(1,90), $activeSlave.attrKnown = 0">>
-			<<option>>&nbsp;&nbsp;
-				XY (male) attraction:&nbsp;
-				<<if $activeSlave.attrXY > 0>>
-					[[Decrease|Starting Girls][$activeSlave.attrXY = Math.clamp($activeSlave.attrXY-10, 0, 100)]]
-					<<if $activeSlave.attrXY < 100>>
-						&nbsp;|&nbsp;
-					<</if>>
-				<</if>>
-			<<option>>
-				<<if $activeSlave.attrXY < 100>>
-					[[Increase|Starting Girls][$activeSlave.attrXY = Math.clamp($activeSlave.attrXY+10, 0, 100)]]
-				<</if>>
-			<<option>>&nbsp;&nbsp;
-				XX (female) attraction:&nbsp;
-				<<if $activeSlave.attrXX > 0>>
-					[[Decrease|Starting Girls][$activeSlave.attrXX = Math.clamp($activeSlave.attrXX-10, 0, 100)]]
-					<<if $activeSlave.attrXX < 100>>
-						&nbsp;|&nbsp;
-					<</if>>
-				<</if>>
-			<<option>>
-				<<if $activeSlave.attrXX < 100>>
-					[[Increase|Starting Girls][$activeSlave.attrXX = Math.clamp($activeSlave.attrXX+10, 0, 100)]]
-				<</if>>
-		<</options>>
-
-		<<options $activeSlave.energy>>
-			''Sex drive:''
-			<<optionlte 20 5 "Frigid">>@@.red;Frigid.@@
-			<<optionlte 40 25 "Poor">>@@.red;Poor@@
-			<<optionlte 60 45 "Average">>@@.yellow;Average@@
-			<<optionlte 80 65 "Powerful">>@@.green;Powerful@@
-			<<optionlte 99 85 "Sex addict">>@@.green;Sex addict@@
-			<<optiondefault 100 "Nympho">>@@.green;Nympho!@@
-		<</options>>
 	<</if>>
 
-	<<options $activeSlave.behavioralFlaw>>
-		''Behavioral Flaw:''
-			<<if $activeSlave.behavioralFlaw == "none">>
-				//$activeSlave.behavioralFlaw.//
-			<<else>>
-				@@.red;$activeSlave.behavioralFlaw.@@
-			<</if>>
-		<<option "none"        "None">>
-		<<option "arrogant"    "Arrogant">>
-		<<option "bitchy"      "Bitchy">>
-		<<option "odd"         "Odd">>
-		<<option "hates men"   "Men">>
-		<<option "hates women" "Women">>
-		<<option "anorexic"    "Anorexic">>
-		<<option "gluttonous"  "Gluttonous">>
-		<<option "devout"      "Devout">>
-		<<option "liberated"   "Liberated">>
-	<</options>>
-
-	<<options $activeSlave.behavioralQuirk>>
-		''Behavioral Quirk:''
-			<<if $activeSlave.behavioralQuirk == "none">>
-				//$activeSlave.behavioralQuirk.//
-			<<else>>
-				@@.green;$activeSlave.behavioralQuirk.@@
-			<</if>>
-		<<option "none"         "None" >>
-		<<option "confident"    "Confident" >>
-		<<option "cutting"      "Cutting" >>
-		<<option "funny"        "Funny" >>
-		<<option "adores men"   "Men" >>
-		<<option "adores women" "Women" >>
-		<<option "insecure"     "Insecure" >>
-		<<option "fitness"      "Fitness" >>
-		<<option "sinful"       "Sinful" >>
-		<<option "advocate"     "Advocate" >>
-	<</options>>
-
-	<<options $activeSlave.sexualFlaw>>
-		''Sexual Flaw:''
-			<<if $activeSlave.sexualFlaw == "none">>
-				//$activeSlave.sexualFlaw.//
-			<<else>>
-				@@.red;$activeSlave.sexualFlaw.@@
-			<</if>>
-		<<option "none" "None">>
-		<<option "hates oral" "Oral">>
-		<<option "hates anal" "Anal">>
-		<<option "hates penetration" "Penetration">>
-		<<option "repressed" "Repressed">>
-		<<option "shamefast" "Shamefast">>
-		<<option "apathetic" "Apathetic">>
-		<<option "crude" "Crude">>
-		<<option "judgemental" "Judgemental">>
-		<<option "idealistic" "Sexually idealistic">>
-	<</options>>
-
-	<<options $activeSlave.sexualQuirk>>
-		''Sexual Quirk:''
-			<<if $activeSlave.sexualQuirk == "none">>
-				//$activeSlave.sexualQuirk.//
-			<<else>>
-				@@.green;$activeSlave.sexualQuirk.@@
-			<</if>>
-		<<option "none" "None">>
-		<<option "gagfuck queen" "Oral">>
-		<<option "painal queen" "Anal">>
-		<<option "strugglefuck queen" "Penetration">>
-		<<option "perverted" "Perverted">>
-		<<option "tease" "Tease">>
-		<<option "caring" "Caring">>
-		<<option "unflinching" "Unflinching">>
-		<<option "size queen" "Size queen">>
-		<<option "romantic" "Romantic">>
-	<</options>>
+	<<run _options.addOption("Sexuality", "attrKnown", $activeSlave)
+	.addValue("Unknown", 0).addValue("Known", 1, () => {
+		V.activeSlave.attrXX = random(0, 100);
+		V.activeSlave.attrXY = random(0, 100);
+		V.activeSlave.energy = random(1, 90);
+	})>>
+	<<if $activeSlave.attrKnown === 1>>
+		<<run _options.addOption("Attraction to men", "attrXY", $activeSlave)
+		.addRange(0, 5, "<=", "Disgusted").off()
+		.addRange(10, 15, "<=", "Turned off").off()
+		.addRange(25, 35, "<=", "Not attracted").off()
+		.addRange(50, 65, "<=", "Indifferent").neutral()
+		.addRange(75, 85, "<=", "Attracted").on()
+		.addRange(90, 95, "<=", "Aroused").on()
+		.addRange(100, 95, ">", "Passionate").on()>>
+		<<run _options.addOption("Attraction to women", "attrXX", $activeSlave)
+		.addRange(0, 5, "<=", "Disgusted").off()
+		.addRange(10, 15, "<=", "Turned off").off()
+		.addRange(25, 35, "<=", "Not attracted").off()
+		.addRange(50, 65, "<=", "Indifferent").neutral()
+		.addRange(75, 85, "<=", "Attracted").on()
+		.addRange(90, 95, "<=", "Aroused").on()
+		.addRange(100, 95, ">", "Passionate").on()>>
+
+		<<run _options.addOption("Sex drive", "energy", $activeSlave)
+		.addRange(5, 10, "<=", "Frigid").off()
+		.addRange(25, 40, "<=", "Poor").off()
+		.addRange(45, 60, "<=", "Average").neutral()
+		.addRange(65, 80, "<=", "Powerful").on()
+		.addRange(85, 99, "<=", "Sex addict").on()
+		.addRange(100, 99, ">", "Nympho").on()>>
+	<</if>>
 
+	<<if $activeSlave.fetish !== "mindbroken">>
+		<<run _options.addOption("Behavioral Flaw", "behavioralFlaw", $activeSlave)
+		.addValueList([["None", "none"], ["Arrogant", "arrogant"], ["Bitchy", "bitchy"], ["Odd", "odd"], ["Hates Men", "hates men"],
+		["Hates Women", "hates women"], ["Anorexic", "anorexic"], ["Gluttonous", "gluttonous"], ["Devout", "devout"],
+		["Liberated", "liberated"]])>>
+
+		<<run _options.addOption("Behavioral Quirk", "behavioralQuirk", $activeSlave)
+		.addValueList([["None", "none"], ["Confident", "confident"], ["Cutting", "cutting"], ["Funny", "funny"],
+		["Adores Men", "adores men"], ["Adores Women", "adores women"], ["Insecure", "insecure"], ["Fitness", "fitness"],
+		["Sinful", "sinful"], ["Advocate", "advocate"]])>>
+
+		<<run _options.addOption("Sexual Flaw", "sexualFlaw", $activeSlave)
+		.addValueList([["None", "none"], ["Hates Oral", "hates oral"], ["Hates Anal", "hates anal"],
+		["Hates Penetration", "hates penetration"], ["Repressed", "repressed"], ["Shamefast", "shamefast"], ["Apathetic", "apathetic"],
+		["Crude", "crude"], ["Judgemental", "judgemental"], ["Sexually idealistic", "idealistic"]])>>
+
+		<<run _options.addOption("Sexual Quirk", "sexualQuirk", $activeSlave)
+		.addValueList([["None", "none"], ["Oral", "gagfuck queen"], ["Anal", "painal queen"], ["Penetration", "strugglefuck queen"],
+		["Perverted", "perverted"], ["Tease", "tease"], ["Caring", "caring"], ["Unflinching", "unflinching"], ["Size queen", "size queen"],
+		["Romantic", "romantic"]])>>
+	<</if>>
+
+	<<includeDOM _options.render()>>
 	</div>
 </div>
 
 <div id="Skills" class="tabcontent">
 	<div class="content">
+	<<set _options = new App.UI.OptionsGroup()>>
+
+	<<run _options.addOption("Oral sex", "oral", $activeSlave.skill)
+	.addRange(0, 10, "<=", "Unskilled")
+	.addRange(15, 30, "<=", "Basic")
+	.addRange(35, 60, "<=", "Skilled")
+	.addRange(65, 60, ">", "Expert")>>
 
-	<<options $activeSlave.skill.oral>>
-		''Oral sex:''
-		<<optionlte 10 0 "Unskilled">> Unskilled.
-		<<optionlte 30 15 "Basic">> @@.cyan;Basic.@@
-		<<optionlte 60 35 "Skilled">> @@.cyan;Skilled.@@
-		<<optiondefault 65 "Expert">> @@.cyan;Expert.@@
-	<</options>>
-
-	<<if $activeSlave.anus == 0>>
-		<<options>>
-			''Anal sex:''
-			<<option>>
-				//Anal virgins cannot be given anal skills//
-		<</options>>
+	<<set _option = _options.addOption("Anal sex", "anal", $activeSlave.skill)>>
+	<<if $activeSlave.anus === 0>>
+		<<run _option.addComment("Anal virgins cannot be given anal skills.")>>
 	<<else>>
-		<<options $activeSlave.skill.anal>>
-			''Anal sex:''
-			<<optionlte 10 0 "Unskilled">> Unskilled.
-			<<optionlte 30 15 "Basic">> @@.cyan;Basic.@@
-			<<optionlte 60 35 "Skilled">> @@.cyan;Skilled.@@
-			<<optiondefault 65 "Expert">> @@.cyan;Expert.@@
-		<</options>>
+		<<run _option.addRange(0, 10, "<=", "Unskilled")
+		.addRange(15, 30, "<=", "Basic")
+		.addRange(35, 60, "<=", "Skilled")
+		.addRange(65, 60, ">", "Expert")>>
 	<</if>>
 
-	<<if $activeSlave.vagina == 0>>
-		<<options>>
-			''Vaginal sex:''
-			<<option>>
-				//Virgins cannot be given vaginal skills//
-		<</options>>
-	<<elseif $activeSlave.vagina == -1>>
-		<<options>>
-			''Vaginal sex:''
-			<<option>>
-				//Must have a vagina to have vaginal skills//
-		<</options>>
+	<<set _option = _options.addOption("Vaginal sex", "vaginal", $activeSlave.skill)>>
+	<<if $activeSlave.vagina === 0>>
+		<<run _option.addComment("Virgins cannot be given anal skills.")>>
+	<<elseif $activeSlave.vagina === -1>>
+		<<run _option.addComment("Must have a vagina to have vaginal skills.")>>
 	<<else>>
-		<<options $activeSlave.skill.vaginal>>
-			''Vaginal sex:''
-			<<optionlte 10 0  "Unskilled">> Unskilled.
-			<<optionlte 30 15 "Basic">> @@.cyan;Basic.@@
-			<<optionlte 60 35 "Skilled">> @@.cyan;Skilled.@@
-			<<optiondefault 65 "Expert">> @@.cyan;Expert.@@
-		<</options>>
+		<<run _option.addRange(0, 10, "<=", "Unskilled")
+		.addRange(15, 30, "<=", "Basic")
+		.addRange(35, 60, "<=", "Skilled")
+		.addRange(65, 60, ">", "Expert")>>
 	<</if>>
 
-	<<options $activeSlave.skill.whoring>>
-		''Prostitution:''
-		<<optionlte 10 0 "Unskilled">> Unskilled.
-		<<optionlte 30 15 "Basic">> @@.cyan;Basic.@@
-		<<optionlte 60 35 "Skilled">> @@.cyan;Skilled.@@
-		<<optiondefault 65 "Expert">> @@.cyan;Expert.@@
-	<</options>>
-
-	<<options $activeSlave.skill.entertainment>>
-		''Entertainment:''
-		<<optionlte 10 0 "Unskilled">> Unskilled.
-		<<optionlte 30 15 "Basic">> @@.cyan;Basic.@@
-		<<optionlte 60 35 "Skilled">> @@.cyan;Skilled.@@
-		<<optiondefault 65 "Expert">> @@.cyan;Expert.@@
-	<</options>>
-
-	<<options $activeSlave.skill.combat>>
-		''Combat:''
-		<<option 0 "Unskilled">> Unskilled
-		<<option 1 "Skilled">> @@.cyan;Skilled.@@
-	<</options>>
-
-	<<if $activeSlave.skill.whoring+$activeSlave.skill.entertainment+$activeSlave.skill.vaginal+$activeSlave.skill.anal+$activeSlave.skill.oral+($activeSlave.skill.combat*100) > 200>>
-		<<options>>
-			<<option>>
-				<span class="red" style="font-style: italic">
-					Starting slaves incur
-					<<if $activeSlave.skill.whoring+$activeSlave.skill.entertainment+$activeSlave.skill.vaginal+$activeSlave.skill.anal+$activeSlave.skill.oral+($activeSlave.skill.combat*100) > 400>>
-							a severe cost penalty at for being highly
-					<<else>>
-							an additional cost penalty for being
-					<</if>>
-					skilled. This slave's
-					<<if $activeSlave.actualAge >= 25>>
-						<<if $activeSlave.actualAge > 35>>
-							advanced
-						<</if>>
-						age decreases the penalty
-					<<else>>
-						young age requires paying the full penalty
-					<</if>>.
-				</span>
-		<</options>>
+	<<run _options.addOption("Prostitution", "whoring", $activeSlave.skill)
+	.addRange(0, 10, "<=", "Unskilled")
+	.addRange(15, 30, "<=", "Basic")
+	.addRange(35, 60, "<=", "Skilled")
+	.addRange(65, 60, ">", "Expert")>>
+
+	<<run _options.addOption("Entertainment", "entertainment", $activeSlave.skill)
+	.addRange(0, 10, "<=", "Unskilled")
+	.addRange(15, 30, "<=", "Basic")
+	.addRange(35, 60, "<=", "Skilled")
+	.addRange(65, 60, ">", "Expert")>>
+
+	<<run _options.addOption("Combat", "combat", $activeSlave.skill)
+	.addValueList([["Unskilled", 0], ["Skilled", 1]])>>
+
+	<<set _totalSkill = $activeSlave.skill.whoring + $activeSlave.skill.entertainment + $activeSlave.skill.vaginal
+		+ $activeSlave.skill.anal + $activeSlave.skill.oral + ($activeSlave.skill.combat * 100)>>
+	<<if _totalSkill > 200>>
+		<<set _comment = "Starting slaves incur">>
+		<<if _totalSkill > 400>>
+			<<set _comment += " a severe cost penalty for being highly">>
+		<<else>>
+			<<set _comment += " an additional cost penalty for being">>
+		<</if>>
+		<<set _comment += " skilled. This slave's">>
+		<<if $activeSlave.actualAge >= 25>>
+			<<if $activeSlave.actualAge > 35>>
+				<<set _comment += " advanced">>
+			<</if>>
+			<<set _comment += " age decreases the penalty.">>
+		<<else>>
+			<<set _comment += " young age requires paying the full penalty.">>
+		<</if>>
+		<<run _options.addOption("").addComment(`<span class="warning">${_comment}</span>`)>>
 	<</if>>
 
+	<<includeDOM _options.render()>>
 	</div>
 </div>
 
diff --git a/src/npc/surgery/surgery.js b/src/npc/surgery/surgery.js
index a1b984d2f947c61a89190d2b613eb6c4f34d19e0..3edc3d395cd2a3dbb622d1c610c7efc7f2d61d89 100644
--- a/src/npc/surgery/surgery.js
+++ b/src/npc/surgery/surgery.js
@@ -1104,6 +1104,8 @@ globalThis.beginFuckdoll = function(slave) {
 	slave.choosesOwnClothes = 0;
 	slave.clothes = "a Fuckdoll suit";
 	slave.collar = "none";
+	slave.faceAccessory  = "none";
+	slave.mouthAccessory  = "none";
 	if ((!hasAnyLegs(slave)) || (slave.shoes !== "none")) {
 		slave.shoes = "heels";
 	}
diff --git a/src/player/js/PlayerState.js b/src/player/js/PlayerState.js
index c555ba67c2a3f734de1a5c7fd85ea7735c37aaef..f3274d7f283508f575a871711d91309f122e1cc6 100644
--- a/src/player/js/PlayerState.js
+++ b/src/player/js/PlayerState.js
@@ -111,6 +111,10 @@ App.Entity.PlayerActionsCountersState = class {
 		this.cum = 0;
 		/** number of births as your slave */
 		this.birthsTotal = 0;
+		/** number of abortions as your slave */
+		this.abortions = 0;
+		/** number of miscarriages as your slave */
+		this.miscarriages = 0;
 		this.laborCount = 0;
 		/** How many slaves you have sired. */
 		this.slavesFathered = 0;
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
index 0449dcf8102d1587e143f62490162e08fedb306d..c69a68d7bdb3ea609b87f64eca017a2cf397ab43 100644
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -194,6 +194,8 @@
 	<<set $args[0].dietMilk = $args[1].dietMilk>>
 	<<set $args[0].clothes = $args[1].clothes>>
 	<<set $args[0].collar = $args[1].collar>>
+	<<set $args[0].faceAccessory  = $args[1].faceAccessory >>
+	<<set $args[0].mouthAccessory  = $args[1].mouthAccessory >>
 	<<set $args[0].shoes = $args[1].shoes>>
 	<<set $args[0].makeup = $args[1].makeup>>
 	<<set $args[0].nails = $args[1].nails>>
diff --git a/src/uncategorized/REFI.tw b/src/uncategorized/REFI.tw
index df85f4d12a76f15326e0951bf1779262215daf52..c1c752a72dc98a46542cd906627bde1795b08cb5 100644
--- a/src/uncategorized/REFI.tw
+++ b/src/uncategorized/REFI.tw
@@ -865,10 +865,10 @@ There was a glint of envy <<if canSee($activeSlave)>>in $his eyes when $he saw<<
 		<<= VCheck.Vaginal()>>
 	<<else>>
 		$He hasn't recovered before $he feels
-		<<switch $activeSlave.collar>>
+		<<switch $activeSlave.mouthAccessory>>
 		<<case "dildo gag" "massive dildo gag">>
 			the relief of the dildo gag being drawn from $his throat before
-		<<case "ball gag" "bit gag">>
+		<<case "ball gag" "bit gag" "ring gag">>
 			you unhook $his gag before
 		<</switch>>
 		the still more urgent pain of <<if $PC.dick != 0>>your dick getting shoved as deep down $his throat as you can<<else>>an enormous dildo forcing $his jaw wide and working its way down $his throat<</if>>,
@@ -1000,10 +1000,10 @@ There was a glint of envy <<if canSee($activeSlave)>>in $his eyes when $he saw<<
 		<<= VCheck.Vaginal()>>
 	<<else>>
 		$He hasn't recovered before $he feels
-		<<switch $activeSlave.collar>>
+		<<switch $activeSlave.mouthAccessory>>
 		<<case "dildo gag" "massive dildo gag">>
 			the relief of the dildo gag being drawn from $his throat before
-		<<case "ball gag" "bit gag">>
+		<<case "ball gag" "bit gag" "ring gag">>
 			you unhook $his gag before
 		<</switch>>
 		the still more urgent pain of <<if $PC.dick != 0>>your dick getting shoved as deep down $his throat as you can<<else>>an enormous dildo forcing $his jaw wide and working its way down $his throat<</if>>,
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index e61ffa4aa034c386fe288b144ec4d71986327cc7..fcea16b4e35b4a5a07bd3ddfdaa61887debb58de 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -2911,12 +2911,11 @@ $He comes to a stop right beside your elbow, waiting for further direction, just
 <<case "tittymonster inspection">>
 
 You enter your office from other business a few minutes after the scheduled start of <<= App.UI.slaveDescriptionDialog($activeSlave)>>'s inspection. The <<if $boobAccessibility == 1>>accessibility aids for slaves with immobilizing breasts<<else>>slaves who helped $him in<</if>> have gone, leaving $him waiting for you in front of your desk. The sight is an arresting one. $He's kneeling, but $his boobs are so enormous that they're resting on the ground in front of $him, completely concealing $his body below the chest<<if $activeSlave.belly >= 120000>>, save for the protruding mass of $his <<if $activeSlave.pregType > 8>>hyper pregnant<<elseif $activeSlave.pregType > 4>><<print pregNumberName($activeSlave.pregType, 1)>>-filled<<else>>overly distended<</if>> belly<</if>>. With $his arm<<if hasBothArms($activeSlave)>>s<</if>> tucked back, and $his torso, <<if $activeSlave.belly < 120000>><<if $activeSlave.bellyPreg > 100>>pregnancy,<<elseif $activeSlave.belly > 100>>swollen stomach,<<else>>abdomen,<</if>><</if>> and legs hidden, $he appears to consist of a <<if $activeSlave.face > 95>>gorgeous<<elseif $activeSlave.face > 50>>beautiful<<elseif $activeSlave.face >= 10>>pretty<<elseif $activeSlave.face >= 0>>nice<<else>>homely<</if>>, $activeSlave.faceShape face, a
-<<switch $activeSlave.collar>>
-<<case "none" "dildo gag" "ball gag" "bit gag" "massive dildo gag">>
-	bare
-<<default>>
+<<if $activeSlave.collar == "none">>
+	none
+<<else>>
 	collared
-<</switch>>
+<</if>>
 neck, $activeSlave.skin, <<if $activeSlave.muscles > 95>>hugely muscled<<elseif $activeSlave.muscles > 30>>strong<<elseif $activeSlave.shoulders > 0>>broad<<elseif $activeSlave.shoulders < 0>>feminine<<elseif $activeSlave.muscles > 5>>toned<<else>>soft<</if>> shoulders, and below that, breasts<<if $activeSlave.belly >= 120000>> parted by $his _belly dome of a stomach<</if>>. $He greets you <<if $activeSlave.devotion > 50>>devotedly, behaving for all the world like $he's pleased to be<<elseif $activeSlave.devotion >= -20>>properly, with just a hint of unhappiness about being<<else>>with more than a hint of resentment over being<</if>> pinned to the floor by $his own tits.
 
 <<case "bonded love">>
@@ -4158,13 +4157,15 @@ beside your desk to await further orders. It occurs to you, gazing down at your
 <<case "gagged slave">>
 
 You cross paths with <<= App.UI.slaveDescriptionDialog($activeSlave)>> as $he returns from $activeSlave.assignment after a long day. One of the things most readily apparent about $activeSlave.slaveName is the
-<<if ($activeSlave.collar == "ball gag")>>
+<<if ($activeSlave.mouthAccessory == "ball gag")>>
 	ball gag keeping $his mouth filled,
-<<elseif ($activeSlave.collar == "bit gag")>>
+<<elseif ($activeSlave.mouthAccessory == "bit gag")>>
 	cruel bit gag keeping $his jaw locked,
-<<elseif ($activeSlave.collar == "dildo gag")>>
+<<elseif ($activeSlave.mouthAccessory == "ring gag")>>
+	cruel ring gag keeping $his mouth stretched open,
+<<elseif ($activeSlave.mouthAccessory == "dildo gag")>>
 	dildo gag filling $his mouth and throat,
-<<elseif ($activeSlave.collar == "massive dildo gag")>>
+<<elseif ($activeSlave.mouthAccessory == "massive dildo gag")>>
 	dildo gag hugely distending $his throat,
 <</if>>
 the existence of which is a constant reminder to $him of $his submission to you and your immense power over $him.
@@ -19383,7 +19384,7 @@ brought in to you. This time <<= App.UI.slaveDescriptionDialog($activeSlave)>> h
 
 <<link "Give $him something else to gag on">>
 	<<replace "#result">>
-		As pleasant an image as $activeSlave.slaveName's mouth filled by a $activeSlave.collar is, one of $his mouth's primary purposes is still to provide you with ample <<if $PC.dick != 0>>blowjobs<<if $PC.vagina != -1>> and <</if>><</if>><<if $PC.vagina != -1>>cunnilingus<</if>>. With $activeSlave.slaveName already kneeling, it is merely a matter of undoing $his gag before you can put $his mouth to work.
+		As pleasant an image as $activeSlave.slaveName's mouth filled by a $activeSlave.mouthAccessory is, one of $his mouth's primary purposes is still to provide you with ample <<if $PC.dick != 0>>blowjobs<<if $PC.vagina != -1>> and <</if>><</if>><<if $PC.vagina != -1>>cunnilingus<</if>>. With $activeSlave.slaveName already kneeling, it is merely a matter of undoing $his gag before you can put $his mouth to work.
 		<<if $activeSlave.skill.oral >= 100>>
 			Though $he has spent much time gagged, $his mastery at giving oral is unaffected.
 		<<elseif $activeSlave.skill.oral > 60>>
@@ -19415,20 +19416,22 @@ brought in to you. This time <<= App.UI.slaveDescriptionDialog($activeSlave)>> h
 <</link>>
 <br><<link "Remove the gag for a few minutes">>
 	<<replace "#result">>
-		You wordlessly remove the $activeSlave.collar and watch as $activeSlave.slaveName opens and closes $his mouth testingly, as if $he has forgotten what it feels like to do so without obstruction. Though you eventually return to the gag to its rightful place in $his mouth, $he @@.mediumaquamarine;trusts you more@@ for granting $him a few moments respite from the gag.
+		You wordlessly remove the $activeSlave.mouthAccessory and watch as $activeSlave.slaveName opens and closes $his mouth testingly, as if $he has forgotten what it feels like to do so without obstruction. Though you eventually return to the gag to its rightful place in $his mouth, $he @@.mediumaquamarine;trusts you more@@ for granting $him a few moments respite from the gag.
 		<<set $activeSlave.trust += 4>>
 	<</replace>>
 <</link>>
 <br><<link "Torment $him with the gag">>
 	<<replace "#result">>
-		Though having a $activeSlave.collar constrict $his mouth is torment enough, you take the time to linger and add to $his torturous existence. $activeSlave.slaveName soon discovers that the straps of a gag can always be made tighter, the
-		<<if ($activeSlave.collar == "ball gag")>>
+		Though having a $activeSlave.mouthAccessory constrict $his mouth is torment enough, you take the time to linger and add to $his torturous existence. $activeSlave.slaveName soon discovers that the straps of a gag can always be made tighter, the
+		<<if ($activeSlave.mouthAccessory == "ball gag")>>
 			ball can always be made larger,
-		<<elseif ($activeSlave.collar == "bit gag")>>
+		<<elseif ($activeSlave.mouthAccessory == "bit gag")>>
 			the bit can always be made thicker,
-		<<elseif ($activeSlave.collar == "dildo gag")>>
+		<<elseif ($activeSlave.mouthAccessory == "ring gag")>>
+			the ring can always be made wider,
+		<<elseif ($activeSlave.mouthAccessory == "dildo gag")>>
 			the dildo can always be made larger,
-		<<elseif ($activeSlave.collar == "massive dildo gag")>>
+		<<elseif ($activeSlave.mouthAccessory == "massive dildo gag")>>
 			the dildo can always be made wider and longer,
 		<</if>>
 		and the punishments rendered for daring to show any discomfort can always be harsher and stricter. Come the end of your session with $him, $activeSlave.slaveName <<if $activeSlave.fetish == "masochist">> is mortified by the intensity of $his orgasms, @@.hotpink;and more convinced than ever that $he's a pain slut,@@ and yet<</if>> @@.gold;scuttles away quickly, having learnt a harsh lesson about your power over $his body.@@
diff --git a/src/uncategorized/costsBudget.tw b/src/uncategorized/costsBudget.tw
index 2ac4ee73c508d2a9c206dd70dc4b47f1da4e94e3..2f019b3ac1c4f4ed7ca4ce9bda2640ef77e66aa9 100644
--- a/src/uncategorized/costsBudget.tw
+++ b/src/uncategorized/costsBudget.tw
@@ -80,7 +80,7 @@
 <<set _options = new App.UI.OptionsGroup()>>
 <<run _options.addOption("", "costsBudget", $showAllEntries)
 .addValue("Normal", 0).on().addValue("Show Empty Entries", 1).neutral()>>
-<<print App.UI.DOM.includeDOM(_options.render())>>
+<<includeDOM _options.render()>>
 
 <p>
 /* Table of Totals */
diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw
index 7481e8a2993a5674152e1d566ab0eb4f06196905..e975241557b4f9072f6df7b7420ce4c531bb3ed9 100644
--- a/src/uncategorized/dairyReport.tw
+++ b/src/uncategorized/dairyReport.tw
@@ -365,7 +365,7 @@
 		<<set $slaves[$i].diet = "healthy">>
 	<</if>>
 	<<if $dairyRestraintsSetting > 1>>
-		<<set $slaves[$i].collar = "none", $slaves[$i].choosesOwnClothes = 0, $slaves[$i].clothes = "no clothing", $slaves[$i].vaginalAccessory = "none", $slaves[$i].vaginalAttachment = "none", $slaves[$i].dickAccessory = "none", $slaves[$i].buttplug = "none", $slaves[$i].chastityAnus = 0, $slaves[$i].chastityPenis = 0, $slaves[$i].chastityVagina = 0>>
+		<<set $slaves[$i].collar = "none", $slaves[$i].faceAccessory  = "none", $slaves[$i].mouthAccessory = "none", $slaves[$i].choosesOwnClothes = 0, $slaves[$i].clothes = "no clothing", $slaves[$i].vaginalAccessory = "none", $slaves[$i].vaginalAttachment = "none", $slaves[$i].dickAccessory = "none", $slaves[$i].buttplug = "none", $slaves[$i].chastityAnus = 0, $slaves[$i].chastityPenis = 0, $slaves[$i].chastityVagina = 0>>
 	<</if>>
 	<<switch $dairyDecoration>>
 	<<case "Arabian Revivalist" "Aztec Revivalist" "Chattel Religionist" "Chinese Revivalist" "Degradationist" "Edo Revivalist" "Egyptian Revivalist" "Roman Revivalist" "Subjugationist" "Supremacist">>
diff --git a/src/uncategorized/descriptionOptions.tw b/src/uncategorized/descriptionOptions.tw
index d25696f3231deec4812514faaf6c37b67aa79e8b..19a45f677ea6c8c8a17fb6598eba5c45b02fe581 100644
--- a/src/uncategorized/descriptionOptions.tw
+++ b/src/uncategorized/descriptionOptions.tw
@@ -71,4 +71,4 @@
 	.addValue("Default (20)", 20).showTextBox()>>
 <</if>>
 
-<<print App.UI.DOM.includeDOM(_options.render())>>
+<<includeDOM _options.render()>>
diff --git a/src/uncategorized/lawCompliance.tw b/src/uncategorized/lawCompliance.tw
index 521dd15035e23a955ccbe4e0e3cc5a8cfd821399..c00ff1bb8c0f3792cef9d13973b36b46efe4149a 100644
--- a/src/uncategorized/lawCompliance.tw
+++ b/src/uncategorized/lawCompliance.tw
@@ -105,6 +105,8 @@
 <<if $arcologies[0].FSRestartSMR == 1>>
 	<<if $activeSlave.balls > 0 || $activeSlave.ovaries > 0>>
 		<<run TerminatePregnancy($activeSlave)>>
+		<<set $activeSlave.counter.abortions++>>
+		<<set $abortionsTotal++>>
 		<<set $activeSlave.balls = 0>>
 		<<set $activeSlave.ovaries = 0>>
 		As a member of the lowest class,<<if $activeSlave.preg > 0>> $his pregnancy is immediately terminated, and<</if>> $he is promptly sterilized to prevent $him from passing on $his useless genes.
@@ -488,6 +490,8 @@
 			to prevent $him from passing on $his inferior genes, @@.mediumorchid;infuriating@@ and @@.gold;terrifying@@ $him.
 			Furthermore, $his <<if $activeSlave.preg > 0>>pregnancy was terminated and afterwards $his <</if>>tubes were promptly tied to prevent $him from passing on $his inferior genes, @@.mediumorchid;saddening@@ and @@.gold;frightening@@ $him.
 			<<run TerminatePregnancy($activeSlave)>>
+			<<set $activeSlave.counter.abortions++>>
+			<<set $abortionsTotal++>>
 			<<set $activeSlave.devotion -= 30>>
 			<<set $activeSlave.trust -= 30>>
 		<<elseif $activeSlave.balls > 0>>
@@ -505,6 +509,8 @@
 		<<elseif (isFertile($activeSlave) || $activeSlave.preg > 0)>>
 			$His <<if $activeSlave.preg > 0>>pregnancy was terminated and afterwards $his <</if>>tubes were promptly tied to prevent $him from passing on $his inferior genes, @@.mediumorchid;saddening@@ and @@.gold;frightening@@ $him.
 			<<run TerminatePregnancy($activeSlave)>>
+			<<set $activeSlave.counter.abortions++>>
+			<<set $abortionsTotal++>>
 			<<set $activeSlave.devotion -= 10>>
 			<<set $activeSlave.trust -= 10>>
 		<<else>>
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index 1ae369626da629dd78ddb72c359497420ce333a4..cd5a55cab34a0c3906e4fc52688e84632c023a85 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -1513,18 +1513,18 @@ and
 		<span class="red"><<print either("obese", "very fat", "very overweight")>>.</span>
 	<</if>>
 <<elseif $activeSlave.weight > 95>>
-	<<if $activeSlave.hips > 1>>
+	<<if $arcologies[0].FSHedonisticDecadence != "unset">>
+		<<print either("extremely curvy", "extremely plush")>><<if $activeSlave.hips > 1>>, $his huge hips complementing $his plushness perfectly<</if>>.
+	<<elseif $activeSlave.hips > 1>>
 		<<print either("extremely curvy", "extremely plush")>>, but $his huge hips make the extra weight attractive on $him.
-	<<elseif $arcologies[0].FSHedonisticDecadence != "unset">>
-		<<print either("extremely curvy", "extremely plush")>>.
 	<<else>>
 		<span class="red"><<print either("carrying a lot of extra weight", "fat", "overweight")>>.</span>
 	<</if>>
 <<elseif $activeSlave.weight > 30>>
-	<<if $activeSlave.hips > 1>>
+	<<if $arcologies[0].FSHedonisticDecadence != "unset">>
+		<<print either("quite curvy", "very plush")>><<if $activeSlave.hips > 1>>, $his motherly hips adding to $his soft appeal<</if>>.
+	<<elseif $activeSlave.hips > 1>>
 		<<print either("quite curvy", "very plush")>>, but $his motherly hips make the extra weight attractive on $him.
-	<<elseif $arcologies[0].FSHedonisticDecadence != "unset">>
-		<<print either("quite curvy", "very plush")>>.
 	<<else>>
 		<span class="red"><<print either("carrying extra weight", "chubby")>>.</span>
 	<</if>>
@@ -1725,6 +1725,10 @@ $He is
 	<</if>>
 <</if>>
 
+<<if ($activeSlave.counter.pitWins + $activeSlave.counter.pitLosses) > 0>>
+	$He has participated in <<print num($activeSlave.counter.pitWins + $activeSlave.counter.pitLosses)>> pit fights, with $activeSlave.counter.pitWins wins and $activeSlave.counter.pitLosses losses.
+<</if>>
+
 <<if $activeSlave.counter.pitKills > 0>>
 	$activeSlave.counter.pitKills slaves have died by $his hand in pit fights.
 <</if>>
@@ -1902,6 +1906,8 @@ $He is
 
 	<<if $activeSlave.fuckdoll == 0>>
 		<<collarDescription>>
+		<<= App.Desc.faceAccessory($activeSlave)>>
+		<<= App.Desc.mouthAccessory($activeSlave)>>
 		<<if ($activeSlave.relationship > 4)>>
 			<<if hasAnyArms($activeSlave)>>
 				$He has a simple gold band on the little finger of $his <<if !hasLeftArm($activeSlave)>>right<<else>>left<</if>> hand.
diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw
index 5f423039632b0614ae05d8a10dc9d6126feda593..1cbbde4aad1ddc3255a8f8967c6979523a90111a 100644
--- a/src/uncategorized/manageArcology.tw
+++ b/src/uncategorized/manageArcology.tw
@@ -79,7 +79,7 @@
 		<span class="note">
 			The arcology's public areas are fully upgraded.
 		</span>
-		<<= App.UI.DOM.includeDOM(App.Arcology.upgrades($building))>>
+		<<includeDOM App.Arcology.upgrades($building)>>
 	<</if>>
 	</div>
 
@@ -489,14 +489,29 @@
 <p>
 	Your slaves have participated in approximately <<print num($oralTotal+$vaginalTotal+$analTotal)>> sexual encounters: <<print num($oralTotal)>> primarily oral, <<print num($vaginalTotal)>> vanilla, <<print num($mammaryTotal)>> mammary, <<print num($analTotal)>> anal, and <<print num($penetrativeTotal)>> with the slave penetrating another. They have produced about <<print num($milkTotal)>> liters of marketable milk, <<if $seeDicks != 0>>about <<print num($cumTotal)>> deciliters of marketable cum, <</if>>and have given birth <<print num($birthsTotal)>> times.
 
-	<<if $pitKillsTotal > 0>>
-		$pitKillsTotal slaves have died in your fighting pit.
+	<<if $abortionsTotal > 0 && $miscarriagesTotal > 0>>
+		They have had a total of <<print num($abortionsTotal)>> abortions and <<print num($miscarriagesTotal)>> miscarriages.
+	<<elseif $abortionsTotal > 0>>
+		They have had a total of <<print num($abortionsTotal)>> abortions.
+	<<elseif $miscarriagesTotal > 0>>
+		They have had a total of <<print num($miscarriagesTotal)>> miscarriages.
 	<</if>>
+	
 	<<if $fuckdollsSold > 0>>
 		$fuckdollsSold mindbroken arcade slaves have been converted into Fuckdolls and sold.
 	<</if>>
 </p>
 
+<<if $pitFightsTotal > 0 && $pitKillsTotal > 0>>
+	<p>
+	$arcologies[0].name has hosted <<print num ($pitFightsTotal)>> pit fights, and <<print num ($pitKillsTotal)>> slaves have died in your pit.
+	</p>
+<<elseif $pitFightsTotal > 0>>
+	<p>
+	$arcologies[0].name has hosted <<print num ($pitFightsTotal)>> pit fights.
+	</p>
+<</if>>
+
 <<if $secExpEnabled == 1 && $SecExp.settings.battle.enabled == 1>>
 	<p>
 	<<if $SF.Toggle === 0||$SF.Active === 0>>
diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index 5a4d78de3f99c4360ed3eec653019ab2fe52eb53..1e4aaaf8e54290366c2ef77e0855ccd332ddae0e 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -711,6 +711,8 @@ The legalities completed, <span class='slave-name'><<= SlaveFullName($activeSlav
 		<<set $activeSlave.devotion += 4>>
 		<<set $activeSlave.trust += 3>>
 		<<run TerminatePregnancy($activeSlave)>>
+		<<set $activeSlave.counter.abortions++>>
+		<<set $abortionsTotal++>>
 	<</link>>
 	<br>
 <<case "$He submitted to enslavement for a better chance at survival than $he had as a migrant.">>
@@ -1356,6 +1358,8 @@ The legalities completed, <span class='slave-name'><<= SlaveFullName($activeSlav
 		<<set TerminatePregnancy($activeSlave)>>
 		<<set $activeSlave.preg = -3>>
 		<<set $activeSlave.ovaries = 0>>
+		<<set $activeSlave.counter.abortions++>>
+		<<set $abortionsTotal++>>
 		<<run surgeryDamage($activeSlave, 10)>>
 	<</link>>
 <</if>>
@@ -1448,7 +1452,7 @@ The legalities completed, <span class='slave-name'><<= SlaveFullName($activeSlav
 				<<= FutureSocieties.Change("Eugenics", 3)>>
 			<</if>>
 		<</replace>>
-		<<set $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.dick = 0, $activeSlave.foreskin = 0, $activeSlave.ovaries = 0, $activeSlave.preg = -2, TerminatePregnancy($activeSlave), $activeSlave.vagina = -1, $activeSlave.skill.vaginal = 0>>
+		<<set $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0, $activeSlave.dick = 0, $activeSlave.foreskin = 0, $activeSlave.ovaries = 0, $activeSlave.preg = -2, TerminatePregnancy($activeSlave), $activeSlave.counter.abortions++, $abortionsTotal++, $activeSlave.vagina = -1, $activeSlave.skill.vaginal = 0>>
 		<<run surgeryDamage($activeSlave, 10)>>
 		<<set $activeSlave.trust = Math.clamp($activeSlave.trust-100, -100, 100)>>
 	<</link>>
diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw
index e090317a168eba740a48021ff8c23f9484c9b2eb..31bd7df827b52193c407a96771ec598f557e126e 100644
--- a/src/uncategorized/options.tw
+++ b/src/uncategorized/options.tw
@@ -29,7 +29,7 @@
 <<set _options = new App.UI.OptionsGroup()>>
 <<run _options.addOption("End of week autosaving is currently", "autosave")
 .addValue("Enabled", 1).on().addValue("Disabled", 0).off()>>
-<<print App.UI.DOM.includeDOM(_options.render())>>
+<<includeDOM _options.render()>>
 
 <br>
 This save was created using FC version $ver build $releaseID.
@@ -113,7 +113,7 @@ This save was created using FC version $ver build $releaseID.
 		.addValue("Enabled", 1).on().addValue("Disabled", 0).off()
 		.addComment("This will comma-format numbers in some areas.")>>
 
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 
 		<h2>General</h2>
 
@@ -161,7 +161,7 @@ This save was created using FC version $ver build $releaseID.
 		<<run _options.addOption("Line separations are", "lineSeparations")
 		.addValue("Shown", 1).on().addValue("Hidden", 0).off()>>
 
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 
 		<h2>Sidebar</h2>
 
@@ -204,7 +204,7 @@ This save was created using FC version $ver build $releaseID.
 			.addValue("Shown", 1).on().addValue("Hidden", 0).off()>>
 		<</if>>
 
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 
 		<h2>Images</h2>
 
@@ -213,7 +213,7 @@ This save was created using FC version $ver build $releaseID.
 		<<run _options.addOption("Images are", "seeImages")
 		.addValue("Enabled", 1).on().addValue("Disabled", 0).off()>>
 		
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 
 		<<if $seeImages > 0>>
 			<div class="imageRef" style="width:200px;height:200px;margin-left:50px;">
@@ -263,7 +263,7 @@ This save was created using FC version $ver build $releaseID.
 			<<run _options.addOption("Slave images in the weekly report are", "seeReportImages")
 			.addValue("Enabled", 1).on().addValue("Disabled", 0).off()>>
 			
-			<<print App.UI.DOM.includeDOM(_options.render())>>
+			<<includeDOM _options.render()>>
 		<</if>>
 	</div>
 </div>
@@ -341,7 +341,7 @@ This save was created using FC version $ver build $releaseID.
 		<<run _options.addOption("Missing slave names are currently", "showMissingSlaves")
 		.addValue("Enabled", true).on().addValue("Disabled", false).off()>>
 		
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 
 		<h2>Intersecting mechanics</h2>
 
@@ -355,7 +355,7 @@ This save was created using FC version $ver build $releaseID.
 		.addValue("Enabled", 1).on().addValue("Disabled", 0).off()
 		.addComment("If enabled, curatives have a chance to give slaves harmful side effects.")>>
 
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 
 		<h2>Flavour</h2>
 
@@ -386,7 +386,7 @@ This save was created using FC version $ver build $releaseID.
 		<<run _options.addOption("Distant relatives such as aunts, nieces and cousins are", "showDistantRelatives")
 		.addValue("Enabled", 1).on().addValue("Disabled", 0).off()>>
 
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 	</div>
 </div>
 
@@ -412,7 +412,7 @@ This save was created using FC version $ver build $releaseID.
 		.addComment("<div>The mod can be activated in any moment, but it may result in unbalanced gameplay if activated very late in the game.</div>
 			<div>''If you are enabling the mod mid game for the first time, run the either the main or mod specific BC option listed near the top.''</div>")>>
 		
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 
 		<<if $secExpEnabled > 0>>
 			<h2>Security Expansion mod options</h2>
@@ -491,7 +491,7 @@ This save was created using FC version $ver build $releaseID.
 				.addValue("Yes", 1).on().addValue("No", 0).off()>>
 			<</if>>
 
-			<<print App.UI.DOM.includeDOM(_options.render())>>
+			<<includeDOM _options.render()>>
 
 			<div class="subHeading">
 			<<if $debugMode || $cheatMode || $cheatModeM>>
@@ -656,7 +656,7 @@ This save was created using FC version $ver build $releaseID.
 		.addValue("Enabled", 1).on().addValue("Disabled", 0).off()
 		.addComment("Outputs performance data at the bottom of every passage.")>>
 
-		<<print App.UI.DOM.includeDOM(_options.render())>>
+		<<includeDOM _options.render()>>
 
 		<h2>Cheating</h2>
 
@@ -667,7 +667,7 @@ This save was created using FC version $ver build $releaseID.
 		.addComment("This will allow manual selection of events and unlock some options that would usually be restricted by progress.")>>
 
 		<<if $cheatMode === 0>>
-			<<print App.UI.DOM.includeDOM(_options.render())>>
+			<<includeDOM _options.render()>>
 		<<else>>
 			<<run _options.addOption("Sidebar Cheats are currently", "cheatModeM")
 			.addValue("Shown", 1).on().addValue("Hidden", 0).off()>>
@@ -675,7 +675,7 @@ This save was created using FC version $ver build $releaseID.
 			<<run _options.addOption("Slave aging", "seeAge")
 			.addValue("Enabled", 1).on().addValue("Celebrate birthdays, but don't age.", 2).neutral().addValue("Disabled", 0).off()>>
 
-			<<print App.UI.DOM.includeDOM(_options.render())>>
+			<<includeDOM _options.render()>>
 
 			<div class="scLink2">
 			[[Add 100000 money|Options][$cheater = 1, cashX(100000, "cheating")]] | [[Add 10000 rep|Options][$cheater = 1, repX(10000, "cheating")]] //Cheating will be flagged in your save//
@@ -736,7 +736,7 @@ This save was created using FC version $ver build $releaseID.
 
 	<p>
 		UI theme selector. Allows to select a single CSS file to be loaded. <span class="red">The file has to be located in the same directory as the HTML file otherwise it will simply not load at all.</span>
-		<<print App.UI.DOM.includeDOM(App.UI.Theme.selector(), "themeSelector")>>
+		<<includeDOM App.UI.Theme.selector(), "themeSelector">>
 	</p>
 
 	<<set _options = new App.UI.OptionsGroup()>>
@@ -763,5 +763,5 @@ This save was created using FC version $ver build $releaseID.
 		.addComment("This will enable a controversial but very broken event. Warning: Snuff, cannibalism.")>>
 	<</if>>
 	
-	<<print App.UI.DOM.includeDOM(_options.render())>>
+	<<includeDOM _options.render()>>
 </div>
diff --git a/src/uncategorized/pePitFight.tw b/src/uncategorized/pePitFight.tw
index 22de54298126b075fa58bead0834112ae03e8225..ce99360e93a19e189938fea75cfc55bac0ca5500 100644
--- a/src/uncategorized/pePitFight.tw
+++ b/src/uncategorized/pePitFight.tw
@@ -21,7 +21,7 @@
 /* 000-250-006 */
 </span>
 
-It's time for the fight. It will take place in a back room of a well respected club. There is a ring set into the floor, and space for a handful of spectators, but the setup is quite Spartan. The sport is just getting off the ground. <<= App.UI.slaveDescriptionDialog($activeSlave)>> is first to walk into the ring. $He's stark naked and is carrying a simple single-edged straight sword, identical to the one $his opponent will be using. The fight will be fair.
+It's time for the private fight you entered your Bodyguard in. It will take place in a back room of a well respected club. There is a ring set into the floor, and space for a handful of spectators, but the setup is quite Spartan. The sport is just getting off the ground. <<= App.UI.slaveDescriptionDialog($activeSlave)>> is first to walk into the ring. $He's stark naked and is carrying a simple single-edged straight sword, identical to the one $his opponent will be using. The fight will be fair.
 
 <br><br>
 
@@ -193,6 +193,7 @@ The umpire announces gravely that the fight is to the death and rings a bell.
 	$activeSlave.slaveName senses that $he is greatly superior, and decides to make a quick end before $his opponent can try something foolish. $He feints high and stabs low; $his enemy just manages to parry the low stab, but is so much weaker that $activeSlave.slaveName simply overpowers _himU, so that _heU falls onto _hisU back with the force of the clash. $activeSlave.slaveName takes one step forward and runs $his sword through the prostrate slave's heart. This victory has @@.green;won you some renown@@ and @@.yellowgreen;a sum of money@@ from each of the spectators.
 	<<run repX(500, "pit", $activeSlave)>>
 	<<run cashX(5000, "pit", $activeSlave)>>
+	<<set $activeSlave.counter.pitWins += 1>>
 	<<set $activeSlave.counter.pitKills += 1>>
 	<<set $pitKillsTotal += 1>>
 <<elseif _deadliness > (_opponent)>>
@@ -200,6 +201,7 @@ The umpire announces gravely that the fight is to the death and rings a bell.
 	<<run repX(500, "pit", $activeSlave)>>
 	<<run cashX(5000, "pit", $activeSlave)>>
 	<<set $activeSlave.health.condition = -50>>
+	<<set $activeSlave.counter.pitWins += 1>>
 	<<set $activeSlave.counter.pitKills += 1>>
 	<<set $pitKillsTotal += 1>>
 <<elseif _deadliness > (_opponent-1)>>
@@ -213,3 +215,5 @@ The umpire announces gravely that the fight is to the death and rings a bell.
 <<if $activeSlave.health.health < -90>>
 	<<= removeActiveSlave() >>
 <</if>>
+
+<<set $pitFightsTotal++>>
\ No newline at end of file
diff --git a/src/uncategorized/pePitFightInvite.tw b/src/uncategorized/pePitFightInvite.tw
index 00bfd4ce7adc97dea6f9de6f14cf50aab97b5598..13ae2a8eae689b55145d80e84c84dab99ef77563 100644
--- a/src/uncategorized/pePitFightInvite.tw
+++ b/src/uncategorized/pePitFightInvite.tw
@@ -8,9 +8,11 @@
 <span id="artFrame">
 </span>
 
-Gladiatorial combat between slaves has not yet reached the level of social acceptability it once enjoyed in Rome, but it's growing in popularity. For now, most fights are discreet affairs limited to select guests. Displaying a slave bodyguard is an excellent way to get yourself invited to participate, and $assistant.name has just passed on an invitation to a private fight next week, should you be willing to hazard a bodyguard.
+<p>Gladiatorial combat between slaves has not yet reached the level of social acceptability it once enjoyed in Rome, but it's growing in popularity. For now, most fights are discreet affairs limited to select guests. Displaying a slave bodyguard is an excellent way to get yourself invited to participate, and $assistant.name has just passed on an invitation to a private fight next week, should you be willing to hazard a bodyguard.</p>
 
-<br><br>
+<<if $pit === 1>>
+	<p>Of course, $pitNameCaps in $arcologies[0].name sees regular fights<<if $pitLethal === 1>> to the death<</if>>, but there's something extra special about attending these outside fights<<if $pitLethal === 0>>, especially with the very real risk of violent death<</if>>.</p>
+<</if>>
 
 <span id="result">
 <<link "Enter your bodyguard as a gladiatrix">>
diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw
index 384aa92f8749652c400a601dfe98500dd5098eaf..e2a2c1732083e4fad023e8fc66cad6d242562cce 100644
--- a/src/uncategorized/randomNonindividualEvent.tw
+++ b/src/uncategorized/randomNonindividualEvent.tw
@@ -187,7 +187,7 @@
 				<</if>>
 			<<elseif ($slaves[$i].fetish == "cumslut")>>
 				<<if ($cumslutID == 0)>>
-					<<if !["dildo gag", "massive dildo gag", "ball gag", "bit gag"].includes($slaves[$i].collar)>>
+					<<if ["ring gag", "none"].includes($slaves[$i].mouthAccessory)>>
 						<<set $cumslutID = $slaves[$i].ID>>
 					<</if>>
 				<</if>>
@@ -377,7 +377,7 @@
 
 	<<if ($Bodyguard != 0)>>
 
-		/*<<set $events.push("PE pit fight invite")>>*/
+		<<set $events.push("PE pit fight invite")>>
 
 		<<if ($Bodyguard.skill.combat != 0)>>
 			<<set $PESSevent.push("bodyguard bedtime")>>
diff --git a/src/uncategorized/reBoomerang.tw b/src/uncategorized/reBoomerang.tw
index ed98acb50cd33914c9753acec6f6229369d93d0f..1343e924d6501ee9ad55bc9f81b5b830a210a314 100644
--- a/src/uncategorized/reBoomerang.tw
+++ b/src/uncategorized/reBoomerang.tw
@@ -18,7 +18,7 @@ Your work is interrupted by $assistant.name with an alert from the entrance to t
 brings up the relevant feeds. There's a naked body crumpled pathetically against one wall of the entryway, beneath the communications panel. It's <<= SlaveFullName($activeSlave)>>, whom you sold _weeks weeks ago. $He's looking up into one of the cameras plaintively.
 "Plea<<s>>e take me back," $he whispers, not wanting to draw the attention of passersby, and knowing that $his faint words will be picked up and amplified for you.
 
-<<set $activeSlave.collar = "none", $activeSlave.choosesOwnClothes = 0, $activeSlave.clothes = "no clothing", $activeSlave.buttplug = "none", $activeSlave.vaginalAccessory = "none", $activeSlave.dickAccessory = "none", $activeSlave.chastityAnus = 0, $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0>>
+<<set $activeSlave.collar = "none", $activeSlave.faceAccessory = "none", $activeSlave.mouthAccessory = "none", $activeSlave.choosesOwnClothes = 0, $activeSlave.clothes = "no clothing", $activeSlave.buttplug = "none", $activeSlave.vaginalAccessory = "none", $activeSlave.dickAccessory = "none", $activeSlave.chastityAnus = 0, $activeSlave.chastityPenis = 0, $activeSlave.chastityVagina = 0>>
 <<run setHealth($activeSlave, jsRandom(-40, -25), $activeSlave.health.shortDamage + jsRandom(0, 10), $activeSlave.health.longDamage + jsRandom(0, 10))>>
 
 /* ------------------ pregnancy setup start here----------------- */
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 26cb1c8f09b086645783c67559b8e397891b90c9..a148e819d95929967ca97b512558c1f24ecd1565 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -56,16 +56,6 @@
 	</span>
 </div>
 
-/* 000-250-006 */
-<<if $seeImages == 1>>
-	<<if $imageChoice == 1>>
-		<div class="imageRef lrgVector"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
-	<<else>>
-		<div class="imageRef lrgRender"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
-	<</if>>
-<</if>>
-/* 000-250-006 */
-
 <div>
 	<<if getSlave($AS).indentureRestrictions >= 1>>
 		<span class="yellow">This slave is subject to a restrictive indenture which forbids many invasive surgeries.</span>
@@ -83,6 +73,16 @@
 
 <div id="hairFace" class="tabcontent">
 <div class="content">
+	/* 000-250-006 */
+	<<if $seeImages == 1>>
+		<<if $imageChoice == 1>>
+			<div class="imageRef lrgVector"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
+		<<else>>
+			<div class="imageRef lrgRender"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
+		<</if>>
+	<</if>>
+	/* 000-250-006 */
+	
 	<h3>Hair:</h3>
 	/*Main Hair*/
 	<div>
@@ -768,1562 +768,1607 @@
 </div>
 
 <div id="upper" class="tabcontent">
-<div class="content">
-	/*Generic boob desc*/
-	<h3>Chest:</h3>
-	<div>
-		$His
-		<<if getSlave($AS).boobs < 300>><<print either("androgynous", "flat")>> chest is barely there.
-		<<elseif getSlave($AS).boobs < 400>><<print either("pointy", "tiny")>>, <<print getSlave($AS).boobs>>cc chest only fill A-cups.
-		<<elseif getSlave($AS).boobs < 8500>>
-			<<if $showBoobCCs == 1>>
-				<<print App.Desc.boobBits.format("%ADJ %NOUN, %VOLUME CCs, would fill %ACUP.", getSlave($AS).boobs)>>
+	<div class="content">
+		/* 000-250-006 */
+		<<if $seeImages == 1>>
+			<<if $imageChoice == 1>>
+				<div class="imageRef lrgVector"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
 			<<else>>
-				<<print App.Desc.boobBits.format("%ADJ %NOUN, would fill %ACUP.", getSlave($AS).boobs)>>
+				<div class="imageRef lrgRender"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
 			<</if>>
-		<<else>>
-			<<print App.Desc.boobBits.format("%ADJ %NOUN, %VOLUME CCs, ", getSlave($AS).boobs)>> fill out an enormous custom bra; $his tits dominate $his entire frame.
 		<</if>>
-	</div>
-
-	/*Boob implants*/
-	<div>
-		$He has
-		<<if ["fillable", "advanced fillable", "hyper fillable"].includes(getSlave($AS).boobsImplantType)>>
-			<<if getSlave($AS).boobsImplantType == "hyper fillable">>
-				<<if getSlave($AS).boobsImplant < 20000>>
-					underfilled,
+		/* 000-250-006 */
+		/*Generic boob desc*/
+		<h3>Chest:</h3>
+		<div>
+			$His
+			<<if getSlave($AS).boobs < 300>><<print either("androgynous", "flat")>> chest is barely there.
+			<<elseif getSlave($AS).boobs < 400>><<print either("pointy", "tiny")>>, <<print getSlave($AS).boobs>>cc chest only fill A-cups.
+			<<elseif getSlave($AS).boobs < 8500>>
+				<<if $showBoobCCs == 1>>
+					<<print App.Desc.boobBits.format("%ADJ %NOUN, %VOLUME CCs, would fill %ACUP.", getSlave($AS).boobs)>>
 				<<else>>
-					enormous,
-				<</if>>
-			<<elseif getSlave($AS).boobsImplantType == "advanced fillable">>
-				<<if getSlave($AS).boobsImplant <= 1000>>
-					deflated,
-				<<elseif getSlave($AS).boobsImplant < 2200>>
-					underfilled,
-				<<elseif getSlave($AS).boobsImplant > 10000>>
-					massively overfilled,
+					<<print App.Desc.boobBits.format("%ADJ %NOUN, would fill %ACUP.", getSlave($AS).boobs)>>
+				<</if>>
+			<<else>>
+				<<print App.Desc.boobBits.format("%ADJ %NOUN, %VOLUME CCs, ", getSlave($AS).boobs)>> fill out an enormous custom bra; $his tits dominate $his entire frame.
+			<</if>>
+		</div>
+
+		/*Boob implants*/
+		<div>
+			$He has
+			<<if ["fillable", "advanced fillable", "hyper fillable"].includes(getSlave($AS).boobsImplantType)>>
+				<<if getSlave($AS).boobsImplantType == "hyper fillable">>
+					<<if getSlave($AS).boobsImplant < 20000>>
+						underfilled,
+					<<else>>
+						enormous,
+					<</if>>
+				<<elseif getSlave($AS).boobsImplantType == "advanced fillable">>
+					<<if getSlave($AS).boobsImplant <= 1000>>
+						deflated,
+					<<elseif getSlave($AS).boobsImplant < 2200>>
+						underfilled,
+					<<elseif getSlave($AS).boobsImplant > 10000>>
+						massively overfilled,
+					<<else>>
+						massive,
+					<</if>>
 				<<else>>
-					massive,
+					<<if getSlave($AS).boobsImplant <= 500>>
+						deflated,
+					<<elseif getSlave($AS).boobsImplant < 800>>
+						underfilled,
+					<<elseif getSlave($AS).boobsImplant > 1800>>
+						massively overfilled,
+					<<elseif getSlave($AS).boobsImplant > 1000>>
+						massive,
+					<<elseif getSlave($AS).boobsImplant >= 800>>
+						giant,
+					<</if>>
+				<</if>>
+				<<print getSlave($AS).boobsImplant>>cc <<= getSlave($AS).boobsImplantType>> breast implants.
+			<<elseif getSlave($AS).boobsImplantType != "none">>
+				<<if getSlave($AS).boobsImplant > 1000>>
+					massive, <<print getSlave($AS).boobsImplant>>cc
+				<<elseif getSlave($AS).boobsImplant > 800>>
+					giant, <<print getSlave($AS).boobsImplant>>cc
+				<<elseif getSlave($AS).boobsImplant > 600>>
+					huge, <<print getSlave($AS).boobsImplant>>cc
+				<<elseif getSlave($AS).boobsImplant > 400>>
+					large, <<print getSlave($AS).boobsImplant>>cc
+				<<elseif getSlave($AS).boobsImplant > 200>>
+					moderate, <<print getSlave($AS).boobsImplant>>cc
+				<<elseif getSlave($AS).boobsImplant > 0>>
+					small, <<print getSlave($AS).boobsImplant>>cc
+				<</if>>
+				<<if getSlave($AS).boobsImplantType != "normal">>
+					<<= getSlave($AS).boobsImplantType>>
+				<</if>>
+				breast implants.
+				<<if getSlave($AS).boobsImplant > 8000 && getSlave($AS).boobsImplantType == "string">>
+					<span class="yellow">Large string based implants are a risk to a slave's health.</span>
 				<</if>>
 			<<else>>
-				<<if getSlave($AS).boobsImplant <= 500>>
-					deflated,
-				<<elseif getSlave($AS).boobsImplant < 800>>
-					underfilled,
-				<<elseif getSlave($AS).boobsImplant > 1800>>
-					massively overfilled,
-				<<elseif getSlave($AS).boobsImplant > 1000>>
-					massive,
-				<<elseif getSlave($AS).boobsImplant >= 800>>
-					giant,
-				<</if>>
-			<</if>>
-			<<print getSlave($AS).boobsImplant>>cc <<= getSlave($AS).boobsImplantType>> breast implants.
-		<<elseif getSlave($AS).boobsImplantType != "none">>
-			<<if getSlave($AS).boobsImplant > 1000>>
-				massive, <<print getSlave($AS).boobsImplant>>cc
-			<<elseif getSlave($AS).boobsImplant > 800>>
-				giant, <<print getSlave($AS).boobsImplant>>cc
-			<<elseif getSlave($AS).boobsImplant > 600>>
-				huge, <<print getSlave($AS).boobsImplant>>cc
-			<<elseif getSlave($AS).boobsImplant > 400>>
-				large, <<print getSlave($AS).boobsImplant>>cc
-			<<elseif getSlave($AS).boobsImplant > 200>>
-				moderate, <<print getSlave($AS).boobsImplant>>cc
-			<<elseif getSlave($AS).boobsImplant > 0>>
-				small, <<print getSlave($AS).boobsImplant>>cc
-			<</if>>
-			<<if getSlave($AS).boobsImplantType != "normal">>
-				<<= getSlave($AS).boobsImplantType>>
-			<</if>>
-			breast implants.
-			<<if getSlave($AS).boobsImplant > 8000 && getSlave($AS).boobsImplantType == "string">>
-				<span class="yellow">Large string based implants are a risk to a slave's health.</span>
+				no implants.
 			<</if>>
-		<<else>>
-			no implants.
-		<</if>>
-		<div class="choices">
-			<<set _surgeries = App.Medicine.Surgery.sizingProcedures.boobs(getSlave($AS), App.Medicine.Surgery.allSizingOptions())>>
-			<<set _surgeryLinks = _surgeries.map(s => App.Medicine.Surgery.makeLink("Surgery Degradation", s, getSlave($AS)))>>
-			<<= _surgeryLinks.join('&thinsp;|&thinsp;')>>
+			<div class="choices">
+				<<set _surgeries = App.Medicine.Surgery.sizingProcedures.boobs(getSlave($AS), App.Medicine.Surgery.allSizingOptions())>>
+				<<set _surgeryLinks = _surgeries.map(s => App.Medicine.Surgery.makeLink("Surgery Degradation", s, getSlave($AS)))>>
+				<<= _surgeryLinks.join('&thinsp;|&thinsp;')>>
+			</div>
 		</div>
-	</div>
 
-	<div>
-		<<if getSlave($AS).boobsImplant != 0>>
-			The shape of $his breasts is determined by $his implants.
-		<<else>>
-			<<if getSlave($AS).boobs <= 250>>
-				$He's so flat-chested that $his breasts don't have much shape.
+		<div>
+			<<if getSlave($AS).boobsImplant != 0>>
+				The shape of $his breasts is determined by $his implants.
 			<<else>>
-				<<switch getSlave($AS).boobShape>>
-					<<case "perky">>
-						They're perky, with nipples that point slightly upwards.
-					<<case "downward-facing">>
-						They're not attractively shaped; $his nipples pointing downward.
-					<<case "torpedo-shaped">>
-						They're torpedo-shaped, projecting some way from $his chest.
-					<<case "wide-set">>
-						They're wide-set, with nipples pointing away from $his sternum.
-					<<case "saggy">>
-						They're not attractively shaped, with $his nipples pointing down.
-					<<default>>
-						They're nicely rounded and rest naturally.
-				<</switch>>
+				<<if getSlave($AS).boobs <= 250>>
+					$He's so flat-chested that $his breasts don't have much shape.
+				<<else>>
+					<<switch getSlave($AS).boobShape>>
+						<<case "perky">>
+							They're perky, with nipples that point slightly upwards.
+						<<case "downward-facing">>
+							They're not attractively shaped; $his nipples pointing downward.
+						<<case "torpedo-shaped">>
+							They're torpedo-shaped, projecting some way from $his chest.
+						<<case "wide-set">>
+							They're wide-set, with nipples pointing away from $his sternum.
+						<<case "saggy">>
+							They're not attractively shaped, with $his nipples pointing down.
+						<<default>>
+							They're nicely rounded and rest naturally.
+					<</switch>>
+					<div class="choices">
+						<<if getSlave($AS).indentureRestrictions >= 2>>
+							<span class="note">$His indenture does not allow breast restructuring</span>
+						<<elseif getSlave($AS).breastMesh == 1>>
+							<span class="note">$His supportive mesh implant prevents reconstruction</span>
+						<<else>>
+							<<if (getSlave($AS).boobShape == "saggy") || (getSlave($AS).boobShape == "downward-facing")>>
+								[[Breast lift|Surgery Degradation][getSlave($AS).boobShape = "normal", surgeryDamage(getSlave($AS),20),cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "breastLift"]]<<if getSlave($AS).preg > getSlave($AS).pregData.normalBirth/1.42 || (getSlave($AS).boobs >= 5000 && getSlave($AS).boobs < 8000)>> <span class="note">$His current state may result in $his breasts becoming saggy again</span><</if>>
+							<<else>>
+								<<if (getSlave($AS).boobShape == "normal")>>
+									[[Reshape them to be perkier|Surgery Degradation][getSlave($AS).boobShape = "perky",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),surgeryDamage(getSlave($AS),10),$surgeryType = "breastReconstruction"]]
+									| [[Make them torpedo-shaped|Surgery Degradation][getSlave($AS).boobShape = "torpedo-shaped",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),surgeryDamage(getSlave($AS),10),$surgeryType = "breastReconstruction"]]
+								<<else>>
+									[[Reshape them to be more normal|Surgery Degradation][getSlave($AS).boobShape = "normal",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),surgeryDamage(getSlave($AS),10),$surgeryType = "breastReconstruction"]]
+								<</if>>
+								<<if (getSlave($AS).boobShape != "saggy") && (getSlave($AS).boobShape != "downward-facing") && (getSlave($AS).boobs >= 2000) && (getSlave($AS).boobsImplant == 0) && ($meshImplants == 1) && ($surgeryUpgrade == 1)>>
+									| [[Implant a supportive mesh to preserve their shape|Surgery Degradation][getSlave($AS).breastMesh = 1,cashX(forceNeg($surgeryCost*(getSlave($AS).boobs/100)), "slaveSurgery", getSlave($AS)),surgeryDamage(getSlave($AS),10),$surgeryType = "breastShapePreservation"]]
+								<</if>>
+							<</if>>
+						<</if>>
+					</div>
+				<</if>>
+			<</if>>
+		</div>
+
+		/* Nipples*/
+		<div>
+			<<if $surgeryUpgrade == 1>>
+				$He has <<= getSlave($AS).nipples>> nipples.
 				<div class="choices">
 					<<if getSlave($AS).indentureRestrictions >= 2>>
-						<span class="note">$His indenture does not allow breast restructuring</span>
-					<<elseif getSlave($AS).breastMesh == 1>>
-						<span class="note">$His supportive mesh implant prevents reconstruction</span>
-					<<else>>
-						<<if (getSlave($AS).boobShape == "saggy") || (getSlave($AS).boobShape == "downward-facing")>>
-							[[Breast lift|Surgery Degradation][getSlave($AS).boobShape = "normal", surgeryDamage(getSlave($AS),20),cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "breastLift"]]<<if getSlave($AS).preg > getSlave($AS).pregData.normalBirth/1.42 || (getSlave($AS).boobs >= 5000 && getSlave($AS).boobs < 8000)>> <span class="note">$His current state may result in $his breasts becoming saggy again</span><</if>>
+						<span class="note">$His indenture forbids elective surgery</span>
+					<<elseif getSlave($AS).indentureRestrictions == 1>>
+						<span class="note">$His indenture forbids extreme body modification</span>
+					<<else>> /* split for possible dicknips later on, should lcd wish to attempt it again. */
+						<<if getSlave($AS).nipples == "fuckable">>
+							[[Restore their shape and function|Surgery Degradation][getSlave($AS).nipples = "huge",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
 						<<else>>
-							<<if (getSlave($AS).boobShape == "normal")>>
-								[[Reshape them to be perkier|Surgery Degradation][getSlave($AS).boobShape = "perky",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),surgeryDamage(getSlave($AS),10),$surgeryType = "breastReconstruction"]]
-								| [[Make them torpedo-shaped|Surgery Degradation][getSlave($AS).boobShape = "torpedo-shaped",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),surgeryDamage(getSlave($AS),10),$surgeryType = "breastReconstruction"]]
+							<<if getSlave($AS).boobs-getSlave($AS).boobsMilk < 500>>
+								<span class="note">$His breasts are too small to support reshaping $his nipples to be penetratable</span>
+							<<elseif getSlave($AS).boobs-getSlave($AS).boobsImplant-getSlave($AS).boobsMilk < 500>>
+								<span class="note">$His implants are too large to support reshaping $his nipples to be penetratable</span>
+							<<elseif getSlave($AS).nipples != "huge">>
+								<span class="note">$His nipples are too small to be made fuckable</span>
 							<<else>>
-								[[Reshape them to be more normal|Surgery Degradation][getSlave($AS).boobShape = "normal",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),surgeryDamage(getSlave($AS),10),$surgeryType = "breastReconstruction"]]
-							<</if>>
-							<<if (getSlave($AS).boobShape != "saggy") && (getSlave($AS).boobShape != "downward-facing") && (getSlave($AS).boobs >= 2000) && (getSlave($AS).boobsImplant == 0) && ($meshImplants == 1) && ($surgeryUpgrade == 1)>>
-								| [[Implant a supportive mesh to preserve their shape|Surgery Degradation][getSlave($AS).breastMesh = 1,cashX(forceNeg($surgeryCost*(getSlave($AS).boobs/100)), "slaveSurgery", getSlave($AS)),surgeryDamage(getSlave($AS),10),$surgeryType = "breastShapePreservation"]]
+								[[Reshape them to support being penetrated|Surgery Degradation][getSlave($AS).nipples = "fuckable",getSlave($AS).nipplesPiercing = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "nippleCunts"]]<<if getSlave($AS).nipplesPiercing > 0>> <span class="note">Will remove piercings.</span><</if>>
 							<</if>>
 						<</if>>
 					<</if>>
 				</div>
 			<</if>>
-		<</if>>
-	</div>
+		</div>
 
-	/* Nipples*/
-	<div>
-		<<if $surgeryUpgrade == 1>>
-			$He has <<= getSlave($AS).nipples>> nipples.
-			<div class="choices">
-				<<if getSlave($AS).indentureRestrictions >= 2>>
-					<span class="note">$His indenture forbids elective surgery</span>
-				<<elseif getSlave($AS).indentureRestrictions == 1>>
-					<span class="note">$His indenture forbids extreme body modification</span>
-				<<else>> /* split for possible dicknips later on, should lcd wish to attempt it again. */
-					<<if getSlave($AS).nipples == "fuckable">>
-						[[Restore their shape and function|Surgery Degradation][getSlave($AS).nipples = "huge",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
-					<<else>>
-						<<if getSlave($AS).boobs-getSlave($AS).boobsMilk < 500>>
-							<span class="note">$His breasts are too small to support reshaping $his nipples to be penetratable</span>
-						<<elseif getSlave($AS).boobs-getSlave($AS).boobsImplant-getSlave($AS).boobsMilk < 500>>
-							<span class="note">$His implants are too large to support reshaping $his nipples to be penetratable</span>
-						<<elseif getSlave($AS).nipples != "huge">>
-							<span class="note">$His nipples are too small to be made fuckable</span>
-						<<else>>
-							[[Reshape them to support being penetrated|Surgery Degradation][getSlave($AS).nipples = "fuckable",getSlave($AS).nipplesPiercing = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "nippleCunts"]]<<if getSlave($AS).nipplesPiercing > 0>> <span class="note">Will remove piercings.</span><</if>>
-						<</if>>
-					<</if>>
+		/*Areolae*/
+		<div>
+			<<if getSlave($AS).areolae == 0>>
+				$His areolae are small
+				<<if getSlave($AS).areolaeShape != "circle">>
+					and have been surgically altered to be <<= getSlave($AS).areolaeShape>>-shaped.
+				<<else>>
+					and fairly normal.
 				<</if>>
-			</div>
-		<</if>>
-	</div>
-
-	/*Areolae*/
-	<div>
-		<<if getSlave($AS).areolae == 0>>
-			$His areolae are small
-			<<if getSlave($AS).areolaeShape != "circle">>
-				and have been surgically altered to be <<= getSlave($AS).areolaeShape>>-shaped.
-			<<else>>
-				and fairly normal.
-			<</if>>
-		<<elseif getSlave($AS).areolae == 1>>
-			$His areolae are large
-			<<if getSlave($AS).areolaeShape != "circle">>
-				and have been surgically altered to be <<= getSlave($AS).areolaeShape>>-shaped.
-			<<else>>
-				but still fairly normal.
+			<<elseif getSlave($AS).areolae == 1>>
+				$His areolae are large
+				<<if getSlave($AS).areolaeShape != "circle">>
+					and have been surgically altered to be <<= getSlave($AS).areolaeShape>>-shaped.
+				<<else>>
+					but still fairly normal.
+				<</if>>
+			<<elseif getSlave($AS).areolae > 1>>
+				$He has
+				<<if getSlave($AS).areolae == 2>>
+					wide
+				<<elseif getSlave($AS).areolae == 3>>
+					huge
+				<<elseif getSlave($AS).areolae == 4>>
+					massive
+				<</if>>
+				areolae<<if getSlave($AS).areolaeShape != "circle">>, which have been surgically altered to be <<= getSlave($AS).areolaeShape>>-shaped<</if>>.
 			<</if>>
-		<<elseif getSlave($AS).areolae > 1>>
-			$He has
-			<<if getSlave($AS).areolae == 2>>
-				wide
-			<<elseif getSlave($AS).areolae == 3>>
-				huge
-			<<elseif getSlave($AS).areolae == 4>>
-				massive
-			<</if>>
-			areolae<<if getSlave($AS).areolaeShape != "circle">>, which have been surgically altered to be <<= getSlave($AS).areolaeShape>>-shaped<</if>>.
-		<</if>>
-		<<if getSlave($AS).indentureRestrictions < 2>>
-			<<if getSlave($AS).areolaeShape != "circle">>
-				$His <<= getSlave($AS).areolaeShape>>-shaped areolae can be normalized or reshaped:
+			<<if getSlave($AS).indentureRestrictions < 2>>
+				<<if getSlave($AS).areolaeShape != "circle">>
+					$His <<= getSlave($AS).areolaeShape>>-shaped areolae can be normalized or reshaped:
+					<div class="choices">
+						[[Normal|Surgery Degradation][getSlave($AS).areolaeShape = "circle",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
+						<<if getSlave($AS).areolaeShape != "heart">>
+							| [[Heart-shaped|Surgery Degradation][getSlave($AS).areolaeShape = "heart",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
+						<</if>>
+						<<if getSlave($AS).areolaeShape != "star">>
+							| [[Star-shaped|Surgery Degradation][getSlave($AS).areolaeShape = "star",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]] |
+						<</if>>
+					</div>
+				<</if>>
+				<<if (getSlave($AS).areolae > 0) && (getSlave($AS).areolaeShape == "circle")>>
+					They are big enough that they could be reshaped into a pattern. Graft skin to make $his areolae:
+				<</if>>
 				<div class="choices">
-					[[Normal|Surgery Degradation][getSlave($AS).areolaeShape = "circle",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
-					<<if getSlave($AS).areolaeShape != "heart">>
-						| [[Heart-shaped|Surgery Degradation][getSlave($AS).areolaeShape = "heart",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
+					<<if (getSlave($AS).areolae > 0) && (getSlave($AS).areolaeShape == "circle")>>
+						[[Heart-shaped|Surgery Degradation][getSlave($AS).areolaeShape = "heart",getSlave($AS).areolae -= 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
+						| [[Star-shaped|Surgery Degradation][getSlave($AS).areolaeShape = "star",getSlave($AS).areolae -= 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
+					<</if>>
+					<<if getSlave($AS).areolae > 0>>
+						| [[Reduce areolae|Surgery Degradation][getSlave($AS).areolae -= 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
 					<</if>>
-					<<if getSlave($AS).areolaeShape != "star">>
-						| [[Star-shaped|Surgery Degradation][getSlave($AS).areolaeShape = "star",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]] |
+					<<if getSlave($AS).areolae > 0>>|<</if>>
+					<<if getSlave($AS).areolae < 4>>
+						[[Enlarge areolae|Surgery Degradation][getSlave($AS).areolae += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
 					<</if>>
 				</div>
 			<</if>>
-			<<if (getSlave($AS).areolae > 0) && (getSlave($AS).areolaeShape == "circle")>>
-				They are big enough that they could be reshaped into a pattern. Graft skin to make $his areolae:
+		</div>
+
+		/*Lactation*/
+		<div>
+			<<if getSlave($AS).lactation == 0>>
+				$He is not lactating.
+			<<elseif getSlave($AS).lactation == 2>>
+				$He is implanted with slow-release pro-lactation drugs.
+			<<else>>
+				$He is lactating naturally.
 			<</if>>
 			<div class="choices">
-				<<if (getSlave($AS).areolae > 0) && (getSlave($AS).areolaeShape == "circle")>>
-					[[Heart-shaped|Surgery Degradation][getSlave($AS).areolaeShape = "heart",getSlave($AS).areolae -= 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
-					| [[Star-shaped|Surgery Degradation][getSlave($AS).areolaeShape = "star",getSlave($AS).areolae -= 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
-				<</if>>
-				<<if getSlave($AS).areolae > 0>>
-					| [[Reduce areolae|Surgery Degradation][getSlave($AS).areolae -= 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
+				<<if getSlave($AS).lactation < 2>>
+					<<if getSlave($AS).indentureRestrictions < 2>>
+						[[Implant slow-release pro-lactation drugs|Surgery Degradation][getSlave($AS).lactation = 2, getSlave($AS).lactationDuration = 2, getSlave($AS).induceLactation = 0, getSlave($AS).boobs -= getSlave($AS).boobsMilk, getSlave($AS).boobsMilk = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "lactation"]] <span class="note">This may increase $his natural breast size</span>
+					<</if>>
 				<</if>>
-				<<if getSlave($AS).areolae > 0>>|<</if>>
-				<<if getSlave($AS).areolae < 4>>
-					[[Enlarge areolae|Surgery Degradation][getSlave($AS).areolae += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "areolae"]]
+				<<if getSlave($AS).lactation > 1>>
+					| [[Remove lactation implant|Surgery Degradation][getSlave($AS).lactation = 0, getSlave($AS).lactationDuration = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "endlac"]]
 				<</if>>
 			</div>
-		<</if>>
-	</div>
-
-	/*Lactation*/
-	<div>
-		<<if getSlave($AS).lactation == 0>>
-			$He is not lactating.
-		<<elseif getSlave($AS).lactation == 2>>
-			$He is implanted with slow-release pro-lactation drugs.
-		<<else>>
-			$He is lactating naturally.
-		<</if>>
-		<div class="choices">
-			<<if getSlave($AS).lactation < 2>>
-				<<if getSlave($AS).indentureRestrictions < 2>>
-					[[Implant slow-release pro-lactation drugs|Surgery Degradation][getSlave($AS).lactation = 2, getSlave($AS).lactationDuration = 2, getSlave($AS).induceLactation = 0, getSlave($AS).boobs -= getSlave($AS).boobsMilk, getSlave($AS).boobsMilk = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "lactation"]] <span class="note">This may increase $his natural breast size</span>
-				<</if>>
-			<</if>>
-			<<if getSlave($AS).lactation > 1>>
-				| [[Remove lactation implant|Surgery Degradation][getSlave($AS).lactation = 0, getSlave($AS).lactationDuration = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "endlac"]]
-			<</if>>
 		</div>
-	</div>
 
-	<h3>Midrif:</h3>
-	/*Fat*/
-	<div>
-		<<if getSlave($AS).indentureRestrictions >= 2 && getSlave($AS).weight > 30>>
-			<span class="note">$His indenture forbids elective surgery</span>
-		<<elseif getSlave($AS).weight > 30>>
-			<<if getSlave($AS).weight > 190>>
-				$He is extremely fat. [[Major liposuction|Surgery Degradation][surgeryDamage(getSlave($AS),40), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "liposuction"]]
-			<<elseif getSlave($AS).weight > 130>>
-				$He is fat. [[Heavy liposuction|Surgery Degradation][surgeryDamage(getSlave($AS),20), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "liposuction"]]
+		<h3>Midrif:</h3>
+		/*Fat*/
+		<div>
+			<<if getSlave($AS).indentureRestrictions >= 2 && getSlave($AS).weight > 30>>
+				<span class="note">$His indenture forbids elective surgery</span>
 			<<elseif getSlave($AS).weight > 30>>
-				$He is overweight. [[Liposuction|Surgery Degradation][surgeryDamage(getSlave($AS),10), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "liposuction"]]
-			<</if>>
-			<<if $surgeryUpgrade == 1>>
-				| [[Fat grafting|fat grafting workaround][surgeryDamage(getSlave($AS),40), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))*2, $availabeFat = Math.round(getSlave($AS).weight/10), $boobFat = 0, $buttFat = 0, $surgeryType = "fat graft"]]
+				<<if getSlave($AS).weight > 190>>
+					$He is extremely fat. [[Major liposuction|Surgery Degradation][surgeryDamage(getSlave($AS),40), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "liposuction"]]
+				<<elseif getSlave($AS).weight > 130>>
+					$He is fat. [[Heavy liposuction|Surgery Degradation][surgeryDamage(getSlave($AS),20), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "liposuction"]]
+				<<elseif getSlave($AS).weight > 30>>
+					$He is overweight. [[Liposuction|Surgery Degradation][surgeryDamage(getSlave($AS),10), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "liposuction"]]
+				<</if>>
+				<<if $surgeryUpgrade == 1>>
+					| [[Fat grafting|fat grafting workaround][surgeryDamage(getSlave($AS),40), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))*2, $availabeFat = Math.round(getSlave($AS).weight/10), $boobFat = 0, $buttFat = 0, $surgeryType = "fat graft"]]
+				<</if>>
 			<</if>>
-		<</if>>
-	</div>
+		</div>
 
-	/*Also fat*/
-	<div>
-		$He has
-		<<if getSlave($AS).waist > 95>>a masculine
-		<<elseif getSlave($AS).waist > 40>>an ugly
-		<<elseif getSlave($AS).waist > 10>>an unattractive
-		<<elseif getSlave($AS).waist >= -10>>an average
-		<<elseif getSlave($AS).waist >= -40>>a feminine
-		<<elseif getSlave($AS).waist >= -95>>an hourglass
-		<<else>>an absurd
-		<</if>>
-		waist.
-		<<if getSlave($AS).waist >= -75>>
-			<<if getSlave($AS).indentureRestrictions < 2>>
-				[[Liposuction|Surgery Degradation][getSlave($AS).waist -= 20,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "lipo"]]
+		/*Also fat*/
+		<div>
+			$He has
+			<<if getSlave($AS).waist > 95>>a masculine
+			<<elseif getSlave($AS).waist > 40>>an ugly
+			<<elseif getSlave($AS).waist > 10>>an unattractive
+			<<elseif getSlave($AS).waist >= -10>>an average
+			<<elseif getSlave($AS).waist >= -40>>a feminine
+			<<elseif getSlave($AS).waist >= -95>>an hourglass
+			<<else>>an absurd
+			<</if>>
+			waist.
+			<<if getSlave($AS).waist >= -75>>
+				<<if getSlave($AS).indentureRestrictions < 2>>
+					[[Liposuction|Surgery Degradation][getSlave($AS).waist -= 20,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "lipo"]]
+				<</if>>
 			<</if>>
-		<</if>>
-		<<if (getSlave($AS).waist >= -95) && (getSlave($AS).waist < -75) && ($seeExtreme == 1)>>
-			<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
-				[["Remove ribs to severely narrow " + $his + " waist"|Surgery Degradation][getSlave($AS).waist = -100,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "ribs"]]
+			<<if (getSlave($AS).waist >= -95) && (getSlave($AS).waist < -75) && ($seeExtreme == 1)>>
+				<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
+					[["Remove ribs to severely narrow " + $his + " waist"|Surgery Degradation][getSlave($AS).waist = -100,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "ribs"]]
+				<</if>>
 			<</if>>
-		<</if>>
-	</div>
+		</div>
 
-	/*Belly*/
-	<div>
-		$He's
-		<<if getSlave($AS).pregKnown > 0>>
-			pregnant.
-		<<elseif getSlave($AS).womb.length == 0 && getSlave($AS).broodmother > 0>>
-			got a dormant broodmother implant in $his womb.
-		<<elseif getSlave($AS).preg > 0>>
-			showing unusual discomfort as $his stomach is inspected. A quick test reveals that <span class="lime">$he is pregnant.</span>
-			<<set getSlave($AS).pregKnown = 1>>
-		<<elseif getSlave($AS).bellyImplant > 0>>
-			got a <<print getSlave($AS).bellyImplant>>cc implant filled implant located in $his abdomen.
-			<<if getSlave($AS).cervixImplant == 1 >>
-				$He also has micropump filter installed in $his cervix feeding into the implant.
-			<<elseif getSlave($AS).cervixImplant == 2>>
-				$He also has micropump filter installed in $his rectum feeding into the implant.
-			<<elseif getSlave($AS).cervixImplant == 3>>
-				$He also has micropump filter installed in both $his holes feeding into the implant.
-			<</if>>
-		<<elseif getSlave($AS).bellyFluid >= 1500>>
-			got a <<print getSlave($AS).inflationType>>-filled implant located in $his abdomen.
-			<<if getSlave($AS).cervixImplant == 1 >>
-				$He also has micropump filter installed in $his cervix feeding into the implant.
-			<<elseif getSlave($AS).cervixImplant == 2>>
-				$He also has micropump filter installed in $his rectum feeding into the implant.
-			<<elseif getSlave($AS).cervixImplant == 3>>
-				$He also has micropump filter installed in both $his holes feeding into the implant.
-			<</if>>
-		<<elseif getSlave($AS).bellyImplant == 0>>
-			got an empty fillable implant located in $his abdomen.
-			<<if getSlave($AS).cervixImplant == 1 >>
-				$He also has micropump filter installed in $his cervix feeding into the implant.
-			<<elseif getSlave($AS).cervixImplant == 2>>
-				$He also has micropump filter installed in $his rectum feeding into the implant.
-			<<elseif getSlave($AS).cervixImplant == 3>>
-				$He also has micropump filter installed in both $his holes feeding into the implant.
-			<</if>>
-		<<else>>
-			got a normal stomach.
-		<</if>>
-		<div class="choices">
-			<<if getSlave($AS).indentureRestrictions >= 2>>
-				<span class="note">$His indenture forbids elective surgery</span>
-			<<elseif getSlave($AS).breedingMark == 1 && $propOutcome == 1 && $eugenicsFullControl != 1 && $arcologies[0].FSRestart != "unset">>
-				<span class="note">You are forbidden from affecting $his fertility</span>
-			<<elseif getSlave($AS).preg > 0 || getSlave($AS).inflation > 0 || getSlave($AS).broodmother > 0>>
-				<span class="note">$He is unable to support an abdominal implant at this time</span>
-			<<elseif getSlave($AS).bellyImplant >= 750000>>
-				<span class="note">$His abdominal implant is so far beyond its maximum limit it is at risk of rupturing</span>
-			<<elseif getSlave($AS).bellyImplant >= 600000>>
-				<span class="note">$His abdominal implant is greatly beyond its maximum limit</span>
-			<<elseif getSlave($AS).bellyImplant >= 450000>>
-				<span class="note">$His abdominal implant is over-filled</span>
-			<<elseif getSlave($AS).bellyImplant >= 400000>>
-				<span class="note">$His abdominal implant is at its capacity</span>
-			<<elseif getSlave($AS).bellyImplant > 130000 && $arcologies[0].FSTransformationFetishistResearch != 1>>
-				<span class="note">$His abdominal implant is at its capacity</span>
-			<<elseif getSlave($AS).bellyImplant == -1 && (getSlave($AS).ovaries == 1 || getSlave($AS).mpreg == 1) && $bellyImplants == 1>>
-				[[Implant fillable abdominal implant|Surgery Degradation][getSlave($AS).bellyImplant = 0,getSlave($AS).preg = -2, getSlave($AS).bellyPain += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "bellyIn"]]
-			<<elseif getSlave($AS).bellyImplant == -1 && $bellyImplants == 1>>
-				[[Implant a fillable abdominal implant|Surgery Degradation][getSlave($AS).bellyImplant = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), getSlave($AS).bellyPain += 2, surgeryDamage(getSlave($AS),50), $surgeryType = "bellyInMale"]]
-			<<elseif getSlave($AS).bellyPain == 2>>
-				<span class="note">$His body cannot handle more filler this week</span>
-			<<elseif getSlave($AS).bellyImplant > -1 && getSlave($AS).bellyPain == 0>>
-				[[Add inert filler|Surgery Degradation][getSlave($AS).bellyImplant += 200, getSlave($AS).bellyPain += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "bellyUp"]]
-				| [[Add a considerable amount of inert filler|Surgery Degradation][getSlave($AS).bellyImplant += 500, getSlave($AS).bellyPain += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "bellyUp"]]
-			<<elseif getSlave($AS).bellyImplant > -1 && getSlave($AS).bellyPain == 1>>
-				[[Add more inert filler|Surgery Degradation][getSlave($AS).bellyImplant += 200, getSlave($AS).bellyPain += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),30),$surgeryType = "bellyUp"]]
-				| [[Add a considerable amount of inert filler|Surgery Degradation][getSlave($AS).bellyImplant += 500, getSlave($AS).bellyPain += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "bellyUp"]]<<if getSlave($AS).health.health < 0>><span class="note red">This may cause severe health issues</span><</if>>
-			<</if>>
-			<<if getSlave($AS).bellyImplant > -1>>
-				| [[Drain implant|Surgery Degradation][getSlave($AS).bellyImplant -= 200,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),5), $surgeryType = "bellyDown"]]
-				<<if getSlave($AS).bellyImplant >= 500>>
-					| [[Greatly drain implant|Surgery Degradation][getSlave($AS).bellyImplant -= 500, surgeryDamage(getSlave($AS),5),cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "bellyDown"]]
+		/*Belly*/
+		<div>
+			$He's
+			<<if getSlave($AS).pregKnown > 0>>
+				pregnant.
+			<<elseif getSlave($AS).womb.length == 0 && getSlave($AS).broodmother > 0>>
+				got a dormant broodmother implant in $his womb.
+			<<elseif getSlave($AS).preg > 0>>
+				showing unusual discomfort as $his stomach is inspected. A quick test reveals that <span class="lime">$he is pregnant.</span>
+				<<set getSlave($AS).pregKnown = 1>>
+			<<elseif getSlave($AS).bellyImplant > 0>>
+				got a <<print getSlave($AS).bellyImplant>>cc implant filled implant located in $his abdomen.
+				<<if getSlave($AS).cervixImplant == 1 >>
+					$He also has micropump filter installed in $his cervix feeding into the implant.
+				<<elseif getSlave($AS).cervixImplant == 2>>
+					$He also has micropump filter installed in $his rectum feeding into the implant.
+				<<elseif getSlave($AS).cervixImplant == 3>>
+					$He also has micropump filter installed in both $his holes feeding into the implant.
+				<</if>>
+			<<elseif getSlave($AS).bellyFluid >= 1500>>
+				got a <<print getSlave($AS).inflationType>>-filled implant located in $his abdomen.
+				<<if getSlave($AS).cervixImplant == 1 >>
+					$He also has micropump filter installed in $his cervix feeding into the implant.
+				<<elseif getSlave($AS).cervixImplant == 2>>
+					$He also has micropump filter installed in $his rectum feeding into the implant.
+				<<elseif getSlave($AS).cervixImplant == 3>>
+					$He also has micropump filter installed in both $his holes feeding into the implant.
+				<</if>>
+			<<elseif getSlave($AS).bellyImplant == 0>>
+				got an empty fillable implant located in $his abdomen.
+				<<if getSlave($AS).cervixImplant == 1 >>
+					$He also has micropump filter installed in $his cervix feeding into the implant.
+				<<elseif getSlave($AS).cervixImplant == 2>>
+					$He also has micropump filter installed in $his rectum feeding into the implant.
+				<<elseif getSlave($AS).cervixImplant == 3>>
+					$He also has micropump filter installed in both $his holes feeding into the implant.
 				<</if>>
-				<<if getSlave($AS).indentureRestrictions < 2>>
-					| [[Remove implant|Surgery Degradation][getSlave($AS).bellyImplant = -1, getSlave($AS).cervixImplant = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "bellyOut"]]
-					<<if getSlave($AS).cervixImplant != 1 && getSlave($AS).cervixImplant != 3 && $cervixImplants >= 1 && getSlave($AS).vagina > -1>> /* slave should have vagina */
-						<div>
-							[[Install cervix micropump filter|Surgery Degradation][getSlave($AS).cervixImplant = (getSlave($AS).cervixImplant==0?1:3), surgeryDamage(getSlave($AS), 5), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "cervixPump"]]
-							<span class="note">Will allow $his belly implant to slowly swell as people cum in $his vagina</span>
-						</div>
+			<<else>>
+				got a normal stomach.
+			<</if>>
+			<div class="choices">
+				<<if getSlave($AS).indentureRestrictions >= 2>>
+					<span class="note">$His indenture forbids elective surgery</span>
+				<<elseif getSlave($AS).breedingMark == 1 && $propOutcome == 1 && $eugenicsFullControl != 1 && $arcologies[0].FSRestart != "unset">>
+					<span class="note">You are forbidden from affecting $his fertility</span>
+				<<elseif getSlave($AS).preg > 0 || getSlave($AS).inflation > 0 || getSlave($AS).broodmother > 0>>
+					<span class="note">$He is unable to support an abdominal implant at this time</span>
+				<<elseif getSlave($AS).bellyImplant >= 750000>>
+					<span class="note">$His abdominal implant is so far beyond its maximum limit it is at risk of rupturing</span>
+				<<elseif getSlave($AS).bellyImplant >= 600000>>
+					<span class="note">$His abdominal implant is greatly beyond its maximum limit</span>
+				<<elseif getSlave($AS).bellyImplant >= 450000>>
+					<span class="note">$His abdominal implant is over-filled</span>
+				<<elseif getSlave($AS).bellyImplant >= 400000>>
+					<span class="note">$His abdominal implant is at its capacity</span>
+				<<elseif getSlave($AS).bellyImplant > 130000 && $arcologies[0].FSTransformationFetishistResearch != 1>>
+					<span class="note">$His abdominal implant is at its capacity</span>
+				<<elseif getSlave($AS).bellyImplant == -1 && (getSlave($AS).ovaries == 1 || getSlave($AS).mpreg == 1) && $bellyImplants == 1>>
+					[[Implant fillable abdominal implant|Surgery Degradation][getSlave($AS).bellyImplant = 0,getSlave($AS).preg = -2, getSlave($AS).bellyPain += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "bellyIn"]]
+				<<elseif getSlave($AS).bellyImplant == -1 && $bellyImplants == 1>>
+					[[Implant a fillable abdominal implant|Surgery Degradation][getSlave($AS).bellyImplant = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), getSlave($AS).bellyPain += 2, surgeryDamage(getSlave($AS),50), $surgeryType = "bellyInMale"]]
+				<<elseif getSlave($AS).bellyPain == 2>>
+					<span class="note">$His body cannot handle more filler this week</span>
+				<<elseif getSlave($AS).bellyImplant > -1 && getSlave($AS).bellyPain == 0>>
+					[[Add inert filler|Surgery Degradation][getSlave($AS).bellyImplant += 200, getSlave($AS).bellyPain += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "bellyUp"]]
+					| [[Add a considerable amount of inert filler|Surgery Degradation][getSlave($AS).bellyImplant += 500, getSlave($AS).bellyPain += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "bellyUp"]]
+				<<elseif getSlave($AS).bellyImplant > -1 && getSlave($AS).bellyPain == 1>>
+					[[Add more inert filler|Surgery Degradation][getSlave($AS).bellyImplant += 200, getSlave($AS).bellyPain += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),30),$surgeryType = "bellyUp"]]
+					| [[Add a considerable amount of inert filler|Surgery Degradation][getSlave($AS).bellyImplant += 500, getSlave($AS).bellyPain += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "bellyUp"]]<<if getSlave($AS).health.health < 0>><span class="note red">This may cause severe health issues</span><</if>>
+				<</if>>
+				<<if getSlave($AS).bellyImplant > -1>>
+					| [[Drain implant|Surgery Degradation][getSlave($AS).bellyImplant -= 200,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),5), $surgeryType = "bellyDown"]]
+					<<if getSlave($AS).bellyImplant >= 500>>
+						| [[Greatly drain implant|Surgery Degradation][getSlave($AS).bellyImplant -= 500, surgeryDamage(getSlave($AS),5),cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "bellyDown"]]
 					<</if>>
-					<<if getSlave($AS).cervixImplant != 2 && getSlave($AS).cervixImplant != 3 && $cervixImplants == 2>>
-						<div>
-							[[Install rectal micropump filter|Surgery Degradation][getSlave($AS).cervixImplant = (getSlave($AS).cervixImplant==0?2:3), surgeryDamage(getSlave($AS), 20), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "cervixPumpA"]]
-							<span class="note">Will allow $his belly implant to slowly swell as people cum in $his anus</span>
-						</div>
+					<<if getSlave($AS).indentureRestrictions < 2>>
+						| [[Remove implant|Surgery Degradation][getSlave($AS).bellyImplant = -1, getSlave($AS).cervixImplant = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "bellyOut"]]
+						<<if getSlave($AS).cervixImplant != 1 && getSlave($AS).cervixImplant != 3 && $cervixImplants >= 1 && getSlave($AS).vagina > -1>> /* slave should have vagina */
+							<div>
+								[[Install cervix micropump filter|Surgery Degradation][getSlave($AS).cervixImplant = (getSlave($AS).cervixImplant==0?1:3), surgeryDamage(getSlave($AS), 5), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "cervixPump"]]
+								<span class="note">Will allow $his belly implant to slowly swell as people cum in $his vagina</span>
+							</div>
+						<</if>>
+						<<if getSlave($AS).cervixImplant != 2 && getSlave($AS).cervixImplant != 3 && $cervixImplants == 2>>
+							<div>
+								[[Install rectal micropump filter|Surgery Degradation][getSlave($AS).cervixImplant = (getSlave($AS).cervixImplant==0?2:3), surgeryDamage(getSlave($AS), 20), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "cervixPumpA"]]
+								<span class="note">Will allow $his belly implant to slowly swell as people cum in $his anus</span>
+							</div>
+						<</if>>
 					<</if>>
 				<</if>>
-			<</if>>
+			</div>
 		</div>
-	</div>
 
-	/* Uterine Implants */
-	<div>
-		<<if getSlave($AS).wombImplant == "none" && ($UterineRestraintMesh == 1) && (getSlave($AS).ovaries == 1 || getSlave($AS).mpreg == 1)>>
-			$He has a normal uterus<<if getSlave($AS).mpreg == 1>>, though slightly repositioned<</if>>.
-			<<if getSlave($AS).indentureRestrictions >= 1>>
-				<span class="note">$His indenture forbids invasive elective surgery</span>
-			<<elseif getSlave($AS).bellyImplant > 0 || getSlave($AS).preg > 0>>
-				<span class="note">$His womb is currently in use and unsafe to operate on</span>
-			<<else>>
-				<<if $surgeryUpgrade == 1>>
-					<<if $UterineRestraintMesh == 1>>
-						[[Install reinforcing organic mesh|Surgery Degradation][getSlave($AS).wombImplant = "restraint", surgeryDamage(getSlave($AS),25), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "womb"]]
+		/* Uterine Implants */
+		<div>
+			<<if getSlave($AS).wombImplant == "none" && ($UterineRestraintMesh == 1) && (getSlave($AS).ovaries == 1 || getSlave($AS).mpreg == 1)>>
+				$He has a normal uterus<<if getSlave($AS).mpreg == 1>>, though slightly repositioned<</if>>.
+				<<if getSlave($AS).indentureRestrictions >= 1>>
+					<span class="note">$His indenture forbids invasive elective surgery</span>
+				<<elseif getSlave($AS).bellyImplant > 0 || getSlave($AS).preg > 0>>
+					<span class="note">$His womb is currently in use and unsafe to operate on</span>
+				<<else>>
+					<<if $surgeryUpgrade == 1>>
+						<<if $UterineRestraintMesh == 1>>
+							[[Install reinforcing organic mesh|Surgery Degradation][getSlave($AS).wombImplant = "restraint", surgeryDamage(getSlave($AS),25), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "womb"]]
+						<</if>>
 					<</if>>
 				<</if>>
+			<<elseif getSlave($AS).wombImplant == "restraint">>
+				$He has a mesh reinforced uterus.
+				<<if getSlave($AS).indentureRestrictions >= 1>>
+					<span class="note">$His indenture forbids invasive elective surgery</span>
+				<<elseif getSlave($AS).bellyImplant > 0 || getSlave($AS).preg > 0>>
+					<span class="note">$His womb is currently in use and unsafe to operate on</span>
+				<<else>>
+					[[Remove organic mesh|Surgery Degradation][getSlave($AS).wombImplant = "none", surgeryDamage(getSlave($AS),50), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "womb"]]<<if getSlave($AS).health.health < 0>><span class="note red">This may cause severe health issues</span><</if>>
+				<</if>>
 			<</if>>
-		<<elseif getSlave($AS).wombImplant == "restraint">>
-			$He has a mesh reinforced uterus.
-			<<if getSlave($AS).indentureRestrictions >= 1>>
-				<span class="note">$His indenture forbids invasive elective surgery</span>
-			<<elseif getSlave($AS).bellyImplant > 0 || getSlave($AS).preg > 0>>
-				<span class="note">$His womb is currently in use and unsafe to operate on</span>
-			<<else>>
-				[[Remove organic mesh|Surgery Degradation][getSlave($AS).wombImplant = "none", surgeryDamage(getSlave($AS),50), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "womb"]]<<if getSlave($AS).health.health < 0>><span class="note red">This may cause severe health issues</span><</if>>
-			<</if>>
-		<</if>>
-	</div>
+		</div>
 
-	/*Belly sag*/
-	<div>
-		<<if getSlave($AS).bellySagPreg > 0>>
-			<<if getSlave($AS).belly >= 1500>>
-				$He has a sagging midriff, ruined from excessive pregnancy. It is currently filled out by $his swollen belly and cannot safely be worked on.
-			<<else>>
-				$He has a sagging midriff, ruined from excessive pregnancy.
-				[[Tummy tuck|Surgery Degradation][getSlave($AS).bellySag = 0,getSlave($AS).bellySagPreg = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "tummyTuck"]]
-			<</if>>
-		<<elseif getSlave($AS).bellySag > 0>>
-			<<if getSlave($AS).belly >= 1500>>
-				$He has a sagging midriff, ruined from excessive distention. It is currently filled out by $his swollen belly and cannot safely be worked on.
-			<<else>>
-				$He has a sagging midriff, ruined from excessive distention.
-				[[Tummy tuck|Surgery Degradation][getSlave($AS).bellySag = 0,getSlave($AS).bellySagPreg = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "tummyTuck"]]
+		/*Belly sag*/
+		<div>
+			<<if getSlave($AS).bellySagPreg > 0>>
+				<<if getSlave($AS).belly >= 1500>>
+					$He has a sagging midriff, ruined from excessive pregnancy. It is currently filled out by $his swollen belly and cannot safely be worked on.
+				<<else>>
+					$He has a sagging midriff, ruined from excessive pregnancy.
+					[[Tummy tuck|Surgery Degradation][getSlave($AS).bellySag = 0,getSlave($AS).bellySagPreg = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "tummyTuck"]]
+				<</if>>
+			<<elseif getSlave($AS).bellySag > 0>>
+				<<if getSlave($AS).belly >= 1500>>
+					$He has a sagging midriff, ruined from excessive distention. It is currently filled out by $his swollen belly and cannot safely be worked on.
+				<<else>>
+					$He has a sagging midriff, ruined from excessive distention.
+					[[Tummy tuck|Surgery Degradation][getSlave($AS).bellySag = 0,getSlave($AS).bellySagPreg = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "tummyTuck"]]
+				<</if>>
 			<</if>>
-		<</if>>
-	</div>
+		</div>
 
-	/*Csec*/
-	<div>
-		<<if (getSlave($AS).scar.hasOwnProperty("belly") && getSlave($AS).scar.belly.hasOwnProperty("c-section"))>>
-			<<if getSlave($AS).scar.belly["c-section"] > 0>>
-				$He has an unsightly c-section scar.
-				<<link "Remove Caesarean scar">>
-					<<run App.Medicine.Modification.removeScar(getSlave($AS), "belly", "c-section")>>
-					<<run cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 10)>>
-					<<set $surgeryType = "bellyscar">>
-					<<goto "Surgery Degradation">>
-				<</link>>
+		/*Csec*/
+		<div>
+			<<if (getSlave($AS).scar.hasOwnProperty("belly") && getSlave($AS).scar.belly.hasOwnProperty("c-section"))>>
+				<<if getSlave($AS).scar.belly["c-section"] > 0>>
+					$He has an unsightly c-section scar.
+					<<link "Remove Caesarean scar">>
+						<<run App.Medicine.Modification.removeScar(getSlave($AS), "belly", "c-section")>>
+						<<run cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 10)>>
+						<<set $surgeryType = "bellyscar">>
+						<<goto "Surgery Degradation">>
+					<</link>>
+				<</if>>
 			<</if>>
-		<</if>>
+		</div>
 	</div>
 </div>
-</div>
 
 <div id="lower" class="tabcontent">
-<div class="content">
-	<h3>Butt:</h3>
-	<div>
-		$He's got a
-		<<if getSlave($AS).butt <= 1>>flat and <<print either("skinny", "slim", "taut")>> ass.
-		<<elseif getSlave($AS).butt <= 2>><<print either("rounded, small", "small but rounded", "small, sleek")>> rear end.
-		<<elseif getSlave($AS).butt <= 3>><<print either("big and healthy", "curved and plump", "healthy and plump")>> derrière.
-		<<elseif getSlave($AS).butt <= 4>><<print either("big bubble", "curvy and enticing", "juicy and large")>> butt.
-		<<elseif getSlave($AS).butt <= 5>><<print either("huge", "juicy and huge", "massive and undeniable")>> rear end.
-		<<elseif !hasBothLegs(getSlave($AS))>>ridiculous ass. It's so big it would jiggle as $he walked — if $he could walk.
-		<<else>>ridiculous ass. It's so big it jiggles as $he walks.
+	<div class="content">
+		/* 000-250-006 */
+		<<if $seeImages == 1>>
+			<<if $imageChoice == 1>>
+				<div class="imageRef lrgVector"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
+			<<else>>
+				<div class="imageRef lrgRender"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
+			<</if>>
 		<</if>>
-
-		<<if getSlave($AS).buttImplant > 0>>
-			$He has
-			<<if getSlave($AS).buttImplantType == "string">>
-				<<if getSlave($AS).buttImplant > 2>>
-					massively engorged
-				<</if>>
-			<<elseif getSlave($AS).buttImplantType == "normal">>
-				<<if getSlave($AS).buttImplant == 1>>
-					moderate
-				<<elseif getSlave($AS).buttImplant == 2>>
-					enormous
-				<<else>>
-					absurd
-				<</if>>
-			<<elseif getSlave($AS).buttImplantType == "hyper fillable">>
-				<<if getSlave($AS).buttImplant > 19>>
-					overfilled
-				<<elseif getSlave($AS).buttImplant < 9>>
-					underfilled
-				<<elseif getSlave($AS).buttImplant <= 5>>
-					deflated
-				<<else>>
-					absurd
-				<</if>>
-			<<elseif getSlave($AS).buttImplantType == "advanced fillable">>
-				<<if getSlave($AS).buttImplant > 8>>
-					overfilled
-				<<elseif getSlave($AS).buttImplant < 5>>
-					underfilled
-				<<elseif getSlave($AS).buttImplant <= 3>>
-					deflated
-				<<else>>
-					massive
+		/* 000-250-006 */
+		<h3>Butt:</h3>
+		<div>
+			$He's got a
+			<<if getSlave($AS).butt <= 1>>flat and <<print either("skinny", "slim", "taut")>> ass.
+			<<elseif getSlave($AS).butt <= 2>><<print either("rounded, small", "small but rounded", "small, sleek")>> rear end.
+			<<elseif getSlave($AS).butt <= 3>><<print either("big and healthy", "curved and plump", "healthy and plump")>> derrière.
+			<<elseif getSlave($AS).butt <= 4>><<print either("big bubble", "curvy and enticing", "juicy and large")>> butt.
+			<<elseif getSlave($AS).butt <= 5>><<print either("huge", "juicy and huge", "massive and undeniable")>> rear end.
+			<<elseif !hasBothLegs(getSlave($AS))>>ridiculous ass. It's so big it would jiggle as $he walked — if $he could walk.
+			<<else>>ridiculous ass. It's so big it jiggles as $he walks.
+			<</if>>
+
+			<<if getSlave($AS).buttImplant > 0>>
+				$He has
+				<<if getSlave($AS).buttImplantType == "string">>
+					<<if getSlave($AS).buttImplant > 2>>
+						massively engorged
+					<</if>>
+				<<elseif getSlave($AS).buttImplantType == "normal">>
+					<<if getSlave($AS).buttImplant == 1>>
+						moderate
+					<<elseif getSlave($AS).buttImplant == 2>>
+						enormous
+					<<else>>
+						absurd
+					<</if>>
+				<<elseif getSlave($AS).buttImplantType == "hyper fillable">>
+					<<if getSlave($AS).buttImplant > 19>>
+						overfilled
+					<<elseif getSlave($AS).buttImplant < 9>>
+						underfilled
+					<<elseif getSlave($AS).buttImplant <= 5>>
+						deflated
+					<<else>>
+						absurd
+					<</if>>
+				<<elseif getSlave($AS).buttImplantType == "advanced fillable">>
+					<<if getSlave($AS).buttImplant > 8>>
+						overfilled
+					<<elseif getSlave($AS).buttImplant < 5>>
+						underfilled
+					<<elseif getSlave($AS).buttImplant <= 3>>
+						deflated
+					<<else>>
+						massive
+					<</if>>
+				<<elseif getSlave($AS).buttImplantType == "fillable">>
+					<<if getSlave($AS).buttImplant > 4>>
+						overfilled
+					<<elseif getSlave($AS).buttImplant < 3>>
+						underfilled
+					<<elseif getSlave($AS).buttImplant == 1>>
+						deflated
+					<<else>>
+						massive
+					<</if>>
 				<</if>>
-			<<elseif getSlave($AS).buttImplantType == "fillable">>
-				<<if getSlave($AS).buttImplant > 4>>
-					overfilled
-				<<elseif getSlave($AS).buttImplant < 3>>
-					underfilled
-				<<elseif getSlave($AS).buttImplant == 1>>
-					deflated
-				<<else>>
-					massive
+				<<if getSlave($AS).buttImplantType != "normal">>
+					<<= getSlave($AS).buttImplantType>>
+				<</if>>
+				butt implants.
+				<<if getSlave($AS).buttImplant > 3 && getSlave($AS).buttImplantType == "string">>
+					<span class="yellow">Large string based implants are a risk to a slave's health.</span>
 				<</if>>
 			<</if>>
-			<<if getSlave($AS).buttImplantType != "normal">>
-				<<= getSlave($AS).buttImplantType>>
-			<</if>>
-			butt implants.
-			<<if getSlave($AS).buttImplant > 3 && getSlave($AS).buttImplantType == "string">>
-				<span class="yellow">Large string based implants are a risk to a slave's health.</span>
-			<</if>>
-		<</if>>
 
-		<div class="choices">
-			<<set _surgeries = App.Medicine.Surgery.sizingProcedures.butt(getSlave($AS), App.Medicine.Surgery.allSizingOptions())>>
-			<<set _surgeryLinks = _surgeries.map(s => App.Medicine.Surgery.makeLink("Surgery Degradation", s, getSlave($AS)))>>
-			<<= _surgeryLinks.join('&thinsp;|&thinsp;')>>
+			<div class="choices">
+				<<set _surgeries = App.Medicine.Surgery.sizingProcedures.butt(getSlave($AS), App.Medicine.Surgery.allSizingOptions())>>
+				<<set _surgeryLinks = _surgeries.map(s => App.Medicine.Surgery.makeLink("Surgery Degradation", s, getSlave($AS)))>>
+				<<= _surgeryLinks.join('&thinsp;|&thinsp;')>>
+			</div>
 		</div>
-	</div>
 
-	/*Asshole*/
-	<div>
-		$He has
-		<<if getSlave($AS).anus == 0>>
-			a virgin asshole.
-		<<elseif getSlave($AS).anus == 1>>
-			a tight asshole.
-		<<elseif getSlave($AS).anus == 2>>
-			a loose asshole.
-		<<elseif getSlave($AS).anus == 3>>
-			a very loose asshole.
-		<<else>>
-			a permanently gaping asshole.
-		<</if>>
-	</div>
+		/*Asshole*/
+		<div>
+			$He has
+			<<if getSlave($AS).anus == 0>>
+				a virgin asshole.
+			<<elseif getSlave($AS).anus == 1>>
+				a tight asshole.
+			<<elseif getSlave($AS).anus == 2>>
+				a loose asshole.
+			<<elseif getSlave($AS).anus == 3>>
+				a very loose asshole.
+			<<else>>
+				a permanently gaping asshole.
+			<</if>>
+		</div>
 
-	/*Pucker up*/
-	<div>
-		<<if (getSlave($AS).anus > 3)>>
-			$His anal sphincter could benefit from surgical repair.
-			<div class="choices">
-				[[Repair asshole|Surgery Degradation][getSlave($AS).anus = 3,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "anus"]] <span class="note">This will reduce $his anal skills</span>
-			</div>
-		<<elseif ($surgeryUpgrade == 1) && (getSlave($AS).indentureRestrictions < 2)>>
-			<<if (getSlave($AS).anus > 1)>>
-				$His anal sphincter could benefit from microsurgical rejuvenation.
-				<div class="choices">
-					[[Tighten asshole|Surgery Degradation][getSlave($AS).anus = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "anus"]] <span class="note">This will reduce $his anal skills</span>
-				</div>
-			<<elseif (getSlave($AS).anus > 0)>>
-				$His butthole is fairly narrow, but could be tightened to virgin status.
+		/*Pucker up*/
+		<div>
+			<<if (getSlave($AS).anus > 3)>>
+				$His anal sphincter could benefit from surgical repair.
 				<div class="choices">
-					[[Restore anal virginity|Surgery Degradation][getSlave($AS).anus = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "anus"]] <span class="note">This will reduce $his anal skills</span>
+					[[Repair asshole|Surgery Degradation][getSlave($AS).anus = 3,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "anus"]] <span class="note">This will reduce $his anal skills</span>
 				</div>
-			<</if>>
-		<</if>>
-	</div>
-
-	<h3>Sex:</h3>
-	/*Female sex*/
-	<div>
-		<<if getSlave($AS).vagina > -1>>
-			<<if getSlave($AS).labia == 0>>
-				$He has minimal pussylips.
-			<<elseif getSlave($AS).labia == 1>>
-				$He has pretty, noticeable pussylips.
-			<<elseif getSlave($AS).labia == 2>>
-				$He has large pussylips.
-			<<elseif getSlave($AS).labia > 2>>
-				$He has extremely large pussylips.
-			<</if>>
-			<<if getSlave($AS).labia > 0>>
-				<<if getSlave($AS).indentureRestrictions < 2>>
-					[[Apply labiaplasty|Surgery Degradation][getSlave($AS).labia = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "labiaplasty"]]
+			<<elseif ($surgeryUpgrade == 1) && (getSlave($AS).indentureRestrictions < 2)>>
+				<<if (getSlave($AS).anus > 1)>>
+					$His anal sphincter could benefit from microsurgical rejuvenation.
+					<div class="choices">
+						[[Tighten asshole|Surgery Degradation][getSlave($AS).anus = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "anus"]] <span class="note">This will reduce $his anal skills</span>
+					</div>
+				<<elseif (getSlave($AS).anus > 0)>>
+					$His butthole is fairly narrow, but could be tightened to virgin status.
+					<div class="choices">
+						[[Restore anal virginity|Surgery Degradation][getSlave($AS).anus = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "anus"]] <span class="note">This will reduce $his anal skills</span>
+					</div>
 				<</if>>
 			<</if>>
-			<<if (getSlave($AS).labia < 3) && ($surgeryUpgrade == 1)>>
-				<<if getSlave($AS).indentureRestrictions < 1>>
-					<<if getSlave($AS).labia > 0>> | <</if>>
-					[[Increase labia|Surgery Degradation][getSlave($AS).labia += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "labiaplasty"]]
+		</div>
+
+		<h3>Sex:</h3>
+		/*Female sex*/
+		<div>
+			<<if getSlave($AS).vagina > -1>>
+				<<if getSlave($AS).labia == 0>>
+					$He has minimal pussylips.
+				<<elseif getSlave($AS).labia == 1>>
+					$He has pretty, noticeable pussylips.
+				<<elseif getSlave($AS).labia == 2>>
+					$He has large pussylips.
+				<<elseif getSlave($AS).labia > 2>>
+					$He has extremely large pussylips.
+				<</if>>
+				<<if getSlave($AS).labia > 0>>
+					<<if getSlave($AS).indentureRestrictions < 2>>
+						[[Apply labiaplasty|Surgery Degradation][getSlave($AS).labia = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "labiaplasty"]]
+					<</if>>
 				<</if>>
-			<</if>>
-			<div>
-				<<if getSlave($AS).dick == 0>>
-					$He has
-					<<if getSlave($AS).clit == 0>>
-						a small clit<<if ($seeCircumcision == 1) && getSlave($AS).foreskin > 0>> with a hood<</if>>.
-					<<elseif getSlave($AS).clit == 1>>
-						a big clit<<if ($seeCircumcision == 1) && getSlave($AS).foreskin > 0>> with a hood<</if>>.
-					<<elseif getSlave($AS).clit == 2>>
-						a huge clit<<if ($seeCircumcision == 1) && getSlave($AS).foreskin > 0>> with a hood<</if>>.
-					<<elseif getSlave($AS).clit > 2>>
-						an enormous clit<<if ($seeCircumcision == 1) && getSlave($AS).foreskin > 0>> with a hood<</if>>.
-					<</if>>
-					<<if getSlave($AS).clit > 0>>
-						<<if getSlave($AS).indentureRestrictions < 2>>
-							[[Apply clitoral reduction|Surgery Degradation][getSlave($AS).clit = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "clitoral reduction"]]
-						<</if>>
+				<<if (getSlave($AS).labia < 3) && ($surgeryUpgrade == 1)>>
+					<<if getSlave($AS).indentureRestrictions < 1>>
+						<<if getSlave($AS).labia > 0>> | <</if>>
+						[[Increase labia|Surgery Degradation][getSlave($AS).labia += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "labiaplasty"]]
 					<</if>>
-					<<if (getSlave($AS).clit < 3) && ($surgeryUpgrade == 1)>>
-						<<if getSlave($AS).indentureRestrictions < 1>>
-							<<if getSlave($AS).clit > 0>> | <</if>>
-							[[Increase clit|Surgery Degradation][getSlave($AS).clit += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "clitoral enlargement"]]
+				<</if>>
+				<div>
+					<<if getSlave($AS).dick == 0>>
+						$He has
+						<<if getSlave($AS).clit == 0>>
+							a small clit<<if ($seeCircumcision == 1) && getSlave($AS).foreskin > 0>> with a hood<</if>>.
+						<<elseif getSlave($AS).clit == 1>>
+							a big clit<<if ($seeCircumcision == 1) && getSlave($AS).foreskin > 0>> with a hood<</if>>.
+						<<elseif getSlave($AS).clit == 2>>
+							a huge clit<<if ($seeCircumcision == 1) && getSlave($AS).foreskin > 0>> with a hood<</if>>.
+						<<elseif getSlave($AS).clit > 2>>
+							an enormous clit<<if ($seeCircumcision == 1) && getSlave($AS).foreskin > 0>> with a hood<</if>>.
 						<</if>>
-					<</if>>
-					<<if (getSlave($AS).foreskin > 0) && getSlave($AS).clit > 0>>
-						<<if $seeCircumcision == 1>>
+						<<if getSlave($AS).clit > 0>>
 							<<if getSlave($AS).indentureRestrictions < 2>>
-								| [[Remove clitoral hood|Surgery Degradation][getSlave($AS).foreskin = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "circumcision"]]
+								[[Apply clitoral reduction|Surgery Degradation][getSlave($AS).clit = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "clitoral reduction"]]
+							<</if>>
+						<</if>>
+						<<if (getSlave($AS).clit < 3) && ($surgeryUpgrade == 1)>>
+							<<if getSlave($AS).indentureRestrictions < 1>>
+								<<if getSlave($AS).clit > 0>> | <</if>>
+								[[Increase clit|Surgery Degradation][getSlave($AS).clit += 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "clitoral enlargement"]]
+							<</if>>
+						<</if>>
+						<<if (getSlave($AS).foreskin > 0) && getSlave($AS).clit > 0>>
+							<<if $seeCircumcision == 1>>
+								<<if getSlave($AS).indentureRestrictions < 2>>
+									| [[Remove clitoral hood|Surgery Degradation][getSlave($AS).foreskin = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "circumcision"]]
+								<</if>>
 							<</if>>
 						<</if>>
+
 					<</if>>
+				</div>
+			<</if>>
+	</div>
 
-				<</if>>
-			</div>
-		<</if>>
- </div>
-
-	/* TODO: add a check for slave's eggType */
-	/*Fertility*/
-	<div>
-		<<if (getSlave($AS).preg > -2) && (getSlave($AS).preg < 1) && (getSlave($AS).ovaries != 0 || getSlave($AS).mpreg != 0) && (getSlave($AS).pubertyXX == 0)>>
-			$He has not had $his first period.
-		<<elseif (getSlave($AS).preg > -2) && (getSlave($AS).preg < 1) && (getSlave($AS).ovaries != 0 || getSlave($AS).mpreg != 0)>>
-			$He has a working womb.
-		<<elseif (getSlave($AS).preg <= -2) && (getSlave($AS).ovaries != 0 || getSlave($AS).mpreg != 0)>>
-			$He has a sterile womb.
-		<</if>>
-
-		<<if isFertile(getSlave($AS)) && getSlave($AS).preg == 0>>
-			[[Artificially inseminate|Artificial Insemination]] |
-		<</if>>
+		/* TODO: add a check for slave's eggType */
+		/*Fertility*/
+		<div>
+			<<if (getSlave($AS).preg > -2) && (getSlave($AS).preg < 1) && (getSlave($AS).ovaries != 0 || getSlave($AS).mpreg != 0) && (getSlave($AS).pubertyXX == 0)>>
+				$He has not had $his first period.
+			<<elseif (getSlave($AS).preg > -2) && (getSlave($AS).preg < 1) && (getSlave($AS).ovaries != 0 || getSlave($AS).mpreg != 0)>>
+				$He has a working womb.
+			<<elseif (getSlave($AS).preg <= -2) && (getSlave($AS).ovaries != 0 || getSlave($AS).mpreg != 0)>>
+				$He has a sterile womb.
+			<</if>>
 
-		<<if (getSlave($AS).preg > -2) && (getSlave($AS).preg < 1) && (getSlave($AS).ovaries != 0 || getSlave($AS).mpreg != 0)>>
-			<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
-			[[Sterilize|Surgery Degradation][getSlave($AS).preg = -2,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ster"]]
+			<<if isFertile(getSlave($AS)) && getSlave($AS).preg == 0>>
+				[[Artificially inseminate|Artificial Insemination]] |
 			<</if>>
-		<<elseif (getSlave($AS).preg < 1) && (getSlave($AS).ovaries != 0 || getSlave($AS).mpreg != 0) && (getSlave($AS).preg != -3)>>
-			[[Restore fertility|Surgery Degradation][getSlave($AS).preg = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "fert"]]
-		<</if>>
 
-		<<if (getSlave($AS).ovaries == 1 || getSlave($AS).mpreg == 1)>>
-			<div>
-				<<if (getSlave($AS).pubertyXX == 0)>>
-					$He has
-					<<if (getSlave($AS).eggType != "human")>>
-						<<print (getSlave($AS).eggType)>>
-					<</if>>
-					ovaries but has not had $his first period.
-				<<else>>
-					$He has working
-					<<if (getSlave($AS).eggType != "human")>>
-						<<print (getSlave($AS).eggType)>>
-					<</if>>
-					ovaries<<if getSlave($AS).mpreg>> and a womb attached to $his rectum<</if>>.
+			<<if (getSlave($AS).preg > -2) && (getSlave($AS).preg < 1) && (getSlave($AS).ovaries != 0 || getSlave($AS).mpreg != 0)>>
+				<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
+				[[Sterilize|Surgery Degradation][getSlave($AS).preg = -2,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ster"]]
 				<</if>>
-			</div>
+			<<elseif (getSlave($AS).preg < 1) && (getSlave($AS).ovaries != 0 || getSlave($AS).mpreg != 0) && (getSlave($AS).preg != -3)>>
+				[[Restore fertility|Surgery Degradation][getSlave($AS).preg = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "fert"]]
+			<</if>>
 
-			<div>
-				<<if getSlave($AS).indentureRestrictions > 0>>
-					<span class="note">$His indenture forbids invasive elective surgery</span>
-				<<else>>
-					<<if getSlave($AS).ovaImplant != 0>>
-						<<switch getSlave($AS).ovaImplant>>
-						<<case "fertility">>
-							They have fertility implants attached to them.
-							[[Remove implants|Surgery Degradation][getSlave($AS).ovaImplant = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ovaImplant removed"]]
-						<<case "sympathy">>
-							They are linked via implants and ovulate in concert.
-							[[Remove implants|Surgery Degradation][getSlave($AS).ovaImplant = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ovaImplant removed"]]
-						<<case "asexual">>
-							One has been replaced with a sperm producing analog for self-fertilization.
-						<</switch>>
-					<<else>>
-						<<if $fertilityImplant == 1>>
-							[[Install fertility implants|Surgery Degradation][getSlave($AS).ovaImplant = "fertility",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ovaImplant added"]]
-						<</if>>
-						<<if $fertilityImplant || $sympatheticOvaries>>
-							<br>
-						<</if>>
-						<<if $sympatheticOvaries == 1>>
-							[[Install sympathetic ovulation implants|Surgery Degradation][getSlave($AS).ovaImplant = "sympathy",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ovaImplant added"]]
+			<<if (getSlave($AS).ovaries == 1 || getSlave($AS).mpreg == 1)>>
+				<div>
+					<<if (getSlave($AS).pubertyXX == 0)>>
+						$He has
+						<<if (getSlave($AS).eggType != "human")>>
+							<<print (getSlave($AS).eggType)>>
 						<</if>>
-					<</if>>
-				<</if>>
-			</div>
-
-			<div>
-			<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
-				<<if getSlave($AS).ovaries == 1>>
-					<<if getSlave($AS).preg > 0>>
-						$His ovaries and womb cannot be removed while $he is pregnant.
-					<<else>>
-						[[Oophorectomy|Surgery Degradation][getSlave($AS).ovaries = 0,getSlave($AS).ovaImplant = 0,getSlave($AS).wombImplant = "none",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ster"]]
-					<</if>>
-				<</if>>
-				<<if getSlave($AS).mpreg == 1>>
-					<<if getSlave($AS).preg > 0>>
-						$His anal womb cannot be removed while $he is pregnant.
+						ovaries but has not had $his first period.
 					<<else>>
-						[[Remove anal reproductive organs|Surgery Degradation][getSlave($AS).mpreg = 0,getSlave($AS).ovaImplant = 0, getSlave($AS).wombImplant = "none",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),30),$surgeryType = "mpreg removed"]]
+						$He has working
+						<<if (getSlave($AS).eggType != "human")>>
+							<<print (getSlave($AS).eggType)>>
+						<</if>>
+						ovaries<<if getSlave($AS).mpreg>> and a womb attached to $his rectum<</if>>.
 					<</if>>
-				<</if>>
-			<</if>>
-			</div>
+				</div>
 
-			<<if $seeExtreme == 1 && $seeHyperPreg == 1 && $seePreg != 0 && $permaPregImplant == 1>>
 				<div>
-					<<if getSlave($AS).assignment == "work in the dairy" && $dairyPregSetting > 0>>
-						$His womb is already rented out for the production of calves.
-					<<elseif getSlave($AS).broodmother > 0>>
-						$He has been made into a
-						<<if getSlave($AS).broodmother > 1>>hyper-<</if>>broodmother.
-						<<if getSlave($AS).womb.length == 0 >>
-							<div class="choices">
-								[[Remove the pregnancy generator|Surgery Degradation][getSlave($AS).preg = 0,getSlave($AS).pregWeek = -1,getSlave($AS).pregSource = 0,getSlave($AS).pregKnown = 0,getSlave($AS).pregType = 0,getSlave($AS).broodmother = 0,getSlave($AS).broodmotherFetuses = 0,getSlave($AS).broodmotherOnHold = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),getSlave($AS).pregControl = "none",surgeryDamage(getSlave($AS),10),$surgeryType = "pregRemove"]]
-							</div>
+					<<if getSlave($AS).indentureRestrictions > 0>>
+						<span class="note">$His indenture forbids invasive elective surgery</span>
+					<<else>>
+						<<if getSlave($AS).ovaImplant != 0>>
+							<<switch getSlave($AS).ovaImplant>>
+							<<case "fertility">>
+								They have fertility implants attached to them.
+								[[Remove implants|Surgery Degradation][getSlave($AS).ovaImplant = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ovaImplant removed"]]
+							<<case "sympathy">>
+								They are linked via implants and ovulate in concert.
+								[[Remove implants|Surgery Degradation][getSlave($AS).ovaImplant = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ovaImplant removed"]]
+							<<case "asexual">>
+								One has been replaced with a sperm producing analog for self-fertilization.
+							<</switch>>
 						<<else>>
-							$He is pregnant right now, so $his broodmother implant can't be safely extracted.
-							<div class="choices">
-								<<if getSlave($AS).broodmother == 1 && getSlave($AS).broodmotherFetuses == 1 && $PGHack == 1>> /*hack can be applied only one time, for type 1 broodmothers, and only if implant already present*/
-									[[Hack the pregnancy generator|Surgery Degradation][cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),getSlave($AS).pregControl = "none",surgeryDamage(getSlave($AS),1),$surgeryType = "preg1hack"]] <span class="note">This will trick the generator ova release logic, forcing it to release more than one ova each week. This is an untested override and can cause severe health problems.</span>
-								<<elseif getSlave($AS).broodmother == 1 && getSlave($AS).broodmotherFetuses > 1>>
-									The implant firmware has already been adjusted.
-								<</if>>
-							</div>
+							<<if $fertilityImplant == 1>>
+								[[Install fertility implants|Surgery Degradation][getSlave($AS).ovaImplant = "fertility",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ovaImplant added"]]
+							<</if>>
+							<<if $fertilityImplant || $sympatheticOvaries>>
+								<br>
+							<</if>>
+							<<if $sympatheticOvaries == 1>>
+								[[Install sympathetic ovulation implants|Surgery Degradation][getSlave($AS).ovaImplant = "sympathy",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ovaImplant added"]]
+							<</if>>
 						<</if>>
-					<<elseif getSlave($AS).indentureRestrictions > 0 || (getSlave($AS).breedingMark == 1 && $propOutcome == 1 && $eugenicsFullControl != 1 && $arcologies[0].FSRestart != "unset")>>
-						<span class="note">$He is protected from extreme surgery</span>
-					<<elseif isFertile(getSlave($AS)) && getSlave($AS).ovaryAge <= 46>>
-						$He could be made into a broodmother.
-						<div class="choices">
-							[[Implant a pregnancy generator|Surgery Degradation][getSlave($AS).preg = 1,getSlave($AS).pregWeek = 1,getSlave($AS).pregKnown = 1,getSlave($AS).pregType = 1,getSlave($AS).broodmother = 1,getSlave($AS).broodmotherFetuses = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),getSlave($AS).pregControl = "none",surgeryDamage(getSlave($AS),10),$surgeryType = "preg"]] <span class="note">This will have severe effects on $his health and mind</span>
-						</div>
-					<<else>>
-						$His body cannot support being a broodmother.
 					<</if>>
 				</div>
-			<</if>>
-		<</if>>
-	</div>
-
-	/*Sex description*/
-	<div>
-		<<if (getSlave($AS).dick == 0) && (getSlave($AS).vagina == -1)>>
-			$He is a null, possessing neither penis nor vagina.
-		<<elseif (getSlave($AS).dick != 0)>>
-			$He has
-			<<if ($seeCircumcision == 1)>>
-				<<if (getSlave($AS).foreskin == 0)>>
-					a circumcised
-				<<elseif (getSlave($AS).foreskin >= 1)>>
-					an uncircumcised
-				<</if>>
-			<<else>>
-				a
-			<</if>>
-			<<if (getSlave($AS).vagina == -1)>>
-				penis.
-			<<elseif (getSlave($AS).ovaries != 0)>>
-				penis and a
-			<<elseif (getSlave($AS).vagina != -1)>>
-				penis and a<<if getSlave($AS).genes == "XY">>n artificial<</if>>
-			<</if>>
-		<<elseif (getSlave($AS).dick == 0)>>
-			$He has a
-		<</if>>
-
-		<<if getSlave($AS).vagina > -1>>
-			<<if getSlave($AS).vagina == 0>>
-				virgin pussy.
-			<<elseif getSlave($AS).vagina == 1>>
-				tight pussy.
-			<<elseif getSlave($AS).vagina == 2>>
-				used pussy.
-			<<elseif getSlave($AS).vagina == 3>>
-				loose pussy.
-			<<elseif getSlave($AS).vagina == 10>>
-				ruined cunt.
-			<<else>>
-				gaping cunt.
-			<</if>>
-		<</if>>
 
-		<<if (getSlave($AS).dick != 0) && ((getSlave($AS).ovaries != 0) || (getSlave($AS).vagina != -1))>>
-			It's possible to remove either and leave $him sexually functional.
-		<</if>>
-		<div class="choices">
-			<<if getSlave($AS).vagina > -1>>
+				<div>
 				<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
-					[[Remove pussy|Surgery Degradation][surgeryAmp(getSlave($AS), "vagina"), $surgeryType = "vaginaRemoval", cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))]]
 					<<if getSlave($AS).ovaries == 1>>
-						<span class="note">
-							This will remove $his ovaries as well
-						</span>
-					<</if>>
-				<</if>>
-			<</if>>
-
-			<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
-				<<if (getSlave($AS).vagina == -1) && (getSlave($AS).dick != 0)>>
-					| [[Convert genitalia to female|Surgery Degradation][getSlave($AS).dick = 0,getSlave($AS).dickAccessory = "none",getSlave($AS).chastityPenis = 0,getSlave($AS).dickTat = 0,getSlave($AS).foreskin = 0,getSlave($AS).scrotum = 0,getSlave($AS).balls = 0,getSlave($AS).ballType = "human",getSlave($AS).vasectomy = 0,getSlave($AS).vagina = 0,getSlave($AS).preg = -2,getSlave($AS).skill.vaginal = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), $surgeryType = "mtf"]]
-				<</if>>
-				<<if (getSlave($AS).vagina == -1) && (getSlave($AS).dick == 0) && ($surgeryUpgrade == 1)>>
-					| [[Create a vagina|Surgery Degradation][getSlave($AS).vagina = 0,getSlave($AS).skill.vaginal = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), $surgeryType = "ntf"]]
-				<</if>>
-				<<if (getSlave($AS).dick > 0) && ($seeExtreme == 1)>>
-					| [[Remove penis|Surgery Degradation][surgeryAmp(getSlave($AS), "dick"), $surgeryType = "chop", cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))]]
-				<</if>>
-				<<if (getSlave($AS).foreskin > 0) && getSlave($AS).dick > 0>>
-					<<if getSlave($AS).indentureRestrictions < 2>>
-						<<if $seeCircumcision == 1>>
-							| [[Remove foreskin|Surgery Degradation][getSlave($AS).foreskin = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "circumcision"]]
+						<<if getSlave($AS).preg > 0>>
+							$His ovaries and womb cannot be removed while $he is pregnant.
+						<<else>>
+							[[Oophorectomy|Surgery Degradation][getSlave($AS).ovaries = 0,getSlave($AS).ovaImplant = 0,getSlave($AS).wombImplant = "none",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "ster"]]
 						<</if>>
-						<<if getSlave($AS).foreskin - getSlave($AS).dick > 0>>
-							| [[Remove excess foreskin|Surgery Degradation][getSlave($AS).foreskin = getSlave($AS).dick,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),5), $surgeryType = "foreskinTuck"]]
+					<</if>>
+					<<if getSlave($AS).mpreg == 1>>
+						<<if getSlave($AS).preg > 0>>
+							$His anal womb cannot be removed while $he is pregnant.
+						<<else>>
+							[[Remove anal reproductive organs|Surgery Degradation][getSlave($AS).mpreg = 0,getSlave($AS).ovaImplant = 0, getSlave($AS).wombImplant = "none",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),30),$surgeryType = "mpreg removed"]]
 						<</if>>
 					<</if>>
 				<</if>>
-			<</if>>
+				</div>
 
-			<<if (getSlave($AS).dick != 0) && (getSlave($AS).vagina == -1) && ($surgeryUpgrade == 1)>>
-				<<if getSlave($AS).indentureRestrictions < 1>>
-					| [[Create surgical hermaphrodite|Surgery Degradation][getSlave($AS).vagina = 0,getSlave($AS).skill.vaginal = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), $surgeryType = "herm"]]
+				<<if $seeExtreme == 1 && $seeHyperPreg == 1 && $seePreg != 0 && $permaPregImplant == 1>>
+					<div>
+						<<if getSlave($AS).assignment == "work in the dairy" && $dairyPregSetting > 0>>
+							$His womb is already rented out for the production of calves.
+						<<elseif getSlave($AS).broodmother > 0>>
+							$He has been made into a
+							<<if getSlave($AS).broodmother > 1>>hyper-<</if>>broodmother.
+							<<if getSlave($AS).womb.length == 0 >>
+								<div class="choices">
+									[[Remove the pregnancy generator|Surgery Degradation][getSlave($AS).preg = 0,getSlave($AS).pregWeek = -1,getSlave($AS).pregSource = 0,getSlave($AS).pregKnown = 0,getSlave($AS).pregType = 0,getSlave($AS).broodmother = 0,getSlave($AS).broodmotherFetuses = 0,getSlave($AS).broodmotherOnHold = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),getSlave($AS).pregControl = "none",surgeryDamage(getSlave($AS),10),$surgeryType = "pregRemove"]]
+								</div>
+							<<else>>
+								$He is pregnant right now, so $his broodmother implant can't be safely extracted.
+								<div class="choices">
+									<<if getSlave($AS).broodmother == 1 && getSlave($AS).broodmotherFetuses == 1 && $PGHack == 1>> /*hack can be applied only one time, for type 1 broodmothers, and only if implant already present*/
+										[[Hack the pregnancy generator|Surgery Degradation][cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),getSlave($AS).pregControl = "none",surgeryDamage(getSlave($AS),1),$surgeryType = "preg1hack"]] <span class="note">This will trick the generator ova release logic, forcing it to release more than one ova each week. This is an untested override and can cause severe health problems.</span>
+									<<elseif getSlave($AS).broodmother == 1 && getSlave($AS).broodmotherFetuses > 1>>
+										The implant firmware has already been adjusted.
+									<</if>>
+								</div>
+							<</if>>
+						<<elseif getSlave($AS).indentureRestrictions > 0 || (getSlave($AS).breedingMark == 1 && $propOutcome == 1 && $eugenicsFullControl != 1 && $arcologies[0].FSRestart != "unset")>>
+							<span class="note">$He is protected from extreme surgery</span>
+						<<elseif isFertile(getSlave($AS)) && getSlave($AS).ovaryAge <= 46>>
+							$He could be made into a broodmother.
+							<div class="choices">
+								[[Implant a pregnancy generator|Surgery Degradation][getSlave($AS).preg = 1,getSlave($AS).pregWeek = 1,getSlave($AS).pregKnown = 1,getSlave($AS).pregType = 1,getSlave($AS).broodmother = 1,getSlave($AS).broodmotherFetuses = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),getSlave($AS).pregControl = "none",surgeryDamage(getSlave($AS),10),$surgeryType = "preg"]] <span class="note">This will have severe effects on $his health and mind</span>
+							</div>
+						<<else>>
+							$His body cannot support being a broodmother.
+						<</if>>
+					</div>
 				<</if>>
 			<</if>>
 		</div>
-	</div>
 
-	/*Extra sex surgery*/
-	<div>
-		<<if (getSlave($AS).vagina > 3)>>
-			$His vagina could benefit from surgical repair.
-			<div class="choices">
-				[[Repair pussy|Surgery Degradation][getSlave($AS).vagina = 3,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "vagina"]] <span class="note">This will reduce $his vaginal skills</span>
-			</div>
-		<<elseif ($surgeryUpgrade == 1) && (getSlave($AS).indentureRestrictions < 2)>>
-			<<if (getSlave($AS).vagina > 1)>>
-				$His vaginal muscles could benefit from microsurgical rejuvenation.
-				<div class="choices">
-					[[Tighten pussy|Surgery Degradation][getSlave($AS).vagina = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "vagina"]] <span class="note">This will reduce $his vaginal skills</span>
-				</div>
-			<<elseif (getSlave($AS).vagina > 0)>>
-				$His pussy is as tight as a virgin's, and $his hymen could be restored.
-				<div class="choices">
-					[[Restore virginity|Surgery Degradation][getSlave($AS).vagina = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "vagina"]] <span class="note">This will reduce $his vaginal skills</span>
-				</div>
-			<</if>>
-		<</if>>
-	</div>
-
-	<<if (getSlave($AS).balls > 0)>>
+		/*Sex description*/
 		<div>
-			<<if (getSlave($AS).balls == 1)>>
-				$His testicles are vestigial, but $he has balls. Technically. They are
-			<<elseif (getSlave($AS).balls > 1)>>
-				$He has testicles
+			<<if (getSlave($AS).dick == 0) && (getSlave($AS).vagina == -1)>>
+				$He is a null, possessing neither penis nor vagina.
+			<<elseif (getSlave($AS).dick != 0)>>
+				$He has
+				<<if ($seeCircumcision == 1)>>
+					<<if (getSlave($AS).foreskin == 0)>>
+						a circumcised
+					<<elseif (getSlave($AS).foreskin >= 1)>>
+						an uncircumcised
+					<</if>>
+				<<else>>
+					a
+				<</if>>
+				<<if (getSlave($AS).vagina == -1)>>
+					penis.
+				<<elseif (getSlave($AS).ovaries != 0)>>
+					penis and a
+				<<elseif (getSlave($AS).vagina != -1)>>
+					penis and a<<if getSlave($AS).genes == "XY">>n artificial<</if>>
+				<</if>>
+			<<elseif (getSlave($AS).dick == 0)>>
+				$He has a
 			<</if>>
-			<<if (getSlave($AS).scrotum > 0)>>
-				located in $his scrotum.
-			<<else>>
-				<<if (getSlave($AS).genes == "XY")>>
-					relocated inside $his abdomen, and $his scrotum has been removed.
+
+			<<if getSlave($AS).vagina > -1>>
+				<<if getSlave($AS).vagina == 0>>
+					virgin pussy.
+				<<elseif getSlave($AS).vagina == 1>>
+					tight pussy.
+				<<elseif getSlave($AS).vagina == 2>>
+					used pussy.
+				<<elseif getSlave($AS).vagina == 3>>
+					loose pussy.
+				<<elseif getSlave($AS).vagina == 10>>
+					ruined cunt.
 				<<else>>
-					implanted inside $his abdomen.
+					gaping cunt.
 				<</if>>
 			<</if>>
+
+			<<if (getSlave($AS).dick != 0) && ((getSlave($AS).ovaries != 0) || (getSlave($AS).vagina != -1))>>
+				It's possible to remove either and leave $him sexually functional.
+			<</if>>
 			<div class="choices">
-				<<if (getSlave($AS).scrotum > 0)>>
-					<<if getSlave($AS).indentureRestrictions < 2>>
-						<<if getSlave($AS).scrotum - getSlave($AS).balls > 0>>
-							[[Remove excess scrotal skin|Surgery Degradation][getSlave($AS).scrotum = getSlave($AS).balls,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),5), $surgeryType = "scrotalTuck"]]
-							<<if getSlave($AS).indentureRestrictions < 1>> | <</if>>
+				<<if getSlave($AS).vagina > -1>>
+					<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
+						[[Remove pussy|Surgery Degradation][surgeryAmp(getSlave($AS), "vagina"), $surgeryType = "vaginaRemoval", cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))]]
+						<<if getSlave($AS).ovaries == 1>>
+							<span class="note">
+								This will remove $his ovaries as well
+							</span>
 						<</if>>
 					<</if>>
-					<<if getSlave($AS).indentureRestrictions < 1>>
-						[[Move them inside abdomen and remove scrotum|Surgery Degradation][getSlave($AS).scrotum = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20), $surgeryType = "relocate"]]
-						<span class="note">This will have a negative impact on cum production</span>
-					<</if>>
 				<</if>>
-				<<if ($seeExtreme == 1)>>
-					|
-					[[Geld|Surgery Degradation][getSlave($AS).balls = 0,getSlave($AS).ballType = "human",getSlave($AS).scrotum = 0,getSlave($AS).vasectomy = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), $surgeryType = "geld"]]
+
+				<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
+					<<if (getSlave($AS).vagina == -1) && (getSlave($AS).dick != 0)>>
+						| [[Convert genitalia to female|Surgery Degradation][getSlave($AS).dick = 0,getSlave($AS).dickAccessory = "none",getSlave($AS).chastityPenis = 0,getSlave($AS).dickTat = 0,getSlave($AS).foreskin = 0,getSlave($AS).scrotum = 0,getSlave($AS).balls = 0,getSlave($AS).ballType = "human",getSlave($AS).vasectomy = 0,getSlave($AS).vagina = 0,getSlave($AS).preg = -2,getSlave($AS).skill.vaginal = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), $surgeryType = "mtf"]]
+					<</if>>
+					<<if (getSlave($AS).vagina == -1) && (getSlave($AS).dick == 0) && ($surgeryUpgrade == 1)>>
+						| [[Create a vagina|Surgery Degradation][getSlave($AS).vagina = 0,getSlave($AS).skill.vaginal = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), $surgeryType = "ntf"]]
+					<</if>>
+					<<if (getSlave($AS).dick > 0) && ($seeExtreme == 1)>>
+						| [[Remove penis|Surgery Degradation][surgeryAmp(getSlave($AS), "dick"), $surgeryType = "chop", cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))]]
+					<</if>>
+					<<if (getSlave($AS).foreskin > 0) && getSlave($AS).dick > 0>>
+						<<if getSlave($AS).indentureRestrictions < 2>>
+							<<if $seeCircumcision == 1>>
+								| [[Remove foreskin|Surgery Degradation][getSlave($AS).foreskin = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "circumcision"]]
+							<</if>>
+							<<if getSlave($AS).foreskin - getSlave($AS).dick > 0>>
+								| [[Remove excess foreskin|Surgery Degradation][getSlave($AS).foreskin = getSlave($AS).dick,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),5), $surgeryType = "foreskinTuck"]]
+							<</if>>
+						<</if>>
+					<</if>>
 				<</if>>
-				<<if getSlave($AS).ballType != "sterile">>
-					|
-					[[Chemically castrate|Surgery Degradation][getSlave($AS).ballType = "sterile",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "chem castrate"]]
+
+				<<if (getSlave($AS).dick != 0) && (getSlave($AS).vagina == -1) && ($surgeryUpgrade == 1)>>
+					<<if getSlave($AS).indentureRestrictions < 1>>
+						| [[Create surgical hermaphrodite|Surgery Degradation][getSlave($AS).vagina = 0,getSlave($AS).skill.vaginal = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), $surgeryType = "herm"]]
+					<</if>>
 				<</if>>
 			</div>
 		</div>
 
+		/*Extra sex surgery*/
 		<div>
-			<<if (getSlave($AS).vasectomy == 1)>>
-				$He has had a vasectomy and shoots blanks when $he cums<<if getSlave($AS).pubertyXY == 0 || getSlave($AS).ballType == "sterile">>, or would, if $he were potent<</if>>.
+			<<if (getSlave($AS).vagina > 3)>>
+				$His vagina could benefit from surgical repair.
 				<div class="choices">
-					[[Reverse vasectomy|Surgery Degradation][getSlave($AS).vasectomy = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "vasectomy undo"]]
+					[[Repair pussy|Surgery Degradation][getSlave($AS).vagina = 3,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "vagina"]] <span class="note">This will reduce $his vaginal skills</span>
 				</div>
-			<<else>>
-				<<if getSlave($AS).ballType == "sterile">>
-					$He has non-functional testicles.
-					<<if getSlave($AS).indentureRestrictions < 1>>
-						<div class="choices">
-							[[Clamp vas deferens|Surgery Degradation][getSlave($AS).vasectomy = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "vasectomy"]]
-						</div>
-					<</if>>
-				<<else>>
-					$He has working testicles<<if getSlave($AS).pubertyXY == 0>>, though $he isn't potent<</if>>.
-					<<if getSlave($AS).indentureRestrictions < 1>>
-						<div class="choices">
-							[[Clamp vas deferens to cull potency|Surgery Degradation][getSlave($AS).vasectomy = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "vasectomy"]]
-						</div>
-					<</if>>
+			<<elseif ($surgeryUpgrade == 1) && (getSlave($AS).indentureRestrictions < 2)>>
+				<<if (getSlave($AS).vagina > 1)>>
+					$His vaginal muscles could benefit from microsurgical rejuvenation.
+					<div class="choices">
+						[[Tighten pussy|Surgery Degradation][getSlave($AS).vagina = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "vagina"]] <span class="note">This will reduce $his vaginal skills</span>
+					</div>
+				<<elseif (getSlave($AS).vagina > 0)>>
+					$His pussy is as tight as a virgin's, and $his hymen could be restored.
+					<div class="choices">
+						[[Restore virginity|Surgery Degradation][getSlave($AS).vagina = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "vagina"]] <span class="note">This will reduce $his vaginal skills</span>
+					</div>
 				<</if>>
 			<</if>>
 		</div>
- <</if>>
 
-	/*Prostate*/
-	<div>
-		<<if getSlave($AS).prostate>>
-			$He has a
-			<<if getSlave($AS).prostate > 2>>
-				hyperactive, ejaculation enhancing
-			<<elseif getSlave($AS).prostate > 1>>
-				hyperactive
-			<<else>>
-				normal
-			<</if>>
-			prostate.
-			<div class="choices">
-				<<if getSlave($AS).prostate >= 2 && $prostateImplants == 1>>
-					<<if getSlave($AS).prostate < 3>>
+		<<if (getSlave($AS).balls > 0)>>
+			<div>
+				<<if (getSlave($AS).balls == 1)>>
+					$His testicles are vestigial, but $he has balls. Technically. They are
+				<<elseif (getSlave($AS).balls > 1)>>
+					$He has testicles
+				<</if>>
+				<<if (getSlave($AS).scrotum > 0)>>
+					located in $his scrotum.
+				<<else>>
+					<<if (getSlave($AS).genes == "XY")>>
+						relocated inside $his abdomen, and $his scrotum has been removed.
+					<<else>>
+						implanted inside $his abdomen.
+					<</if>>
+				<</if>>
+				<div class="choices">
+					<<if (getSlave($AS).scrotum > 0)>>
 						<<if getSlave($AS).indentureRestrictions < 2>>
-							[[Implant prostate with an ejaculation boosting implant|Surgery Degradation][getSlave($AS).prostate = 3,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "ejaculation"]] <span class="note">This will thin $his ejaculate but greatly increase its quantity</span>
+							<<if getSlave($AS).scrotum - getSlave($AS).balls > 0>>
+								[[Remove excess scrotal skin|Surgery Degradation][getSlave($AS).scrotum = getSlave($AS).balls,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),5), $surgeryType = "scrotalTuck"]]
+								<<if getSlave($AS).indentureRestrictions < 1>> | <</if>>
+							<</if>>
+						<</if>>
+						<<if getSlave($AS).indentureRestrictions < 1>>
+							[[Move them inside abdomen and remove scrotum|Surgery Degradation][getSlave($AS).scrotum = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20), $surgeryType = "relocate"]]
+							<span class="note">This will have a negative impact on cum production</span>
 						<</if>>
 					<</if>>
-					<<if getSlave($AS).prostate == 3>>
-						| [[Remove ejaculation implant|Surgery Degradation][getSlave($AS).prostate = 2,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "endejac"]]
-					<<elseif getSlave($AS).prostate == 2>>
-						| [[Remove drug implant|Surgery Degradation][getSlave($AS).prostate=1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),$surgeryType="endprecum"]]
+					<<if ($seeExtreme == 1)>>
+						|
+						[[Geld|Surgery Degradation][getSlave($AS).balls = 0,getSlave($AS).ballType = "human",getSlave($AS).scrotum = 0,getSlave($AS).vasectomy = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), $surgeryType = "geld"]]
 					<</if>>
-				<<else>>
-					<<if getSlave($AS).prostate > 1>>
-						[[Remove drug implant|Surgery Degradation][getSlave($AS).prostate=1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),$surgeryType="endprecum"]]
+					<<if getSlave($AS).ballType != "sterile">>
+						|
+						[[Chemically castrate|Surgery Degradation][getSlave($AS).ballType = "sterile",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), $surgeryType = "chem castrate"]]
 					<</if>>
-					<<if getSlave($AS).prostate < 2>>
-						<<if getSlave($AS).indentureRestrictions < 2>>
-							| [[Implant slow-release productivity drugs|Surgery Degradation][getSlave($AS).prostate=2,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),surgeryDamage(getSlave($AS), 10),$surgeryType="precum"]] <span class="note">This may cause some leaking</span>
+				</div>
+			</div>
+
+			<div>
+				<<if (getSlave($AS).vasectomy == 1)>>
+					$He has had a vasectomy and shoots blanks when $he cums<<if getSlave($AS).pubertyXY == 0 || getSlave($AS).ballType == "sterile">>, or would, if $he were potent<</if>>.
+					<div class="choices">
+						[[Reverse vasectomy|Surgery Degradation][getSlave($AS).vasectomy = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "vasectomy undo"]]
+					</div>
+				<<else>>
+					<<if getSlave($AS).ballType == "sterile">>
+						$He has non-functional testicles.
+						<<if getSlave($AS).indentureRestrictions < 1>>
+							<div class="choices">
+								[[Clamp vas deferens|Surgery Degradation][getSlave($AS).vasectomy = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "vasectomy"]]
+							</div>
+						<</if>>
+					<<else>>
+						$He has working testicles<<if getSlave($AS).pubertyXY == 0>>, though $he isn't potent<</if>>.
+						<<if getSlave($AS).indentureRestrictions < 1>>
+							<div class="choices">
+								[[Clamp vas deferens to cull potency|Surgery Degradation][getSlave($AS).vasectomy = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "vasectomy"]]
+							</div>
 						<</if>>
-					<</if>>
-				<</if>>
-				<<if ($seeExtreme == 1)>>
-					<<if getSlave($AS).indentureRestrictions < 1>>
-						| [[Remove prostate|Surgery Degradation][getSlave($AS).prostate = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), $surgeryType = "prostate"]]
 					<</if>>
 				<</if>>
 			</div>
-		<</if>>
+	<</if>>
+
+		/*Prostate*/
+		<div>
+			<<if getSlave($AS).prostate>>
+				$He has a
+				<<if getSlave($AS).prostate > 2>>
+					hyperactive, ejaculation enhancing
+				<<elseif getSlave($AS).prostate > 1>>
+					hyperactive
+				<<else>>
+					normal
+				<</if>>
+				prostate.
+				<div class="choices">
+					<<if getSlave($AS).prostate >= 2 && $prostateImplants == 1>>
+						<<if getSlave($AS).prostate < 3>>
+							<<if getSlave($AS).indentureRestrictions < 2>>
+								[[Implant prostate with an ejaculation boosting implant|Surgery Degradation][getSlave($AS).prostate = 3,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "ejaculation"]] <span class="note">This will thin $his ejaculate but greatly increase its quantity</span>
+							<</if>>
+						<</if>>
+						<<if getSlave($AS).prostate == 3>>
+							| [[Remove ejaculation implant|Surgery Degradation][getSlave($AS).prostate = 2,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "endejac"]]
+						<<elseif getSlave($AS).prostate == 2>>
+							| [[Remove drug implant|Surgery Degradation][getSlave($AS).prostate=1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),$surgeryType="endprecum"]]
+						<</if>>
+					<<else>>
+						<<if getSlave($AS).prostate > 1>>
+							[[Remove drug implant|Surgery Degradation][getSlave($AS).prostate=1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),$surgeryType="endprecum"]]
+						<</if>>
+						<<if getSlave($AS).prostate < 2>>
+							<<if getSlave($AS).indentureRestrictions < 2>>
+								| [[Implant slow-release productivity drugs|Surgery Degradation][getSlave($AS).prostate=2,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)),surgeryDamage(getSlave($AS), 10),$surgeryType="precum"]] <span class="note">This may cause some leaking</span>
+							<</if>>
+						<</if>>
+					<</if>>
+					<<if ($seeExtreme == 1)>>
+						<<if getSlave($AS).indentureRestrictions < 1>>
+							| [[Remove prostate|Surgery Degradation][getSlave($AS).prostate = 0,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), $surgeryType = "prostate"]]
+						<</if>>
+					<</if>>
+				</div>
+			<</if>>
+		</div>
 	</div>
 </div>
-</div>
 
 <div id="Race" class="tabcontent">
-<div class="content">
-	/*Race*/
-	<div>
-		<<if getSlave($AS).indentureRestrictions < 1>>
-			$He is <<= getSlave($AS).race>><<if getSlave($AS).race != getSlave($AS).origRace>>, but was originally <<= getSlave($AS).origRace>><</if>>. Surgically alter $him to look more:
-			<div class="choices">
-				<<if getSlave($AS).race != "white">>
-					[[White|Surgery Degradation][getSlave($AS).race = "white", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
-				<</if>>
-				<<if getSlave($AS).race != "latina">>
-					[[Latina|Surgery Degradation][getSlave($AS).race = "latina", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
-				<</if>>
-				<<if getSlave($AS).race != "black">>
-					[[Black|Surgery Degradation][getSlave($AS).race = "black", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
-				<</if>>
-				<<if getSlave($AS).race != "asian">>
-					[[Asian|Surgery Degradation][getSlave($AS).race = "asian", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
-				<</if>>
-				<<if getSlave($AS).race != "middle eastern">>
-					[[Middle Eastern|Surgery Degradation][getSlave($AS).race = "middle eastern", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
-				<</if>>
-				<<if getSlave($AS).race != "indo-aryan">>
-					[[Indo-Aryan|Surgery Degradation][getSlave($AS).race = "indo-aryan", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
-				<</if>>
-				<<if getSlave($AS).race != "pacific islander">>
-					[[Pacific Islander|Surgery Degradation][getSlave($AS).race = "pacific islander", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
-				<</if>>
-				<<if getSlave($AS).race != "malay">>
-					[[Malay|Surgery Degradation][getSlave($AS).race = "malay", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
-				<</if>>
-				<<if getSlave($AS).race != "amerindian">>
-					[[Amerindian|Surgery Degradation][getSlave($AS).race = "amerindian", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
-				<</if>>
-				<<if getSlave($AS).race != "southern european">>
-					[[Southern European|Surgery Degradation][getSlave($AS).race = "southern european", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
-				<</if>>
-				<<if getSlave($AS).race != "semitic">>
-					[[Semitic|Surgery Degradation][getSlave($AS).race = "semitic", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
-				<</if>>
-				<<if getSlave($AS).race != "mixed race">>
-					[[Mixed Race|Surgery Degradation][getSlave($AS).race = "mixed race", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]]
-				<</if>>
-			</div>
-		<<else>>
-			<div class="note choices">$His indenture forbids elective surgery</div>
+	<div class="content">
+		/* 000-250-006 */
+		<<if $seeImages == 1>>
+			<<if $imageChoice == 1>>
+				<div class="imageRef lrgVector"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
+			<<else>>
+				<div class="imageRef lrgRender"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
+			<</if>>
 		<</if>>
+		/* 000-250-006 */
+		/*Race*/
+		<div>
+			<<if getSlave($AS).indentureRestrictions < 1>>
+				$He is <<= getSlave($AS).race>><<if getSlave($AS).race != getSlave($AS).origRace>>, but was originally <<= getSlave($AS).origRace>><</if>>. Surgically alter $him to look more:
+				<div class="choices">
+					<<if getSlave($AS).race != "white">>
+						[[White|Surgery Degradation][getSlave($AS).race = "white", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
+					<</if>>
+					<<if getSlave($AS).race != "latina">>
+						[[Latina|Surgery Degradation][getSlave($AS).race = "latina", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
+					<</if>>
+					<<if getSlave($AS).race != "black">>
+						[[Black|Surgery Degradation][getSlave($AS).race = "black", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
+					<</if>>
+					<<if getSlave($AS).race != "asian">>
+						[[Asian|Surgery Degradation][getSlave($AS).race = "asian", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
+					<</if>>
+					<<if getSlave($AS).race != "middle eastern">>
+						[[Middle Eastern|Surgery Degradation][getSlave($AS).race = "middle eastern", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
+					<</if>>
+					<<if getSlave($AS).race != "indo-aryan">>
+						[[Indo-Aryan|Surgery Degradation][getSlave($AS).race = "indo-aryan", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
+					<</if>>
+					<<if getSlave($AS).race != "pacific islander">>
+						[[Pacific Islander|Surgery Degradation][getSlave($AS).race = "pacific islander", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
+					<</if>>
+					<<if getSlave($AS).race != "malay">>
+						[[Malay|Surgery Degradation][getSlave($AS).race = "malay", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
+					<</if>>
+					<<if getSlave($AS).race != "amerindian">>
+						[[Amerindian|Surgery Degradation][getSlave($AS).race = "amerindian", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
+					<</if>>
+					<<if getSlave($AS).race != "southern european">>
+						[[Southern European|Surgery Degradation][getSlave($AS).race = "southern european", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
+					<</if>>
+					<<if getSlave($AS).race != "semitic">>
+						[[Semitic|Surgery Degradation][getSlave($AS).race = "semitic", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]] |
+					<</if>>
+					<<if getSlave($AS).race != "mixed race">>
+						[[Mixed Race|Surgery Degradation][getSlave($AS).race = "mixed race", getSlave($AS).skin = randomRaceSkin(getSlave($AS).race), getSlave($AS).hColor = randomRaceHair(getSlave($AS).race), setEyeColor(getSlave($AS), randomRaceEye(getSlave($AS).race)), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "race"]]
+					<</if>>
+				</div>
+			<<else>>
+				<div class="note choices">$His indenture forbids elective surgery</div>
+			<</if>>
+		</div>
 	</div>
 </div>
-</div>
 
 <div id="Structural" class="tabcontent">
-<div class="content">
-	/*Shoulder bones*/
-	<div>
-		<<if getSlave($AS).indentureRestrictions < 1>>
-			<<if (getSlave($AS).shoulders < -1)>>
-				$He has very narrow shoulders.
-			<<elseif (getSlave($AS).shoulders < 0)>>
-				$He has narrow shoulders.
-			<<elseif (getSlave($AS).shoulders < 1)>>
-				$He has average shoulders.
-			<<elseif (getSlave($AS).shoulders < 2)>>
-				$He has broad shoulders.
-			<<elseif (getSlave($AS).shoulders == 2)>>
-				$He has very broad shoulders.
-			<</if>>
-			<<if (getSlave($AS).shouldersImplant == 0)>>
-				$He has a natural shoulder structure.
-			<<elseif (getSlave($AS).shouldersImplant > 3)>>
-				$His shoulders have been completely rebuilt to be massively wider.
-			<<elseif (getSlave($AS).shouldersImplant > 2)>>
-				$His shoulders have been heavily restructured to broaden them.
-			<<elseif (getSlave($AS).shouldersImplant > 1)>>
-				$His shoulders have been repeatedly restructured to broaden them.
-			<<elseif (getSlave($AS).shouldersImplant > 0)>>
-				$His shoulders have been restructured to broaden them.
-			<<elseif (getSlave($AS).shouldersImplant < -3)>>
-				$His shoulders have been completely rebuilt to be massively narrower.
-			<<elseif (getSlave($AS).shouldersImplant < -2)>>
-				$His shoulders have been heavily restructured to narrow them.
-			<<elseif (getSlave($AS).shouldersImplant < -1)>>
-				$His shoulders have been repeatedly restructured to narrow them.
-			<<elseif (getSlave($AS).shouldersImplant < 0)>>
-				$His shoulders have been restructured to narrow them.
+	<div class="content">
+		/* 000-250-006 */
+		<<if $seeImages == 1>>
+			<<if $imageChoice == 1>>
+				<div class="imageRef lrgVector"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
+			<<else>>
+				<div class="imageRef lrgRender"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
 			<</if>>
-			<div class="choices">
+		<</if>>
+		/* 000-250-006 */
+		/*Shoulder bones*/
+		<div>
+			<<if getSlave($AS).indentureRestrictions < 1>>
+				<<if (getSlave($AS).shoulders < -1)>>
+					$He has very narrow shoulders.
+				<<elseif (getSlave($AS).shoulders < 0)>>
+					$He has narrow shoulders.
+				<<elseif (getSlave($AS).shoulders < 1)>>
+					$He has average shoulders.
+				<<elseif (getSlave($AS).shoulders < 2)>>
+					$He has broad shoulders.
+				<<elseif (getSlave($AS).shoulders == 2)>>
+					$He has very broad shoulders.
+				<</if>>
 				<<if (getSlave($AS).shouldersImplant == 0)>>
-					<<if getSlave($AS).shoulders > -2 && getSlave($AS).shoulders < 2>>
-						[[Restructure shoulders more broadly|Surgery Degradation][getSlave($AS).shouldersImplant++,getSlave($AS).shoulders++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]] | [[Restructure shoulders more narrowly|Surgery Degradation][getSlave($AS).shouldersImplant--,getSlave($AS).shoulders--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
-					<<elseif getSlave($AS).shoulders <= -1>>
-						[[Restructure shoulders more broadly|Surgery Degradation][getSlave($AS).shouldersImplant++,getSlave($AS).shoulders++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
-					<<elseif getSlave($AS).shoulders >= 2>>
-						[[Restructure shoulders more narrowly|Surgery Degradation][getSlave($AS).shouldersImplant--,getSlave($AS).shoulders--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
-					<</if>>
-				<<elseif $surgeryUpgrade == 1>>
-					<<if getSlave($AS).shoulders > -2 && getSlave($AS).shoulders < 2>>
-						[[Advanced shoulder broadening surgery|Surgery Degradation][getSlave($AS).shouldersImplant++,getSlave($AS).shoulders++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]] | [[Advanced shoulder narrowing surgery|Surgery Degradation][getSlave($AS).shouldersImplant--,getSlave($AS).shoulders--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
-					<<elseif getSlave($AS).shoulders <= -1>>
-						[[Advanced shoulder broadening surgery|Surgery Degradation][getSlave($AS).shouldersImplant++,getSlave($AS).shoulders++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
-					<<elseif getSlave($AS).shoulders >= 2>>
-						[[Advanced shoulder narrowing surgery|Surgery Degradation][getSlave($AS).shouldersImplant--,getSlave($AS).shoulders--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
-					<</if>>
+					$He has a natural shoulder structure.
+				<<elseif (getSlave($AS).shouldersImplant > 3)>>
+					$His shoulders have been completely rebuilt to be massively wider.
+				<<elseif (getSlave($AS).shouldersImplant > 2)>>
+					$His shoulders have been heavily restructured to broaden them.
+				<<elseif (getSlave($AS).shouldersImplant > 1)>>
+					$His shoulders have been repeatedly restructured to broaden them.
+				<<elseif (getSlave($AS).shouldersImplant > 0)>>
+					$His shoulders have been restructured to broaden them.
+				<<elseif (getSlave($AS).shouldersImplant < -3)>>
+					$His shoulders have been completely rebuilt to be massively narrower.
+				<<elseif (getSlave($AS).shouldersImplant < -2)>>
+					$His shoulders have been heavily restructured to narrow them.
+				<<elseif (getSlave($AS).shouldersImplant < -1)>>
+					$His shoulders have been repeatedly restructured to narrow them.
+				<<elseif (getSlave($AS).shouldersImplant < 0)>>
+					$His shoulders have been restructured to narrow them.
 				<</if>>
-			</div>
-		<</if>>
-	</div>
-
-	/*Hip bones*/
-	<div>
-		<<if getSlave($AS).indentureRestrictions < 1>>
-			<<if (getSlave($AS).hips < -1)>>
-				$He has very narrow hips.
-			<<elseif (getSlave($AS).hips < 0)>>
-				$He has narrow hips.
-			<<elseif (getSlave($AS).hips < 1)>>
-				$He has average hips.
-			<<elseif (getSlave($AS).hips < 2)>>
-				$He has broad hips.
-			<<elseif (getSlave($AS).hips < 3)>>
-				$He has very broad hips.
-			<<elseif (getSlave($AS).hips == 3)>>
-				$He has doorway-jamming hips.
-			<</if>>
-			<<if (getSlave($AS).hipsImplant == 0)>>
-				They have not been altered.
-			<<elseif (getSlave($AS).hipsImplant > 3)>>
-				$His pelvis has been completely rebuilt to be massively wider.
-			<<elseif (getSlave($AS).hipsImplant > 2)>>
-				$His pelvis has been heavily broadened.
-			<<elseif (getSlave($AS).hipsImplant > 1)>>
-				$His pelvis has been repeatedly broadened.
-			<<elseif (getSlave($AS).hipsImplant > 0)>>
-				$His pelvis has been broadened.
-			<<elseif (getSlave($AS).hipsImplant < -3)>>
-				$His pelvis has been completely rebuilt to be massively narrower.
-			<<elseif (getSlave($AS).hipsImplant < -2)>>
-				$His pelvis has heavily narrowed.
-			<<elseif (getSlave($AS).hipsImplant < -1)>>
-				$His pelvis has been repeatedly narrowed.
-			<<elseif (getSlave($AS).hipsImplant < 0)>>
-				$His pelvis has been narrowed.
-			<</if>>
-			<div class="choices">
-				<<if (getSlave($AS).hipsImplant == 0)>>
-					<<if getSlave($AS).hips > -2 && getSlave($AS).hips < 3 && $surgeryUpgrade == 1>>
-						[[Broaden pelvis|Surgery Degradation][getSlave($AS).hipsImplant++,getSlave($AS).hips++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]] | [[Narrow pelvis|Surgery Degradation][getSlave($AS).hipsImplant--,getSlave($AS).hips--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
-					<<elseif getSlave($AS).hips > -2 && getSlave($AS).hips < 2>>
-						[[Broaden pelvis|Surgery Degradation][getSlave($AS).hipsImplant++,getSlave($AS).hips++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]] | [[Narrow pelvis|Surgery Degradation][getSlave($AS).hipsImplant--,getSlave($AS).hips--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
-					<<elseif getSlave($AS).hips <= -1>>
-						[[Broaden pelvis|Surgery Degradation][getSlave($AS).hipsImplant++,getSlave($AS).hips++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
-					<<elseif getSlave($AS).hips >= 2>>
-						[[Narrow pelvis|Surgery Degradation][getSlave($AS).hipsImplant--,getSlave($AS).hips--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
-					<</if>>
-				<<elseif $surgeryUpgrade == 1>>
-					<<if getSlave($AS).hips > -2 && getSlave($AS).hips < 3>>
-						[[Advanced pelvis broadening|Surgery Degradation][getSlave($AS).hipsImplant++,getSlave($AS).hips++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]] | [[Advanced pelvis narrowing|Surgery Degradation][getSlave($AS).hipsImplant--,getSlave($AS).hips--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
-					<<elseif getSlave($AS).hips <= -1>>
-						[[Advanced pelvis broadening|Surgery Degradation][getSlave($AS).hipsImplant++,getSlave($AS).hips++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
-					<<elseif getSlave($AS).hips >= 3>>
-						[[Advanced pelvis narrowing|Surgery Degradation][getSlave($AS).hipsImplant--,getSlave($AS).hips--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
+				<div class="choices">
+					<<if (getSlave($AS).shouldersImplant == 0)>>
+						<<if getSlave($AS).shoulders > -2 && getSlave($AS).shoulders < 2>>
+							[[Restructure shoulders more broadly|Surgery Degradation][getSlave($AS).shouldersImplant++,getSlave($AS).shoulders++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]] | [[Restructure shoulders more narrowly|Surgery Degradation][getSlave($AS).shouldersImplant--,getSlave($AS).shoulders--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
+						<<elseif getSlave($AS).shoulders <= -1>>
+							[[Restructure shoulders more broadly|Surgery Degradation][getSlave($AS).shouldersImplant++,getSlave($AS).shoulders++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
+						<<elseif getSlave($AS).shoulders >= 2>>
+							[[Restructure shoulders more narrowly|Surgery Degradation][getSlave($AS).shouldersImplant--,getSlave($AS).shoulders--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
+						<</if>>
+					<<elseif $surgeryUpgrade == 1>>
+						<<if getSlave($AS).shoulders > -2 && getSlave($AS).shoulders < 2>>
+							[[Advanced shoulder broadening surgery|Surgery Degradation][getSlave($AS).shouldersImplant++,getSlave($AS).shoulders++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]] | [[Advanced shoulder narrowing surgery|Surgery Degradation][getSlave($AS).shouldersImplant--,getSlave($AS).shoulders--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
+						<<elseif getSlave($AS).shoulders <= -1>>
+							[[Advanced shoulder broadening surgery|Surgery Degradation][getSlave($AS).shouldersImplant++,getSlave($AS).shoulders++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
+						<<elseif getSlave($AS).shoulders >= 2>>
+							[[Advanced shoulder narrowing surgery|Surgery Degradation][getSlave($AS).shouldersImplant--,getSlave($AS).shoulders--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "shoulders"]]
+						<</if>>
 					<</if>>
-				<</if>>
-			</div>
-		<</if>>
-	</div>
+				</div>
+			<</if>>
+		</div>
 
-	/*Tweak height*/
-	<<if hasAllNaturalLimbs(getSlave($AS))>>
+		/*Hip bones*/
 		<div>
-			<<if (getSlave($AS).heightImplant == 0)>>
-				$He has normal femurs and humeri.
-			<<elseif (getSlave($AS).heightImplant > 0)>>
-				$His femurs, humeri, and other major bones have been <<if getSlave($AS).heightImplant >= 1>>considerably <</if>>lengthened.
-			<<elseif (getSlave($AS).heightImplant < 0)>>
-				$His femurs, humeri, and other major bones have been <<if getSlave($AS).heightImplant <= -1>>considerably <</if>>shortened.
-			<</if>>
-			<div class="choices">
-				<<if getSlave($AS).indentureRestrictions < 1>>
-					<<if (getSlave($AS).heightImplant == 0)>>
-						[[Lengthen major bones|Surgery Degradation][getSlave($AS).heightImplant += 1,getSlave($AS).height += 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
-						| [[Shorten major bones|Surgery Degradation][getSlave($AS).heightImplant -= 1,getSlave($AS).height -= 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
-					<<elseif getSlave($AS).heightImplant >= 1>>
-						<<if (getSlave($AS).height < (Height.mean(getSlave($AS))+15)) && $surgeryUpgrade == 1>>
-							[[Advanced height gain surgery|Surgery Degradation][getSlave($AS).heightImplant += 1,getSlave($AS).height += 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]] |
-						<</if>>
-						<<if getSlave($AS).heightImplant == 1>>
-							[[Reverse existing height surgery|Surgery Degradation][getSlave($AS).heightImplant -= 1,getSlave($AS).height -= 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
-						<<elseif $surgeryUpgrade == 1>>
-							[[Revert a stage of existing height surgery|Surgery Degradation][getSlave($AS).heightImplant -= 1,getSlave($AS).height -= 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
-						<</if>>
-					<<elseif getSlave($AS).heightImplant <= -1>>
-						<<if (getSlave($AS).height >= (Height.mean(getSlave($AS))-15)) && $surgeryUpgrade == 1>>
-							[[Advanced height reduction surgery|Surgery Degradation][getSlave($AS).heightImplant -= 1,getSlave($AS).height -= 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]] |
+			<<if getSlave($AS).indentureRestrictions < 1>>
+				<<if (getSlave($AS).hips < -1)>>
+					$He has very narrow hips.
+				<<elseif (getSlave($AS).hips < 0)>>
+					$He has narrow hips.
+				<<elseif (getSlave($AS).hips < 1)>>
+					$He has average hips.
+				<<elseif (getSlave($AS).hips < 2)>>
+					$He has broad hips.
+				<<elseif (getSlave($AS).hips < 3)>>
+					$He has very broad hips.
+				<<elseif (getSlave($AS).hips == 3)>>
+					$He has doorway-jamming hips.
+				<</if>>
+				<<if (getSlave($AS).hipsImplant == 0)>>
+					They have not been altered.
+				<<elseif (getSlave($AS).hipsImplant > 3)>>
+					$His pelvis has been completely rebuilt to be massively wider.
+				<<elseif (getSlave($AS).hipsImplant > 2)>>
+					$His pelvis has been heavily broadened.
+				<<elseif (getSlave($AS).hipsImplant > 1)>>
+					$His pelvis has been repeatedly broadened.
+				<<elseif (getSlave($AS).hipsImplant > 0)>>
+					$His pelvis has been broadened.
+				<<elseif (getSlave($AS).hipsImplant < -3)>>
+					$His pelvis has been completely rebuilt to be massively narrower.
+				<<elseif (getSlave($AS).hipsImplant < -2)>>
+					$His pelvis has heavily narrowed.
+				<<elseif (getSlave($AS).hipsImplant < -1)>>
+					$His pelvis has been repeatedly narrowed.
+				<<elseif (getSlave($AS).hipsImplant < 0)>>
+					$His pelvis has been narrowed.
+				<</if>>
+				<div class="choices">
+					<<if (getSlave($AS).hipsImplant == 0)>>
+						<<if getSlave($AS).hips > -2 && getSlave($AS).hips < 3 && $surgeryUpgrade == 1>>
+							[[Broaden pelvis|Surgery Degradation][getSlave($AS).hipsImplant++,getSlave($AS).hips++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]] | [[Narrow pelvis|Surgery Degradation][getSlave($AS).hipsImplant--,getSlave($AS).hips--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
+						<<elseif getSlave($AS).hips > -2 && getSlave($AS).hips < 2>>
+							[[Broaden pelvis|Surgery Degradation][getSlave($AS).hipsImplant++,getSlave($AS).hips++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]] | [[Narrow pelvis|Surgery Degradation][getSlave($AS).hipsImplant--,getSlave($AS).hips--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
+						<<elseif getSlave($AS).hips <= -1>>
+							[[Broaden pelvis|Surgery Degradation][getSlave($AS).hipsImplant++,getSlave($AS).hips++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
+						<<elseif getSlave($AS).hips >= 2>>
+							[[Narrow pelvis|Surgery Degradation][getSlave($AS).hipsImplant--,getSlave($AS).hips--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
 						<</if>>
-						<<if getSlave($AS).heightImplant == -1>>
-							[[Reverse existing height surgery|Surgery Degradation][getSlave($AS).heightImplant += 1,getSlave($AS).height += 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
-						<<elseif $surgeryUpgrade == 1>>
-							[[Revert a stage of existing height surgery|Surgery Degradation][getSlave($AS).heightImplant += 1,getSlave($AS).height += 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
+					<<elseif $surgeryUpgrade == 1>>
+						<<if getSlave($AS).hips > -2 && getSlave($AS).hips < 3>>
+							[[Advanced pelvis broadening|Surgery Degradation][getSlave($AS).hipsImplant++,getSlave($AS).hips++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]] | [[Advanced pelvis narrowing|Surgery Degradation][getSlave($AS).hipsImplant--,getSlave($AS).hips--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
+						<<elseif getSlave($AS).hips <= -1>>
+							[[Advanced pelvis broadening|Surgery Degradation][getSlave($AS).hipsImplant++,getSlave($AS).hips++,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
+						<<elseif getSlave($AS).hips >= 3>>
+							[[Advanced pelvis narrowing|Surgery Degradation][getSlave($AS).hipsImplant--,getSlave($AS).hips--,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "hips"]]
 						<</if>>
 					<</if>>
-				<</if>>
-			</div>
+				</div>
+			<</if>>
 		</div>
 
-		<div>
-			<<if (getSlave($AS).heels == 0) && hasAnyNaturalLegs(getSlave($AS))>>
-				$He has healthy calves.
-			<<elseif (getSlave($AS).heels == 1) && hasAnyNaturalLegs(getSlave($AS))>>
-				$His calves have been altered so that $he cannot walk in anything but very high heels.
-			<</if>>
-			<div class="choices">
-				<<if (getSlave($AS).heels == 0) && hasAnyNaturalLegs(getSlave($AS)) && ($seeExtreme == 1)>>
+		/*Tweak height*/
+		<<if hasAllNaturalLimbs(getSlave($AS))>>
+			<div>
+				<<if (getSlave($AS).heightImplant == 0)>>
+					$He has normal femurs and humeri.
+				<<elseif (getSlave($AS).heightImplant > 0)>>
+					$His femurs, humeri, and other major bones have been <<if getSlave($AS).heightImplant >= 1>>considerably <</if>>lengthened.
+				<<elseif (getSlave($AS).heightImplant < 0)>>
+					$His femurs, humeri, and other major bones have been <<if getSlave($AS).heightImplant <= -1>>considerably <</if>>shortened.
+				<</if>>
+				<div class="choices">
 					<<if getSlave($AS).indentureRestrictions < 1>>
-						[[Shorten tendons|Surgery Degradation][getSlave($AS).heels = 1,getSlave($AS).shoes = "heels",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "heels"]] <span class="note">Prevents $him from walking in anything but very high heels</span>
+						<<if (getSlave($AS).heightImplant == 0)>>
+							[[Lengthen major bones|Surgery Degradation][getSlave($AS).heightImplant += 1,getSlave($AS).height += 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
+							| [[Shorten major bones|Surgery Degradation][getSlave($AS).heightImplant -= 1,getSlave($AS).height -= 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
+						<<elseif getSlave($AS).heightImplant >= 1>>
+							<<if (getSlave($AS).height < (Height.mean(getSlave($AS))+15)) && $surgeryUpgrade == 1>>
+								[[Advanced height gain surgery|Surgery Degradation][getSlave($AS).heightImplant += 1,getSlave($AS).height += 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]] |
+							<</if>>
+							<<if getSlave($AS).heightImplant == 1>>
+								[[Reverse existing height surgery|Surgery Degradation][getSlave($AS).heightImplant -= 1,getSlave($AS).height -= 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
+							<<elseif $surgeryUpgrade == 1>>
+								[[Revert a stage of existing height surgery|Surgery Degradation][getSlave($AS).heightImplant -= 1,getSlave($AS).height -= 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
+							<</if>>
+						<<elseif getSlave($AS).heightImplant <= -1>>
+							<<if (getSlave($AS).height >= (Height.mean(getSlave($AS))-15)) && $surgeryUpgrade == 1>>
+								[[Advanced height reduction surgery|Surgery Degradation][getSlave($AS).heightImplant -= 1,getSlave($AS).height -= 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]] |
+							<</if>>
+							<<if getSlave($AS).heightImplant == -1>>
+								[[Reverse existing height surgery|Surgery Degradation][getSlave($AS).heightImplant += 1,getSlave($AS).height += 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
+							<<elseif $surgeryUpgrade == 1>>
+								[[Revert a stage of existing height surgery|Surgery Degradation][getSlave($AS).heightImplant += 1,getSlave($AS).height += 10,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40),$surgeryType = "height"]]
+							<</if>>
+						<</if>>
 					<</if>>
-				<</if>>
-				<<if (getSlave($AS).heels == 1)>>
-					[[Replace tendons|Surgery Degradation][getSlave($AS).heels = 0,getSlave($AS).shoes = "none",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "heelsRestoration"]]
-				<</if>>
+				</div>
 			</div>
-		</div>
-	<</if>>
 
-	/* PROSTHETICS */
-	<h3>Prosthetics</h3>
-	<<= App.Desc.limbs(getSlave($AS))>>
-	<<if isAmputee(getSlave($AS))>>
-		<<if getSlave($AS).PLimb == 1>>
-			$He has been implanted with a basic PLimb interface.
-		<<elseif getSlave($AS).PLimb == 2>>
-			$He has been implanted with an advanced PLimb interface.
+			<div>
+				<<if (getSlave($AS).heels == 0) && hasAnyNaturalLegs(getSlave($AS))>>
+					$He has healthy calves.
+				<<elseif (getSlave($AS).heels == 1) && hasAnyNaturalLegs(getSlave($AS))>>
+					$His calves have been altered so that $he cannot walk in anything but very high heels.
+				<</if>>
+				<div class="choices">
+					<<if (getSlave($AS).heels == 0) && hasAnyNaturalLegs(getSlave($AS)) && ($seeExtreme == 1)>>
+						<<if getSlave($AS).indentureRestrictions < 1>>
+							[[Shorten tendons|Surgery Degradation][getSlave($AS).heels = 1,getSlave($AS).shoes = "heels",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "heels"]] <span class="note">Prevents $him from walking in anything but very high heels</span>
+						<</if>>
+					<</if>>
+					<<if (getSlave($AS).heels == 1)>>
+						[[Replace tendons|Surgery Degradation][getSlave($AS).heels = 0,getSlave($AS).shoes = "none",cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10),$surgeryType = "heelsRestoration"]]
+					<</if>>
+				</div>
+			</div>
 		<</if>>
-	<</if>>
 
-	<<if $seeExtreme === 1 && getSlave($AS).indentureRestrictions < 1 && hasAnyNaturalLimbs(getSlave($AS))>>
-		<style>
-			.container {
-				display: grid;
-				grid-template-columns: max-content 100px 100px;
-			}
-		</style>
-		<<set _LA = 0, _RA = 0, _LL = 0, _RL = 0>>
-
-		<div class="container">
-		<<if getLeftArmID(getSlave($AS)) === 1>>
-			<div>Left arm:</div>
-			<div><label><<radiobutton "_LA" 0 checked>> Leave </label></div>
-			<div><label><<radiobutton "_LA" 1>> Amputate </label></div>
-		<</if>>
-		<<if getRightArmID(getSlave($AS)) === 1>>
-			<div>Right arm:</div>
-			<div><label><<radiobutton "_RA" 0 checked>> Leave </label></div>
-			<div><label><<radiobutton "_RA" 1>> Amputate </label></div>
-		<</if>>
-		<<if getLeftLegID(getSlave($AS)) === 1>>
-			<div>Left leg:</div>
-			<div><label><<radiobutton "_LL" 0 checked>> Leave </label></div>
-			<div><label><<radiobutton "_LL" 1>> Amputate </label></div>
-		<</if>>
-		<<if getRightLegID(getSlave($AS)) === 1>>
-			<div>Right leg:</div>
-			<div><label><<radiobutton "_RL" 0 checked>> Leave </label></div>
-			<div><label><<radiobutton "_RL" 1>> Amputate </label></div>
+		/* PROSTHETICS */
+		<h3>Prosthetics</h3>
+		<<= App.Desc.limbs(getSlave($AS))>>
+		<<if isAmputee(getSlave($AS))>>
+			<<if getSlave($AS).PLimb == 1>>
+				$He has been implanted with a basic PLimb interface.
+			<<elseif getSlave($AS).PLimb == 2>>
+				$He has been implanted with an advanced PLimb interface.
+			<</if>>
 		<</if>>
-		</div>
 
-		<div>
-			<<link "Amputate limb(s)">>
-				<<set _atleastOne = 0>>
-				/* temporary story variable */
-				<<set $oldLimbs = App.Desc.limbChange().currentLimbs(getSlave($AS))>>
-				<<if _LA === 1>>
-					<<run removeLimbs(getSlave($AS), "left arm")>>
-					<<set _atleastOne++>>
-				<</if>>
-				<<if _RA === 1>>
-					<<run removeLimbs(getSlave($AS), "right arm")>>
-					<<set _atleastOne++>>
-				<</if>>
-				<<if _LL === 1>>
-					<<run removeLimbs(getSlave($AS), "left leg")>>
-					<<set _atleastOne++>>
-				<</if>>
-				<<if _RL === 1>>
-					<<run removeLimbs(getSlave($AS), "right leg")>>
-					<<set _atleastOne++>>
-				<</if>>
-				<<if _atleastOne>>
-					<<run surgeryDamage(getSlave($AS),_atleastOne * 10), cashX(-$surgeryCost, "slaveSurgery", getSlave($AS))>>
-					<<if !hasAnyArms(getSlave($AS))>>
-						<<set getSlave($AS).rules.release.masturbation = 0>>
-					<</if>>
-					<<set $surgeryType = "amp">>
-					<<goto "Surgery Degradation">>
-				<<else>>
-					<<unset $oldLimbs>>
-				<</if>>
-			<</link>> <span class="note">This will greatly restrict $him.</span>
-		</div>
-	<</if>> /* extreme toggle */
+		<<if $seeExtreme === 1 && getSlave($AS).indentureRestrictions < 1 && hasAnyNaturalLimbs(getSlave($AS))>>
+			<style>
+				.container {
+					display: grid;
+					grid-template-columns: max-content 100px 100px;
+				}
+			</style>
+			<<set _LA = 0, _RA = 0, _LL = 0, _RL = 0>>
 
-	<div>
-		<<if !hasAllNaturalLimbs(getSlave($AS)) && getSlave($AS).PLimb == 0>>
-			<<if isProstheticAvailable(getSlave($AS), "interfaceP1")>>
-				[[Install basic prosthetic interface|Surgery Degradation][$oldLimbs = App.Desc.limbChange().currentLimbs(getSlave($AS)), getSlave($AS).PLimb = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20), $surgeryType = "PLimb interface"]]
+			<div class="container">
+			<<if getLeftArmID(getSlave($AS)) === 1>>
+				<div>Left arm:</div>
+				<div><label><<radiobutton "_LA" 0 checked>> Leave </label></div>
+				<div><label><<radiobutton "_LA" 1>> Amputate </label></div>
 			<</if>>
-			<<if isProstheticAvailable(getSlave($AS), "interfaceP2")>> |
-				[[Install advanced prosthetic interface|Surgery Degradation][$oldLimbs = App.Desc.limbChange().currentLimbs(getSlave($AS)), getSlave($AS).PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20), $surgeryType = "PLimb interface"]]
+			<<if getRightArmID(getSlave($AS)) === 1>>
+				<div>Right arm:</div>
+				<div><label><<radiobutton "_RA" 0 checked>> Leave </label></div>
+				<div><label><<radiobutton "_RA" 1>> Amputate </label></div>
+			<</if>>
+			<<if getLeftLegID(getSlave($AS)) === 1>>
+				<div>Left leg:</div>
+				<div><label><<radiobutton "_LL" 0 checked>> Leave </label></div>
+				<div><label><<radiobutton "_LL" 1>> Amputate </label></div>
+			<</if>>
+			<<if getRightLegID(getSlave($AS)) === 1>>
+				<div>Right leg:</div>
+				<div><label><<radiobutton "_RL" 0 checked>> Leave </label></div>
+				<div><label><<radiobutton "_RL" 1>> Amputate </label></div>
 			<</if>>
-		<<elseif getSlave($AS).PLimb == 1 && isProstheticAvailable(getSlave($AS), "interfaceP2")>>
-			[[Upgrade to advanced prosthetic interface|Surgery Degradation][$oldLimbs = App.Desc.limbChange().currentLimbs(getSlave($AS)), getSlave($AS).PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),5), $surgeryType = "PLimb interface"]]
-		<</if>>
-	</div>
-
-	<div>
-		<<if getSlave($AS).PTail == 1>>
-			$He has a neural interface allowing attachment of tails.
-		<<elseif isProstheticAvailable(getSlave($AS), "interfaceTail")>>
-			$He lacks a neural interface allowing attachment of tails.
-			[[Implant interface|Surgery Degradation][getSlave($AS).PTail = 1, getSlave($AS).tail = "none", getSlave($AS).tailColor = "none", cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "tailInterface"]]
-		<<else>>
-			$He lacks a neural interface allowing attachment of tails and you have none ready for $him.
-		<</if>>
-	</div>
-
-	<<print App.Medicine.OrganFarm.fullMenu(getSlave($AS))>>
-
-	<<if $geneticMappingUpgrade >= 1>>
-		<h3>Retro-virus treatments:</h3>
-		<<if (getSlave($AS).indentureRestrictions >= 1)>>
-			<div>
-				<span class="note">Modification at a genetic level clearly violates $his indenture contract</span>
-			</div>
-		<<elseif getSlave($AS).health.health < 0>>
-			<div>
-				<span class="note">$He's too unhealthy to undergo gene therapy</span>
-			</div>
-		<<else>>
-			<div>
-				<<if $arcologies[0].childhoodFertilityInducedNCSResearch == 1>>
-					<<if getSlave($AS).geneMods.NCS == 0>>
-						[[Induced NCS treatment|Surgery Degradation][getSlave($AS).geneMods.NCS = 1,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),80), getSlave($AS).chem += 40,$surgeryType = "retrograde virus injection NCS"]] <span class="note">This will induce <span class="orange">NCS</span> in $his genetic code</span>
-					<<else>>
-						<span class="note">$He already has Induced <span class="orange">NCS</span></span>
-					<</if>>
-				<</if>>
 			</div>
 
 			<div>
-				<<if $RapidCellGrowthFormula == 1>>
-					<<if getSlave($AS).geneMods.rapidCellGrowth == 0>>
-						[[Increased elasticity treatment|Surgery Degradation][getSlave($AS).geneMods.rapidCellGrowth = 1,cashX(forceNeg($surgeryCost * 4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "elasticity treatment"]] <span class="note">This will alter $his genetic code to encourage $his body to stretch</span>
+				<<link "Amputate limb(s)">>
+					<<set _atleastOne = 0>>
+					/* temporary story variable */
+					<<set $oldLimbs = App.Desc.limbChange().currentLimbs(getSlave($AS))>>
+					<<if _LA === 1>>
+						<<run removeLimbs(getSlave($AS), "left arm")>>
+						<<set _atleastOne++>>
+					<</if>>
+					<<if _RA === 1>>
+						<<run removeLimbs(getSlave($AS), "right arm")>>
+						<<set _atleastOne++>>
+					<</if>>
+					<<if _LL === 1>>
+						<<run removeLimbs(getSlave($AS), "left leg")>>
+						<<set _atleastOne++>>
+					<</if>>
+					<<if _RL === 1>>
+						<<run removeLimbs(getSlave($AS), "right leg")>>
+						<<set _atleastOne++>>
+					<</if>>
+					<<if _atleastOne>>
+						<<run surgeryDamage(getSlave($AS),_atleastOne * 10), cashX(-$surgeryCost, "slaveSurgery", getSlave($AS))>>
+						<<if !hasAnyArms(getSlave($AS))>>
+							<<set getSlave($AS).rules.release.masturbation = 0>>
+						<</if>>
+						<<set $surgeryType = "amp">>
+						<<goto "Surgery Degradation">>
 					<<else>>
-						<span class="note">$He already has received the plasticity increasing elasticity treatment</span>
+						<<unset $oldLimbs>>
 					<</if>>
-				<</if>>
+				<</link>> <span class="note">This will greatly restrict $him.</span>
 			</div>
+		<</if>> /* extreme toggle */
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.albinism == 2>>
-					[[Albinism prevention treatment|Surgery Degradation][induceAlbinism(getSlave($AS), 0), cashX(forceNeg($surgeryCost * 4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 40), getSlave($AS).chem += 100, $surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.albinism == 1 && $geneticMappingUpgrade >= 2>>
-					[[Albinism activation treatment|Surgery Degradation][induceAlbinism(getSlave($AS), 2), cashX(forceNeg($surgeryCost * 4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 40), getSlave($AS).chem += 100, $surgeryType = "gene treatment"]] <span class="note">Will not have an active effect</span>
-					| [[Albinism carrier corrective treatment|Surgery Degradation][induceAlbinism(getSlave($AS), 0), cashX(forceNeg($surgeryCost * 4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced albinism treatment|Surgery Degradation][induceAlbinism(getSlave($AS), 2), cashX(forceNeg($surgeryCost * 10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">albinism</span> in $his genetic code</span>
+		<div>
+			<<if !hasAllNaturalLimbs(getSlave($AS)) && getSlave($AS).PLimb == 0>>
+				<<if isProstheticAvailable(getSlave($AS), "interfaceP1")>>
+					[[Install basic prosthetic interface|Surgery Degradation][$oldLimbs = App.Desc.limbChange().currentLimbs(getSlave($AS)), getSlave($AS).PLimb = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20), $surgeryType = "PLimb interface"]]
 				<</if>>
-			</div>
-
-			<div>
-				<<if getSlave($AS).geneticQuirks.androgyny == 2>>
-					[[Androgyny correction treatment|Surgery Degradation][getSlave($AS).geneticQuirks.androgyny = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.androgyny == 1 && $geneticMappingUpgrade >= 2>>
-					[[Androgyny activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.androgyny = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Androgyny carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.androgyny = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced androgyny treatment|Surgery Degradation][getSlave($AS).geneticQuirks.androgyny = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">natural androgyny</span> in $his genetic code</span>
+				<<if isProstheticAvailable(getSlave($AS), "interfaceP2")>> |
+					[[Install advanced prosthetic interface|Surgery Degradation][$oldLimbs = App.Desc.limbChange().currentLimbs(getSlave($AS)), getSlave($AS).PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20), $surgeryType = "PLimb interface"]]
 				<</if>>
-			</div>
+			<<elseif getSlave($AS).PLimb == 1 && isProstheticAvailable(getSlave($AS), "interfaceP2")>>
+				[[Upgrade to advanced prosthetic interface|Surgery Degradation][$oldLimbs = App.Desc.limbChange().currentLimbs(getSlave($AS)), getSlave($AS).PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),5), $surgeryType = "PLimb interface"]]
+			<</if>>
+		</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.dwarfism == 2>>
-					[[Dwarfism correction treatment|Surgery Degradation][getSlave($AS).geneticQuirks.dwarfism = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.dwarfism == 1 && $geneticMappingUpgrade >= 2>>
-					[[Dwarfism activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.dwarfism = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Dwarfism carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.dwarfism = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced dwarfism treatment|Surgery Degradation][getSlave($AS).geneticQuirks.dwarfism = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">dwarfism</span> in $his genetic code</span>
-				<</if>>
-			</div>
+		<div>
+			<<if getSlave($AS).PTail == 1>>
+				$He has a neural interface allowing attachment of tails.
+			<<elseif isProstheticAvailable(getSlave($AS), "interfaceTail")>>
+				$He lacks a neural interface allowing attachment of tails.
+				[[Implant interface|Surgery Degradation][getSlave($AS).PTail = 1, getSlave($AS).tail = "none", getSlave($AS).tailColor = "none", cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),10), $surgeryType = "tailInterface"]]
+			<<else>>
+				$He lacks a neural interface allowing attachment of tails and you have none ready for $him.
+			<</if>>
+		</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.gigantism == 2>>
-					[[Gigantism correction treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantism = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.gigantism == 1 && $geneticMappingUpgrade >= 2>>
-					[[Gigantism activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantism = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Gigantism carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantism = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced gigantism treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantism = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">gigantism</span> in $his genetic code</span>
-				<</if>>
-			</div>
+		<<print App.Medicine.OrganFarm.fullMenu(getSlave($AS))>>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.pFace == 2>>
-					[[Prevent passing of perfect faces|Surgery Degradation][getSlave($AS).geneticQuirks.pFace = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<</if>>
-			</div>
+		<<if $geneticMappingUpgrade >= 1>>
+			<h3>Retro-virus treatments:</h3>
+			<<if (getSlave($AS).indentureRestrictions >= 1)>>
+				<div>
+					<span class="note">Modification at a genetic level clearly violates $his indenture contract</span>
+				</div>
+			<<elseif getSlave($AS).health.health < 0>>
+				<div>
+					<span class="note">$He's too unhealthy to undergo gene therapy</span>
+				</div>
+			<<else>>
+				<div>
+					<<if $arcologies[0].childhoodFertilityInducedNCSResearch == 1>>
+						<<if getSlave($AS).geneMods.NCS == 0>>
+							[[Induced NCS treatment|Surgery Degradation][getSlave($AS).geneMods.NCS = 1,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),80), getSlave($AS).chem += 40,$surgeryType = "retrograde virus injection NCS"]] <span class="note">This will induce <span class="orange">NCS</span> in $his genetic code</span>
+						<<else>>
+							<span class="note">$He already has Induced <span class="orange">NCS</span></span>
+						<</if>>
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.uFace == 2>>
-					[[Prevent passing of hideous faces|Surgery Degradation][getSlave($AS).geneticQuirks.uFace = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<</if>>
-			</div>
+				<div>
+					<<if $RapidCellGrowthFormula == 1>>
+						<<if getSlave($AS).geneMods.rapidCellGrowth == 0>>
+							[[Increased elasticity treatment|Surgery Degradation][getSlave($AS).geneMods.rapidCellGrowth = 1,cashX(forceNeg($surgeryCost * 4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "elasticity treatment"]] <span class="note">This will alter $his genetic code to encourage $his body to stretch</span>
+						<<else>>
+							<span class="note">$He already has received the plasticity increasing elasticity treatment</span>
+						<</if>>
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.hyperFertility == 2>>
-					[[Correct genetic hyper fertility|Surgery Degradation][getSlave($AS).geneticQuirks.hyperFertility = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.hyperFertility == 1 && $geneticMappingUpgrade >= 2>>
-					[[Hyper fertility activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.hyperFertility = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Hyper fertility carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.hyperFertility = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced hyper fertility treatment|Surgery Degradation][getSlave($AS).geneticQuirks.hyperFertility = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">inhumanly high fertility</span> in $his genetic code</span>
-				<</if>>
-			</div>
+				<div>
+					<<if getSlave($AS).geneticQuirks.albinism == 2>>
+						[[Albinism prevention treatment|Surgery Degradation][induceAlbinism(getSlave($AS), 0), cashX(forceNeg($surgeryCost * 4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 40), getSlave($AS).chem += 100, $surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.albinism == 1 && $geneticMappingUpgrade >= 2>>
+						[[Albinism activation treatment|Surgery Degradation][induceAlbinism(getSlave($AS), 2), cashX(forceNeg($surgeryCost * 4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 40), getSlave($AS).chem += 100, $surgeryType = "gene treatment"]] <span class="note">Will not have an active effect</span>
+						| [[Albinism carrier corrective treatment|Surgery Degradation][induceAlbinism(getSlave($AS), 0), cashX(forceNeg($surgeryCost * 4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced albinism treatment|Surgery Degradation][induceAlbinism(getSlave($AS), 2), cashX(forceNeg($surgeryCost * 10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">albinism</span> in $his genetic code</span>
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.fertility == 2>>
-					[[Correct heightened fertility|Surgery Degradation][getSlave($AS).geneticQuirks.fertility = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.fertility == 1 && $geneticMappingUpgrade >= 2>>
-					[[Heightened fertility activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.fertility = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Heightened fertility carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.fertility = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced heightened fertility treatment|Surgery Degradation][getSlave($AS).geneticQuirks.fertility = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">heightened fertility</span> in $his genetic code</span>
-				<</if>>
-			</div>
+				<div>
+					<<if getSlave($AS).geneticQuirks.androgyny == 2>>
+						[[Androgyny correction treatment|Surgery Degradation][getSlave($AS).geneticQuirks.androgyny = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.androgyny == 1 && $geneticMappingUpgrade >= 2>>
+						[[Androgyny activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.androgyny = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Androgyny carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.androgyny = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced androgyny treatment|Surgery Degradation][getSlave($AS).geneticQuirks.androgyny = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">natural androgyny</span> in $his genetic code</span>
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.superfetation == 2>>
-					[[Correct ova release during pregnancy|Surgery Degradation][getSlave($AS).geneticQuirks.superfetation = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.superfetation == 1 && $geneticMappingUpgrade >= 2>>
-					[[Superfetation activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.superfetation = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Superfetation carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.superfetation = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced superfetation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.superfetation = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">superfetation</span> in $his genetic code</span>
-				<</if>>
-			</div>
+				<div>
+					<<if getSlave($AS).geneticQuirks.dwarfism == 2>>
+						[[Dwarfism correction treatment|Surgery Degradation][getSlave($AS).geneticQuirks.dwarfism = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.dwarfism == 1 && $geneticMappingUpgrade >= 2>>
+						[[Dwarfism activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.dwarfism = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Dwarfism carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.dwarfism = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced dwarfism treatment|Surgery Degradation][getSlave($AS).geneticQuirks.dwarfism = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">dwarfism</span> in $his genetic code</span>
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.gigantomastia >= 2>>
-					[[Correct gigantomastia|Surgery Degradation][getSlave($AS).geneticQuirks.gigantomastia = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.gigantomastia == 1 && $geneticMappingUpgrade >= 2>>
-					[[Gigantomastia activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantomastia = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Gigantomastia carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantomastia = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.gigantomastia == 0 && $geneticFlawLibrary == 1>>
-					[[Induced gigantomastia treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantomastia = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">gigantomastia</span> in $his genetic code</span>
-				<</if>>
-			</div>
+				<div>
+					<<if getSlave($AS).geneticQuirks.gigantism == 2>>
+						[[Gigantism correction treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantism = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.gigantism == 1 && $geneticMappingUpgrade >= 2>>
+						[[Gigantism activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantism = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Gigantism carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantism = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced gigantism treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantism = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">gigantism</span> in $his genetic code</span>
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.macromastia >= 2>>
-					[[Correct macromastia|Surgery Degradation][getSlave($AS).geneticQuirks.macromastia = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.macromastia == 1 && $geneticMappingUpgrade >= 2>>
-					[[Macromastia activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.macromastia = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Macromastia carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.macromastia = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.macromastia == 0 && $geneticFlawLibrary == 1>>
-					[[Induced macromastia treatment|Surgery Degradation][getSlave($AS).geneticQuirks.macromastia = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">macromastia</span> in $his genetic code</span>
-				<</if>>
-			</div>
+				<div>
+					<<if getSlave($AS).geneticQuirks.pFace == 2>>
+						[[Prevent passing of perfect faces|Surgery Degradation][getSlave($AS).geneticQuirks.pFace = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.rearLipedema == 2>>
-					[[Correct lipedema|Surgery Degradation][getSlave($AS).geneticQuirks.rearLipedema = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.rearLipedema == 1 && $geneticMappingUpgrade >= 2>>
-					[[Lipedema activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.rearLipedema = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Lipedema carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.rearLipedema = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced lipedema treatment|Surgery Degradation][getSlave($AS).geneticQuirks.rearLipedema = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">lipedema</span> in $his genetic code</span>
-				<</if>>
-			</div>
+				<div>
+					<<if getSlave($AS).geneticQuirks.uFace == 2>>
+						[[Prevent passing of hideous faces|Surgery Degradation][getSlave($AS).geneticQuirks.uFace = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.wellHung == 2>>
-					[[Correct genetic predisposition for large genitals|Surgery Degradation][getSlave($AS).geneticQuirks.wellHung = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.wellHung == 1 && $geneticMappingUpgrade >= 2>>
-					[[Enhanced penile development activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wellHung = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Enhanced penile development carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wellHung = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced penile development treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wellHung = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">penile development</span> in $his genetic code</span>
-				<</if>>
-			</div>
+				<div>
+					<<if getSlave($AS).geneticQuirks.hyperFertility == 2>>
+						[[Correct genetic hyper fertility|Surgery Degradation][getSlave($AS).geneticQuirks.hyperFertility = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.hyperFertility == 1 && $geneticMappingUpgrade >= 2>>
+						[[Hyper fertility activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.hyperFertility = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Hyper fertility carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.hyperFertility = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced hyper fertility treatment|Surgery Degradation][getSlave($AS).geneticQuirks.hyperFertility = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">inhumanly high fertility</span> in $his genetic code</span>
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.wGain == 2>>
-					[[Correct hyperleptinemia|Surgery Degradation][getSlave($AS).geneticQuirks.wGain = 0, getSlave($AS).weightDirection = 0, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.wGain == 1 && $geneticMappingUpgrade >= 2>>
-					[[Hyperleptinemia activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wGain = 2, getSlave($AS).weightDirection = 1, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Hyperleptinemia carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wGain = 0, getSlave($AS).weightDirection = 0, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced hyperleptinemia treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wGain = 2, getSlave($AS).weightDirection = 1, cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">hyperleptinemia</span> in $his genetic code</span>
-				<</if>>
-			</div>
+				<div>
+					<<if getSlave($AS).geneticQuirks.fertility == 2>>
+						[[Correct heightened fertility|Surgery Degradation][getSlave($AS).geneticQuirks.fertility = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.fertility == 1 && $geneticMappingUpgrade >= 2>>
+						[[Heightened fertility activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.fertility = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Heightened fertility carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.fertility = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced heightened fertility treatment|Surgery Degradation][getSlave($AS).geneticQuirks.fertility = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">heightened fertility</span> in $his genetic code</span>
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.wLoss == 2>>
-					[[Correct hypoleptinemia|Surgery Degradation][getSlave($AS).geneticQuirks.wLoss = 0, getSlave($AS).weightDirection = 0, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.wLoss == 1 && $geneticMappingUpgrade >= 2>>
-					[[Hypoleptinemia activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wLoss = 2, getSlave($AS).weightDirection = -1, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Hypoleptinemia carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wLoss = 0, getSlave($AS).weightDirection = 0, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced hypoleptinemia treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wLoss = 2, getSlave($AS).weightDirection = -1, cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">hypoleptinemia</span> in $his genetic code</span>
-				<</if>>
-			</div>
+				<div>
+					<<if getSlave($AS).geneticQuirks.superfetation == 2>>
+						[[Correct ova release during pregnancy|Surgery Degradation][getSlave($AS).geneticQuirks.superfetation = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.superfetation == 1 && $geneticMappingUpgrade >= 2>>
+						[[Superfetation activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.superfetation = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Superfetation carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.superfetation = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced superfetation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.superfetation = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">superfetation</span> in $his genetic code</span>
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.mGain == 2>>
-					[[Correct myotonic hypertrophy|Surgery Degradation][getSlave($AS).geneticQuirks.mGain = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.mGain == 1 && $geneticMappingUpgrade >= 2>>
-					[[Myotonic hypertrophy activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mGain = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Myotonic hypertrophy carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mGain = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced myotonic hypertrophy treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mGain = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">myotonic hypertrophy</span> in $his genetic code</span>
-				<</if>>
-			</div>
+				<div>
+					<<if getSlave($AS).geneticQuirks.gigantomastia >= 2>>
+						[[Correct gigantomastia|Surgery Degradation][getSlave($AS).geneticQuirks.gigantomastia = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.gigantomastia == 1 && $geneticMappingUpgrade >= 2>>
+						[[Gigantomastia activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantomastia = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Gigantomastia carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantomastia = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.gigantomastia == 0 && $geneticFlawLibrary == 1>>
+						[[Induced gigantomastia treatment|Surgery Degradation][getSlave($AS).geneticQuirks.gigantomastia = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">gigantomastia</span> in $his genetic code</span>
+					<</if>>
+				</div>
 
-			<div>
-				<<if getSlave($AS).geneticQuirks.mLoss == 2>>
-					[[Correct myotonic dystrophy|Surgery Degradation][getSlave($AS).geneticQuirks.mLoss = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif getSlave($AS).geneticQuirks.mLoss == 1 && $geneticMappingUpgrade >= 2>>
-					[[Myotonic dystrophy activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mLoss = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-					| [[Myotonic dystrophy carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mLoss = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
-				<<elseif $geneticFlawLibrary == 1>>
-					[[Induced myotonic dystrophy treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mLoss = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">myotonic dystrophy</span> in $his genetic code</span>
-				<</if>>
-			</div>
-		<</if>>
-	<</if>>
-</div>
-</div>
+				<div>
+					<<if getSlave($AS).geneticQuirks.macromastia >= 2>>
+						[[Correct macromastia|Surgery Degradation][getSlave($AS).geneticQuirks.macromastia = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.macromastia == 1 && $geneticMappingUpgrade >= 2>>
+						[[Macromastia activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.macromastia = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Macromastia carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.macromastia = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.macromastia == 0 && $geneticFlawLibrary == 1>>
+						[[Induced macromastia treatment|Surgery Degradation][getSlave($AS).geneticQuirks.macromastia = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">macromastia</span> in $his genetic code</span>
+					<</if>>
+				</div>
 
-<div id="ExtremeSurgery" class="tabcontent">
-<div class="content">
-	/*Fuckdoll*/
-	<div>
-		<<if $seeExtreme == 1>>
-			<<if getSlave($AS).fuckdoll == 0>>
-				$He is a normal sex slave, not a living sex toy.
-				<div class="choices">
-					<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
-						[[Encase in a Fuckdoll suit|Surgery Degradation][beginFuckdoll(getSlave($AS)), $surgeryType = "fuckdoll"]] <span class="note">This will greatly restrict $him</span>
+				<div>
+					<<if getSlave($AS).geneticQuirks.rearLipedema == 2>>
+						[[Correct lipedema|Surgery Degradation][getSlave($AS).geneticQuirks.rearLipedema = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.rearLipedema == 1 && $geneticMappingUpgrade >= 2>>
+						[[Lipedema activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.rearLipedema = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Lipedema carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.rearLipedema = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced lipedema treatment|Surgery Degradation][getSlave($AS).geneticQuirks.rearLipedema = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">lipedema</span> in $his genetic code</span>
 					<</if>>
 				</div>
-			<<else>>
-				$He is encased in a Fuckdoll suit.
-				<div class="choices">
-					[["Extract " + $him|Surgery Degradation][getSlave($AS).fuckdoll = 0, getSlave($AS).clothes = "no clothing", getSlave($AS).shoes = "none", $surgeryType = "fuckdollExtraction"]]
+
+				<div>
+					<<if getSlave($AS).geneticQuirks.wellHung == 2>>
+						[[Correct genetic predisposition for large genitals|Surgery Degradation][getSlave($AS).geneticQuirks.wellHung = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.wellHung == 1 && $geneticMappingUpgrade >= 2>>
+						[[Enhanced penile development activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wellHung = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Enhanced penile development carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wellHung = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced penile development treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wellHung = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">penile development</span> in $his genetic code</span>
+					<</if>>
+				</div>
+
+				<div>
+					<<if getSlave($AS).geneticQuirks.wGain == 2>>
+						[[Correct hyperleptinemia|Surgery Degradation][getSlave($AS).geneticQuirks.wGain = 0, getSlave($AS).weightDirection = 0, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.wGain == 1 && $geneticMappingUpgrade >= 2>>
+						[[Hyperleptinemia activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wGain = 2, getSlave($AS).weightDirection = 1, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Hyperleptinemia carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wGain = 0, getSlave($AS).weightDirection = 0, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced hyperleptinemia treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wGain = 2, getSlave($AS).weightDirection = 1, cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">hyperleptinemia</span> in $his genetic code</span>
+					<</if>>
+				</div>
+
+				<div>
+					<<if getSlave($AS).geneticQuirks.wLoss == 2>>
+						[[Correct hypoleptinemia|Surgery Degradation][getSlave($AS).geneticQuirks.wLoss = 0, getSlave($AS).weightDirection = 0, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.wLoss == 1 && $geneticMappingUpgrade >= 2>>
+						[[Hypoleptinemia activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wLoss = 2, getSlave($AS).weightDirection = -1, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Hypoleptinemia carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wLoss = 0, getSlave($AS).weightDirection = 0, cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced hypoleptinemia treatment|Surgery Degradation][getSlave($AS).geneticQuirks.wLoss = 2, getSlave($AS).weightDirection = -1, cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">hypoleptinemia</span> in $his genetic code</span>
+					<</if>>
+				</div>
+
+				<div>
+					<<if getSlave($AS).geneticQuirks.mGain == 2>>
+						[[Correct myotonic hypertrophy|Surgery Degradation][getSlave($AS).geneticQuirks.mGain = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.mGain == 1 && $geneticMappingUpgrade >= 2>>
+						[[Myotonic hypertrophy activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mGain = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Myotonic hypertrophy carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mGain = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced myotonic hypertrophy treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mGain = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">myotonic hypertrophy</span> in $his genetic code</span>
+					<</if>>
+				</div>
+
+				<div>
+					<<if getSlave($AS).geneticQuirks.mLoss == 2>>
+						[[Correct myotonic dystrophy|Surgery Degradation][getSlave($AS).geneticQuirks.mLoss = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif getSlave($AS).geneticQuirks.mLoss == 1 && $geneticMappingUpgrade >= 2>>
+						[[Myotonic dystrophy activation treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mLoss = 2,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+						| [[Myotonic dystrophy carrier corrective treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mLoss = 0,cashX(forceNeg($surgeryCost*4), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 100,$surgeryType = "gene treatment"]]
+					<<elseif $geneticFlawLibrary == 1>>
+						[[Induced myotonic dystrophy treatment|Surgery Degradation][getSlave($AS).geneticQuirks.mLoss = 2,cashX(forceNeg($surgeryCost*10), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),40), getSlave($AS).chem += 40,$surgeryType = "gene treatment"]] <span class="note">This will induce <span class="orange">myotonic dystrophy</span> in $his genetic code</span>
+					<</if>>
 				</div>
 			<</if>>
 		<</if>>
 	</div>
+</div>
 
-	/*Scorch mind*/
-	<div>
-		<<if ($seeExtreme == 1)>>
-			<<if getSlave($AS).fetish != "mindbroken">>
-				$He is mentally competent.
-			<<elseif getSlave($AS).fetish == "mindbroken">>
-				$His mind is gone; $he has either been chemically lobotomized, or has lost $his mind due to extreme abuse.
+<div id="ExtremeSurgery" class="tabcontent">
+	<div class="content">
+		/* 000-250-006 */
+		<<if $seeImages == 1>>
+			<<if $imageChoice == 1>>
+				<div class="imageRef lrgVector"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
+			<<else>>
+				<div class="imageRef lrgRender"><div class="mask">&nbsp;</div><<= SlaveArt(getSlave($AS), 3, 0)>></div>
 			<</if>>
-			<div class="choices">
-				<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
-					<<if getSlave($AS).fetish != "mindbroken">>
-						[[Chemically lobotomize|Surgery Degradation][getSlave($AS).fetish = "mindbroken",getSlave($AS).fetishKnown = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "mindbreak"]]
-						<span class="note">Warning: this is permanent and irreversible. It will destroy $his will and $his ability to remember anything but the simplest skills.</span>
-					<</if>>
-				<</if>>
-			</div>
 		<</if>>
-	</div>
+		/* 000-250-006 */
+		/*Fuckdoll*/
+		<div>
+			<<if $seeExtreme == 1>>
+				<<if getSlave($AS).fuckdoll == 0>>
+					$He is a normal sex slave, not a living sex toy.
+					<div class="choices">
+						<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
+							[[Encase in a Fuckdoll suit|Surgery Degradation][beginFuckdoll(getSlave($AS)), $surgeryType = "fuckdoll"]] <span class="note">This will greatly restrict $him</span>
+						<</if>>
+					</div>
+				<<else>>
+					$He is encased in a Fuckdoll suit.
+					<div class="choices">
+						[["Extract " + $him|Surgery Degradation][getSlave($AS).fuckdoll = 0, getSlave($AS).clothes = "no clothing", getSlave($AS).shoes = "none", $surgeryType = "fuckdollExtraction"]]
+					</div>
+				<</if>>
+			<</if>>
+		</div>
 
-	/*Bodyswap*/
-	<div>
-		<<if $bodyswapAnnounced == 1 && getSlave($AS).indenture < 0>>
-			<<if getSlave($AS).bodySwap == 0>>
-				$He is in $his native body.
-			<<elseif getSlave($AS).origBodyOwner != "">>
-				$He currently occupies <<print getSlave($AS).origBodyOwner>>'s body.
-			<<else>>
-				$He is no longer in $his native body.
+		/*Scorch mind*/
+		<div>
+			<<if ($seeExtreme == 1)>>
+				<<if getSlave($AS).fetish != "mindbroken">>
+					$He is mentally competent.
+				<<elseif getSlave($AS).fetish == "mindbroken">>
+					$His mind is gone; $he has either been chemically lobotomized, or has lost $his mind due to extreme abuse.
+				<</if>>
+				<div class="choices">
+					<<if getSlave($AS).indentureRestrictions < 1 && (getSlave($AS).breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
+						<<if getSlave($AS).fetish != "mindbroken">>
+							[[Chemically lobotomize|Surgery Degradation][getSlave($AS).fetish = "mindbroken",getSlave($AS).fetishKnown = 1,cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS),20),$surgeryType = "mindbreak"]]
+							<span class="note">Warning: this is permanent and irreversible. It will destroy $his will and $his ability to remember anything but the simplest skills.</span>
+						<</if>>
+					<</if>>
+				</div>
 			<</if>>
-			<div class="choices">
-				<<if getSlave($AS).indenture == -1>>
-					[["Swap " + $his + " body with another of your stock"|Slave Slave Swap Workaround]]
+		</div>
+
+		/*Bodyswap*/
+		<div>
+			<<if $bodyswapAnnounced == 1 && getSlave($AS).indenture < 0>>
+				<<if getSlave($AS).bodySwap == 0>>
+					$He is in $his native body.
+				<<elseif getSlave($AS).origBodyOwner != "">>
+					$He currently occupies <<print getSlave($AS).origBodyOwner>>'s body.
 				<<else>>
-					<span class="note">Indentured servants must remain in their own bodies.</span>
+					$He is no longer in $his native body.
 				<</if>>
-			</div>
-		<<elseif $cheatMode == 1>>
-			<div class="choices">
-				[[Force enable bodyswapping|Remote Surgery][$bodyswapAnnounced = 1]]
-			</div>
-		<</if>>
+				<div class="choices">
+					<<if getSlave($AS).indenture == -1>>
+						[["Swap " + $his + " body with another of your stock"|Slave Slave Swap Workaround]]
+					<<else>>
+						<span class="note">Indentured servants must remain in their own bodies.</span>
+					<</if>>
+				</div>
+			<<elseif $cheatMode == 1>>
+				<div class="choices">
+					[[Force enable bodyswapping|Remote Surgery][$bodyswapAnnounced = 1]]
+				</div>
+			<</if>>
+		</div>
 	</div>
 </div>
-</div>
diff --git a/src/uncategorized/repBudget.tw b/src/uncategorized/repBudget.tw
index 7e5cbc4f78e8c0c7dff98be055ff067bc7501b8b..ce03bf981b20c0ae38437923aa281ed3d04e36ae 100644
--- a/src/uncategorized/repBudget.tw
+++ b/src/uncategorized/repBudget.tw
@@ -24,7 +24,7 @@
 <<set _options = new App.UI.OptionsGroup()>>
 <<run _options.addOption("", "repBudget", $showAllEntries)
 .addValue("Normal", 0).on().addValue("Show Empty Entries", 1).neutral()>>
-<<print App.UI.DOM.includeDOM(_options.render())>>
+<<includeDOM _options.render()>>
 
 /* Table of Totals */
 <<if ndef $lastWeeksRepIncome>>
diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw
index 3fe8dfad4dc104f5565bae2a8b01f05225ec2483..0bcfe68a2dab80763b62519d42ee48de3170cdf3 100644
--- a/src/uncategorized/saLiveWithHG.tw
+++ b/src/uncategorized/saLiveWithHG.tw
@@ -372,6 +372,8 @@
 			<<else>>
 				$HeadGirl.slaveName promptly aborts the child growing in $slaves[$i].slaveName since _he2 prefers _his2 <<= $girl>>s not harboring someone else's child or loaded down with _his2 own unwanted spawn.
 				<<run TerminatePregnancy($slaves[$i])>>
+				<<set $slaves[$i].counter.abortions++>>
+				<<set $abortionsTotal++>>
 			<</if>>
 		<</if>>
 	<</if>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index c85b4107c7534a3ba1e69e1336633dcb9bcea6f5..33af59b1cc4516c5495954a7c4930042b8bb452b 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -9047,6 +9047,8 @@
 			<<if $slaves[$i].pregSource != -1 && $slaves[$i].pregSource != -6>>
 				$slaves[$i].slaveName's weekly health checkup revealed $he is pregnant with an unacceptable child. @@.red;Its life has been terminated, you have been fined <<print cashFormat(100000)>>, and your rep among the Elite has been severely damaged.@@
 				<<run TerminatePregnancy($slaves[$i])>>
+				<<set $slaves[$i].counter.abortions++>>
+				<<set $abortionsTotal++>>
 				<<run cashX(-100000, "fines", $slaves[$i])>>
 				<<set $failedElite += 150>>
 				<<if $slaves[$i].abortionTat > -1>>
@@ -9178,6 +9180,8 @@
 						<</if>>
 					<</if>>
 					<<set TerminatePregnancy($slaves[$i])>>
+					<<set $slaves[$i].counter.abortions++>>
+					<<set $abortionsTotal++>>
 					<<if $slaves[$i].abortionTat > -1>>
 						<<set $slaves[$i].abortionTat++>>
 						The temporary tattoo of a child has been replaced with $his <<= ordinalSuffix($slaves[$i].abortionTat)>> crossed out infant.
diff --git a/src/uncategorized/seCoursing.tw b/src/uncategorized/seCoursing.tw
index 0882f6f08546a2f9aa2eac9c3f63e112131310f7..10aab1e74e25294cda3a196e1cd6e212bada920b 100644
--- a/src/uncategorized/seCoursing.tw
+++ b/src/uncategorized/seCoursing.tw
@@ -105,7 +105,9 @@ You lead your lurcher _activeLurcher.slaveName out on a leash, naked just like t
 	<<set $activeSlave.anus = 1>>
 	<<set $activeSlave.vagina = 0>>
 	<<set $activeSlave.counter.anal += 1, $analTotal += 1>>
-	<<set $activeSlave.preg = -1>>
+	<<if $activeSlave.pubertyXX > 0>>
+		<<set $activeSlave.preg = -1>>
+	<</if>>
 	<<set $activeSlave.ovaries = 1>>
 	<<set $activeSlave.skill.vaginal = 0>>
 	<<set $activeSlave.skill.oral = 0>>
@@ -162,7 +164,9 @@ You lead your lurcher _activeLurcher.slaveName out on a leash, naked just like t
 	<<set $activeSlave.anus = 1>>
 	<<set $activeSlave.vagina = 1>>
 	<<set $activeSlave.counter.anal += 1, $analTotal += 1>>
-	<<set $activeSlave.preg = -1>>
+	<<if $activeSlave.pubertyXX > 0>>
+		<<set $activeSlave.preg = -1>>
+	<</if>>
 	<<set $activeSlave.ovaries = 1>>
 	<<set $activeSlave.skill.vaginal = 15>>
 	<<set $activeSlave.skill.oral = 15>>
diff --git a/src/uncategorized/seLethalPit.tw b/src/uncategorized/seLethalPit.tw
index 51ce4fefb42b17e373f55bbcbb5567da4eac21de..6275d330b9b9ac084a85d082a00cd62e7261fa96 100644
--- a/src/uncategorized/seLethalPit.tw
+++ b/src/uncategorized/seLethalPit.tw
@@ -807,6 +807,7 @@ In any case, <<if $pitAnimal == 0>>both of the slaves have<<else>>the slave and
 	<</if>>
 
 	<<set _winner.counter.pitKills += 1>>
+	<<set _winner.counter.pitWins += 1>>
 	<<set $pitKillsTotal += 1>>
 
 	<<set $slaves[$slaveIndices[_winner.ID]] = _winner>>
@@ -821,3 +822,5 @@ In any case, <<if $pitAnimal == 0>>both of the slaves have<<else>>the slave and
 	<<set $activeSlave = getSlave(_loser.ID)>>
 	<<= removeActiveSlave() >>
 <</if>>
+
+<<set $pitFightsTotal++>>
\ No newline at end of file
diff --git a/src/uncategorized/seNonlethalPit.tw b/src/uncategorized/seNonlethalPit.tw
index 713d53c0879d85c69ec5411811eb66aebe8b3438..8ec6747a67b44dfbc212f91bdf00c41b0e541510 100644
--- a/src/uncategorized/seNonlethalPit.tw
+++ b/src/uncategorized/seNonlethalPit.tw
@@ -1031,3 +1031,7 @@
 		<<set $fighterIDs.push(_fighterOne.ID)>>
 	<</if>>
 <</if>>
+
+<<set _winner.counter.pitWins += 1>>
+<<set _loser.counter.pitLosses += 1>>
+<<set $pitFightsTotal++>>
\ No newline at end of file
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 83550af2493902931580e114b76664d95b73c113..8aa14a826137b1ac7578e65d03365a90ba471c7a 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -169,6 +169,10 @@
 				<span id="collar"></span>
 				/*<script>App.UI.Wardrobe.collar(getSlave(V.activeSlave.ID))</script>*/
 
+				<span id="faceAccessory"></span>
+
+				<span id="mouthAccessory"></span>
+
 				<span id="armAccessory"></span>
 				/*<script>App.UI.Wardrobe.armAccessory(getSlave(V.activeSlave.ID))</script>*/
 
diff --git a/src/uncategorized/summaryOptions.tw b/src/uncategorized/summaryOptions.tw
index 33378dbd662ebfa67d0e5b7be99835dfee53dc9b..4999d533ca7683a578afd6ba0dce66ce2b074a02 100644
--- a/src/uncategorized/summaryOptions.tw
+++ b/src/uncategorized/summaryOptions.tw
@@ -39,7 +39,7 @@
 	["How old they look", "visualAge"], ["Age of their body", "physicalAge"], ["Assignment", "assignment"], ["Weekly Income", "weeklyIncome"]])>>
 <</if>>
 
-<<print App.UI.DOM.includeDOM(_options.render())>>
+<<includeDOM _options.render()>>
 
 <h2>Individual panels</h2>
 Sample summary:
@@ -67,7 +67,7 @@ Sample summary:
 	.addValue("Shown", true).on().addValue("Hidden", false).off()>>
 <</if>>
 
-<<print App.UI.DOM.includeDOM(_options.render())>>
+<<includeDOM _options.render()>>
 
 <p style="font-style:italic">
 	[[FC Dev's preferred options|Summary Options ][$seeDesk = 0, $seeFCNN = 0, $sortSlavesBy = "devotion",$sortSlavesOrder = "descending",$sortSlavesMain = 0,$rulesAssistantMain = 1, $UI.slaveSummary.abbreviation = {devotion: 1, mental: 1, rules: 1, clothes: 2, health: 1, diet: 1, drugs: 1, hormoneBalance: 1, race: 1, genitalia: 1, physicals: 1, skills: 1, nationality: 1, rulesets: 1, clothes: 0, origins: 0} ,$abbreviateSidebar = 1]]
diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw
index 66c9faa27605e2950b953bd49ab01a52efdba21a..7263bf0f8be8aca102c60e14991ba052068e8c36 100644
--- a/src/utility/descriptionWidgetsStyle.tw
+++ b/src/utility/descriptionWidgetsStyle.tw
@@ -3744,10 +3744,6 @@ $His
 	<<switch $activeSlave.collar>>
 	<<case "uncomfortable leather">>
 		$He is wearing an uncomfortable leather collar with a useful steel ring in front.
-	<<case "dildo gag">>
-		$He is wearing a sturdy leather collar that continues up to restrict $his jaw as well. It holds a ring gag in $his mouth, into which slots a formidable inward-facing dildo that reaches down $his throat. It can be removed to facefuck $him.
-	<<case "massive dildo gag">>
-		$He is wearing a sturdy leather collar that continues up to restrict $his jaw as well. It acts as an anchor for an enormous inward-facing dildo that reaches deep down $his throat. The sheer size of the phallus forces $his mouth as wide as it will go and considerably bulges $his throat. Fortunately for $him, it is designed to allow $him to be able to breathe through $his nose; though when removed, the poor $girl finds $himself incapable of closing $his mouth for some time.
 	<<case "preg biometrics">>
 		<<if $activeSlave.pregSource > 0>>
 			<<set _daddy = findFather($activeSlave.pregSource), _daddy = _daddy.slaveName>>
@@ -3809,8 +3805,6 @@ $His
 		$He is wearing a tight silk ribbon fitted to $his neck, it is oddly elegant.
 	<<case "tight steel">>
 		$He is wearing a tight steel collar whose restricting metal touch $he cannot escape.
-	<<case "porcelain mask">>
-		$He is wearing a beautiful porcelain mask to hide $his unsightly facial features.
 	<<case "shock punishment">>
 		$He is wearing a utilitarian collar with a punishment device at $his throat to administer agonizing shocks.
 	<<case "neck corset">>
@@ -3829,12 +3823,10 @@ $His
 		$He is wearing a comfortable leather collar with a small steel cowbell at $his throat.
 	<<case "bowtie">>
 		$He is wearing the collar from a white formal shirt, and a black bowtie, though these conceal an actual collar that works perfectly well for restraint.
+	<<case "neck tie">>
+		$He is wearing a neck tie, though it conceals an actual collar that works perfectly well for restraint.
 	<<case "ancient Egyptian">>
 		$He is wearing a beautiful golden wesekh, a collar that spreads from $his neck out onto both shoulders and down $his front.
-	<<case "ball gag">>
-		$He is wearing a mouth filling, <<if $activeSlave.makeup == 3 || $activeSlave.makeup == 6 || $activeSlave.makeup == 8>>$activeSlave.hColor<<else>>red<</if>> ball-shaped gag that prevents $him from uttering a word while keeping $him uncomfortably aware of $his status.
-	<<case "bit gag">>
-		$He is wearing a jaw spreading, bar-shaped gag that prevents $him from speaking while keeping $him uncomfortably aware of $his status.
 	<<case "cruel retirement counter" "nice retirement counter">>
 		$He is wearing a <<if $activeSlave.collar == "cruel retirement counter">>heavy metal collar<<else>>nice collar, almost a necklace,<</if>> with a small numerical display reading
 		<<if $activeSlave.indenture > -1>>