diff --git a/.gitignore b/.gitignore
index 80e940d53ceb8941a04dc620ea36fd2fab27073c..83d689255c1a6ca609436b5e938cd4cd2f7b1b43 100644
--- a/.gitignore
+++ b/.gitignore
@@ -106,6 +106,9 @@ tsconfig.json
 .vscode/settings.json
 *.code-workspace
 
+# WebStorm
+.idea
+
 # misc
 fc-pregmod
 *.outline
diff --git a/Changelog.txt b/Changelog.txt
index 719b1dae36f0aad09394f47c6980dce66e21c0dd..69b109ab5b1567b8666af51c1c0b39542d8f4edb 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -9,9 +9,9 @@ Pregmod
 	-tweaks to the RA and facility workers
 	-altered gender fund bimbo law (it now focuses on lack of education instead)
 	-fixes and cleaning
-	
+
 	8/x/2019
-	
+
 	0
 	-large update to the nursery beta content
 	-fixes and cleaning
diff --git a/devNotes/Useful JS Function Documentation.txt b/devNotes/Useful JS Function Documentation.txt
index a5d9dba0246a4f70b1657edb3863e59348feaf19..7982ad975547bebdd12e35fd1b0107dfe2b541c8 100644
--- a/devNotes/Useful JS Function Documentation.txt	
+++ b/devNotes/Useful JS Function Documentation.txt	
@@ -257,6 +257,12 @@ SkillIncrease.Whore(slave, value)
 SkillIncrease.Entertain(slave, value)
 - Increases the slave's skill by value or 1. Returns a string if the skill is boosted over a threshold.
 
+surgeryAmp(slave, part) - Clean up variables connected to a specific body part that was amputated. For limbs see below.
+
+removeLimbs(slave, limb) - Remove limb(s) and clean up connected variables.
+attachLimbs(slave, limb, id) - Attach limb(s). Expects amputated limbs, will overwrite existing.
+- limb can be: "left arm", "right arm", "left leg", "right leg", "all"
+
 UtilJS [script]
 	Height.mean(nationality, race, genes, age) - returns the mean height for the given combination and age in years (>=2).
  Height.mean(nationality, race, genes) - returns the mean adult height for the given combination.
@@ -376,4 +382,4 @@ UtilJS [script]
 
 	jsNdef - A .js port of sugarcube's ndef.
 
-	jsDef - A .js port of sugarcube's def.
\ No newline at end of file
+	jsDef - A .js port of sugarcube's def.
diff --git a/src/SpecialForce/CheatEdit.tw b/src/Mods/SpecialForce/CheatEdit.tw
similarity index 100%
rename from src/SpecialForce/CheatEdit.tw
rename to src/Mods/SpecialForce/CheatEdit.tw
diff --git a/src/SpecialForce/ColonelSexDec.tw b/src/Mods/SpecialForce/ColonelSexDec.tw
similarity index 100%
rename from src/SpecialForce/ColonelSexDec.tw
rename to src/Mods/SpecialForce/ColonelSexDec.tw
diff --git a/src/SpecialForce/Firebase.tw b/src/Mods/SpecialForce/Firebase.tw
similarity index 97%
rename from src/SpecialForce/Firebase.tw
rename to src/Mods/SpecialForce/Firebase.tw
index 148000fef6ad19a1d0a9d7189aa498da91db6031..a8785139c504ece650963638b0e1b29d91ce7c6b 100644
--- a/src/SpecialForce/Firebase.tw
+++ b/src/Mods/SpecialForce/Firebase.tw
@@ -52,22 +52,22 @@
 		<<if $SF.UC.Lock < 1>> <br>
 			<<switch $SF.UC.Assign>>
 			<<case 0>>
-				<br>No soldiers are working undercover, which would primarily advance your cultural goals. [[Full time assignment|Firebase][$SF.UC.Lock = 1]]
+				<br>No soldiers are working undercover, which would primarily advance your cultural goals while also slightly boosting your reputation. [[Full time assignment|Firebase][$SF.UC.Lock = 1]]
 				<br>[[Reassign soldiers|Firebase][$SF.UC.Assign = -1]]
 			<<case 1>>
-				<br>A small section of soldiers are working undercover, which will primarily advance your cultural goals. [[Full time assignment|Firebase][$SF.UC.Lock = 1]]
+				<br>A small section of soldiers are working undercover, which will primarily advance your cultural goals while also slightly boosting your reputation. [[Full time assignment|Firebase][$SF.UC.Lock = 1]]
 				<br>[[Reassign soldiers|Firebase][$SF.UC.Assign = -1]]
 			<<case 2>>
-				<br>A large section of soldiers are working undercover, which will primarily advance your cultural goals. [[Full time assignment|Firebase][$SF.UC.Lock = 1]]
+				<br>A large section of soldiers are working undercover, which will primarily advance your cultural goals while also slightly boosting your reputation. [[Full time assignment|Firebase][$SF.UC.Lock = 1]]
 				<br>[[Reassign soldiers|Firebase][$SF.UC.Assign = -1]]
 			<<default>>
-				<br>Would you like to assign soldiers to undercover duty, which will primarily advance your cultural goals?
+				<br>Would you like to assign soldiers to undercover duty, which will primarily advance your cultural goals while also slightly boosting your reputation?
 				<br>[[Do not assign soldiers to work undercover|Firebase][$SF.UC.Assign = 0]]
 				<br>[[Assign a small section of soldiers to work undercover|Firebase][$SF.UC.Assign = 1]]
 				<br>[[Assign a large section of soldiers to work undercover|Firebase][$SF.UC.Assign = 2]]
 			<</switch>>
 		<<else>>
-			<br> <<if $SF.UC.Assign < 1>>''Zero''<<elseif $SF.UC.Assign < 2>>A ''small'' section<<else>>A ''large'' section<</if>> of the special force is assigned to undercover work, which will primarily advance your cultural goals. [[Re-allocate the units|Firebase][$SF.UC.Lock = 0]]
+			<br> <<if $SF.UC.Assign < 1>>''Zero''<<elseif $SF.UC.Assign < 2>>A ''small'' section<<else>>A ''large'' section<</if>> of the special force is assigned to undercover work, which will primarily advance your cultural goals while also slightly boosting your reputation. [[Re-allocate the units|Firebase][$SF.UC.Lock = 0]]
 		<</if>>
 
 		<<if $SF.Squad.Firebase > 5 && $secExpEnabled > 0 && $SFSupportLevel >= 4 && App.SecExp.battle.maxUnits() === 18 && App.SecExp.battle.deploySpeed() <= 10>>
diff --git a/src/SpecialForce/NamingColonel.tw b/src/Mods/SpecialForce/NamingColonel.tw
similarity index 100%
rename from src/SpecialForce/NamingColonel.tw
rename to src/Mods/SpecialForce/NamingColonel.tw
diff --git a/src/SpecialForce/Proposal.tw b/src/Mods/SpecialForce/Proposal.tw
similarity index 100%
rename from src/SpecialForce/Proposal.tw
rename to src/Mods/SpecialForce/Proposal.tw
diff --git a/src/SpecialForce/SpecialForce.js b/src/Mods/SpecialForce/SpecialForce.js
similarity index 99%
rename from src/SpecialForce/SpecialForce.js
rename to src/Mods/SpecialForce/SpecialForce.js
index 81e649e1615b9b7048b3fcbfae38dbf77c89e764..96b72ae2d045fd34049b3edb83d21d0eb8241ddf 100644
--- a/src/SpecialForce/SpecialForce.js
+++ b/src/Mods/SpecialForce/SpecialForce.js
@@ -15,7 +15,6 @@ App.SF.Init = function() {
 		V.SF.Gift = V.SF.Gift || 0;
 		V.SF.UC.Assign = V.SF.UC.Assign || 0;
 		V.SF.UC.Lock = V.SF.UC.Lock || 0;
-		V.SF.UC.num = V.SF.UC.num || 0;
 		V.SF.ROE = V.SF.ROE || "hold";
 		V.SF.Target = V.SF.Target || "recruit";
 		V.SF.Regs = V.SF.Regs || "strict";
@@ -60,8 +59,6 @@ App.SF.Init = function() {
 		V.SF.MercCon.Menials = V.SF.MercCon.Menials || 0;
 		V.SF.MercCon.TotalMenials = V.SF.MercCon.TotalMenials || 0;
 		V.SF.MercCon.TotalMercs = V.SF.MercCon.TotalMercs || 0;
-
-		App.SF.AAR(0);
 	}
 	// V.arcologies[0].SFRaid = 1; V.arcologies[0].SFRaidTarget = -1;
 	/* if (typeof V.SF.Facility === "undefined") {
@@ -167,7 +164,6 @@ App.SF.BC = function() {
 				Regs: V.securityForceAccountability,
 				Lower: V.securityForceName,
 				Caps: capFirstChar(V.securityForceName),
-				Subsidy: V.SubsidyActive
 			});
 			MainClean();
 			App.SF.NameCapsCheck();
@@ -346,6 +342,10 @@ App.SF.BC = function() {
 	ColonelClean();
 	TradeShowClean();
 	UnitsClean();
+	delete V.SF.Subsidy;
+	if (jsDef(V.SF.UC)) {
+		delete V.SF.UC.num;
+	}
 	if (V.week < 72 && V.SF.Active !== -1) { V.SF.Active = -1; }
 };
 /* usedOnce */
@@ -2220,7 +2220,16 @@ App.SF.fsIntegration = function(input = 'Menu', textDisplay = 100, text = `\n`)
 				r += `\nThe ${V.SF.Lower} still deploys into the old world to plunder as it pleases, but no longer for you. You receive no money from their exploits, and their total defiance and independence of you is a permanent stain on your reputation. Of course, you'll never have the needed military power to dislodge them, especially with all the redundant fortifications, crossfire envelopes, and myriad traps that paranoid bitch had built around each entrance ever since she went rouge. Trying to sabotage certain support beams from above to make the Firebase facility collapse in on itself could easily cause enough damage to topple other parts of the arcology too, and such a thing would be very difficult to cover up. In other words, you're stuck with them. The Firebase has become a permanent tumor on your Arcology and good name.`;
 				break;
 		}
-		let Obj = {Active: -2, Toggle: V.SF.Toggle, FS: {Tension: V.SF.FS.Tension, BadOutcome: BadOutcome}};
+		const Obj = {
+			Active: -2,
+			Toggle: V.SF.Toggle,
+			Squad:{Troops:V.SF.Squad.Troops},
+			Size:V.SF.Size,
+			FS: {
+				Tension: V.SF.FS.Tension,
+				BadOutcome: BadOutcome
+			}
+		};
 		V.SF = Obj;
 		return r;
 	} else if (input === 'BadOutcome_Firebase') {
@@ -2249,6 +2258,7 @@ App.SF.AAR = function(endWeekCall = 1) {
 	let profit = 0,
 		upkeep = 0,
 		income = 0,
+		SFSubsidy = 0,
 		r = ``;
 	if (V.SF.FS.Tension > 100 && endWeekCall > 0) {
 		if (V.SF.FS.BadOutcome === undefined) {
@@ -2274,10 +2284,8 @@ App.SF.AAR = function(endWeekCall = 1) {
 			NO = 1 + (V.SF.Size / 5),
 			N1 = 1 + (V.SF.Size / 5);
 
-		V.SF.UC.num = 0;
 		App.SF.Count();
-		let deaths = 0,
-			SFD = V.SF.Depravity;
+		let SFD = V.SF.Depravity;
 		if (profit < 1) {
 			cost.a = 10;
 		}
@@ -2300,14 +2308,6 @@ App.SF.AAR = function(endWeekCall = 1) {
 					S.Troops -= Math.ceil(jsRandom(1.10 * S.Troops / 1000, -1.15 * S.Troops / 1000));
 				}
 			}
-			if (V.SF.UC.Assign > 0) {
-				if (V.SF.UC.Assign < 2) {
-					V.SF.UC.num = Math.ceil(S.Troops * 0.01);
-				} else {
-					V.SF.UC.num = Math.ceil(S.Troops * 0.05);
-				}
-			}
-			S.Troops -= V.SF.UC.num;
 		}
 		if (S.Troops > 200) {
 			Trade += 0.05 * (S.Troops / 200);
@@ -2526,10 +2526,9 @@ App.SF.AAR = function(endWeekCall = 1) {
 
 		if (income >= target) {
 			profit = 1;
-			V.SF.Subsidy = 0;
 		} else {
 			profit = 0;
-			V.SF.Subsidy = 1;
+			SFSubsidy = 1;
 		}
 
 		if (endWeekCall > 0) {
@@ -2541,21 +2540,6 @@ App.SF.AAR = function(endWeekCall = 1) {
 				V.arcologies[0].prosperity = V.AProsperityCap;
 			}
 
-			if (S.Drugs >= 8 || S.Drugs >= 10) {
-				let survivalChance = 50;
-				if (S.Drugs >= 8) {
-					survivalChance -= 5;
-				} else if (S.Drugs >= 10) {
-					survivalChance += 5;
-				}
-
-				if (jsRandom(0, 100) > survivalChance) {
-					deaths = jsRandom(0, ((S.Drugs * 2) + 4));
-				}
-				if (deaths > 0) {
-					S.Troops -= deaths;
-				}
-			}
 			if (V.SF.UC.Assign === 1 && V.SF.UC.Lock < 1) {
 				V.SF.UC.Assign = 0;
 			}
@@ -2579,12 +2563,6 @@ App.SF.AAR = function(endWeekCall = 1) {
 			if (V.SF.UC.Assign > 0) {
 				r += `<br>A ${V.SF.UC.Assign < 2 ? 'small':'large'} portion of the force was assigned as ${V.SF.UC.Assign < 2 ? 'part':'full'} time undercover officers.`;
 			}
-			if (deaths > 0) {
-				r += ` <span class='red'>${deaths} soldiers fatally overdosed on the drug cocktail</span>`;
-				if (V.SF.MercCon.CanAttend === -1) {
-					r += `, The Colonel's much heavier than average drug use saves her from this side effect.`;
-				}
-			}
 
 			r += `<br>These activities have, overall, <span class='green'>improved your arcology's prosperity</span>.`;
 			r += ` The goods procured by ${V.SF.Lower} after accounting for the spoils retained by individual soldiers were `;
@@ -2651,7 +2629,11 @@ App.SF.AAR = function(endWeekCall = 1) {
 			}
 		}
 	}
-	return r;
+	if (endWeekCall > 0) {
+		return r;
+	} else {
+		return SFSubsidy;
+	}
 };
 
 App.SF.Count = function() {
@@ -2745,7 +2727,6 @@ App.SF.Count = function() {
 	V.SF.Size = C(V.SF.Size, 0, T.max);
 	T.T1 = 0;
 
-	T.SFSubsidy = 5000 * (1 + ((S.Troops / 100) + (V.SF.Size / 100)));
 	App.SF.NameCapsCheck();
 
 	if (V.SF.FS.Tension === -1) {
diff --git a/src/SpecialForce/TrickShotNight.tw b/src/Mods/SpecialForce/TrickShotNight.tw
similarity index 100%
rename from src/SpecialForce/TrickShotNight.tw
rename to src/Mods/SpecialForce/TrickShotNight.tw
diff --git a/src/SpecialForce/Upgrades.tw b/src/Mods/SpecialForce/Upgrades.tw
similarity index 100%
rename from src/SpecialForce/Upgrades.tw
rename to src/Mods/SpecialForce/Upgrades.tw
diff --git a/src/SpecialForce/WeeklyChoices.tw b/src/Mods/SpecialForce/WeeklyChoices.tw
similarity index 100%
rename from src/SpecialForce/WeeklyChoices.tw
rename to src/Mods/SpecialForce/WeeklyChoices.tw
diff --git a/src/SecExp/attackHandler.tw b/src/SecExp/attackHandler.tw
index 81292c168e6b19be8554bdf24652c9ccfa52540b..09e63c911cff92d8d156ff574180b7a128fc3339 100644
--- a/src/SecExp/attackHandler.tw
+++ b/src/SecExp/attackHandler.tw
@@ -323,9 +323,7 @@
 				<<set $slaves[_i].eyes = -2>>
 				<<set $slaves[_i].health -= 30>>
 			<<elseif $woundType == 3>>
-				<<set $slaves[_i].amp = 1>>
-				<<set $slaves[_i].missingArms = 3>>
-				<<set $slaves[_i].missingLegs = 3>>
+				<<run removeLimbs($slaves[_i], "all")>>
 				<<set $slaves[_i].health = -80>>
 			<<elseif $woundType >= 4>>
 				<<if $slaves[_i].health >= -60>>
@@ -451,9 +449,7 @@
 				<<set $slaves[_i].eyes = -2>>
 				<<set $slaves[_i].health -= 30>>
 			<<elseif $woundType == 3>>
-				<<set $slaves[_i].amp = 1>>
-				<<set $slaves[_i].missingArms = 3>>
-				<<set $slaves[_i].missingLegs = 3>>
+				<<run removeLimbs($slaves[_i], "all")>>
 				<<set $slaves[_i].health = -80>>
 			<<elseif $woundType >= 4>>
 				<<if $slaves[_i].health >= -60>>
diff --git a/src/SecExp/rebellionReport.tw b/src/SecExp/rebellionReport.tw
index 3b4a1b751bf6558f13c4e0ceb46ef9391106797c..5a7a341608deb886b7d43c0b40f45dbe07f74275 100644
--- a/src/SecExp/rebellionReport.tw
+++ b/src/SecExp/rebellionReport.tw
@@ -665,9 +665,7 @@
 					<<set $Concubine.eyes = -2>>
 				<<elseif $woundType == 3>>
 					an explosion near $him caused the loss of all $his limbs.
-					<<set $Concubine.amp = 1>>
-					<<set $Concubine.missingArms = 3>>
-					<<set $Concubine.missingLegs = 3>>
+					<<run removeLimbs($Concubine, "all")>>
 				<<elseif $woundType >= 4>>
 					a stray shot severely wounded $him.
 					<<if $Concubine.health >= -60>>
@@ -728,9 +726,7 @@
 				<<set $Bodyguard.eyes = -2>>
 			<<elseif $woundType == 3>>
 				An explosion near _him2 caused the loss of all _his2 limbs.
-				<<set $Bodyguard.amp = 1>>
-				<<set $Bodyguard.missingArms = 3>>
-				<<set $Bodyguard.missingLegs = 3>>
+				<<run removeLimbs($Bodyguard, "all")>>
 			<<elseif $woundType >= 4>>
 				A stray shot severely wounded _him2.
 				<<if $Bodyguard.health >= -60>>
@@ -838,9 +834,7 @@
 					<<set $Concubine.eyes = -2>>
 				<<elseif $woundType == 3>>
 					an explosion near $him caused the loss of all $his limbs.
-					<<set $Concubine.amp = 1>>
-					<<set $Concubine.missingArms = 3>>
-					<<set $Concubine,missingLegs = 3>>
+					<<run removeLimbs($Concubine, "all")>>
 				<<elseif $woundType >= 4>>
 					a stray shot severely wounded $him.
 					<<if $Concubine.health >= -60>>
@@ -949,9 +943,7 @@
 					<<set $Concubine.eyes = -2>>
 				<<elseif $woundType == 3>>
 					an explosion near $him caused the loss of all $his limbs.
-					<<set $Concubine.amp = 1>>
-					<<set $Concubine.missingArms = 3>>
-					<<set $Concubine.missingLegs = 3>>
+					<<run removeLimbs($Concubine, "all")>>
 				<<elseif $woundType >= 4>>
 					a stray shot severely wounded $him.
 					<<if $Concubine.health >= -60>>
diff --git a/src/art/vector/VectorArtJS.js b/src/art/vector/VectorArtJS.js
index e850e02a8e096801144d5b70a4b11855de52ff26..bf93e2aac601dcaf643c94f5f4fde67ef1aa15c0 100644
--- a/src/art/vector/VectorArtJS.js
+++ b/src/art/vector/VectorArtJS.js
@@ -2592,7 +2592,7 @@ App.Art.vectorArtElement = (function() {
 				res.appendChild(useSvg("Art_Vector_Pubic_Hair_Underarm_None"));
 				*/
 			} else if (slave.physicalAge <= 13) {
-				if (slave.pubicHStyle !== "waxed") {
+				if (slave.pubicHStyle !== "waxed" && slave.pubicHStyle !== "bald" && slave.pubicHStyle !== "hairless") {
 					res.appendChild(useSvg("Art_Vector_Pubic_Hair_Wispy"));
 				}
 			} else if (slave.clothes !== "a comfortable bodysuit") {
diff --git a/src/cheats/mod_EditSlaveCheat.tw b/src/cheats/mod_EditSlaveCheat.tw
index 2c300de95bad96e98aea3c4cc4fb6c62a720c6b6..8165b7bcb72d0e085d8d5421399624ab63571981 100644
--- a/src/cheats/mod_EditSlaveCheat.tw
+++ b/src/cheats/mod_EditSlaveCheat.tw
@@ -628,7 +628,9 @@ Custom sclera color: <<textbox "$tempSlave.sclerae" $tempSlave.sclerae>>
 <<radiobutton "$tempSlave.hipsImplant" 2>> Adv. Broadened
 
 <br><br>
-
+// Limbs cannot be modified currently. //
+/* TODO convert */
+/*
 ''Amputated (0:normal, 1: amputated, -1 to -5 prosthetic limbs):'' $tempSlave.amp
 <<textbox "$tempSlave.amp" $tempSlave.amp>>
 <br>
@@ -639,7 +641,7 @@ Custom sclera color: <<textbox "$tempSlave.sclerae" $tempSlave.sclerae>>
 <<radiobutton "$tempSlave.amp" -3>> Beauty prosthetic limbs
 <<radiobutton "$tempSlave.amp" -4>> Combat prosthetic limbs
 <<radiobutton "$tempSlave.amp" -5>> Cybernetic limbs
-
+*/
 <br><br>
 
 ''Genes (XX:female, XY:male):'' $tempSlave.genes
diff --git a/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw b/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw
index b935d57d6efe6242e91accd84cdbfc4cfd77b660..4cf757ee8aca34bef015f416aea65baccc3ac4b9 100644
--- a/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw
+++ b/src/cheats/mod_EditSlaveCheatDatatypeCleanupNew.tw
@@ -65,37 +65,33 @@
 	<<print "Voice surgery too high, voice surgery reset" >><br>
 	<<set $tempSlave.voiceImplant = 0>>
 <</if>>
-<<if $tempSlave.amp < -5>>
+/* TODO convert */
+/* <<if $tempSlave.amp < -5>>
 	<<print "Amputation value too low, reset to -5 (cybernetic limbs)">><br>
 	<<set $tempSlave.amp = -5>>
 <<elseif $tempSlave.amp > 1>>
 	<<print "Amputation value too high, reset to 1 (amputated)">><br>
 	<<set $tempSlave.amp = 1>>
 <</if>>
-<<if ($tempSlave.amp == 0) && ($tempSlave.PLimb > 0)>>
+*/
+<<if hasAnyNaturalLimbs($tempSlave) && ($tempSlave.PLimb > 0)>>
 	<<print "Slave has normal limbs, limb interface reset to 0 (no interface)">><br>
 	<<set $tempSlave.PLimb = 0>>
 <</if>>
-<<if ($tempSlave.PLimb == 0) && ($tempSlave.amp < 0)>>
-	<<print "Slave has no prosthetic limb interface, limbs reset to 1 (amputated)">>
-	<<set _tempLimbs = {type: 0, armsTat: 0, legsTat: 0}>>
-	<<set _tempLimbs.type = $tempSlave.amp, _tempLimbs.armsTat = $tempSlave.armsTat, _tempLimbs.legsTat = $tempSlave.legsTat>>
-	<<if !Array.isArray($tempSlave.readyLimbs)>>
-		<<set $tempSlave.readyLimbs = []>>
-	<</if>>
-	<<set $tempSlave.readyLimbs.push(_tempLimbs)>>
-	<<set $tempSlave.amp = 1>>
+<<if ($tempSlave.PLimb == 0) && hasAnyProstheticLimbs($tempSlave)>>
+	<<print "Slave has no prosthetic limb interface, remove all limbs">>
+	<<run removeLimbs($tempSlave, "all")>>
 <</if>>
-<<if ($tempSlave.amp != 0)>>
+<<if !hasAnyLegs($tempSlave)>>
+	<<set $tempSlave.heels = 0>>
 	<<set $tempSlave.heightImplant = 0>>
-	<<if $tempSlave.amp == 1>>
-		<<set $tempSlave.legsTat = 0>>
-		<<set $tempSlave.armsTat = 0>>
-		<<set $tempSlave.missingArms = 3>>
-		<<set $tempSlave.missingLegs = 3>>
-	<</if>>
+<</if>>
+<<if !hasAnyArms($tempSlave)>>
 	<<set $tempSlave.nails = 0>>
-	<<set $tempSlave.heels = 0>>
+<</if>>
+/* TODO rework */
+/*
+<<if ($tempSlave.amp != 0)>>
 	<<if $tempSlave.brand != 0>>
 		<<if ($tempSlave.brandLocation == "left upper arm") || ($tempSlave.brandLocation == "right upper arm") || ($tempSlave.brandLocation == "upper arms")>>
 			<<set $tempSlave.brand = 0>>
@@ -116,6 +112,7 @@
 		<</if>>
 	<</if>>
 <</if>>
+*/
 <<if (ndef $tempSlave.pubertyXX) && ($tempSlave.physicalAge >= $tempSlave.pubertyAgeXX)>>
 	<<set $tempSlave.pubertyXX = 1>>
 <<elseif (ndef $tempSlave.pubertyXX) && ($tempSlave.physicalAge < $tempSlave.pubertyAgeXX)>>
diff --git a/src/cheats/mod_editSlaveCheatNew.tw b/src/cheats/mod_editSlaveCheatNew.tw
index df0a80a526f39bc94d02d539bf8bb39063826723..535ad454374713b10eaf9c168b603c4361298c53 100644
--- a/src/cheats/mod_editSlaveCheatNew.tw
+++ b/src/cheats/mod_editSlaveCheatNew.tw
@@ -2251,6 +2251,9 @@
 		<<radiobutton "$tempSlave.hormoneBalance" 400>> Overwhelmingly feminine
 
 	<br>
+	// Cannot modify limbs currently //
+	/* TODO convert */
+	/*
 	''Amputated: ''
 	<<switch $tempSlave.amp>>
 	<<case 1>>@@.yellow;Amputated@@
@@ -2269,7 +2272,7 @@
 	<<radiobutton "$tempSlave.amp" -3>> Beauty prosthetic limbs
 	<<radiobutton "$tempSlave.amp" -4>> Combat prosthetic limbs
 	<<radiobutton "$tempSlave.amp" -5>> Cybernetic limbs
-
+*/
 	<br>
 	''Prostetic limb Interface:''
 	<<if $tempSlave.PLimb == 0>>@@.yellow;No Interface@@
diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index 017b6639779a8833a357e7a86ac79fab5d5375db..065701cbcf0c45862723cab36dd342d209ee10b4 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -243,7 +243,14 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 		r += `. Most of them `;
 		if (slave.sexQuality > 15) {
-			r += `were putty in ${his} hands.`;
+			r += `were putty in ${his} hand`;
+			if (hasBothArms(slave) || !hasAnyArms(slave)) {
+				r += `s`;
+				if (!hasAnyArms(slave)) {
+					r += `, so to speak`;
+				}
+			}
+			r += `.`;
 		} else if (slave.sexQuality > 10) {
 			r += `greatly enjoyed ${his} services.`;
 		} else if (slave.sexQuality > 5) {
diff --git a/src/facilities/nursery/nurseryDatatypeCleanup.js b/src/facilities/nursery/nurseryDatatypeCleanup.js
index e3236ee1081781123a314e66804b18ea3fa1a405..f31cc2872b98fe6e6379824a1d2e8c438f138745 100644
--- a/src/facilities/nursery/nurseryDatatypeCleanup.js
+++ b/src/facilities/nursery/nurseryDatatypeCleanup.js
@@ -290,9 +290,18 @@ App.Facilities.Nursery.ChildDatatypeCleanup = function(child) {
 		if (typeof child.eyewear !== "string") {
 			child.eyewear = "none";
 		}
-		child.brand = Math.clamp(+child.brand, 0, 1) || 0;
-		if (typeof child.brandLocation !== "string") {
-			child.brandLocation = 0;
+		if (typeof child.brand !== "object") {
+			let brand = {};
+			if (child.brand !== 0) {
+				brand["left buttock"] = child.brand;
+			}
+			child.brand = brand;
+		} else if (typeof child.brand === "object") { // Make sure key and value are strings
+			for (let [key, value] of Object.entries(child.brand)) {
+				if (typeof key !== "string" || typeof value !== "string") {
+					delete child.brand[key];
+				}
+			}
 		}
 		if (typeof child.markings !== "string") {
 			child.markings = "none";
diff --git a/src/facilities/nursery/nurseryWidgets.js b/src/facilities/nursery/nurseryWidgets.js
index 5db47bafdc2a354e1220ad10601f6e5e8ff2f58c..d98260afe64ad9339519fe37553e2eef3316e3ca 100644
--- a/src/facilities/nursery/nurseryWidgets.js
+++ b/src/facilities/nursery/nurseryWidgets.js
@@ -2555,7 +2555,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 			longImplants(child);
 			longLactation(child);
 			// longMods(child);
-			if (child.brand !== 0) {
+			if (!jQuery.isEmptyObject(child.brand)) {
 				r += `Branded. `;
 			}
 			r += `</span> `;
@@ -4741,7 +4741,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 	// 	} else {
 	// 		r += `Mods`;
 	// 	}
-	// 	if (child.brand !== 0) {
+	// 	if (!jQuery.isEmptyObject(child.brand)) {
 	// 		r += `Br`;
 	// 	}
 	// }
@@ -9143,10 +9143,9 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		if (V.showBodyMods) {
 			r += tats.dick(child);
 			r += piercings.dick(child);
-			r += App.Desc.brand(child, "penis");
-			r += App.Desc.brand(child, "left testicle");
-			r += App.Desc.brand(child, "right testicle");
 		}
+		r += App.Desc.brand(child, "penis");
+		r += App.Desc.brand(child, "testicle");
 
 		return r;
 	}
@@ -11523,15 +11522,10 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				}
 			}
 
-			r += App.Desc.brand(child, "right upper arm");
-			r += App.Desc.brand(child, "right lower arm");
-			r += App.Desc.brand(child, "right hand");
-			r += App.Desc.brand(child, "right wrist");
-
-			r += App.Desc.brand(child, "left upper arm");
-			r += App.Desc.brand(child, "left lower arm");
-			r += App.Desc.brand(child, "left wrist");
-			r += App.Desc.brand(child, "left hand");
+			r += App.Desc.brand(child, "upper arm");
+			r += App.Desc.brand(child, "lower arm");
+			r += App.Desc.brand(child, "hand");
+			r += App.Desc.brand(child, "wrist");
 
 			return r;
 		}
@@ -11693,9 +11687,6 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				}
 			}
 
-			// r += App.Desc.brand(child, "left breast");
-			// r += App.Desc.brand(child, "right breast");
-
 			return r;
 		}
 
@@ -11764,8 +11755,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				}
 			}
 
-			r += App.Desc.brand(child, "left buttock");
-			r += App.Desc.brand(child, "right buttock");
+			r += App.Desc.brand(child, "buttock");
 
 			return r;
 		}
@@ -11962,8 +11952,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				}
 			}
 
-			r += App.Desc.brand(child, "left shoulder");
-			r += App.Desc.brand(child, "right shoulder");
+			r += App.Desc.brand(child, "shoulder");
 
 			return r;
 		}
@@ -12505,9 +12494,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 					}
 			}
 
-			if (V.showBodyMods) {
-				r += App.Desc.brand(child, "pubic mound");
-			}
+			r += App.Desc.brand(child, "pubic mound");
 
 			if (!child.dick) {
 				if (child.clit > 0) {
@@ -14164,11 +14151,9 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		}
 	}
 
-	if (V.showBodyMods) {
-		if (["cheeks", "ears", "left cheek", "left ears", "neck", "right cheek", "right ears"].includes(child.brandLocation)) {
-			App.Desc.brand(child);
-		}
-	}
+	r += App.Desc.brand(child, "cheek");
+	r += App.Desc.brand(child, "ear");
+	r += App.Desc.brand(child, "neck");
 
 	/* OPEN FAMILY */
 
@@ -15111,11 +15096,10 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 
 	r += heel(child);
 
-	if (V.showBodyMods) {
-		if (["ankles", "back", "calves", "chest", "feet", "hands", "left ankle", "left calf", "left foot", "left hand", "left lower arm", "left shoulder", "left upper arm", "left wrist", "lower arms", "lower back", "right ankle", "right calf", "right foot", "right hand", "right lower arm", "right shoulder", "right upper arm", "right wrist", "shoulders", "upper arms", "wrists"].includes(child.brandLocation)) {
-			r += App.Desc.brand(child);
-		}
-	}
+	r += App.Desc.brand(child, "feet");
+	r += App.Desc.brand(child, "calf");
+	r += App.Desc.brand(child, "ankle");
+	r += App.Desc.brand(child, "extra");
 
 	r += skin(child);
 
@@ -15282,10 +15266,8 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 	if (V.showBodyMods) {
 		r += tats.boobs(child);
 	}
-	if (["left breast", "right breast"].includes(child.brandLocation)) {
-		r += App.Desc.brand(child, "breast");
-	}
-	r += App.Desc.brand(child);
+	r += App.Desc.brand(child, "chest");
+	r += App.Desc.brand(child, "breast");
 	r += shoulders(child);
 	r += App.Desc.nipples(child);
 	if (V.showBodyMods) {
@@ -15560,7 +15542,14 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.addict = 0,
 	child.age = child.actualAge,
 	child.ageImplant = 0,
-	child.amp = 0,
+	child.arm = {
+		left: new App.Entity.LimbState(),
+		right: new App.Entity.LimbState()
+	},
+	child.leg = {
+		left: new App.Entity.LimbState(),
+		right: new App.Entity.LimbState()
+	},
 	child.analArea = 0,
 	child.anus = 0,
 	child.anusPiercing = 0,
@@ -15593,8 +15582,7 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.boobsImplant = 0,
 	child.boobsImplantType = 0,
 	child.boobsTat = 0,
-	child.brand = 0,
-	child.brandLocation = 0,
+	child.brand = {},
 	child.breastMesh = 0,
 	child.breedingMark = 0,
 	child.butt = jsRandom(0, 3),
@@ -15733,9 +15721,7 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.makeup = 0,
 	child.markings = "none",
 	child.minorInjury = 0,
-	child.missingArms = 0,
 	child.missingEyes = 0,
-	child.missingLegs = 0,
 	child.mpreg = 0,
 	child.muscles = jsRandom(-10, 10),
 	child.nails = 0,
@@ -15831,7 +15817,6 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.premature = 0,
 	child.prematureBirth = 0,
 	child.prestige = 0,
-	child.pronoun = child.genes === "XX" ? "she" : "he",
 	child.prostate = 0,
 	child.pubertyAgeXX = 10,
 	child.pubertyAgeXY = 12,
@@ -15839,7 +15824,6 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.pubicHColor = "black",
 	child.pubicHStyle = "bushy",
 	child.pupil = "circular",
-	child.readyLimbs = [],
 	child.readyOva = 0,
 	child.rearAccessory = "none",
 	child.relationship = 0,
@@ -15911,6 +15895,7 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.weight = jsRandom(-10, 10),
 	child.womb = [],
 	child.wombImplant = "none";
+	generatePronouns(child);
 
 	return child;
 };
@@ -16189,6 +16174,15 @@ App.Facilities.Nursery.newChild = function newChild(child) {
 		}
 	}
 
+	child.arm = {
+		left: new App.Entity.LimbState(),
+		right: new App.Entity.LimbState()
+	},
+	child.leg = {
+		left: new App.Entity.LimbState(),
+		right: new App.Entity.LimbState()
+	},
+
 	if (child.override_Race !== 1) {
 		child.origRace = child.race;
 	}
@@ -16224,22 +16218,7 @@ App.Facilities.Nursery.newChild = function newChild(child) {
 	if (child.clone !== 0) {
 		child.canRecruit = 0;
 	}
-
-	if (child.dick > 0 && child.vagina === -1 && V.diversePronouns) {
-		child.pronoun = "he";
-		child.possessivePronoun = "his";
-		child.possessive = "his";
-		child.object = "him";
-		child.objectReflexive = "himself";
-		child.noun = "boy";
-	} else {
-		child.pronoun = "she";
-		child.possessivePronoun = "hers";
-		child.possessive = "her";
-		child.object = "her";
-		child.objectReflexive = "herself";
-		child.noun = "girl";
-	}
+	generatePronouns(child);
 	child.origin = `$He was born and raised in your arcology. `;
 	child.targetLocation = "slavery";
 	child.growTime = V.targetAgeNursery * 52;
@@ -17034,17 +17013,34 @@ App.Facilities.Nursery.ChildState = class ChildState {
 			* * 2: advanced interface
 			*/
 		this.PLimb = 0;
+		/*
+		 * legs of the slave
+		 * * type:0: no leg
+		 * * type:1: has leg
+		 * * 2: simple prosthetic
+		 * * 3: artificial leg - Sex
+		 * * 4: artificial leg - Beauty
+		 * * 5: artificial leg - Combat
+		 * * 6: swiss army leg
+		 */
+		this.leg = {
+			left: new App.Entity.LimbState(),
+			right: new App.Entity.LimbState()
+		};
 		/**
-		* is slave amputee
-		* * -5: swiss army limbs
-		* * -4: artificial limbs - Combat
-		* * -3: artificial limbs - Beauty
-		* * -2: artificial limbs - Sex
-		* * -1: artificial limbs
-		* * 0: no;
-		* * 1: yes
-		*/
-		this.amp = 0;
+		 * arms of the slave
+		 * * type:0: no arm
+		 * * type:1: has arm
+		 * * 2: simple prosthetic
+		 * * 3: artificial arm - Sex
+		 * * 4: artificial arm - Beauty
+		 * * 5: artificial arm - Combat
+		 * * 6: swiss army arm
+		 */
+		this.arm = {
+			left: new App.Entity.LimbState(),
+			right: new App.Entity.LimbState()
+		};
 		/** Are heels clipped
 		*
 		* 0: no, 1: yes */
@@ -18645,14 +18641,6 @@ App.Facilities.Nursery.ChildState = class ChildState {
 		*
 		* 0: none; 1: yes, left; 2: yes, right; 3: yes, both */
 		this.missingEyes = 0;
-		/** Are arms missing?
-		*
-		* 0: none; 1: yes, left; 2: yes, right; 3: yes, both */
-		this.missingArms = 0;
-		/** Are legs missing?
-		*
-		* 0: none; 1: yes, left; 2: yes, right; 3: yes, both */
-		this.missingLegs = 0;
 		/** Amount of cash paid to acquire the slave
 		*
 		* accepts negative numbers, 0, or 1.
diff --git a/src/init/dummy.tw b/src/init/dummy.tw
index adc443bc5ff14ace68715f33848be94dbad13b45..8b3b59f0a3056354d4a503ee9a7aea4d7063e9ba 100644
--- a/src/init/dummy.tw
+++ b/src/init/dummy.tw
@@ -21,7 +21,7 @@ $ArcologyNamesEugenics, $ArcologyNamesRepopulationist, $ArcologyNamesHedonisticD
 $LurcherSpeed
 $$i
 $activeLurcher
-$activeSlave.bodySwap, $activeSlave.custom.image.format, $activeSlave.custom.hairVector, $activeSlave.shoeColor, $activeSlave.newGamePlus, $activeSlave.nipplesAccessory, $activeSlave.slaveCost, $activeSlave.premature, $activeSlave.missingEyes, $activeSlave.missingArms, $activeSlave.missingLegs,
+$activeSlave.bodySwap, $activeSlave.custom.image.format, $activeSlave.custom.hairVector, $activeSlave.shoeColor, $activeSlave.newGamePlus, $activeSlave.nipplesAccessory, $activeSlave.slaveCost, $activeSlave.premature, $activeSlave.missingEyes,
 $activeSlave.pronoun,
 $activeSlave.sexAmount, $activeSlave.sexQuality
 $activeSlave.fertKnown
@@ -36,7 +36,6 @@ $Girl
 $corpPeopleEnslaved, $slaveAssets, $slaveAssetPrice, $corpProfit, $corpValue, $sharePrice, $oldSharePrice, $generalAssetPrice, $generalAssets, $entrapmentAssets, $entrapmentAssetPrice, $captureAssets, $captureAssetPrice, $trainingAssets, $trainingAssetPrice, $surgicalAssets, $surgicalAssetPrice, $drugAssets, $drugAssetPrice
 $TradeShowMenials
 $mammaryUseWeight
-$activeSlave.readyLimbs, _Slave.readyLimbs, $args[0].readyLimbs
 $brothelSpots
 $JobIDArray
 */
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index f347d871d253ea90b9c9e6d9389c094b5bb374e6..232b0566da7f86b3dce651fee2d2c13190b075d8 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -1371,7 +1371,7 @@ You should have received a copy of the GNU General Public License along with thi
 <<set $weatherToday = $niceWeather.random()>>
 
 <<set $customSlaveOrdered = 0>>
-<<set $customSlave = {age: 19, health: 0, muscles: 0, lips: 15, heightMod: "normal", weight: 0, face: 0, race: "white", skin: "left natural", boobs: 500, butt: 3, sex: 1, virgin: 0, dick: 2, balls: 2, clit: 0, labia: 0, vaginaLube: 1, analVirgin: 0, skills: 15, skill: {whore: 15, combat: 0}, intelligence: 0, intelligenceImplant: 0, nationality: "Stateless", amp: 0, missingArms: 0, missingLegs: 0, eyes: 1, hears: 0}>>
+<<set $customSlave = {age: 19, health: 0, muscles: 0, lips: 15, heightMod: "normal", weight: 0, face: 0, race: "white", skin: "left natural", boobs: 500, butt: 3, sex: 1, virgin: 0, dick: 2, balls: 2, clit: 0, labia: 0, vaginaLube: 1, analVirgin: 0, skills: 15, skill: {whore: 15, combat: 0}, intelligence: 0, intelligenceImplant: 0, nationality: "Stateless", leg: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, arm: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, eyes: 1, hears: 0}>>
 
 <<set $huskSlaveOrdered = 0>>
 <<set $huskSlave = {age: 18, nationality: "Stateless", race: "white", sex: 1, virgin: 0}>>
@@ -1523,4 +1523,4 @@ You should have received a copy of the GNU General Public License along with thi
 
 <<= App.SF.Init()>>
 
-<<goto "Alpha disclaimer">>
\ No newline at end of file
+<<goto "Alpha disclaimer">>
diff --git a/src/interaction/prostheticConfig.tw b/src/interaction/prostheticConfig.tw
index c24d1f946eba9202f0a37939109db08a9c6b1eb2..7a732cfbff4c4bc42de8a75e58878723887f004d 100644
--- a/src/interaction/prostheticConfig.tw
+++ b/src/interaction/prostheticConfig.tw
@@ -20,7 +20,7 @@
 <h1>Prosthetic Configuration</h1>
 
 This room is lined with shelves and cabinets, it could be easily mistaken for a storage room if it were not for the examination table in its center.<br>
-<<if $activeSlave.amp != 1>>
+<<if hasBothLegs($activeSlave)>>
 	Your slave $activeSlave.slaveName is obediently waiting for your instructions.
 <<else>>
 	Your slave $activeSlave.slaveName is lying on the table, waiting for your instructions.
@@ -152,55 +152,56 @@ This room is lined with shelves and cabinets, it could be easily mistaken for a
 	<br><br>
 	<<if $activeSlave.fuckdoll != 0>>
 		// A Fuckdoll can't use prosthetic limbs. //
-	<<elseif $activeSlave.amp == 0>>
+	<<elseif hasAnyNaturalLimbs($activeSlave)>>
 		// $He must be a quadruple amputee to attach prosthetic limbs. //
 	<<elseif $activeSlave.PLimb == 0>>
 		// $He must have a prosthetic interface installed to attach prosthetic limbs. //
 	<<else>>
-		<<if $activeSlave.amp < 0>>
+		/* Currently prosthetics are all or nothing; will be changed */
+		<<if getLeftArmID($activeSlave) > 1>>
 			//$He currently has
-			<<switch $activeSlave.amp>>
-			<<case -1>> <<= addA(setup.prosthetics.basicL.name)>>
-			<<case -2>> <<= addA(setup.prosthetics.sexL.name)>>
-			<<case -3>> <<= addA(setup.prosthetics.beautyL.name)>>
-			<<case -4>> <<= addA(setup.prosthetics.combatL.name)>>
-			<<case -5>> <<= addA(setup.prosthetics.cyberneticL.name)>>
+			<<switch getLeftArmID($activeSlave)>>
+			<<case 2>> <<= addA(setup.prosthetics.basicL.name)>>
+			<<case 3>> <<= addA(setup.prosthetics.sexL.name)>>
+			<<case 4>> <<= addA(setup.prosthetics.beautyL.name)>>
+			<<case 5>> <<= addA(setup.prosthetics.combatL.name)>>
+			<<case 6>> <<= addA(setup.prosthetics.cyberneticL.name)>>
 			<</switch>>
 			installed.//<br>
 			<<link "Detach <<= $his>> limbs" "Prosthetics Configuration">>
-				<<set $activeSlave.amp = 1, $activeSlave.missingArms = 3, $activeSlave.missingLegs = 3, $prostheticsConfig = "removeLimbs">>
+				<<set removeLimbs($activeSlave, "all"), $prostheticsConfig = "removeLimbs">>
 			<</link>>
 			<br><br>
 		<</if>>
-		/*TODO save .legsTat and .armsTat / link them to prosthetic*/
-		<<if $activeSlave.amp != -1 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "basicL"}) != -1>>
+		/* TODO save .legsTat and .armsTat / link them to prosthetic*/
+		<<if getLeftArmID($activeSlave) !== 2 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "basicL"}) != -1>>
 			<<link "Attach <<= addA(setup.prosthetics.basicL.name)>>" "Prosthetics Configuration">>
-				<<set $activeSlave.amp = -1, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "basicPLimbs">>
+				<<set removeLimbs($activeSlave, "all"), attachLimbs($activeSlave, "all", 2), $prostheticsConfig = "basicPLimbs">>
 			<</link>>
 			<br>
 		<</if>>
-		<<if $activeSlave.amp != -2 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "sexL"}) != -1>>
+		<<if getLeftArmID($activeSlave) !== 3 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "sexL"}) != -1>>
 			<<link "Attach <<= addA(setup.prosthetics.sexL.name)>>" "Prosthetics Configuration">>
-				<<set $activeSlave.amp = -2, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "sexPLimbs">>
+				<<set removeLimbs($activeSlave, "all"), attachLimbs($activeSlave, "all", 3), $prostheticsConfig = "sexPLimbs">>
 			<</link>>
 			<br>
 		<</if>>
-		<<if $activeSlave.amp != -3 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "beautyL"}) != -1>>
+		<<if getLeftArmID($activeSlave) !== 4 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "beautyL"}) != -1>>
 			<<link "Attach <<= addA(setup.prosthetics.beautyL.name)>>" "Prosthetics Configuration">>
-				<<set $activeSlave.amp = -3, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "beautyPLimbs">>
+				<<set removeLimbs($activeSlave, "all"), attachLimbs($activeSlave, "all", 4), $prostheticsConfig = "beautyPLimbs">>
 			<</link>>
 			<br>
 		<</if>>
-		<<if $activeSlave.amp != -4 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "combatL"}) != -1>>
+		<<if getLeftArmID($activeSlave) !== 5 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "combatL"}) != -1>>
 			<<link "Attach <<= addA(setup.prosthetics.combatL.name)>>" "Prosthetics Configuration">>
-				<<set $activeSlave.amp = -4, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "combatPLimbs">>
+				<<set removeLimbs($activeSlave, "all"), attachLimbs($activeSlave, "all", 5), $prostheticsConfig = "combatPLimbs">>
 			<</link>>
 			<br>
 		<</if>>
-		<<if $activeSlave.amp != -5 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "cyberneticL"}) != -1>>
+		<<if getLeftArmID($activeSlave) !== 6 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "cyberneticL"}) != -1>>
 			<<if $activeSlave.PLimb == 2>>
 				<<link "Attach <<= addA(setup.prosthetics.cyberneticL.name)>>" "Prosthetics Configuration">>
-					<<set $activeSlave.amp = -5, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "cyberPLimbs">>
+					<<set removeLimbs($activeSlave, "all"), attachLimbs($activeSlave, "all", 6), $prostheticsConfig = "cyberPLimbs">>
 				<</link>>
 			<<else>>
 				// $He must have <<= addA(setup.prosthetics.interfaceP2.name)>> installed to attach <<= addA(setup.prosthetics.cyberneticL.name)>>. //
@@ -329,7 +330,7 @@ Fit prosthetics to $him:
 
 <<case "eyeColor">>
 	<<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Configuration">>
-	<<if $activeSlave.amp != 1>>You have $him lie down and<<else>>You<</if>> use a speculum to keep $his eyes open while you disengage $his lenses remotely and swap them out with $his new $activeSlave.eyeColor lenses<<if $activeSlave.pupil != "circular" || $activeSlave.sclerae != "white">> with <<if $activeSlave.pupil != "circular" >>$activeSlave.pupil pupils<</if>><<if $activeSlave.pupil != "circular" && $activeSlave.sclerae != "white">> and <</if>><<if $activeSlave.sclerae != "white" >>$activeSlave.sclerae sclerae<</if>><</if>>.
+	<<if hasBothLegs($activeSlave)>>You have $him lie down and<<else>>You<</if>> use a speculum to keep $his eyes open while you disengage $his lenses remotely and swap them out with $his new $activeSlave.eyeColor lenses<<if $activeSlave.pupil != "circular" || $activeSlave.sclerae != "white">> with <<if $activeSlave.pupil != "circular" >>$activeSlave.pupil pupils<</if>><<if $activeSlave.pupil != "circular" && $activeSlave.sclerae != "white">> and <</if>><<if $activeSlave.sclerae != "white" >>$activeSlave.sclerae sclerae<</if>><</if>>.
 
 <<case "eyes">>
 	<<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Configuration">>
@@ -409,7 +410,6 @@ Fit prosthetics to $him:
 
 <<case "removeLimbs">>
 	<<set $prostheticsConfig = "main", $nextButton = "Continue", $nextLink = "Prosthetics Configuration">>
-	<<set $activeSlave.amp = 1, $activeSlave.missingArms = 3, $activeSlave.missingLegs = 3>>
 	Due to built-in safeties it is necessary to remove each limb separately, first releasing the lock and then waiting for automated seal release.<br>
 	<<if ($activeSlave.devotion > 20)>>
 		You instruct $him to lie down on the table and proceed to remove $his limbs. $He <<if canSee($activeSlave)>>watches<<elseif canHear($activeSlave)>>listens<<else>>waits<</if>> with interest as you work.<<if ($activeSlave.devotion > 50)>> As you remove the last limb $he playfully wiggles $his stumps at you.<</if>>
@@ -463,58 +463,58 @@ Fit prosthetics to $him:
 	<span id="attach">
 	<<set _first = 1>>
 	/*TODO save .legsTat and .armsTat / link them to prosthetic*/
-	<<if $activeSlave.amp != -1 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "basicL"}) != -1>>
+	<<if getLeftArmID($activeSlave) !== 2 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "basicL"}) != -1>>
 		<<if _first>>
 			<br><br>Since you already have prepared limbs for $him you might as well attach them while you are working on $him:<br>
 			<<set _first = 0>>
 		<</if>>
 		<<link "Attach <<= addA(setup.prosthetics.basicL.name)>>">>
-			<<set $activeSlave.amp = -1, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "basicPLimbs">>
+			<<set removeLimbs($activeSlave, "all"), attachLimbs($activeSlave, "all", 2), $prostheticsConfig = "basicPLimbs">>
 			<<replace #attach>><br><br><<include "Prosthetics Configuration">><<set $nextLink = "Remote Surgery">><</replace>>
 		<</link>>
 		<br>
 	<</if>>
-	<<if $activeSlave.amp != -2 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "sexL"}) != -1>>
+	<<if getLeftArmID($activeSlave) !== 3 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "sexL"}) != -1>>
 		<<if _first>>
 			<br><br>Since you already have prepared limbs for $him you might as well attach them while you are working on $him:<br>
 			<<set _first = 0>>
 		<</if>>
 		<<link "Attach <<= addA(setup.prosthetics.sexL.name)>>">>
-			<<set $activeSlave.amp = -2, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "sexPLimbs">>
+			<<set removeLimbs($activeSlave, "all"), attachLimbs($activeSlave, "all", 3), $prostheticsConfig = "sexPLimbs">>
 			<<replace #attach>><br><br><<include "Prosthetics Configuration">><<set $nextLink = "Remote Surgery">><</replace>>
 		<</link>>
 		<br>
 	<</if>>
-	<<if $activeSlave.amp != -3 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "beautyL"}) != -1>>
+	<<if getLeftArmID($activeSlave) !== 4 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "beautyL"}) != -1>>
 		<<if _first>>
 			<br><br>Since you already have prepared limbs for $him you might as well attach them while you are working on $him:<br>
 			<<set _first = 0>>
 		<</if>>
 		<<link "Attach <<= addA(setup.prosthetics.beautyL.name)>>">>
-			<<set $activeSlave.amp = -3, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "beautyPLimbs">>
+			<<set removeLimbs($activeSlave, "all"), attachLimbs($activeSlave, "all", 4), $prostheticsConfig = "beautyPLimbs">>
 			<<replace #attach>><br><br><<include "Prosthetics Configuration">><<set $nextLink = "Remote Surgery">><</replace>>
 		<</link>>
 		<br>
 	<</if>>
-	<<if $activeSlave.amp != -4 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "combatL"}) != -1>>
+	<<if getLeftArmID($activeSlave) !== 5 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "combatL"}) != -1>>
 		<<if _first>>
 			<br><br>Since you already have prepared limbs for $him you might as well attach them while you are working on $him:<br>
 			<<set _first = 0>>
 		<</if>>
 		<<link "Attach <<= addA(setup.prosthetics.combatL.name)>>">>
-			<<set $activeSlave.amp = -4, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "combatPLimbs">>
+			<<set removeLimbs($activeSlave, "all"), attachLimbs($activeSlave, "all", 5), $prostheticsConfig = "combatPLimbs">>
 			<<replace #attach>><br><br><<include "Prosthetics Configuration">><<set $nextLink = "Remote Surgery">><</replace>>
 		<</link>>
 		<br>
 	<</if>>
-	<<if $activeSlave.amp != -5 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "cyberneticL"}) != -1>>
+	<<if getLeftArmID($activeSlave) !== 6 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "cyberneticL"}) != -1>>
 		<<if $activeSlave.PLimb == 2>>
 			<<if _first>>
 				<br><br>Since you already have prepared limbs for $him you might as well attach them while you are working on $him:<br>
 				<<set _first = 0>>
 			<</if>>
 			<<link "Attach <<= addA(setup.prosthetics.cyberneticL.name)>>" "Prosthetics Configuration">>
-				<<set $activeSlave.amp = -5, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "cyberPLimbs">>
+				<<set removeLimbs($activeSlave, "all"), attachLimbs($activeSlave, "all", 6), $prostheticsConfig = "cyberPLimbs">>
 				<<replace #attach>><br><br><<include "Prosthetics Configuration">><<set $nextLink = "Remote Surgery">><</replace>>
 			<</link>>
 		<</if>>
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index a23990c28cd05e7e899a9015e7abce176776bdd1..ea9fed1411981de74e8743b79d4b162d211f2df5 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -2830,7 +2830,13 @@ window.DefaultRules = (function() {
 			if ((slave.armsTat !== rule.armsTat)) {
 				slave.armsTat = rule.armsTat;
 				cashX(forceNeg(V.modCost), "slaveMod", slave);
-				r += `<br>${slave.slaveName}'s arms have been tattooed.`;
+				r += `<br>${slave.slaveName}'s `;
+				if (hasBothArms(slave)) {
+					r += `arms have`;
+				} else {
+					r += `arm has`;
+				}
+				r += ` been tattooed.`;
 			}
 		}
 
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 2b81a97ed975e32fe687ba42ac16bb7f69431eef..f0e8655811edfc2b152ae5a0a1f8ebd1687e3975 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -348,6 +348,24 @@ App.Entity.scarState = class {
 	}
 };
 
+/**
+ * To ensure that all new limbs contain expected attributes
+ */
+App.Entity.LimbState = class LimbState {
+	constructor() {
+		/**
+		 * type of limb
+		 * * 1: normal
+		 * * 2: simple prosthetic
+		 * * 3: advanced - Sex
+		 * * 4: advanced - Beauty
+		 * * 5: advanced - Combat
+		 * * 6: cybernetic
+		 */
+		this.type = 1;
+	}
+};
+
 App.Entity.SlaveState = class SlaveState {
 	constructor() {
 		/** Slave's current name */
@@ -695,17 +713,20 @@ App.Entity.SlaveState = class SlaveState {
 		 * * 2: advanced interface
 		 */
 		this.PLimb = 0;
+		/*
+		 * legs of the slave
+		 */
+		this.leg = {
+			left: new App.Entity.LimbState(),
+			right: new App.Entity.LimbState()
+		};
 		/**
-		* is slave amputee
-		* * -5: swiss army limbs
-		* * -4: artificial limbs - Combat
-		* * -3: artificial limbs - Beauty
-		* * -2: artificial limbs - Sex
-		* * -1: artificial limbs
-		* * 0: no;
-		* * 1: yes
-		*/
-		this.amp = 0;
+		 * arms of the slave
+		 */
+		this.arm = {
+			left: new App.Entity.LimbState(),
+			right: new App.Entity.LimbState()
+		};
 		/** are heels clipped
 		*
 		* 0: no, 1: yes */
@@ -2392,14 +2413,6 @@ App.Entity.SlaveState = class SlaveState {
 		*
 		* 0: none; 1: yes, left; 2: yes, right; 3: yes, both */
 		this.missingEyes = 0;
-		/** are arms missing?
-		*
-		* 0: none; 1: yes, left; 2: yes, right; 3: yes, both */
-		this.missingArms = 0;
-		/** are legs missing?
-		*
-		* 0: none; 1: yes, left; 2: yes, right; 3: yes, both */
-		this.missingLegs = 0;
 		/** Amount of cash paid to acquire the slave
 		*
 		* accepts negative numbers, 0, or 1.
@@ -2433,6 +2446,8 @@ App.Entity.SlaveState = class SlaveState {
 	 */
 	static makeSkeleton() {
 		return {
+			arm: {left: {}, right: {}},
+			leg: {left: {}, right: {}},
 			counter: {},
 			brand: {},
 			scar: {},
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 29f262e8d6374fd343009d3412d4c9e4b49fad7b..6a3a5f73fd46e059438dfd705ae8a53c66e1bf4f 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -978,11 +978,6 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 			slave.earwear = "none";
 		}
 		slave.heels = Math.clamp(+slave.heels, 0, 1) || 0;
-		slave.amp = Math.clamp(+slave.amp, -5, 1) || 0;
-		if (slave.amp == 1) {
-			slave.missingArms = 3;
-			slave.missingLegs = 3;
-		}
 		slave.PLimb = Math.clamp(+slave.PLimb, 0, 1) || 0;
 		if (slave.voice !== 0) {
 			slave.voice = Math.clamp(+slave.voice, 0, 3) || 1;
@@ -990,8 +985,6 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.electrolarynx = Math.clamp(+slave.electrolarynx, 0, 1) || 0;
 		slave.accent = Math.clamp(+slave.accent, 0, 3) || 0;
 		slave.missingEyes = Math.clamp(+slave.missingEyes, 0, 3) || 0;
-		slave.missingArms = Math.clamp(+slave.missingArms, 0, 3) || 0;
-		slave.missingLegs = Math.clamp(+slave.missingLegs, 0, 3) || 0;
 		if (typeof slave.ballType !== "string") {
 			slave.ballType = "human";
 		}
@@ -1784,6 +1777,7 @@ window.FacilityDatatypeCleanup = (function() {
 		CellblockDatatypeCleanup();
 		MasterSuiteDatatypeCleanup();
 		HeadGirlSuiteDatatypeCleanup();
+		NurseryDatatypeCleanup();
 
 		V.Recruiter = V.slaves.find(s => s.assignment === "recruit girls") || 0;
 		V.Bodyguard = V.slaves.find(s => s.assignment === "guard you") || 0;
@@ -2012,6 +2006,11 @@ window.FacilityDatatypeCleanup = (function() {
 			V.HGSuiteHormones = 1;
 		}
 	}
+
+	function NurseryDatatypeCleanup() {
+		/* matron */
+		V.Matron = V.slaves.find(s => s.assignment === "be the Matron") || 0;
+	}
 })();
 
 
@@ -2073,7 +2072,6 @@ App.Entity.Utils.GenePoolRecordCleanup = (function() {
 			"scar",
 			"choosesOwnChastity",
 			"pregControl",
-			"readyLimbs",
 			"death",
 			"onDiet",
 			"prematureBirth",
diff --git a/src/js/descriptionWidgets.js b/src/js/descriptionWidgets.js
index 96a70c4e4f05b51e68bf9191b51358015dacaf28..a241e3a949055c6a46b318bdcbcf8a1bee0d0a14 100644
--- a/src/js/descriptionWidgets.js
+++ b/src/js/descriptionWidgets.js
@@ -1024,37 +1024,37 @@ App.Desc.limbs = function(slave) {
 	} else if (getLeftArmID(slave) === getRightArmID(slave) &&
 			getLeftArmID(slave) === getLeftLegID(slave) &&
 			getLeftArmID(slave) === getRightLegID(slave)) {
-		r += `${He} has ` + idToDescription(getLeftArmID(slave)) + ` limbs`;
+		r += `${He} has ${idToDescription(getLeftArmID(slave))} limbs`;
 	} else {
 		if (!hasAnyArms(slave)) {
 			r += `Both of ${his} arms have been amputated`;
 		} else if (!hasBothArms(slave)) {
 			if (hasLeftArm(slave)) {
-				r += `${He} has ` + addA(idToDescription(getLeftArmID(slave))) + ` left arm, but his right has been amputated,`;
+				r += `${He} has ${addA(idToDescription(getLeftArmID(slave)))} left arm, but ${his} right has been amputated,`;
 			} else {
-				r += `${He} has ` + addA(idToDescription(getRightArmID(slave))) + ` right arm, but his left has been amputated,`;
+				r += `${He} has ${addA(idToDescription(getRightArmID(slave)))} right arm, but ${his} left has been amputated,`;
 			}
 		} else {
 			if (getLeftArmID(slave) === getRightArmID(slave)) {
-				r += `${He} has ` + idToDescription(getLeftArmID(slave)) + ` arms`;
+				r += `${He} has ${idToDescription(getLeftArmID(slave))} arms`;
 			} else {
-				r += `${His} has ` + addA(idToDescription(getRightArmID(slave))) + ` right arm, but ` + addA(idToDescription(getLeftArmID(slave))) + ` left arm`;
+				r += `${He} has ${addA(idToDescription(getRightArmID(slave)))} right arm, but ${addA(idToDescription(getLeftArmID(slave)))} left arm`;
 			}
 		}
 		r += ` and `;
 		if (!hasAnyLegs(slave)) {
-			r += `Both of ${his} legs have been amputated`;
+			r += `both of ${his} legs have been amputated`;
 		} else if (!hasBothLegs(slave)) {
 			if (hasLeftLeg(slave)) {
-				r += `${he} has ` + addA(idToDescription(getLeftLegID(slave))) + ` left leg, but his right has been amputated`;
+				r += `${he} has ${addA(idToDescription(getLeftLegID(slave)))} left leg, but ${his} right has been amputated`;
 			} else {
-				r += `${he} has ` + addA(idToDescription(getRightLegID(slave))) + ` right leg, but his left has been amputated`;
+				r += `${he} has ${addA(idToDescription(getRightLegID(slave)))} right leg, but ${his} left has been amputated`;
 			}
 		} else {
 			if (getLeftLegID(slave) === getRightLegID(slave)) {
-				r += `${he} has ` + idToDescription(getLeftLegID(slave)) + ` legs`;
+				r += `${he} has ${idToDescription(getLeftLegID(slave))} legs`;
 			} else {
-				r += `${his} has ` + addA(idToDescription(getRightLegID(slave))) + ` right leg, but ` + addA(idToDescription(getLeftLegID(slave))) + ` left leg`;
+				r += `${he} has ${addA(idToDescription(getRightLegID(slave)))} right leg, but ${addA(idToDescription(getLeftLegID(slave)))} left leg`;
 			}
 		}
 	}
@@ -1062,18 +1062,18 @@ App.Desc.limbs = function(slave) {
 	return r + `. `;
 
 	/*
-	if (slave.amp) {
-		if (slave.amp === -1) {
+	if (slave.am p) {
+		if (slave.am p === -1) {
 			r += `${slave.slaveName} is a <span class="pink">quadruple amputee,</span> but ${he}'s equipped with a set of modern prosthetic limbs that allow ${him} a fairly normal life. `;
-		} else if (slave.amp === -2) {
+		} else if (slave.am p === -2) {
 			r += `${slave.slaveName} is a <span class="pink">quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized for sex. ${His} fingertips vibrate, ${his} finger joints are masked to prevent pinching, and ${his} hands can dispense lube. `;
-		} else if (slave.amp === -3) {
+		} else if (slave.am p === -3) {
 			r += `${slave.slaveName} is a <span class="pink">quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized to look natural. They are covered in a material that closely mimics living ${slave.skin} skin, and their servos are noise dampened. `;
-		} else if (slave.amp === -4) {
+		} else if (slave.am p === -4) {
 			r += `${slave.slaveName} is a <span class="pink">quadruple amputee,</span> but ${he}'s equipped with P-Limbs customized for combat. They're hardened, strengthened, and more responsive, and they conceal taser knuckles and extensible forearm blades. `;
-		} else if (slave.amp === -5) {
+		} else if (slave.am p === -5) {
 			r += `${slave.slaveName} is a <span class="pink">quadruple amputee,</span> but ${he}'s equipped with advanced cybernetic P-Limbs. The ultimate fusion of combat effectiveness and instruments of pleasure, they're capable of performing multiple functions. They can enhance sex through ${his} vibrating hands and increase ${his} combat skills with hardened, yet flexible artificial muscles. They have an advanced artificial skin that can send electrical impulses that can cause stimulation or extreme pain. `;
-		} else if (slave.amp > 0) {
+		} else if (slave.am p > 0) {
 			r += `${slave.slaveName} is a <span class="pink">quadruple amputee,</span> making ${him} a convenient torso-only sex toy. `;
 		} else {
 			r += `The most obvious thing about ${slave.slaveName} is that ${he} is a <span class="pink">quadruple amputee:</span> ${he} has neither arms nor legs. `;
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index 0318d91146b7284dfdffe0a451ce0f6a3f17c5aa..e85043fad1fb92820b4a3cf372d8932b09d94cbf 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -472,9 +472,11 @@ window.calculateCosts = (function() {
 
 	function getSFCosts() {
 		let costs = 0;
-		if (State.variables.SF.Toggle && State.variables.SF.Active >= 1 && State.variables.SF.Subsidy > 0) {
-			App.SF.Count();
-			costs += Math.ceil(State.temporary.SFSubsidy);
+		if (State.variables.SF.Toggle && State.variables.SF.Active >= 1) {
+			const SFSubsidy = App.SF.AAR(0);
+			if (SFSubsidy > 0) {
+				costs += Math.ceil(5000 * (1 + ((State.variables.SF.Squad.Troops / 100) + (State.variables.SF.Size / 100))));
+			}
 		}
 		return costs;
 	}
diff --git a/src/js/generateMarketSlave.js b/src/js/generateMarketSlave.js
index 2282247113fc79c67b9d9e553f5e86d15ddc5c46..3f5e918f097c45909a50edaadf432f364e94fae8 100644
--- a/src/js/generateMarketSlave.js
+++ b/src/js/generateMarketSlave.js
@@ -437,9 +437,7 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) {
 			}
 			if (V.corpSpecAmputee === 1) {
 				r += `The corporation removes all limbs from its slaves. `;
-				V.activeSlave.amp = 1;
-				V.activeSlave.missingArms = 3;
-				V.activeSlave.missingLegs = 3;
+				removeLimbs(V.activeSlave, "all");
 			}
 			if (V.corpSpecMilk === 1) {
 				r += `The corporation provides naturally lactating slaves `;
@@ -1081,14 +1079,12 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) {
 			V.activeSlave.weight = jsRandom(-100, 0);
 			V.activeSlave.eyes = jsEither([-2, -1, -1, -1, -1, 1, 1, 1]);
 			V.activeSlave.hears = jsEither([-2, -1, -1, -1, -1, 0, 0, 0]);
-			if (V.seeExtreme === 1) {
-				V.activeSlave.amp = jsEither([0, 0, 0, 0, 0, 0, 1, 1, 1]);
+			if (V.seeExtreme === 1 && jsRandom(0, 2) === 2) {
+				// TODO: maybe only partly amputee?
+				removeLimbs(V.activeSlave, "all");
 			}
-			if (!isAmputee(V.activeSlave)) {
+			if (hasAnyLegs(V.activeSlave)) {
 				V.activeSlave.heels = jsEither([0, 0, 0, 0, 0, 1, 1]);
-			} else {
-				V.activeSlave.missingArms = 3;
-				V.activeSlave.missingLegs = 3;
 			}
 			V.activeSlave.voice = jsRandom(0, 2);
 			V.activeSlave.face = jsRandom(-100, 20);
@@ -1140,13 +1136,10 @@ window.generateMarketSlave = function(market = "kidnappers", numArcology = 1) {
 			V.activeSlave.eyes = -2;
 			V.activeSlave.hears = -2;
 			if (V.seeExtreme === 1) {
-				V.activeSlave.amp = 1;
+				removeLimbs(V.activeSlave);
 			}
-			if (!isAmputee(V.activeSlave)) {
+			if (hasAnyLegs(V.activeSlave)) {
 				V.activeSlave.heels = 1;
-			} else {
-				V.activeSlave.missingArms = 3;
-				V.activeSlave.missingLegs = 3;
 			}
 			V.activeSlave.voice = 0;
 			V.activeSlave.face = jsRandom(-100, -50);
diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js
index 40678dccd52021a51dbd59c84baecf1ddcebdfea..0e812eddd848039f61fac8a5ad2245e3fb8f4201 100644
--- a/src/js/slaveCostJS.js
+++ b/src/js/slaveCostJS.js
@@ -104,7 +104,7 @@ window.Beauty = (function() {
 			beauty += (slave.intelligence + slave.intelligenceImplant) / 10; /* -10 to 13 */
 		}
 	}
-	
+
 	/**
 	 * @param {App.Entity.SlaveState} slave
 	 */
diff --git a/src/js/slaveStatsChecker.js b/src/js/slaveStatsChecker.js
index 7a007677bef796392c3bb0e18a67490fa93f81da..e4f24ef93eea7a1b06483786238bca1a45973c29 100644
--- a/src/js/slaveStatsChecker.js
+++ b/src/js/slaveStatsChecker.js
@@ -674,7 +674,7 @@ window.canHold = function(slave) {
 window.canWalk = function(slave) {
 	if (!slave) {
 		return null;
-	} else if (slave.amp === 1) {
+	} else if (!hasBothLegs(slave)) {
 		return false;
 	} else if (tooFatSlave(slave)) {
 		return false;
@@ -688,16 +688,10 @@ window.canWalk = function(slave) {
 		return false;
 	} else if (tooBigBelly(slave)) {
 		return false;
-	} else if (slave.heels === 0) {
-		return true;
-	} else if (slave.shoes === "heels") {
-		return true;
-	} else if (slave.shoes === "extreme heels") {
-		return true;
-	} else if (slave.shoes === "boots") {
-		return true;
+	} else if (slave.heels === 1 && !setup.highHeels.includes(slave.shoes)) {
+		return false;
 	}
-	return false;
+	return true;
 };
 
 /**
@@ -871,7 +865,6 @@ window.isVegetable = function(slave) {
 	return (slave.fetish === "mindbroken");
 };
 
-
 /* limb checker */
 
 /**
@@ -881,7 +874,7 @@ window.isVegetable = function(slave) {
  * @returns {boolean}
  */
 window.isAmputee = function(slave) {
-	return slave.amp === 1;
+	return !(slave.leg.right || slave.leg.left || slave.arm.right || slave.arm.left);
 };
 
 /**
@@ -891,7 +884,7 @@ window.isAmputee = function(slave) {
  * @returns {boolean}
  */
 window.hasAnyNaturalLimbs = function(slave) {
-	return slave.amp === 0;
+	return getLeftArmID(slave) === 1 || getRightArmID(slave) === 1 || getLeftLegID(slave) === 1 || getRightLegID(slave) === 1;
 };
 
 
@@ -902,7 +895,7 @@ window.hasAnyNaturalLimbs = function(slave) {
  * @returns {boolean}
  */
 window.hasAnyProstheticLimbs = function(slave) {
-	return slave.amp < 0;
+	return getLeftArmID(slave) > 1 || getRightArmID(slave) > 1 || getLeftLegID(slave) > 1 || getRightLegID(slave) > 1;
 };
 
 /**
@@ -912,7 +905,7 @@ window.hasAnyProstheticLimbs = function(slave) {
  * @returns {boolean}
  */
 window.hasAnyLegs = function(slave) {
-	return slave.missingLegs < 3;
+	return !!slave.leg.right || !!slave.leg.left;
 };
 
 /**
@@ -922,7 +915,7 @@ window.hasAnyLegs = function(slave) {
  * @returns {boolean}
  */
 window.hasAnyArms = function(slave) {
-	return slave.missingArms < 3;
+	return !!slave.arm.right || !!slave.arm.left;
 };
 
 /**
@@ -932,7 +925,7 @@ window.hasAnyArms = function(slave) {
  * @returns {boolean}
  */
 window.hasAnyNaturalLegs = function(slave) {
-	return slave.amp === 0 && slave.missingLegs < 3;
+	return getLeftLegID(slave) === 1 || getRightLegID(slave) === 1;
 };
 
 /**
@@ -942,7 +935,7 @@ window.hasAnyNaturalLegs = function(slave) {
  * @returns {boolean}
  */
 window.hasAnyNaturalArms = function(slave) {
-	return slave.amp === 0 && slave.missingArms < 3;
+	return getLeftArmID(slave) === 1 || getRightArmID(slave) === 1;
 };
 
 /**
@@ -952,7 +945,7 @@ window.hasAnyNaturalArms = function(slave) {
  * @returns {boolean}
  */
 window.hasAnyProstheticArms = function(slave) {
-	return slave.amp < 0;
+	return getLeftArmID(slave) > 1 || getRightArmID(slave) > 1;
 };
 
 /**
@@ -962,7 +955,7 @@ window.hasAnyProstheticArms = function(slave) {
  * @returns {boolean}
  */
 window.hasBothLegs = function(slave) {
-	return slave.missingLegs === 0;
+	return !!slave.leg.right && !!slave.leg.left;
 };
 
 /**
@@ -972,7 +965,7 @@ window.hasBothLegs = function(slave) {
  * @returns {boolean}
  */
 window.hasBothArms = function(slave) {
-	return slave.missingArms === 0;
+	return !!slave.arm.right && !!slave.arm.left;
 };
 
 
@@ -983,7 +976,7 @@ window.hasBothArms = function(slave) {
  * @returns {boolean}
  */
 window.hasBothNaturalLegs = function(slave) {
-	return slave.amp === 0 && slave.missingLegs === 0;
+	return getLeftLegID(slave) === 1  && getRightLegID(slave) === 1;
 };
 
 /**
@@ -993,7 +986,7 @@ window.hasBothNaturalLegs = function(slave) {
  * @returns {boolean}
  */
 window.hasBothNaturalArms = function(slave) {
-	return slave.amp === 0 && slave.missingArms === 0;
+	return getLeftArmID(slave) === 1 && getRightArmID(slave) === 1;
 };
 
 /**
@@ -1023,7 +1016,7 @@ window.hasAllNaturalLimbs = function(slave) {
  * @returns {boolean}
  */
 window.hasLeftArm = function(slave) {
-	return slave.missingArms !== 1 && slave.missingArms !== 3;
+	return !!slave.arm.left;
 };
 
 /**
@@ -1033,7 +1026,7 @@ window.hasLeftArm = function(slave) {
  * @returns {boolean}
  */
 window.hasRightArm = function(slave) {
-	return slave.missingArms < 2;
+	return !!slave.arm.right;
 };
 
 /**
@@ -1043,7 +1036,7 @@ window.hasRightArm = function(slave) {
  * @returns {boolean}
  */
 window.hasLeftLeg = function(slave) {
-	return slave.missingLegs !== 1 && slave.missingLegs !== 3;
+	return !!slave.leg.left;
 };
 
 /**
@@ -1053,7 +1046,7 @@ window.hasLeftLeg = function(slave) {
  * @returns {boolean}
  */
 window.hasRightLeg = function(slave) {
-	return slave.missingLegs < 2;
+	return !!slave.leg.right;
 };
 
 /**
@@ -1063,12 +1056,8 @@ window.hasRightLeg = function(slave) {
  * @returns {number}
  */
 window.getLeftArmID = function(slave) {
-	if (slave.amp < 0) {
-		return (slave.amp * -1) +1;
-	}
-
 	if (hasLeftArm(slave)) {
-		return 1;
+		return slave.arm.left.type;
 	} else {
 		return 0;
 	}
@@ -1081,12 +1070,8 @@ window.getLeftArmID = function(slave) {
  * @returns {number}
  */
 window.getRightArmID = function(slave) {
-	if (slave.amp < 0) {
-		return (slave.amp * -1) +1;
-	}
-
 	if (hasRightArm(slave)) {
-		return 1;
+		return slave.arm.right.type;
 	} else {
 		return 0;
 	}
@@ -1099,12 +1084,8 @@ window.getRightArmID = function(slave) {
  * @returns {number}
  */
 window.getLeftLegID = function(slave) {
-	if (slave.amp < 0) {
-		return (slave.amp * -1) +1;
-	}
-
 	if (hasLeftLeg(slave)) {
-		return 1;
+		return slave.leg.left.type;
 	} else {
 		return 0;
 	}
@@ -1117,12 +1098,8 @@ window.getLeftLegID = function(slave) {
  * @returns {number}
  */
 window.getRightLegID = function(slave) {
-	if (slave.amp < 0) {
-		return (slave.amp * -1) +1;
-	}
-
 	if (hasRightLeg(slave)) {
-		return 1;
+		return slave.leg.right.type;
 	} else {
 		return 0;
 	}
@@ -1132,7 +1109,7 @@ window.getRightLegID = function(slave) {
  * Returns a very short description of the specified limb ID. Uses new limb IDs.
  *
  * @param {number} id
- * @returns {boolean}
+ * @returns {string}
  */
 window.idToDescription = function(id) {
 	switch (id) {
@@ -1181,50 +1158,36 @@ window.idToDescription = function(id) {
  * @returns {number}
  */
 window.getLimbCount = function(slave, id = 101) {
-	if (id === 101) {
-		if (slave.amp < 0) {
-			return 4;
+	if (id < 100) {
+		let n = 0;
+		if (getLeftArmID(slave) === id) {
+			n++;
 		}
-		return getLimbCount(slave, 1);
-	} else if (id === 102) {
-		return getLimbCount(slave, 101) - getLimbCount(slave, 1);
-	} else if (id === 103) {
-		return getLimbCount(slave, 3) + getLimbCount(slave, 6);
-	} else if (id === 104) {
-		return getLimbCount(slave, 4) + getLimbCount(slave, 6);
-	} else if (id === 105) {
-		return getLimbCount(slave, 5) + getLimbCount(slave, 6);
-	}
-
-	let oldID = (id - 1) * -1;
-
-	if (oldID < 0) {
-		if (slave.amp === oldID) {
-			return 4;
-		} else {
-			return 0;
+		if (getRightArmID(slave) === id) {
+			n++;
 		}
+		if (getLeftLegID(slave) === id) {
+			n++;
+		}
+		if (getRightLegID(slave) === id) {
+			n++;
+		}
+		return n;
 	}
-
-	let n = 0;
-	if (hasLeftArm(slave)) {
-		n++;
-	}
-	if (hasRightArm(slave)) {
-		n++;
-	}
-	if (hasLeftLeg(slave)) {
-		n++;
-	}
-	if (hasRightLeg(slave)) {
-		n++;
-	}
-
-	if (id === 0) {
-		return 4 - n;
-	}
-
-	return n;
+	switch (id) {
+		case 101:
+			return getLimbCount(slave, 1) + getLimbCount(slave, 102);
+		case 102:
+			return getLimbCount(slave, 2) + getLimbCount(slave, 3) + getLimbCount(slave, 4) + getLimbCount(slave, 5) + getLimbCount(slave, 6);
+		case 103:
+			return getLimbCount(slave, 3) + getLimbCount(slave, 6);
+		case 104:
+			return getLimbCount(slave, 4) + getLimbCount(slave, 6);
+		case 105:
+			return getLimbCount(slave, 5) + getLimbCount(slave, 6);
+	}
+	// unknown id defaults to 0
+	return 0;
 };
 
 /**
@@ -1235,28 +1198,15 @@ window.getLimbCount = function(slave, id = 101) {
  * @returns {number}
  */
 window.getLegCount = function(slave, id) {
-	let oldID = (id - 1) * -1;
-
-	if (oldID < 0) {
-		if (slave.amp === oldID) {
-			return 2;
-		} else {
-			return 0;
-		}
-	}
-
 	let n = 0;
-	if (hasLeftLeg(slave)) {
+
+	if (getLeftLegID(slave) === id) {
 		n++;
 	}
-	if (hasRightLeg(slave)) {
+	if (getRightLegID(slave) === id) {
 		n++;
 	}
 
-	if (id === 0) {
-		return 2 - n;
-	}
-
 	return n;
 };
 
@@ -1268,28 +1218,15 @@ window.getLegCount = function(slave, id) {
  * @returns {number}
  */
 window.getArmCount = function(slave, id) {
-	let oldID = (id - 1) * -1;
-
-	if (oldID < 0) {
-		if (slave.amp === oldID) {
-			return 2;
-		} else {
-			return 0;
-		}
-	}
-
 	let n = 0;
-	if (hasLeftArm(slave)) {
+
+	if (getLeftArmID(slave) === id) {
 		n++;
 	}
-	if (hasRightArm(slave)) {
+	if (getRightArmID(slave) === id) {
 		n++;
 	}
 
-	if (id === 0) {
-		return 2 - n;
-	}
-
 	return n;
 };
 
@@ -1316,12 +1253,16 @@ window.armsAndLegs = function(slave, arms = "arms", arm = "arm", legs = "legs",
 			r += " and ";
 		}
 	}
-	if (hasAnyLegs(slave)) {
-		if (hasBothLegs(slave)) {
-			r += legs;
-		} else {
-			r += leg;
-		}
+
+	if (hasBothLegs(slave)) {
+		r += legs;
+	} else if (hasAnyLegs(slave)) {
+		r += leg;
 	}
+
 	return r;
 };
+
+window.isProstheticAvailable = function(slave, prosthetic) {
+	return slave.readyProsthetics.findIndex(function(p) {return p.id === prosthetic}) !== -1
+}
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index 5b91442304c757089ee34355d3e8a7ea4e5ee70d..840e69db27ef03a4f58af8b46d02592fc84a2b92 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -246,10 +246,10 @@ window.SlaveSummaryUncached = (function() {
 				long_clothes(slave, dressingBlock);
 				long_collar(slave, dressingBlock);
 				long_belly(slave, dressingBlock);
-				if (slave.missingArms !== 3) {
+				if (hasAnyArms(slave)) {
 					long_arms(slave, dressingBlock);
 				}
-				if (slave.missingLegs !== 3) {
+				if (hasAnyLegs(slave)) {
 					long_legs(slave, dressingBlock);
 					long_shoes(slave, dressingBlock);
 				}
diff --git a/src/js/summaryWidgets.js b/src/js/summaryWidgets.js
index c0dc4cf8e091aaeee22ffdeee7c00d9cbec7c34e..41ab0e275a2826f22636312702230da2d7d51457 100644
--- a/src/js/summaryWidgets.js
+++ b/src/js/summaryWidgets.js
@@ -57,7 +57,7 @@ window.SlaveStatClamp = function SlaveStatClamp(slave) {
 	if (slave.foreskin === undefined) {
 		slave.foreskin = 0;
 	}
-	if (slave.amp !== 0 && slave.heels === 1) {
+	if (!hasAnyNaturalLegs(slave) && slave.heels === 1) {
 		slave.heels = 0;
 	}
 	if (slave.vagina < 0 && slave.mpreg === 0 && slave.preg === -1) {
diff --git a/src/js/surgery.js b/src/js/surgery.js
index 73bfac4cc2952e07132197fcd8e45de5c8d816df..dcd5c5a92c8e0a80e04afe18b9ebc9cf0197cd51 100644
--- a/src/js/surgery.js
+++ b/src/js/surgery.js
@@ -454,95 +454,180 @@ App.Medicine.Surgery.sizingProcedures = function() {
 
 /**
 * Clean up extremities on removal or piercings, tats, and brands
+* For limbs use removeLimbs()
 * @param {App.Entity.SlaveState} slave
 * @param {string} part
 */
-
 window.surgeryAmp = function(slave, part) {
-	if (part === "left ear") {
-		slave.earShape = "none";
-		slave.earT = "none";
-		delete slave.brand["left ear"];
-		slave.earPiercing = 0;
-		slave.health -= 10;
-	} else if (part === "right ear") {
-		slave.earShape = "none";
-		slave.earT = "none";
-		delete slave.brand["right ear"];
-		// slave.earPiercing = 0;
-		slave.health -= 10;
-	} else if (part === "left arm") {
-		delete slave.brand["left upper arm"];
-		delete slave.brand["left lower arm"];
-		delete slave.brand["left wrist"];
-		delete slave.brand["left hand"];
-		// slave.armsTat = 0;
-		// slave.nails = 0;
-		slave.armAccessory = "none";
-		slave.health -= 10;
-	} else if (part === "right arm") {
-		delete slave.brand["right upper arm"];
-		delete slave.brand["right lower arm"];
-		delete slave.brand["right wrist"];
-		delete slave.brand["right hand"];
-		// slave.armsTat = 0;
-		// slave.nails = 0;
-		slave.armAccessory = "none";
-		slave.health -= 10;
-	} else if (part === "left leg") {
-		delete slave.brand["left thigh"];
-		delete slave.brand["left calf"];
-		delete slave.brand["left ankle"];
-		delete slave.brand["left foot"];
-		slave.legsTat = 0;
-		slave.shoes = "none";
-		slave.legAccessory = "none";
-		slave.heightImplant = 0;
-		slave.health -= 10;
-	} else if (part === "right leg") {
-		delete slave.brand["right thigh"];
-		delete slave.brand["right calf"];
-		delete slave.brand["right ankle"];
-		delete slave.brand["right foot"];
-		slave.legsTat = 0;
-		slave.shoes = "none";
-		slave.legAccessory = "none";
-		slave.heightImplant = 0;
-		slave.health -= 10;
-	} else if (part === "dick") {
-		slave.dick = 0;
-		slave.foreskin = 0;
-		slave.skill.vaginal = 0;
-		slave.dickPiercing = 0;
-		slave.dickTat = 0;
-		slave.dickAccessory = "none";
-		slave.chastityPenis = 0;
-		slave.health -= 20;
-	} else if (part === "vagina") {
-		slave.vagina = -1;
-		slave.ovaries = 0;
-		slave.preg = -2;
-		slave.pregSource = 0;
-		slave.skill.vaginal = 0;
-		slave.vaginaTat = 0;
-		slave.vaginalAccessory = "none";
-		slave.vaginalAttachment = "none";
-		slave.chastityVagina = 0;
-		slave.health -= 20;
-	} else if (part === "horn") {
-		slave.horn = "none";
-		slave.hornColor = "none";
-		slave.health -= 10;
-	} else if (part === "voicebox") {
-		slave.voice = 0;
-		slave.voiceImplant = 0;
-		slave.health -= 10;
-	} else if (part === "lips") {
-		slave.lips -= slave.lipsImplant;
-		slave.lipsImplant = 0;
-		if (slave.skill.oral > 10) {
-			slave.skill.oral -= 10;
-		}
+	switch (part) {
+		case "left ear":
+			slave.earShape = "none";
+			slave.earT = "none";
+			delete slave.brand["left ear"];
+			slave.earPiercing = 0;
+			slave.health -= 10;
+			break;
+		case "right ear":
+			slave.earShape = "none";
+			slave.earT = "none";
+			delete slave.brand["right ear"];
+			// slave.earPiercing = 0;
+			slave.health -= 10;
+			break;
+		case "dick":
+			slave.dick = 0;
+			slave.foreskin = 0;
+			slave.skill.vaginal = 0;
+			slave.dickPiercing = 0;
+			slave.dickTat = 0;
+			slave.dickAccessory = "none";
+			slave.chastityPenis = 0;
+			slave.health -= 20;
+			break;
+		case "vagina":
+			slave.vagina = -1;
+			slave.ovaries = 0;
+			slave.preg = -2;
+			slave.pregSource = 0;
+			slave.skill.vaginal = 0;
+			slave.vaginaTat = 0;
+			slave.vaginalAccessory = "none";
+			slave.vaginalAttachment = "none";
+			slave.chastityVagina = 0;
+			slave.health -= 20;
+			break;
+		case "horn":
+			slave.horn = "none";
+			slave.hornColor = "none";
+			slave.health -= 10;
+			break;
+		case "voicebox":
+			slave.voice = 0;
+			slave.voiceImplant = 0;
+			slave.health -= 10;
+			break;
+		case "lips":
+			slave.lips -= slave.lipsImplant;
+			slave.lipsImplant = 0;
+			if (slave.skill.oral > 10) {
+				slave.skill.oral -= 10;
+			}
+			break;
+		default:
+			// eslint-disable-next-line no-console
+			console.log(`ERROR: Unknown amputation type: ` + part);
+	}
+};
+
+/**
+ * Allowed values for limb:
+ * left arm, right arm, left leg, right leg, all
+ *
+ * @param {App.Entity.SlaveState} slave
+ * @param {string} limb
+ */
+window.removeLimbs = function(slave, limb) {
+	// TODO: add bodymod support for prosthetics
+	switch (limb) {
+		case "left arm":
+			slave.arm.left = null;
+			delete slave.brand["left upper arm"];
+			delete slave.brand["left lower arm"];
+			delete slave.brand["left wrist"];
+			delete slave.brand["left hand"];
+			// slave.armsTat = 0;
+			if (!hasAnyArms(slave)) {
+				slave.armAccessory = "none";
+				// slave.nails = 0;
+			}
+			break;
+		case "right arm":
+			slave.arm.right = null;
+			delete slave.brand["right upper arm"];
+			delete slave.brand["right lower arm"];
+			delete slave.brand["right wrist"];
+			delete slave.brand["right hand"];
+			// slave.armsTat = 0;
+			if (!hasAnyArms(slave)) {
+				slave.armAccessory = "none";
+				// slave.nails = 0;
+			}
+			break;
+		case "left leg":
+			slave.leg.left = null;
+			delete slave.brand["left thigh"];
+			delete slave.brand["left calf"];
+			delete slave.brand["left ankle"];
+			delete slave.brand["left foot"];
+			if (!hasAnyLegs(slave)) {
+				slave.legsTat = 0;
+				slave.shoes = "none";
+				slave.legAccessory = "none";
+				slave.heightImplant = 0;
+				slave.heels = 0;
+			}
+			break;
+		case "right leg":
+			slave.leg.right = null;
+			delete slave.brand["right thigh"];
+			delete slave.brand["right calf"];
+			delete slave.brand["right ankle"];
+			delete slave.brand["right foot"];
+			if (!hasAnyLegs(slave)) {
+				slave.legsTat = 0;
+				slave.shoes = "none";
+				slave.legAccessory = "none";
+				slave.heightImplant = 0;
+				slave.heels = 0;
+			}
+			break;
+		case "all":
+			removeLimbs(slave, "left arm");
+			removeLimbs(slave, "right arm");
+			removeLimbs(slave, "left leg");
+			removeLimbs(slave, "right leg");
+			break;
+	}
+};
+
+/**
+ * Expects amputated limbs. Will overwrite existing limbs.
+ *
+ * Allowed values for limb:
+ * left arm, right arm, left leg, right leg, all
+ *
+ * @param {App.Entity.SlaveState} slave
+ * @param {string} limb
+ * @param {number} id
+ */
+window.attachLimbs = function(slave, limb, id) {
+	// TODO: add support for body mods
+	switch (limb) {
+		case "left arm":
+			slave.arm.left = new App.Entity.LimbState();
+			slave.arm.left.type = id;
+			break;
+		case "right arm":
+			slave.arm.right = new App.Entity.LimbState();
+			slave.arm.right.type = id;
+			break;
+		case "left leg":
+			slave.leg.left = new App.Entity.LimbState();
+			slave.leg.left.type = id;
+			break;
+		case "right leg":
+			slave.leg.right = new App.Entity.LimbState();
+			slave.leg.right.type = id;
+			break;
+		case "all":
+			attachLimbs(slave, "left arm", id);
+			attachLimbs(slave, "right arm", id);
+			attachLimbs(slave, "left leg", id);
+			attachLimbs(slave, "right leg", id);
+			break;
+		default:
+			// eslint-disable-next-line no-console
+			console.log(`ERROR: Unknown attach point: ` + limb);
 	}
 };
 
@@ -563,7 +648,7 @@ window.beginFuckdoll = function(slave) {
 	slave.choosesOwnClothes = 0;
 	slave.clothes = "a Fuckdoll suit";
 	slave.collar = "none";
-	if ((slave.missingLegs !== 3) || (slave.shoes !== "none")) {
+	if ((!hasAnyLegs(slave)) || (slave.shoes !== "none")) {
 		slave.shoes = "heels";
 	}
 	slave.armAccessory = "none";
diff --git a/src/js/vignettes.js b/src/js/vignettes.js
index e574104c04451f94e2496922da79417d20b70f1e..b4d5e1a5b7ecb688e3fdd216ce17b2cc028ad557 100644
--- a/src/js/vignettes.js
+++ b/src/js/vignettes.js
@@ -240,7 +240,7 @@ window.GetVignette = function GetVignette(slave) {
 						effect: 1,
 					});
 					vignettes.push({
-						text: `${he} disgusted a customer who didn't know how much butts turned them off until ${he} put ${his} hands on theirs,`,
+						text: `${he} disgusted a customer who didn't know how much butts turned them off until he put his hands on ${hers},`,
 						type: "rep",
 						effect: -1,
 					});
@@ -2208,7 +2208,7 @@ window.GetVignette = function GetVignette(slave) {
 						effect: 1,
 					});
 					vignettes.push({
-						text: `${he} disgusted a citizen who didn't know how much butts turned them off until ${he} put ${his} hands on theirs,`,
+						text: `${he} disgusted a citizen who didn't know how much butts turned them off until he put his hands on ${hers},`,
 						type: "rep",
 						effect: -1,
 					});
@@ -4453,7 +4453,7 @@ window.GetVignette = function GetVignette(slave) {
 					effect: -1,
 				});
 			} else {
-				if (slave.missingArms !== 3) {
+				if (hasAnyArms(slave)) {
 					if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
 						vignettes.push({
 							text: `due to the obvious difficulties in ${his} mobility, ${he} spent a lot of time masturbating in bed,`,
diff --git a/src/npc/databases/dSlavesDatabase.tw b/src/npc/databases/dSlavesDatabase.tw
index e21785d0826810f0af907cf594913a9ac1459031..8e0f675647da9302aec51dc42f60e88d21809326 100644
--- a/src/npc/databases/dSlavesDatabase.tw
+++ b/src/npc/databases/dSlavesDatabase.tw
@@ -516,23 +516,27 @@
 <<if $seeExtreme == 1>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Mouse", _HS.birthName = "Mouse", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = -50, _HS.weight = 20, _HS.height = 152, _HS.override_H_Color = 1, _HS.pubicHColor = "purple", _HS.skin = "pale", _HS.eyeColor = "blue", _HS.hColor = "purple", _HS.hLength = 10, _HS.amp = 1, _HS.missingArms = 3, _HS.missingLegs = 3, _HS.boobs = 1000, _HS.areolae = 1, _HS.butt = 5, _HS.lipsTat = "permanent makeup", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.analArea = 1, _HS.ovaries = 1, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.voice = 0, _HS.nipples = "puffy">>
+<<set _HS.slaveName = "Mouse", _HS.birthName = "Mouse", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.health = 20, _HS.devotion = -50, _HS.weight = 20, _HS.height = 152, _HS.override_H_Color = 1, _HS.pubicHColor = "purple", _HS.skin = "pale", _HS.eyeColor = "blue", _HS.hColor = "purple", _HS.hLength = 10, _HS.boobs = 1000, _HS.areolae = 1, _HS.butt = 5, _HS.lipsTat = "permanent makeup", _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.analArea = 1, _HS.ovaries = 1, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.voice = 0, _HS.nipples = "puffy">>
+<<run removeLimbs(_HS, "all")>>
 <<set $heroSlaves.push(_HS)>>
 /*Increased nipples and areolae, changed eye color, added mute -BoneyM*/
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Box", _HS.birthName = "Box", _HS.origin = "When you took $him from $his previous owner, $he was locked into a beautiful rosewood box lined with red velvet, crying.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.devotion = -75, _HS.weight = 20, _HS.eyes = -2, _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.eyebrowHColor = "blonde", _HS.pubicHColor = "blonde", _HS.underArmHColor = "blonde", _HS.skin = "pale", _HS.hColor = "golden blonde", _HS.hStyle = "long", _HS.amp = 1, _HS.missingArms = 3, _HS.missingLegs = 3, _HS.boobs = 400, _HS.butt = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.intelligence = -50, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$His amputation sites have titanium rings that go through to the bone. $He has been chemically blinded.">>
+<<set _HS.slaveName = "Box", _HS.birthName = "Box", _HS.origin = "When you took $him from $his previous owner, $he was locked into a beautiful rosewood box lined with red velvet, crying.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 21, _HS.physicalAge = 21, _HS.visualAge = 21, _HS.ovaryAge = 21, _HS.devotion = -75, _HS.weight = 20, _HS.eyes = -2, _HS.override_Brow_H_Color = 1, _HS.override_Arm_H_Color = 1, _HS.override_Pubic_H_Color = 1, _HS.eyebrowHColor = "blonde", _HS.pubicHColor = "blonde", _HS.underArmHColor = "blonde", _HS.skin = "pale", _HS.hColor = "golden blonde", _HS.hStyle = "long", _HS.boobs = 400, _HS.butt = 2, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 15, _HS.skill.oral = 15, _HS.skill.anal = 15, _HS.intelligence = -50, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$His amputation sites have titanium rings that go through to the bone. $He has been chemically blinded.">>
+<<run removeLimbs(_HS, "all")>>
 <<set $heroSlaves.push(_HS)>>
 /* put some of $his custom description in $his origin (box stuff), tagged as amp, lowered obedience, increased weight but lowered health, changed skin color from white to pale */
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Yukiko", _HS.birthName = "Yukiko", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 20, _HS.devotion = 100, _HS.weight = -20, _HS.race = "asian", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "very fair", _HS.hStyle = "long, and in a hime cut", _HS.amp = 1, _HS.missingArms = 3, _HS.missingLegs = 3, _HS.boobs = 500, _HS.butt = 3, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.clothes = "a slave gown", _HS.intelligence = -40, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.custom.desc = "$He is a work of art: stoic, mysterious, doll-like, — and always smiling.", _HS.voice = 0>>
+<<set _HS.slaveName = "Yukiko", _HS.birthName = "Yukiko", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 20, _HS.devotion = 100, _HS.weight = -20, _HS.race = "asian", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "very fair", _HS.hStyle = "long, and in a hime cut", _HS.boobs = 500, _HS.butt = 3, _HS.vaginaLube = 1, _HS.ovaries = 1, _HS.clothes = "a slave gown", _HS.intelligence = -40, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.custom.desc = "$He is a work of art: stoic, mysterious, doll-like, — and always smiling.", _HS.voice = 0>>
+<<run removeLimbs(_HS, "all")>>
 <<set $heroSlaves.push(_HS)>>
 /* not much to change, lowered weight ('perfect slim body'), set to mute and changed flaw to odd- described as creepy */
 
 <<if $seePreg != 0>>
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Fucknugget' Pillow", _HS.birthName = "Anika", _HS.origin = "$He sold $himself into slavery to escape life on the streets.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 37, _HS.physicalAge = 37, _HS.visualAge = 37, _HS.ovaryAge = 37, _HS.health = 80, _HS.devotion = 100, _HS.weight = 40, _HS.origRace = "white", _HS.override_Race = 1, _HS.race = "latina", _HS.eyeColor = "blue", _HS.hColor = "red", _HS.pubicHColor = "red", _HS.hStyle = "long", _HS.waist = -100, _HS.amp = 1, _HS.missingArms = 3, _HS.missingLegs = 3, _HS.boobs = 6260, _HS.boobsImplant = 4200, _HS.nipplesPiercing = 2, _HS.areolae = 3, _HS.boobsTat = "flowers", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 12, _HS.buttImplant = 1, _HS.buttTat = "flowers", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 55, _HS.lipsImplant = 10, _HS.lipsPiercing = 2, _HS.lipsTat = "flowers", _HS.tonguePiercing = 2, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.vaginaTat = "flowers", _HS.preg = 37, _HS.pregType = 1, _HS.pregWeek = 37, _HS.pregKnown = 1, _HS.belly = 13000, _HS.bellyPreg = 13000, _HS.counter.births = 2, _HS.counter.birthsTotal = 2, _HS.clitPiercing = 3, _HS.clitSetting = "boobs", _HS.anus = 2, _HS.ovaries = 1, _HS.anusPiercing = 2, _HS.anusTat = "flowers", _HS.makeup = 3, _HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "advertisements", _HS.stampTat = "flowers", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.aphrodisiacs = 1, _HS.addict = 99, _HS.clothes = "restrictive latex", _HS.collar = "leather with cowbell", _HS.intelligence = -70, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1>>
+<<set _HS.slaveName = "'Fucknugget' Pillow", _HS.birthName = "Anika", _HS.origin = "$He sold $himself into slavery to escape life on the streets.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 37, _HS.physicalAge = 37, _HS.visualAge = 37, _HS.ovaryAge = 37, _HS.health = 80, _HS.devotion = 100, _HS.weight = 40, _HS.origRace = "white", _HS.override_Race = 1, _HS.race = "latina", _HS.eyeColor = "blue", _HS.hColor = "red", _HS.pubicHColor = "red", _HS.hStyle = "long", _HS.waist = -100, _HS.boobs = 6260, _HS.boobsImplant = 4200, _HS.nipplesPiercing = 2, _HS.areolae = 3, _HS.boobsTat = "flowers", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 12, _HS.buttImplant = 1, _HS.buttTat = "flowers", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 55, _HS.lipsImplant = 10, _HS.lipsPiercing = 2, _HS.lipsTat = "flowers", _HS.tonguePiercing = 2, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.vaginaPiercing = 2, _HS.vaginaTat = "flowers", _HS.preg = 37, _HS.pregType = 1, _HS.pregWeek = 37, _HS.pregKnown = 1, _HS.belly = 13000, _HS.bellyPreg = 13000, _HS.counter.births = 2, _HS.counter.birthsTotal = 2, _HS.clitPiercing = 3, _HS.clitSetting = "boobs", _HS.anus = 2, _HS.ovaries = 1, _HS.anusPiercing = 2, _HS.anusTat = "flowers", _HS.makeup = 3, _HS.earPiercing = 2, _HS.nosePiercing = 2, _HS.eyebrowPiercing = 2, _HS.navelPiercing = 2, _HS.shouldersTat = "advertisements", _HS.stampTat = "flowers", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring = 15, _HS.aphrodisiacs = 1, _HS.addict = 99, _HS.clothes = "restrictive latex", _HS.collar = "leather with cowbell", _HS.intelligence = -70, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1>>
+<<run removeLimbs(_HS, "all")>>
 <<set $heroSlaves.push(_HS)>>
 <</if>>
 
@@ -541,7 +545,8 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Onahole' Lian the Liberty Whore", _HS.birthName = "Lian", _HS.origin = "$He is an enslaved member of an anti-slavery extremist group.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 27, _HS.physicalAge = 27, _HS.visualAge = 27, _HS.ovaryAge = 27, _HS.health = -70, _HS.devotion = 100, _HS.muscles = 20, _HS.nationality = "Chinese", _HS.race = "asian", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.waist = -100, _HS.amp = 1, _HS.missingArms = 3, _HS.missingLegs = 3, _HS.boobs = 2000, _HS.boobsImplant = 600, _HS.areolae = 2, _HS.butt = 8, _HS.face = 55, _HS.faceImplant = 65, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.clit = 2, _HS.anus = 2, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.collar = "shock punishment", _HS.shoes = "flats", _HS.intelligence = 25, _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1>>
+<<set _HS.slaveName = "'Onahole' Lian the Liberty Whore", _HS.birthName = "Lian", _HS.origin = "$He is an enslaved member of an anti-slavery extremist group.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 27, _HS.physicalAge = 27, _HS.visualAge = 27, _HS.ovaryAge = 27, _HS.health = -70, _HS.devotion = 100, _HS.muscles = 20, _HS.nationality = "Chinese", _HS.race = "asian", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.waist = -100, _HS.boobs = 2000, _HS.boobsImplant = 600, _HS.areolae = 2, _HS.butt = 8, _HS.face = 55, _HS.faceImplant = 65, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.clit = 2, _HS.anus = 2, _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.collar = "shock punishment", _HS.shoes = "flats", _HS.intelligence = 25, _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1>>
+<<run removeLimbs(_HS, "all")>>
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
@@ -549,7 +554,8 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Flora", _HS.birthName = "Flora", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 25, _HS.weight = -20, _HS.height = 155, _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.skin = "white", _HS.hStyle = "long", _HS.amp = 1, _HS.missingArms = 3, _HS.missingLegs = 3, _HS.boobs = 300, _HS.butt = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 100, _HS.skill.anal = 35, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy", _HS.custom.desc = "$He fits perfectly into a pillowcase.">>
+<<set _HS.slaveName = "Flora", _HS.birthName = "Flora", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 20, _HS.devotion = 25, _HS.weight = -20, _HS.height = 155, _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.skin = "white", _HS.hStyle = "long", _HS.boobs = 300, _HS.butt = 1, _HS.vagina = 1, _HS.vaginaLube = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.skill.vaginal = 35, _HS.skill.oral = 100, _HS.skill.anal = 35, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.behavioralFlaw = "bitchy", _HS.custom.desc = "$He fits perfectly into a pillowcase.">>
+<<run removeLimbs(_HS, "all")>>
 <<set $heroSlaves.push(_HS)>>
 /*bitchy arrogant*/
 /*Added 'bitchy' quirk, reduced height and weight, added customdesc -BoneyM*/
diff --git a/src/npc/databases/ddSlavesDatabase.tw b/src/npc/databases/ddSlavesDatabase.tw
index 16b40c9421f3a7c96c0f8586ad095da559f1cf38..106515e3acf135ad46390d189078a10e9c847e7e 100644
--- a/src/npc/databases/ddSlavesDatabase.tw
+++ b/src/npc/databases/ddSlavesDatabase.tw
@@ -180,7 +180,8 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "Danny 'The D'", _HS.slaveSurname = "Ildoe", _HS.birthName = "Danny 'The D'", _HS.birthSurname = "Ildoe", _HS.origin = "Born without limbs and abandoned by $his parents, $he was taken in by a posh family, given a massive cock, and trained to be the wealthy lady's perfect living sex toy.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.visualAge = 28, _HS.physicalAge = 28, _HS.ovaryAge = 28, _HS.health = 100, _HS.amp = 1, _HS.missingArms = 3, _HS.missingLegs = 3, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 94, _HS.eyeColor = "blue", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.override_Skin = 1, _HS.skin = "spray tanned", _HS.hLength = 10, _HS.hStyle = "short", _HS.waist = 55, _HS.boobs = 50, _HS.hips = -1, _HS.butt = 0, _HS.face = 45, _HS.vagina = -1, _HS.preg = 0, _HS.dick = 6, _HS.balls = 10, _HS.scrotum = 7, _HS.prostate = 2, _HS.anusTat = "bleached", _HS.energy = 95, _HS.intelligenceImplant = 30, _HS.attrXX = 100, _HS.attrXY = 0, _HS.skill.oral = 95, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.behavioralQuirk = "advocate">>
+<<set _HS.slaveName = "Danny 'The D'", _HS.slaveSurname = "Ildoe", _HS.birthName = "Danny 'The D'", _HS.birthSurname = "Ildoe", _HS.origin = "Born without limbs and abandoned by $his parents, $he was taken in by a posh family, given a massive cock, and trained to be the wealthy lady's perfect living sex toy.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.visualAge = 28, _HS.physicalAge = 28, _HS.ovaryAge = 28, _HS.health = 100, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 94, _HS.eyeColor = "blue", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.override_Skin = 1, _HS.skin = "spray tanned", _HS.hLength = 10, _HS.hStyle = "short", _HS.waist = 55, _HS.boobs = 50, _HS.hips = -1, _HS.butt = 0, _HS.face = 45, _HS.vagina = -1, _HS.preg = 0, _HS.dick = 6, _HS.balls = 10, _HS.scrotum = 7, _HS.prostate = 2, _HS.anusTat = "bleached", _HS.energy = 95, _HS.intelligenceImplant = 30, _HS.attrXX = 100, _HS.attrXY = 0, _HS.skill.oral = 95, _HS.fetish = "submissive", _HS.fetishKnown = 1, _HS.behavioralQuirk = "advocate">>
+<<run removeLimbs(_HS, "all")>>
 <<set $heroSlaves.push(_HS)>>
 /* needed an amputated slave for debug reasons -prndev */
 
diff --git a/src/npc/descriptions/fPoolSex.tw b/src/npc/descriptions/fPoolSex.tw
index 9c5c92d1a60530d2a1e3f9325c99fba8266c1ac3..116232cbf64855e3d18da6af43d20ec505c556ab 100644
--- a/src/npc/descriptions/fPoolSex.tw
+++ b/src/npc/descriptions/fPoolSex.tw
@@ -6,7 +6,7 @@
 You order $him to meet you in the spa for some quality time in the penthouse's rejuvenating gelatin pool. When you get there, $he's already in $his bathing attire, reclined at the side of the pool farthest from you with $his massive $activeSlave.skin stomach hanging over the edge and half sunk in the thick, steaming ooze, flushed and sweaty.
 <<if $activeSlave.devotion > 95>>
 	<<if !isAmputee($activeSlave)>>
-		$He's resting $his head on one arm, but $he gives you a little wave <<if missingArms != 0>>anyway<<else>>with the other<</if>> before setting it to rubbing the flank of one
+		$He's resting $his head on one arm, but $he gives you a little wave <<if !hasBothArms($activeSlave)>>anyway<<else>>with the other<</if>> before setting it to rubbing the flank of one
 		<<if $activeSlave.boobs >= 20000>>
 			massively overgrown tit
 		<<elseif Math.floor($activeSlave.boobsImplant/$activeSlave.boobs) >= .60>>
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index 098c3c7c25b7de800f31dd0af8ecfa72142dfb6a..d06347501b38257568c38187ef43df429715d418 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -583,13 +583,82 @@ __You are customizing this slave:__
 <br>
 
 <<if $seeExtreme == 1>>
-	<<options $activeSlave.amp>>
-		''Limbs:''
-		<<option 0 "Normal" "$activeSlave.missingLegs = 0, $activeSlave.missingArms = 0">>
-			@@.green;Normal.@@
-		<<option 1 "Amputee" "$activeSlave.missingLegs = 3, $activeSlave.missingArms = 3">>
-			@@.red;Amputee.@@
-	<</options>>
+	/* TODO rewrite this so it looks like the rest (if possible expand options macro) */
+	Left arm:
+	<span id = "ampLA">
+		<<if hasLeftArm($customSlave)>>Yes
+		<<else>>No
+		<</if>>
+	</span>
+	<<link "Remove">>
+		<<set $customSlave.arm.left = null>>
+		<<replace #ampLA>>
+			No
+		<</replace>>
+	<</link>>
+	<<link "Add">>
+		<<set $customSlave.arm.left = new App.Entity.LimbState()>>
+		<<replace #ampLA>>
+			Yes
+		<</replace>>
+	<</link>>
+	<br>
+	Right arm:
+	<span id = "ampRA">
+		<<if hasRightArm($customSlave)>>Yes
+		<<else>>No
+		<</if>>
+	</span>
+	<<link "Remove">>
+		<<set $customSlave.arm.right = null>>
+		<<replace #ampRA>>
+			No
+		<</replace>>
+	<</link>>
+	<<link "Add">>
+		<<set $customSlave.arm.right = new App.Entity.LimbState()>>
+		<<replace #ampRA>>
+			Yes
+		<</replace>>
+	<</link>>
+	<br>
+	Left leg:
+	<span id = "ampLL">
+		<<if hasLeftLeg($customSlave)>>Yes
+		<<else>>No
+		<</if>>
+	</span>
+	<<link "Remove">>
+		<<set $customSlave.leg.left = null>>
+		<<replace #ampLL>>
+			No
+		<</replace>>
+	<</link>>
+	<<link "Add">>
+		<<set $customSlave.leg.left = new App.Entity.LimbState()>>
+		<<replace #ampLL>>
+			Yes
+		<</replace>>
+	<</link>>
+	<br>
+	Right leg:
+	<span id = "ampRL">
+		<<if hasRightLeg($customSlave)>>Yes
+		<<else>>No
+		<</if>>
+	</span>
+	<<link "Remove">>
+		<<set $customSlave.leg.right = null>>
+		<<replace #ampRL>>
+			No
+		<</replace>>
+	<</link>>
+	<<link "Add">>
+		<<set $customSlave.leg.right = new App.Entity.LimbState()>>
+		<<replace #ampRL>>
+			Yes
+		<</replace>>
+	<</link>>
 	<br>
 <</if>>
 
@@ -1630,7 +1699,8 @@ __You are customizing this slave:__
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Onahole">>
 		<<StartingGirlsWorkaround>>
-		<<set $activeSlave.skill.anal = 0, $activeSlave.skill.oral = 0, $activeSlave.skill.vaginal = 0, $activeSlave.skill.whoring = 0, $activeSlave.skill.entertainment = 0, $activeSlave.skill.combat = 0, $activeSlave.fetish = "mindbroken", $activeSlave.amp = 1, $activeSlave.missingLegs = 3, $activeSlave.missingArms = 3, $activeSlave.voice = 0, $activeSlave.eyes = 1, $activeSlave.hears = 0>>
+		<<set $activeSlave.skill.anal = 0, $activeSlave.skill.oral = 0, $activeSlave.skill.vaginal = 0, $activeSlave.skill.whoring = 0, $activeSlave.skill.entertainment = 0, $activeSlave.skill.combat = 0, $activeSlave.fetish = "mindbroken", $activeSlave.voice = 0, $activeSlave.eyes = 1, $activeSlave.hears = 0>>
+		<<run removeLimbs($activeSlave, "all")>>
 		<<goto "Starting Girls">>
 	<</link>>
 	//A living cocksleeve//
diff --git a/src/npc/uploadSlave.tw b/src/npc/uploadSlave.tw
index f7a0a3874081ab1c86924ee35052fd05feb0e54e..72af7e9092a3274b70ad4a9271db31505c1f4366 100644
--- a/src/npc/uploadSlave.tw
+++ b/src/npc/uploadSlave.tw
@@ -66,7 +66,8 @@ hStyle: "$activeSlave.hStyle",
 pubicHStyle: "$activeSlave.pubicHStyle",
 waist: $activeSlave.waist,
 corsetPiercing: 0,
-amp: $activeSlave.amp,
+arms: $activeSlave.arm,
+legs: $activeSlave.leg,
 heels: $activeSlave.heels,
 voice: $activeSlave.voice,
 voiceImplant: $activeSlave.voiceImplant,
diff --git a/src/pregmod/fAnimalImpregConsummate.tw b/src/pregmod/fAnimalImpregConsummate.tw
index d9a87486a8c0279734535c5af6a6ff37e2d03d99..bfe0a4fc12557f5131f61752518a31aa57809d2b 100644
--- a/src/pregmod/fAnimalImpregConsummate.tw
+++ b/src/pregmod/fAnimalImpregConsummate.tw
@@ -3,4 +3,4 @@
 /* TODO: all of this */
 
 <<set _animal = $impregnatrix>>
-You have a servant lead the <<if _animal.species != "dog" || _animal.species != "cat">><<print _animal.species>><<else>><<print _animal.breed>><</if>> in on a leash and feed him a special treat, one laced with high amounts of aphrodasiacs and vasodilators. They have an effect very rapidly, and the <<if _animal.species != "dog" || _animal.species != "cat">><<print _animal.species>><<else>><<print _animal.breed>><</if>>'s <<print _animal.dickSize>> cock quickly stands at attention.
\ No newline at end of file
+You have a servant lead the <<if _animal.species != "dog" || _animal.species != "cat">><<print _animal.species>><<else>><<print _animal.breed>><</if>> in on a leash and feed him a special treat, one laced with high amounts of aphrodisiacs and vasodilators. They have an effect very rapidly, and the <<if _animal.species != "dog" && _animal.species != "cat">><<print _animal.species>><<else>><<print _animal.breed>><</if>>'s <<print _animal.dickSize>> cock quickly stands at attention.
\ No newline at end of file
diff --git a/src/pregmod/pRaped.tw b/src/pregmod/pRaped.tw
index ab50868e1557a4d10622580cf1ae480aa02568ea..5b3f6ab50b83b57ab8d0f1c1504566401c262bc7 100644
--- a/src/pregmod/pRaped.tw
+++ b/src/pregmod/pRaped.tw
@@ -305,8 +305,7 @@ While returning from a meeting with a prospective investor, an unfortunate wrong
 		<<if $seeExtreme > 0>>
 			<br><<link "Punitively amputate $his limbs, and then enslave $him">>
 				<<set $activeSlave.health -= 20>>
-				<<set $activeSlave.amp = 1, $activeSlave.missingLegs = 3, $activeSlave.missingArms = 3>>
-				<<set $activeSlave.heels = 0>>
+				<<run removeLimbs($activeSlave, "all")>>
 				<<set $activeSlave.behavioralFlaw = "odd">>
 				<<run cashX(forceNeg($contractCost), "slaveTransfer", $activeSlave)>>
 				<<replace "#result">>
diff --git a/src/pregmod/saInflation.tw b/src/pregmod/saInflation.tw
index 86787c8c04957e99c960fa22186e5dc6c69307fc..8bf2b9b0f14632ab7e93a9334837b92daa2df498 100644
--- a/src/pregmod/saInflation.tw
+++ b/src/pregmod/saInflation.tw
@@ -1,6 +1,6 @@
 :: SA inflation [nobr]
 
-<<set _DL = $DairyiIDs.length>>
+<<set _dairyL = $DairyiIDs.length>>
 
 <<if $slaves[$i].assignment == "be confined in the arcade" || $slaves[$i].assignment == "work in the dairy">>
 	<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, $slaves[$i].milkSource = 0, SetBellySize($slaves[$i])>>
@@ -220,7 +220,7 @@
 <<case "milk">>
 	<<if $slaves[$i].behavioralFlaw == "anorexic">>
 		<<if $slaves[$i].inflationMethod == 1>>
-			<<if (_DL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
@@ -234,7 +234,7 @@
 				<<set $slaves[$i].devotion -= 3, $slaves[$i].trust -= 3>>
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 2>>
-			<<if (_DL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
@@ -268,7 +268,7 @@
 		<</if>>
 	<<elseif $slaves[$i].behavioralFlaw == "gluttonous">>
 		<<if $slaves[$i].inflationMethod == 1>>
-			<<if (_DL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
@@ -282,7 +282,7 @@
 				<<set $slaves[$i].devotion += 3, $slaves[$i].trust += 3>>
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 2>>
-			<<if (_DL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
@@ -316,7 +316,7 @@
 		<</if>>
 	<<else>>
 		<<if $slaves[$i].inflationMethod == 1>>
-			<<if (_DL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
@@ -328,7 +328,7 @@
 				Throughout the week, $he makes sure to keep $himself filled with nearly two liters of milk, leaving $his belly noticeably distended. $He is full enough to be swollen but not enough to visibly jiggle.
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 2>>
-			<<if (_DL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
@@ -361,7 +361,7 @@
 <<case "cum">>
 	<<if $slaves[$i].behavioralFlaw == "anorexic">>
 		<<if $slaves[$i].inflationMethod == 1>>
-			<<if (_DL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional cum dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
@@ -375,7 +375,7 @@
 				<<set $slaves[$i].devotion -= 3, $slaves[$i].trust -= 3>>
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 2>>
-			<<if (_DL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional cum dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
@@ -406,7 +406,7 @@
 		<</if>>
 	<<elseif $slaves[$i].behavioralFlaw == "gluttonous">>
 		<<if $slaves[$i].inflationMethod == 1>>
-			<<if (_DL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional cum dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
@@ -420,7 +420,7 @@
 				<<set $slaves[$i].devotion += 3, $slaves[$i].trust += 3>>
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 2>>
-			<<if (_DL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional cum dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
@@ -451,7 +451,7 @@
 		<</if>>
 	<<else>>
 		<<if $slaves[$i].inflationMethod == 1>>
-			<<if (_DL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional cum dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
@@ -463,7 +463,7 @@
 				Throughout the week, $he makes sure to keep $himself filled with nearly two liters of cum, leaving $his belly noticeably distended. $He is full enough to be swollen but not enough to visibly jiggle.
 			<</if>>
 		<<elseif $slaves[$i].inflationMethod == 2>>
-			<<if (_DL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
+			<<if (_dairyL == 0 || $cumSlaves == 0 || $dairy == 0) && $arcologies[0].FSPastoralistLaw != 1>>
 				You no longer have a functional cum dairy. @@.yellow;$His inflation regimen has been ended.@@
 				<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, SetBellySize($slaves[$i])>>
 			<<elseif $slaves[$i].inflation == 3>>
diff --git a/src/pregmod/seFCTVshows.tw b/src/pregmod/seFCTVshows.tw
index 11db72645623c0771e92272e4dce94a64f1a7489..ba109646e0c4612f530ddc9057dcbd4cae8814c9 100644
--- a/src/pregmod/seFCTVshows.tw
+++ b/src/pregmod/seFCTVshows.tw
@@ -58,7 +58,7 @@
 			<<run _randShowArray.splice($randShow, 1)>>
 			<<continue>>
 		<</if>>
-		<<if $seeDicks == 0 && $makeDicks == 0 && [10,16].includes($randShow)>>			
+		<<if $seeDicks == 0 && $makeDicks == 0 && [10,16].includes($randShow)>>
 			There is an audible tone from your screen, which then displays a message: <i>Too many hot dogs detected, changing program.</i><br>
 			<<run _randShowArray.splice($randShow, 1)>>
 			<<continue>>
@@ -220,7 +220,7 @@
 	<<if _usedRemote>>
 		You choose
 	<<else>>
-		It looks like the random function chose 
+		It looks like the random function chose
 	<</if>>
 	to play <<if $showTwo < 12>>the newest episode of a<<else>>a repeat of the<</if>> popular competitive reality show<<if $showTwo > 0>>: Next Top Breeder.<<else>> where several female citizens are competing for something.<</if>> The intro sequence shows a succession of beautiful ladies either participating in a mixture of contrived competitions, or talking and going about their lives in a sorority-like setting. The montage is overlaid with a narrator's voice: "12 of Canadia Arcology's most attractive women are all competing for the privilege of having the arcology owner's children. Clint Miles has desirable genes, and these ladies are determined to prove their worth as gestators. And here in Canadia, there are no restrictions on fertility drugs for the winner, so the competition this season is fierce! <<if $showTwo < 12>>_rerun<<else>>$showTwo<</if>> lad<<if $showTwo > 0>>ies have<<else>>y has<</if>> already been sent packing, who will be Canadia's... Next Top Breeder!?" The title finally pops up, redundantly labeling the show as 'Next Top Breeder: Canadia'.
 	<br><br>
@@ -1150,7 +1150,7 @@
 		<<else>>
 			The random function has brought up another episode of that drama series for you.
 		<</if>>
-	<</if>> 
+	<</if>>
 	<<if $showTwelve == 1>>
 		For a moment you consider changing the channel, but you decide to give it a shot.
 		<br><br>The woman posed in the mirror. She was tall for a woman, fair skinned, and wore a keyhole sweater dress. Her scarlet hair was done in a braid down her back and her plump lips were covered in ruby red lipstick. She was slender, but not intolerably so; at the very least, she filled out her dress enough to avoid being arrested for indecency. All in all, the woman's reflection made for a pleasant picture. The only thing detracting from this scene was her glare.
@@ -1337,16 +1337,16 @@
 		<br><br>
 		The radio crackles to life again. "Everything locked down here. Charlie, get down here and get these supplies. Recon, meet us at the LZ. Over."
 		"This is Charlie, moving to secure."
-		"Recon, moving out."	
+		"Recon, moving out."
 			"Recon, moving out."
-		"Recon, moving out."	
+		"Recon, moving out."
 		<br><br>
 		The screen is closed as the pool of heat in the middle slowly cools. The camera and computer are grabbed and the recon team leaves the vantage point.
 	<<elseif $showThirteen == 2>>
 		<<if _usedRemote>>
 			You jump
 		<<else>>
-			The random function has skipped straight 
+			The random function has skipped straight
 		<</if>>
 		to the middle of yet another "real life" documentary.
 		<br><br>
@@ -1393,7 +1393,7 @@
 		<<if _usedRemote>>
 			You select
 		<<else>>
-			The random function seems to have selected 
+			The random function seems to have selected
 		<</if>>
 		a program about the nuances of slave life.
 		<br><br>
@@ -1660,7 +1660,7 @@
 		<<if _usedRemote>>
 			You begin
 		<<else>>
-			The random function begins 
+			The random function begins
 		<</if>>
 		playing a Free Cities documentary on the benefits of aphrodisiacs, which is almost halfway over. A montage of out-of-context shots of injectors, suppositories, and bottles of liquid interspersed with very horny, sweaty slaves needily grinding on each other plays before cutting back to the presenter, a gorgeous young woman with long, brown hair in a tight one-piece red dress and matching heels. Her dress, practically a second skin, proudly reveals that she definitely isn't wearing a bra or panties of any kind but still leaves plenty up to the imagination increasing her enticing presence. She's with a handsome man in a lab coat, and they're sitting on a couch in an office with a microphone on a coffee table between them.
 		<br>
diff --git a/src/pregmod/seHuskSlaveDelivery.tw b/src/pregmod/seHuskSlaveDelivery.tw
index 39cd7e6b8fe76124803f697a7391b92736dc86fd..376c21d52c5ebf10f186460647dff1091bc3be4a 100644
--- a/src/pregmod/seHuskSlaveDelivery.tw
+++ b/src/pregmod/seHuskSlaveDelivery.tw
@@ -28,7 +28,7 @@
 <<set $activeSlave.fetish = "mindbroken">>
 <<set $activeSlave.fetishStrength = 10>>
 <<set $activeSlave.fetishKnown = 1>>
-<<set $activeSlave.career = "a fuckdoll">>
+<<set $activeSlave.career = "a Fuckdoll">>
 <<set $activeSlave.behavioralFlaw = "none">>
 <<set $activeSlave.behavioralQuirk = "none">>
 <<set $activeSlave.sexualFlaw = "none">>
diff --git a/src/pregmod/sePlayerBirth.tw b/src/pregmod/sePlayerBirth.tw
index 855c01e9c4fa7330bde293816ad67fd564288fab..71e34c16cff2fe3f501d90f5307d20a2fb23089c 100644
--- a/src/pregmod/sePlayerBirth.tw
+++ b/src/pregmod/sePlayerBirth.tw
@@ -207,6 +207,8 @@ You arrange yourself to give birth, relaxing until your body urges you to begin
 				You don't know how _he2 managed to get you here when _his2 balls prevent _him2 from walking<<if $PC.pregType >= 8>>, especially with how heavy your pregnancy was<</if>>, but you give the pair a gentle caress as thanks. _He2 returns the kindness with a shudder and a large wet spot forming over _his2 crotch.
 			<<elseif tooFatSlave($Concubine)>>
 				You don't know how _he2 managed to get you here when _he2's so fat _he2 can't walk<<if $PC.pregType >= 8>>, especially with how heavy your pregnancy was<</if>>, but you give _his2 soft body a gentle caress as thanks.
+			<<elseif !hasAnyLegs($Concubine)>>
+				You don't know how _he2 managed to get you here when _he2 has no legs to walk on<<if $PC.pregType >= 8>>, especially with how heavy your pregnancy was<</if>>, but you give _his2 stumps a gentle caress as thanks.
 			<<else>>
 				You don't know how _he2 managed to get you here, since _he2 can't walk<<if $PC.pregType >= 8>>, especially with how heavy your pregnancy was<</if>>, but you're thankful either way.
 			<</if>>
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
index 24cc60b9abc4ecf46a8fa516c6000ec57ca9a7af..5bf63cf84e12aa0ad91db24afc02f83eca889bd5 100644
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -45,9 +45,8 @@
 <<set $args[0].pubicHStyle = $args[1].pubicHStyle>>
 <<set $args[0].waist = $args[1].waist>>
 <<set $args[0].corsetPiercing = $args[1].corsetPiercing>>
-<<set $args[0].amp = $args[1].amp>>
-<<set $args[0].missingArms = $args[1].missingArms>>
-<<set $args[0].missingLegs = $args[1].missingLegs>>
+<<set $args[0].arm = $args[1].arm>>
+<<set $args[0].leg = $args[1].leg>>
 <<set $args[0].PLimb = $args[1].PLimb>>
 <<set $args[0].readyProsthetics = $args[1].readyProsthetics>>
 <<set $args[0].heels = $args[1].heels>>
diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw
index cf69c52ee64aaaf928890d1bf28c3383a8248a8c..4d112836bd7a17d0960911e950d31893859c0cae 100644
--- a/src/pregmod/widgets/pregmodWidgets.tw
+++ b/src/pregmod/widgets/pregmodWidgets.tw
@@ -45,20 +45,6 @@
 		<<set $args[0].missingEyes = 0>>
 	<</if>>
 <</if>>
-<<if ndef $args[0].missingArms>>
-	<<if isAmputee($args[0])>>
-		<<set $args[0].missingArms = 3>>
-	<<else>>
-		<<set $args[0].missingArms = 0>>
-	<</if>>
-<</if>>
-<<if ndef $args[0].missingLegs>>
-	<<if isAmputee($args[0])>>
-		<<set $args[0].missingLegs = 3>>
-	<<else>>
-		<<set $args[0].missingLegs = 0>>
-	<</if>>
-<</if>>
 <<if def $args[0].prostateImplant>>
 	<<if ($args[0].prostateImplant == 1)>>
 		<<set $args[0].prostate = 3>>
@@ -71,9 +57,6 @@
 <<if ndef $args[0].sisters>>
 	<<set $args[0].sisters = 0>>
 <</if>>
-<<if ndef $args[0].readyLimbs>>
-	<<set $args[0].readyLimbs = []>>
-<</if>>
 <<if def $args[0].pregGenerator>>
 	<<run delete $args[0].pregGenerator>>
 <</if>>
@@ -549,6 +532,43 @@
 	<</if>>
 <</if>>
 
+<<if def $args[0].amp>>
+	<<if $args[0].amp === 1>>
+		<<set $args[0].arm = {left: null, right: null}>>
+		<<set $args[0].leg = {left: null, right: null}>>
+	<<else>>
+		<<set _newID = ($args[0].amp * -1) +1>>
+		<<set $args[0].arm = {
+			left: new App.Entity.LimbState(),
+			right: new App.Entity.LimbState()
+		}>>
+		<<set $args[0].leg = {
+			left: new App.Entity.LimbState(),
+			right: new App.Entity.LimbState()
+		}>>
+		<<set $args[0].arm.left.type = _newID, $args[0].arm.right.type = _newID, $args[0].leg.left.type = _newID, $args[0].leg.right.type = _newID>>
+		/* no need to check partial amputation, since it is not possible to create proir to this */
+	<</if>>
+	<<run delete $args[0].amp>>
+	<<run delete $args[0].missingLegs>>
+	<<run delete $args[0].missingArms>>
+<<elseif ndef $args[0].arm>>
+	<<set $args[0].arm = {
+		left: new App.Entity.LimbState(),
+		right: new App.Entity.LimbState()
+	}>>
+	<<set $args[0].leg = {
+		left: new App.Entity.LimbState(),
+		right: new App.Entity.LimbState()
+	}>>
+<</if>>
+
+<<if hasAnyProstheticLimbs($args[0])>>
+	<<set $args[0].PLimb = 1>>
+	<<if getLimbCount($args[0], 6) > 0>>
+		<<set $args[0].PLimb = 2>>
+	<</if>>
+<</if>>
 
 
 <</widget>>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index c4e37da746b7a1453f3796c1be30733e16b2285c..bdb45c0fb8dbd386c9c4aff7c3c5fc57447296d8 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -3454,13 +3454,6 @@ Setting missing slave variables:
 	<<set _Slave.faceImplant = 65>>
 <</if>>
 
-<<if _Slave.amp < 0>>
-	<<set _Slave.PLimb = 1>>
-	<<if _Slave.amp == -5>>
-		<<set _Slave.PLimb = 2>>
-	<</if>>
-<</if>>
-
 <<if def _Slave.areoleaPiercing>>
 	<<run delete _Slave.areoleaPiercing>>
 <</if>>
@@ -3518,12 +3511,6 @@ Setting missing slave variables:
 	<</for>>
 <</if>>
 
-<<if _Slave.amp > 0>>
-	<<set _Slave.missingArms = 3, _Slave.missingLegs = 3>>
-<<elseif _Slave.amp < 0>>
-	<<set _Slave.missingArms = 0, _Slave.missingLegs = 0>>
-<</if>>
-
 <<set $slaves[_bci] = _Slave>>
 <</for>>
 
@@ -4131,4 +4118,4 @@ Done<br>
 <</if>>
 
 /* reset NaNArray after BC is run */
-<<set $NaNArray = findNaN()>>
\ No newline at end of file
+<<set $NaNArray = findNaN()>>
diff --git a/src/uncategorized/REFI.tw b/src/uncategorized/REFI.tw
index 881d7646dbffc1649beee8b416e30fa806b3b592..bb7274fae62aabe0bbd9151606af2c63362c6cde 100644
--- a/src/uncategorized/REFI.tw
+++ b/src/uncategorized/REFI.tw
@@ -493,7 +493,9 @@ It seems $he passed by while you were drinking from $subSlave.slaveName and foun
 /* 000-250-006 */
 
 $subSlave.slaveName is <<if $subSlave.vagina > 0 || $subSlave.anus > 0>>riding another slave, _his2 hands pinning _himU down<<else>>straddling another slave, _his2 <<if $subSlave.dick > 0>>cock in _hisU mouth<<else>><<if $subSlave.vagina > 0>>pussy<<else>>ass<</if>>pressed to _hisU face<</if>><</if>>. The slave_girlU had been disobedient, and _hisU punishment was to let $subSlave.slaveName dominate _himU. The truth is this is also _his2 reward; _he2 is such a dominant that _he2's prone to lashing out at your other slaves if _he2 isn't given a proper outlet. Sure enough, _his2 moans begin to increase in pitch and frequency, reaching a crescendo as _he2 comes to an orgasm. Once you feel the poor _girlU beneath _him2 has had enough, you give $subSlave.slaveName the order to dismount. _He2 leaves your office with a smile on _his2 face, passing <<EventNameLink $activeSlave>>, who is
-<<if !hasAnyLegs($activeSlave)>>
+<<if isAmputee($activeSlave)>>
+	propped limblessly nearby. $He has
+<<elseif !hasAnyLegs($activeSlave)>>
 	propped helplessly nearby. $He has
 <<elseif !canWalk($activeSlave)>>
 	kneeling in the doorway with
@@ -550,7 +552,9 @@ It seems $he passed by while $subSlave.slaveName was dominating the other slave<
 /* 000-250-006 */
 
 $subSlave.slaveName is lying on the edge of your desk with _his2<<if $subSlave.belly >= 1500>> bloated<</if>> body helpless beneath you, your <<if $PC.dick == 1>>dick<<else>>strap-on<</if>> in _him2, and your hands around _his2 neck. It's just breath play, and you're practiced enough that _he2's in no danger. _He2's such a sexual submissive that _he2 sometimes acts out if not managed. This happens when _he2 feels the urge to misbehave in order to access punishment, so you personally ensure that _he2 can indulge _his2 submissiveness when _he2 needs it. _He2 does not orgasm with you, _his2 complete servitude to your pleasure fulfilling a deeper need than that. _He2 leaves your office with a serene look on _his2 face, passing <<EventNameLink>>, who is
-<<if !hasAnyLegs($activeSlave)>>
+<<if isAmputee($activeSlave)>>
+	propped limblessly nearby. $He has
+<<elseif !hasAnyLegs($activeSlave)>>
 	propped helplessly nearby. $He has
 <<elseif !canWalk($activeSlave)>>
 	kneeling in the doorway with
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index c7d7805985c28d68ee205a471f1e6d1e0c367875..733373596ecf11053569d99e158688d8b3dd0fa1 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -2919,7 +2919,7 @@ on a tray<<if $activeSlave.preg > $activeSlave.pregData.normalBirth/1.33>> caref
 <br><br>
 
 $He comes to a stop right beside your elbow, waiting for further direction, just as $he's been trained to do in these cases.
-<<if getLimbCount(102) > 2>>
+<<if getLimbCount($activeSlave, 102) > 2>>
 	As $he maintains $his posture obediently, $his P-Limbs produce minute machine noises. They allow $him good coordination, but their gyros and servomotors are constantly working to maintain it, which means that when $he stands still, they're not perfectly quiet.
 <<elseif $activeSlave.boobs > 4000>>
 	$His breasts are so massive that $he's got the tray more or less balanced on top of them. As $he breathes, $his tits rise and fall slightly,
@@ -7855,11 +7855,8 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 		<<EventNameDelink $activeSlave>>
 		<<replace "#result">>
 			The simple thing to do would be to sedate $activeSlave.slaveName and haul $him to the remote surgery for $his punishment. That would deny $him the added weight of terror, however, and would stop your other slaves from learning by the sight of it. So, you restrain $him, pronounce judgment, and drag $his struggling, weeping form through the penthouse to the surgery. $activeSlave.slaveName is @@.mediumorchid;filled with implacable hatred@@ by this terrible punishment, and $his @@.red;health is damaged@@ by the major surgery. However, every single one of your other slaves not already obedient to you is @@.gold;utterly terrified@@ by the example set.
-			<<run surgeryAmp($activeSlave, "left arm")>>
-			<<run surgeryAmp($activeSlave, "left leg")>>
-			<<run surgeryAmp($activeSlave, "right arm")>>
-			<<run surgeryAmp($activeSlave, "right leg")>>
-			<<set $activeSlave.devotion -= 50, $activeSlave.trust -= 50, $activeSlave.health -= 40, $activeSlave.diet = "healthy", $activeSlave.amp = 1>>
+			<<set $activeSlave.devotion -= 50, $activeSlave.trust -= 50, $activeSlave.health -= 40, $activeSlave.diet = "healthy">>
+			<<run removeLimbs($activeSlave, "all")>>
 			<<set $slaves.forEach(function(s) { if (s.devotion <= 20) { s.trust -= 10; } })>>
 		<</replace>>
 	<</link>>
diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw
index d7f1073710b380257117f8cfdc4737db53c75313..44fcafd23b19dcf060f3af23120ae013286ad82d 100644
--- a/src/uncategorized/RETS.tw
+++ b/src/uncategorized/RETS.tw
@@ -646,7 +646,7 @@ $subSlave.slaveName keeps _his2 eyes clamped shut and _his2 hand<<if hasBothArms
 
 <<set $subSlave.counter.anal++, $analTotal++>>
 <<set _belly = bellyAdjective($subSlave)>>
-As you pass the showers, you hear what sounds like a muffled altercation over the noise of the showers running. You look in to see $subSlave.slaveName's $subSlave.skin body facing you, pressed hard up against the glass wall of one of the showers. _His2 <<if $subSlave.face > 95>>gorgeous<<elseif $subSlave.face > 40>>beautiful<<elseif $subSlave.face > 10>>pretty<<elseif $subSlave.face >= -10>>attractive<<else>>homely<</if>> face<<if $subSlave.belly >= 5000>> and <<if $subSlave.bellyPreg >= 5000>>pregnant<<else>>_belly<</if>> belly are<<else>> is<</if>> smashed against the glass, <<if $subSlave.belly >= 5000>>_his2 face <</if>>contorted in pain and fear. The apparent mystery is solved when you notice that there are four legs visible: there's a pair of <<if ($activeSlave.muscles > 95)>>ripped<<elseif ($activeSlave.muscles > 30)>>muscular<<elseif ($activeSlave.muscles > 5)>>toned<<else>>soft<</if>> $activeSlave.skin calves behind $subSlave.slaveName's. <<EventNameLink>>'s face appears at $subSlave.slaveName's ear, and though you can't hear exactly what $he says, it's something along the lines of "Take it, you whiny little bitch." $He's clearly got <<if canPenetrate($activeSlave)>>$his cock<<else>>a couple of fingers<</if>> up $subSlave.slaveName's asshole.
+As you pass the showers, you hear what sounds like a muffled altercation over the noise of the showers running. You look in to see $subSlave.slaveName's $subSlave.skin body facing you, pressed hard up against the glass wall of one of the showers. _His2 <<if $subSlave.face > 95>>gorgeous<<elseif $subSlave.face > 40>>beautiful<<elseif $subSlave.face > 10>>pretty<<elseif $subSlave.face >= -10>>attractive<<else>>homely<</if>> face<<if $subSlave.belly >= 5000>> and <<if $subSlave.bellyPreg >= 5000>>pregnant<<else>>_belly<</if>> belly are<<else>> is<</if>> smashed against the glass, <<if $subSlave.belly >= 5000>>_his2 face <</if>>contorted in pain and fear. The apparent mystery is solved when you notice that there are <<if hasBothLegs($activeSlave) && hasBothLegs($subSlave)>>four<<elseif hasBothLegs($activeSlave) || hasBothLegs($subSlave)>>three<<else>>two<</if>> legs visible: there's a <<if hasBothLegs($activeSlave)>>pair of <</if>><<if ($activeSlave.muscles > 95)>>ripped<<elseif ($activeSlave.muscles > 30)>>muscular<<elseif ($activeSlave.muscles > 5)>>toned<<else>>soft<</if>> $activeSlave.skin cal<<if hasBothLegs($activeSlave)>>ves<<else>>f<</if>> behind $subSlave.slaveName's. <<EventNameLink>>'s face appears at $subSlave.slaveName's ear, and though you can't hear exactly what $he says, it's something along the lines of "Take it, you whiny little bitch." $He's clearly got <<if canPenetrate($activeSlave)>>$his cock<<else>>a couple of fingers<</if>> up $subSlave.slaveName's asshole.
 <br><br>
 Both slaves notice you at the same time. $subSlave.slaveName's <<if canSee($subSlave)>><<= App.Desc.eyeColor($subSlave)>> eyes widen<<else>>face lights up<</if>>, but _his2 momentary look of hope is snuffed out when _he2 remembers who you are. $activeSlave.slaveName, on the other hand, looks a little doubtful. The rules allow $him to fuck your other slaves, but $he isn't quite sure what the right thing to do is, since $he isn't the most dominant force in the showers any more.
 
diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw
index 30bf3bc0acab17a80aa7c73930229beb241c0f62..06f0efb4c51cb308bf4bb595d7507066c3a74c89 100644
--- a/src/uncategorized/costsReport.tw
+++ b/src/uncategorized/costsReport.tw
@@ -711,8 +711,8 @@ $researchLab.level > 0>>
 		<<set _individualCosts += 5>>
 	<</if>>
 	<<if ($slaves[$i].assignment != "work in the dairy" || $dairyRestraintsSetting < 2) && ($slaves[$i].assignment != "be confined in the arcade")>>
-		<<if ($slaves[$i].amp != 0)>>
-			<<if ($slaves[$i].amp == 1)>>
+		<<if (!hasAllNaturalLimbs($slaves[$i]))>>
+			<<if (isAmputee($slaves[$i]))>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Increased living expenses due to limblessness:</i>
 				@@.yellowgreen;<<print cashFormat($rulesCost)>>@@
 				<<set _individualCosts += $rulesCost>>
diff --git a/src/uncategorized/customSlave.tw b/src/uncategorized/customSlave.tw
index e2a6dd5b8c08acb0820fb1ddcf59f5cd225c87a9..064cae0fc68a51ba6851cb7ec7abfd44f9bf4fac 100644
--- a/src/uncategorized/customSlave.tw
+++ b/src/uncategorized/customSlave.tw
@@ -1236,28 +1236,82 @@ Skin tone: <span id = "skin">
 
 <br>
 
-<span id = "amputation">
-<<if $customSlave.amp == 1>>Limbless.
-<<else>>Limbed.
-<</if>>
+Left arm:
+<span id = "ampLA">
+	<<if hasLeftArm($customSlave)>>Yes
+	<<else>>No
+	<</if>>
 </span>
-<<link "Limbless">>
-	<<set $customSlave.amp = 1>>
-	<<set $customSlave.missingArms = 3>>
-	<<set $customSlave.missingLegs = 3>>
-	<<replace #amputation>>
-		Limbless.
+<<link "Remove">>
+	<<set $customSlave.arm.left = null>>
+	<<replace #ampLA>>
+		No
 	<</replace>>
 <</link>>
-|
-<<link "Limbed">>
-	<<set $customSlave.amp = 0>>
-	<<set $customSlave.missingArms = 0>>
-	<<set $customSlave.missingLegs = 0>>
-	<<replace #amputation>>
-		Limbed.
+<<link "Add">>
+	<<set $customSlave.arm.left = new App.Entity.LimbState()>>
+	<<replace #ampLA>>
+		Yes
 	<</replace>>
 <</link>>
+<br>
+Right arm:
+<span id = "ampRA">
+	<<if hasRightArm($customSlave)>>Yes
+	<<else>>No
+	<</if>>
+</span>
+<<link "Remove">>
+	<<set $customSlave.arm.right = null>>
+	<<replace #ampRA>>
+		No
+	<</replace>>
+<</link>>
+<<link "Add">>
+	<<set $customSlave.arm.right = new App.Entity.LimbState()>>
+	<<replace #ampRA>>
+		Yes
+	<</replace>>
+<</link>>
+<br>
+Left leg:
+<span id = "ampLL">
+	<<if hasLeftLeg($customSlave)>>Yes
+	<<else>>No
+	<</if>>
+</span>
+<<link "Remove">>
+	<<set $customSlave.leg.left = null>>
+	<<replace #ampLL>>
+		No
+	<</replace>>
+<</link>>
+<<link "Add">>
+	<<set $customSlave.leg.left = new App.Entity.LimbState()>>
+	<<replace #ampLL>>
+		Yes
+	<</replace>>
+<</link>>
+<br>
+Right leg:
+<span id = "ampRL">
+	<<if hasRightLeg($customSlave)>>Yes
+	<<else>>No
+	<</if>>
+</span>
+<<link "Remove">>
+	<<set $customSlave.leg.right = null>>
+	<<replace #ampRL>>
+		No
+	<</replace>>
+<</link>>
+<<link "Add">>
+	<<set $customSlave.leg.right = new App.Entity.LimbState()>>
+	<<replace #ampRL>>
+		Yes
+	<</replace>>
+<</link>>
+
 
 <br>
 <</if>>
@@ -1297,7 +1351,7 @@ Nationality: $customSlave.nationality.
 <br><br>
 
 <<link "Reset custom order form">>
-	<<set $customSlave = {age: 19, health: 0, muscles: 0, lips: 15, heightMod: "normal", weight: 0, face: 0, race: "white", skin: "left natural", boobs: 500, butt: 3, sex: 1, virgin: 0, dick: 2, balls: 2, clit: 0, labia: 0, vaginaLube: 1, analVirgin: 0, skills: 15, skill: {whore: 15, combat: 0}, intelligence: 0, intelligenceImplant: 0, nationality: "Stateless", amp: 0, eyes: 1, hears: 0}>>
+	<<set $customSlave = {age: 19, health: 0, muscles: 0, lips: 15, heightMod: "normal", weight: 0, face: 0, race: "white", skin: "left natural", boobs: 500, butt: 3, sex: 1, virgin: 0, dick: 2, balls: 2, clit: 0, labia: 0, vaginaLube: 1, analVirgin: 0, skills: 15, skill: {whore: 15, combat: 0}, intelligence: 0, intelligenceImplant: 0, nationality: "Stateless", arm: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, leg: {left: new App.Entity.LimbState(), right: new App.Entity.LimbState()}, eyes: 1, hears: 0}>>
 	<<goto "Custom Slave">>
 <</link>>
 
diff --git a/src/uncategorized/fsDevelopments.tw b/src/uncategorized/fsDevelopments.tw
index 2d92e02099a19ddc18dc17f47c2d5003d0728c2c..fab374e7ddd0526ea98c391e8fe39397d38dc644 100644
--- a/src/uncategorized/fsDevelopments.tw
+++ b/src/uncategorized/fsDevelopments.tw
@@ -104,9 +104,14 @@
 
 /* Spending, terrain, rep effects */
 <<set _broadProgress = 0>>
-<<if $SF.Toggle && $SF.Active >= 1 && $SF.UC.Assign > 0 && $SF.UC.num > 0>>
+<<if $SF.Toggle && $SF.Active >= 1 && $SF.UC.Assign > 0>>
 	Assigning a <<if $SF.UC.Assign === 1>>small<<else>>large<</if>> portion of $SF.Lower to undercover work helps to advance your cultural goals.
-	<<set _broadProgress += $SF.UC.num/100>> <br>
+	<<if $SF.UC.Assign === 1>>
+		<<set _value = $SF.Squad.Troops * 0.05>>
+	<<else>>
+		<<set _value = $SF.Squad.Troops * 0.25>>
+	<</if>>
+	<<set _broadProgress += _value/100>> <br>
 <</if>>
 <<if $FSSpending > 1>>
 	Your @@.yellowgreen;societal spending@@ helps forward your goals for the arcology's future.
diff --git a/src/uncategorized/multiImplant.tw b/src/uncategorized/multiImplant.tw
index 995590c9498b497f96e1a6e8babee167230618e1..210e0eb9a3e3c99a4043d1eabcfc0b81b15dd0b3 100644
--- a/src/uncategorized/multiImplant.tw
+++ b/src/uncategorized/multiImplant.tw
@@ -1007,122 +1007,122 @@ You head down to your <<if $surgeryUpgrade == 1>>heavily upgraded and customized
 
 	/* start prosthetics */
 	<<if _prostheticCount > 0>>
-	<<for _k = 0; _k < $adjustProsthetics.length; _k++>>
-	<<set _p = $adjustProsthetics[_k]>>
-	<<if _p.slaveID == $activeSlave.ID && _p.workLeft <= 0>>
-		<<set $adjustProsthetics.splice(_k, 1), _k-->>
-		<<set $activeSlave.readyProsthetics.push({id: _p.id})>>
-		<br><hr>
-		<<switch _p.id>>
-		<<case "ocular">>
-			<<if $activeSlave.eyes < -1>>
-				<<set $activeSlave.eyesImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "ocular implant">>
-				<<include "Surgery Degradation">>
-			<<else>>
-				//Since $he has working eyes the <<= setup.prosthetics.ocular.name>> will be put into storage.//
-			<</if>>
-		<<case "cochlear">>
-			<<if $activeSlave.hears != 0>>
-				<<set $activeSlave.earImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "cochlear implant">>
-				<<include "Surgery Degradation">>
-			<<else>>
-				//Since $he has working ears the <<= setup.prosthetics.cochlear.name>> will be put into storage.//
-			<</if>>
-		<<case "electrolarynx">>
-			<<if $activeSlave.voice <= 0>>
-				<<set $activeSlave.electrolarynx = 1, $activeSlave.voice = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "electrolarynx">>
-				<<include "Surgery Degradation">>
-			<<else>>
-				//Since $he has a voice the <<= setup.prosthetics.electrolarynx.name>> will be put into storage.//
-			<</if>>
-		<<case "interfaceP1">>
-			<<if hasAnyNaturalLimbs($activeSlave)>>
-				//Since $he has at least one healthy limb the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.//
-			<<elseif $activeSlave.PLimb == 2>>
-				//Since $he already has <<= addA(setup.prosthetics.interfaceP2.name)>> installed the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.//
-			<<else>>
-				<<set $activeSlave.PLimb = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "PLimb interface1">>
-				<<include "Surgery Degradation">>
-			<</if>>
-		<<case "interfaceP2">>
-			<<if hasAnyNaturalLimbs($activeSlave)>>
-				//Since $he has at least ine healthy limb the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.//
-			<<elseif $activeSlave.PLimb == 1>>
-				<<set $activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 5, $surgeryType = "PLimb interface3">>
-				<<include "Surgery Degradation">>
-			<<else>>
-				<<set $activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "PLimb interface2">>
-				<<include "Surgery Degradation">>
-			<</if>>
-		<<case "basicL" "sexL" "beautyL" "combatL" "cyberneticL">>
-			<<if $activeSlave.fuckdoll != 0>>
-				//Since a Fuckdoll can't use prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
-			<<elseif hasAnyNaturalLimbs($activeSlave)>>
-				//Since $he must be a quadruple amputee to attach prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
-			<<elseif $activeSlave.PLimb == 0>>
-				//Since $he must have a prosthetic interface installed to attach prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
-			<<else>>
-				<<if _p.id == "basicL">>
-					<<if hasAnyProstheticLimbs($activeSlave)>>
-						<<set $activeSlave.amp = -1, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "basicPLimbs">>
-						<<include "Prosthetics Configuration">>
+		<<for _k = 0; _k < $adjustProsthetics.length; _k++>>
+			<<set _p = $adjustProsthetics[_k]>>
+			<<if _p.slaveID == $activeSlave.ID && _p.workLeft <= 0>>
+				<<set $adjustProsthetics.splice(_k, 1), _k-->>
+				<<set $activeSlave.readyProsthetics.push({id: _p.id})>>
+				<br><hr>
+				<<switch _p.id>>
+				<<case "ocular">>
+					<<if $activeSlave.eyes < -1>>
+						<<set $activeSlave.eyesImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "ocular implant">>
+						<<include "Surgery Degradation">>
 					<<else>>
-						//Since $he already has more advanced prosthetic limbs attached the <<= setup.prosthetics.basicL.name>> will be put into storage.//
+						//Since $he has working eyes the <<= setup.prosthetics.ocular.name>> will be put into storage.//
 					<</if>>
-				<<elseif _p.id == "sexL">>
-					<<if (getLimbCount($activeSlave, 3) + getLimbCount($activeSlave, 4) + getLimbCount($activeSlave, 5) + getLimbCount($activeSlave, 6)) === 0>>
-						<<set $activeSlave.amp = -2, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "sexPLimbs">>
-						<<include "Prosthetics Configuration">>
+				<<case "cochlear">>
+					<<if $activeSlave.hears != 0>>
+						<<set $activeSlave.earImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "cochlear implant">>
+						<<include "Surgery Degradation">>
 					<<else>>
-						//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.sexL.name>> will be put into storage.//
+						//Since $he has working ears the <<= setup.prosthetics.cochlear.name>> will be put into storage.//
 					<</if>>
-				<<elseif _p.id == "beautyL">>
-					<<if (getLimbCount($activeSlave, 3) + getLimbCount($activeSlave, 4) + getLimbCount($activeSlave, 5) + getLimbCount($activeSlave, 6)) === 0>>
-						<<set $activeSlave.amp = -3, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "beautyPLimbs">>
-						<<include "Prosthetics Configuration">>
+				<<case "electrolarynx">>
+					<<if $activeSlave.voice <= 0>>
+						<<set $activeSlave.electrolarynx = 1, $activeSlave.voice = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "electrolarynx">>
+						<<include "Surgery Degradation">>
 					<<else>>
-						//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.beautyL.name>> will be put into storage.//
+						//Since $he has a voice the <<= setup.prosthetics.electrolarynx.name>> will be put into storage.//
 					<</if>>
-				<<elseif _p.id == "combatL">>
-					<<if (getLimbCount($activeSlave, 3) + getLimbCount($activeSlave, 4) + getLimbCount($activeSlave, 5) + getLimbCount($activeSlave, 6)) === 0>>
-						<<set $activeSlave.amp = -4, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "combatPLimbs">>
-						<<include "Prosthetics Configuration">>
+				<<case "interfaceP1">>
+					<<if hasAnyNaturalLimbs($activeSlave)>>
+						//Since $he has at least one healthy limb the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.//
+					<<elseif $activeSlave.PLimb == 2>>
+						//Since $he already has <<= addA(setup.prosthetics.interfaceP2.name)>> installed the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.//
 					<<else>>
-						//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.combatL.name>> will be put into storage.//
+						<<set $activeSlave.PLimb = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "PLimb interface1">>
+						<<include "Surgery Degradation">>
 					<</if>>
-				<<else>>
-					<<if $activeSlave.PLimb == 2>>
-						<<set $activeSlave.amp = -5, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $prostheticsConfig = "cyberPLimbs">>
-						<<include "Prosthetics Configuration">>
+				<<case "interfaceP2">>
+					<<if hasAnyNaturalLimbs($activeSlave)>>
+						//Since $he has at least ine healthy limb the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.//
+					<<elseif $activeSlave.PLimb == 1>>
+						<<set $activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 5, $surgeryType = "PLimb interface3">>
+						<<include "Surgery Degradation">>
 					<<else>>
-						//Since $he must have <<= addA(setup.prosthetics.interfaceP2.name)>> installed to attach cybernetic limbs the <<= setup.prosthetics.cyberneticL.name>> will be put into storage.//
+						<<set $activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "PLimb interface2">>
+						<<include "Surgery Degradation">>
 					<</if>>
-				<</if>>
-			<</if>>
-		<<case "interfaceTail">>
-			<<set $activeSlave.PTail = 1, $activeSlave.tail = "none", $activeSlave.tailColor = "none", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "tailInterface">>
-			<<include "Surgery Degradation">>
-		<<case "modT" "sexT" "combatT">>
-			<<if $activeSlave.PTail == 0>>
-				//Since $he must have <<= addA(setup.prosthetics.interfaceTail.name)>> installed to attach tails the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
-			<<elseif $activeSlave.tail != "none">>
-				//Since $he currently has a tail attached the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
-			<<elseif _p.id == "modT">>
-				//Since installing <<= addA(setup.prosthetics.modT.name)>> is complicated it can't be automated.//
-				/*Reason: there are different designs player can choose from.*/
-			<<elseif _p.id == "combatT">>
-				<<set $prostheticsConfig = "attachTail", $activeSlave.tail = "combat", $activeSlave.tailColor = "jet black">>
-				<<include "Prosthetics Configuration">>
-			<<elseif _p.id == "sexT">>
-				<<set $prostheticsConfig = "attachTail", $activeSlave.tail = "sex", $activeSlave.tailColor = "pink">>
-				<<include "Prosthetics Configuration">>
+				<<case "basicL" "sexL" "beautyL" "combatL" "cyberneticL">>
+					<<if $activeSlave.fuckdoll != 0>>
+						//Since a Fuckdoll can't use prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
+					<<elseif hasAnyNaturalLimbs($activeSlave)>>
+						//Since $he must be a quadruple amputee to attach prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
+					<<elseif $activeSlave.PLimb == 0>>
+						//Since $he must have a prosthetic interface installed to attach prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
+					<<else>>
+						<<if _p.id == "basicL">>
+							<<if hasAnyProstheticLimbs($activeSlave)>>
+								<<set attachLimbs($activeSlave, "all", 2), $prostheticsConfig = "basicPLimbs">>
+								<<include "Prosthetics Configuration">>
+							<<else>>
+								//Since $he already has more advanced prosthetic limbs attached the <<= setup.prosthetics.basicL.name>> will be put into storage.//
+							<</if>>
+						<<elseif _p.id == "sexL">>
+							<<if (getLimbCount($activeSlave, 3) + getLimbCount($activeSlave, 4) + getLimbCount($activeSlave, 5) + getLimbCount($activeSlave, 6)) === 0>>
+								<<set attachLimbs($activeSlave, "all", 3), $prostheticsConfig = "sexPLimbs">>
+								<<include "Prosthetics Configuration">>
+							<<else>>
+								//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.sexL.name>> will be put into storage.//
+							<</if>>
+						<<elseif _p.id == "beautyL">>
+							<<if (getLimbCount($activeSlave, 3) + getLimbCount($activeSlave, 4) + getLimbCount($activeSlave, 5) + getLimbCount($activeSlave, 6)) === 0>>
+								<<set attachLimbs($activeSlave, "all", 4), $prostheticsConfig = "beautyPLimbs">>
+								<<include "Prosthetics Configuration">>
+							<<else>>
+								//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.beautyL.name>> will be put into storage.//
+							<</if>>
+						<<elseif _p.id == "combatL">>
+							<<if (getLimbCount($activeSlave, 3) + getLimbCount($activeSlave, 4) + getLimbCount($activeSlave, 5) + getLimbCount($activeSlave, 6)) === 0>>
+								<<set attachLimbs($activeSlave, "all", 5), $prostheticsConfig = "combatPLimbs">>
+								<<include "Prosthetics Configuration">>
+							<<else>>
+								//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.combatL.name>> will be put into storage.//
+							<</if>>
+						<<else>>
+							<<if $activeSlave.PLimb == 2>>
+								<<set attachLimbs($activeSlave, "all", 6), $prostheticsConfig = "cyberPLimbs">>
+								<<include "Prosthetics Configuration">>
+							<<else>>
+								//Since $he must have <<= addA(setup.prosthetics.interfaceP2.name)>> installed to attach cybernetic limbs the <<= setup.prosthetics.cyberneticL.name>> will be put into storage.//
+							<</if>>
+						<</if>>
+					<</if>>
+				<<case "interfaceTail">>
+					<<set $activeSlave.PTail = 1, $activeSlave.tail = "none", $activeSlave.tailColor = "none", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "tailInterface">>
+					<<include "Surgery Degradation">>
+				<<case "modT" "sexT" "combatT">>
+					<<if $activeSlave.PTail == 0>>
+						//Since $he must have <<= addA(setup.prosthetics.interfaceTail.name)>> installed to attach tails the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
+					<<elseif $activeSlave.tail != "none">>
+						//Since $he currently has a tail attached the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
+					<<elseif _p.id == "modT">>
+						//Since installing <<= addA(setup.prosthetics.modT.name)>> is complicated it can't be automated.//
+						/*Reason: there are different designs player can choose from.*/
+					<<elseif _p.id == "combatT">>
+						<<set $prostheticsConfig = "attachTail", $activeSlave.tail = "combat", $activeSlave.tailColor = "jet black">>
+						<<include "Prosthetics Configuration">>
+					<<elseif _p.id == "sexT">>
+						<<set $prostheticsConfig = "attachTail", $activeSlave.tail = "sex", $activeSlave.tailColor = "pink">>
+						<<include "Prosthetics Configuration">>
+					<</if>>
+				<<default>>
+					//Since there is no automated procedure to implant/attach <<= setup.prosthetics[_p.id].name>> it will be put into storage.//
+				<</switch>>
+				<br>
 			<</if>>
-		<<default>>
-			//Since there is no automated procedure to implant/attach <<= setup.prosthetics[_p.id].name>> it will be put into storage.//
-		<</switch>>
-		<br>
-	<</if>>
-	<</for>>
+		<</for>>
 	<</if>>
 	/* end prosthetics */
 	/* updates the interrogated slave */
diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw
index dc3398eb94a551ca1e0b1ef4ea4f24938136101d..449b2bb8605b6eb869d75aed2389f6152ad36668 100644
--- a/src/uncategorized/nextWeek.tw
+++ b/src/uncategorized/nextWeek.tw
@@ -179,14 +179,11 @@
 	<<if $slaves[_i].dick == 0>>
 		<<set $slaves[_i].dickAccessory = "none", $slaves[_i].chastityPenis = 0, $slaves[_i].dickTat = 0, $slaves[_i].dickPiercing = 0>>
 	<</if>>
-	<<if $slaves[_i].amp == 1>>
-		<<set $slaves[_i].missingArms = 3, $slaves[_i].missingLegs = 3>>
-	<</if>>
 	/* I don't trust these */
-	<<if $slaves[_i].missingArms == 3 && $slaves[_i].amp == 1>>
+	<<if !hasAnyArms($slaves[_i])>>
 		<<set $slaves[_i].armsTat = 0, $slaves[_i].nails = 0, $slaves[_i].armAccessory = "none">>
 	<</if>>
-	<<if $slaves[_i].missingLegs == 3 && $slaves[_i].amp == 1>>
+	<<if !hasAnyLegs($slaves[_i])>>
 		<<set $slaves[_i].heels = 0, $slaves[_i].shoes = "none", $slaves[_i].legAccessory = "none", $slaves[_i].legsTat = 0, $slaves[_i].heightImplant = 0>>
 	<</if>>
 	/* irregular leptin production weight gain/loss setter */
diff --git a/src/uncategorized/pCitizensAndCivilians.tw b/src/uncategorized/pCitizensAndCivilians.tw
index e8df864f7f049efd6476e98d44c2ad4162114854..ed1ec9b08ea8b6583e452cbe8ba3524bb4b634f1 100644
--- a/src/uncategorized/pCitizensAndCivilians.tw
+++ b/src/uncategorized/pCitizensAndCivilians.tw
@@ -95,7 +95,7 @@
 <</link>> <<if ($PC.warfare >= 100) || ($PC.career == "arcology owner")>>//This will cost <<print cashFormat(10000)>> and some upkeep, @@.springgreen;reduced by your mercenary contacts@@//<<else>>//This will cost <<print cashFormat(20000)>> and incur significant upkeep costs//<</if>>
 <</if>>
 <<if $arcologies[0].FSChineseRevivalist >= 10>>
-<<link "They shall be my Imperial Guards">>
+<br><<link "They shall be my Imperial Guards">>
 	<<replace "#result">>
 	You ask for a meeting with your mercenaries' captain and lay out a proposal for a new contract between you over $PC.refreshment. As he reviews the terms, he looks skeptical, then surprised, then interested, and finally, he breaks out into laughter. "<<= properTitle()>>," he says, "you have no idea how fun this is going to be." He rises and gives you a short bow. "General of the Imperial Guard, reporting for duty, <<= properTitle()>>." The mercenaries — no, the Imperial Guards — are well looked after. They are each assigned a nice apartment, a freshly enslaved servant, and a suit of prototype armor equipped with the latest weapons and bearing an Imperial Chinese war banner. Word of the innovation runs through the Free Cities @@.green;like wildfire.@@
 	<<set $nextButton = "Continue">>
diff --git a/src/uncategorized/pMercenaryRomeo.tw b/src/uncategorized/pMercenaryRomeo.tw
index 3316a5cf3aba445424550f62d571f3ad6123bd0a..fa68a5f37fd9d3b4e4e31f705ea75e01a1d61f13 100644
--- a/src/uncategorized/pMercenaryRomeo.tw
+++ b/src/uncategorized/pMercenaryRomeo.tw
@@ -98,10 +98,10 @@ proffered by an attentive slave _girlU, he seems almost bashful.
 				Since $he returned to slavery, it's only fair to return the credits he paid for $him. He thanks you hollowly before heading on his way.
 			<<else>>
 				happened.
-				<<if hasBothLegs($activeSlave) && hasAnyArms($activeSlave)>>
+				<<if hasAnyArms($activeSlave) && hasBothLegs($activeSlave)>>
 					$He hugs him, sobbing into his shoulder. As they walk hand in hand down towards his quarters,
 				<<else>>
-					As he picks up $his limbless form to give $him a hug,
+					As he <<if !isAmputee($activeSlave)>>gives<<else>>picks up $his limbless form to give<</if>> $him a hug,
 				<</if>>
 				$he gives the nearest camera a little nod and silently mouths the words "Thank you, <<= WrittenMaster($activeSlave)>>." Soon the romantic story of The Mercenary and the Slave $Girl is being told in bars and brothels across the Free City, with you naturally playing @@.green;a supporting role.@@
 				<<run cashX($slaveCost, "slaveTransfer")>>
@@ -125,10 +125,10 @@ proffered by an attentive slave _girlU, he seems almost bashful.
 				"I thought I was giving $him a better life... But $he already had everything $he wanted. I'm sorry for putting you in such a position." You can hear the sadness in his voice. "Thank you for your time. I'm sorry to have bothered you."
 			<<else>>
 				happened.
-				<<if hasBothLegs($activeSlave) && hasAnyLegs($activeSlave)>>
+				<<if hasAnyArms($activeSlave) && hasAnyLegs($activeSlave)>>
 					$He hugs him, sobbing into his shoulder. As they walk hand in hand down towards his quarters,
 				<<else>>
-					As he picks up $his limbless form to give $him a hug,
+					As he <<if !isAmputee($activeSlave)>>gives<<else>>picks up $his limbless form to give<</if>> $him a hug,
 				<</if>>
 				$he gives the nearest camera a little nod and silently mouths the words "Thank you, <<= WrittenMaster($activeSlave)>>." You smile to yourself; when they get there they'll find flowers and a paid reservation at the arcology's best restaurant. Soon the story is being told in bars and brothels across the Free City, with you naturally playing @@.green;a starring role.@@ Some days later, you hear a dramatization is being filmed, with an aging action star playing the mercenary, a rising starlet playing $activeSlave.slaveName, and a noted character actor playing you.
 				<<run repX(15000, "event")>>
diff --git a/src/uncategorized/pRivalryActions.tw b/src/uncategorized/pRivalryActions.tw
index 3465a62b0d7f54e1de2b281409971b0eb3da7d3a..65d2366260547f17e65369aa2ffa23c9281232f5 100644
--- a/src/uncategorized/pRivalryActions.tw
+++ b/src/uncategorized/pRivalryActions.tw
@@ -1455,10 +1455,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 		<<set $hostage.counter.vaginal += 50>>
 		<<set $hostage.counter.anal += 50>>
 		<<set $hostage.counter.mammary += 50>>
-		<<set $hostage.amp = 1>>
-		<<set $hostage.missingArms = 3>>
-		<<set $hostage.missingLegs = 3>>
-		<<set $hostage.heels = 0>>
+		<<run removeLimbs($hostage, "all")>>
 		<<set $hostage.earPiercing = 2>>
 		<<set $hostage.nosePiercing = 2>>
 		<<set $hostage.nipplesPiercing = 2>>
diff --git a/src/uncategorized/persBusiness.tw b/src/uncategorized/persBusiness.tw
index 8d91217956a4a3a90c3117ca67ace8e7ce001393..0d8eef4b79ed4577a9faec9c4a97de3a284dbbff 100644
--- a/src/uncategorized/persBusiness.tw
+++ b/src/uncategorized/persBusiness.tw
@@ -388,7 +388,7 @@
 	You have enough cash to manage your affairs, but not enough to do much business.
 <</if>>
 
-<<if ($personalAttention == "proclamation")>> 
+<<if ($personalAttention == "proclamation")>>
 	<<if ($SecExp.proclamation.currency == "authority" && $SecExp.core.authority >= 2000) || ($SecExp.proclamation.currency == "reputation" && $rep >= 4000) || ($SecExp.proclamation.currency == "cash" && $cash >= 8000)>>
 		After several days of preparation you are ready to issue the proclamation. You announce to the arcology your plans and in short order you use <<if $SecExp.proclamation.currency == "authority">>control over the arcology<<elseif $SecExp.proclamation.currency == "reputation">>great influence<<elseif $SecExp.proclamation.currency == "cash">> vast financial means<</if>> to
 		<<if $SecExp.proclamation.type == "security">>
diff --git a/src/uncategorized/reCitizenHookup.tw b/src/uncategorized/reCitizenHookup.tw
index cfa6984637b25d1e6bab973e2f796f82b0eb6c2f..d01f1dc293c03f2a12ff7ea99f0513d0c4475250 100644
--- a/src/uncategorized/reCitizenHookup.tw
+++ b/src/uncategorized/reCitizenHookup.tw
@@ -166,7 +166,7 @@ She's yours for the taking, if you want her, and if her praise and proximity wer
 	<<if _repopHookupPregnant == 1>>
 		lean back just far enough that her full term, triplets rounded middle splits the front of her overly tight dress.
 	<<else>>
-		press her hips up against your own, before leaning in and whispering 
+		press her hips up against your own, before leaning in and whispering
             <<if $arcologies[0].FSRepopulationFocusLaw == 1>>
                 "My womb is ready to do its duty."
             <<else>>
@@ -257,7 +257,7 @@ She's clearly attracted to you; even the most consummate actress would have diff
 		<<else>>
             <<if $arcologies[0].FSRepopulationFocusLaw == 1>>
                 an experienced body, ready and eager to grow fecund once more.
-			<<else>
+			<<else>>
                 an inexperienced body, but one with potential for becoming quite fecund.
 			<</if>>
 		<</if>>
diff --git a/src/uncategorized/reFullBed.tw b/src/uncategorized/reFullBed.tw
index 1c24053f4f127519aca600fb78d628902de6360f..2981ba6b0ff693aa4d6d5bf95ad336fc75a61687 100644
--- a/src/uncategorized/reFullBed.tw
+++ b/src/uncategorized/reFullBed.tw
@@ -102,7 +102,7 @@ Today was an unusually relaxing day, and you aren't particularly tired.
 <</if>>
 <br><<link "Pull up the sheets and wrestle">>
 	<<replace "#result">>
-		Without warning, you jerk the sheets all the way up and pin them at the head of the bed. They giggle as you seize first the one and then the other, groping and tickling. $slaves[_bedSlaveTwo].slaveName and $slaves[_bedSlaveOne].slaveName catch the spirit of fun, and rove around in the soft darkness under the sheets. You're <<if $PC.dick == 1>>rock hard<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>soaking wet<</if>> in no time, wrestling with two naked slaves, and begin to fuck the first one you can grab and hold. When you <<if ($PC.dick == 0)>>finish with $him<<else>>come inside $him<</if>>, you release $him and $he slides out of bed to wash; by the time $he gets back under the sheets, clean and fresh, you're on the point of fucking the other. You switch off with the two of them, fucking them in turn, until everyone falls asleep in an exhausted pile. They have become @@.mediumaquamarine;still more trusting of you.@@
+		Without warning, you jerk the sheets all the way up and pin them at the head of the bed. They giggle as you seize first the one and then the other, groping and tickling. $slaves[_bedSlaveTwo].slaveName and $slaves[_bedSlaveOne].slaveName catch the spirit of fun, and rove around in the soft darkness under the sheets. You're <<if $PC.dick == 1>>rock hard<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>soaking wet<</if>> in no time, wrestling with two naked slaves, and begin to fuck the first one you can grab and hold. When you <<if ($PC.dick == 0)>>finish with $him<<else>>come inside $him<</if>>, you <<if (!isAmputee($slaves[_bedSlaveOne]))>>release $him and $he slides out of bed to wash; by the time $he gets back under the sheets, clean and fresh, you're on the point of fucking<<else>>carry $his limbless, helpless body out of bed to wash $him, and then return to the bed to fuck<</if>> the other. You switch off with the two of them, fucking them in turn, until everyone falls asleep in an exhausted pile. They have become @@.mediumaquamarine;still more trusting of you.@@
 		<<set $slaves[_bedSlaveOne].trust += 4, $slaves[_bedSlaveTwo].trust += 4>>
 		<<if canDoVaginal(_bedSlaveOne)>>
 			<<set $slaves[_bedSlaveOne].counter.vaginal += 2>>
diff --git a/src/uncategorized/reMalefactor.tw b/src/uncategorized/reMalefactor.tw
index d97776a9b03e5e4257a655f57998f1e640251e0f..eac78a6316b50f6a543340c0e8840cf0c702a053 100644
--- a/src/uncategorized/reMalefactor.tw
+++ b/src/uncategorized/reMalefactor.tw
@@ -521,10 +521,7 @@ $He is easily taken into custody and $his contraband confiscated once the jeerin
 		<<if $seeExtreme > 0>>
 			<br><<link "Punitively amputate $his limbs, and then enslave $him">>
 				<<set $activeSlave.health -= 20>>
-				<<set $activeSlave.amp = 1>>
-				<<set $activeSlave.missingArms = 3>>
-				<<set $activeSlave.missingLegs = 3>>
-				<<set $activeSlave.heels = 0>>
+				<<run removeLimbs($activeSlave, "all")>>
 				<<set $activeSlave.behavioralFlaw = "odd">>
 				<<run cashX(forceNeg($contractCost), "slaveTransfer", $activeSlave)>>
 				<<replace "#result">>
diff --git a/src/uncategorized/reRecruit.tw b/src/uncategorized/reRecruit.tw
index e9a1a2c28b6f8638dd963201c715e27a8663b912..eca94478351b23796da893f2e5cd88d66b555018 100644
--- a/src/uncategorized/reRecruit.tw
+++ b/src/uncategorized/reRecruit.tw
@@ -1715,7 +1715,7 @@
 <<set $one_time_age_overrides_pedo_mode = 1>>
 <<set $oneTimeDisableDisability = 1>>
 <<set $activeSlave = GenerateNewSlave("XX")>>
-<<set $activeSlave.amp = -1>>
+<<run attachLimbs($activeSlave, "all", 2)>>
 <<set $activeSlave.origin = "You helped free $him from a POW camp after being abandoned by $his country, leaving $him deeply indebted to you.">>
 <<set $activeSlave.devotion = random(0,20)>>
 <<set $activeSlave.trust = random(0,20)>>
@@ -1793,9 +1793,7 @@
 <<set $activeSlave.weight = random(-11 -30)>>
 <<set $activeSlave.waist = random(-11, -40)>>
 <<set $activeSlave.skill.combat = 1>>
-<<set $activeSlave.amp = -5>>
-<<set $activeSlave.missingArms = 0>>
-<<set $activeSlave.missingLegs = 0>>
+<<run attachLimbs($activeSlave, "all", 6)>>
 <<set $activeSlave.teeth = "pointy">>
 <<set $activeSlave.muscles = random(30,70)>>
 <<set $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]}))>>
@@ -1895,7 +1893,7 @@
 <<set $activeSlave.pubicHStyle = "waxed">>
 <<set $activeSlave.underArmHStyle = "waxed">>
 <<set $activeSlave.weight = 90>>
-<<set $activeSlave.muscles = random(-100,-500)>>
+<<set $activeSlave.muscles = random(-100,-50)>>
 <<set $activeSlave.career = "a breeder">>
 <<set $activeSlave.fetish = "mindbroken">>
 
@@ -2407,7 +2405,8 @@ While digging through the database of a POW camp for anything of value, you find
 <br>Upon $his inevitable arrival in your penthouse, you see
 <<if $seeExtreme == 1>>
 	the traces of $his wounds, that $he has been greatly modified for war, and that $he had been raped, repeatedly, despite $his powerful body.
-	<<set $activeSlave.amp = -5, $activeSlave.missingArms = 0, $activeSlave.missingLegs = 0, $activeSlave.teeth = "pointy", $activeSlave.muscles = random(30,70), $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]})), $activeSlave.chem = 1000, $activeSlave.attrXX = 0, $activeSlave.attrXY = 0>>
+	<<set $activeSlave.teeth = "pointy", $activeSlave.muscles = random(30,70), $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]})), $activeSlave.chem = 1000, $activeSlave.attrXX = 0, $activeSlave.attrXY = 0>>
+	<<run attachLimbs($activeSlave, "all", 6)>>
 <<else>>
 	the traces of $his wounds, that $he had been left bound long enough for $his body to atrophy, and that $he had been raped, repeatedly.
 <</if>>
diff --git a/src/uncategorized/reRelationshipAdvice.tw b/src/uncategorized/reRelationshipAdvice.tw
index 80dd811efe359164aa407c80923cd816e1111b15..ce110557525f7ebd0cb3cdba90aeadfd8fd039a2 100644
--- a/src/uncategorized/reRelationshipAdvice.tw
+++ b/src/uncategorized/reRelationshipAdvice.tw
@@ -108,15 +108,15 @@ $He nods $his head quickly, still staring <<if !canSee($activeSlave)>>blankly <<
 		<<elseif ($activeSlave.fetishKnown == 1) && ($activeSlave.fetish == "masochist")>>
 			you to hurt me. Like, really hurt me." $subSlave.slaveName looks relieved that that's all it is, and <<if ($subSlave.voice != 0)>>says, "Okay!"<<else>>nods.<</if>> _He2 pinches one of $activeSlave.slaveName's nipples experimentally.
 		<<elseif ($activeSlave.fetishKnown == 1) && ($activeSlave.fetish == "sadist")>>
-			to hold you down." $subSlave.slaveName looks relieved that that's all it is, and <<if ($subSlave.voice != 0)>>says, "Okay!"<<else>>nods.<</if>> _He2 steps in close to $activeSlave.slaveName, takes $activeSlave.slaveName's hands, and places them around _his2 own throat.
+			to hold you down." $subSlave.slaveName looks relieved that that's all it is, and <<if ($subSlave.voice != 0)>>says, "Okay!"<<else>>nods.<</if>> _He2 steps in close to $activeSlave.slaveName, takes $activeSlave.slaveName's hand<<if hasBothArms($activeSlave)>>s<</if>>, and places them around _his2 own throat.
 		<<elseif ($activeSlave.fetishKnown == 1) && ($activeSlave.fetish == "dom")>>
 			to be your top." $subSlave.slaveName looks relieved that that's all it is, and <<if ($subSlave.voice != 0)>>says, "Okay!"<<else>>nods.<</if>> _He2 sidles up to $activeSlave.slaveName, looking up at $him submissively.
 		<<elseif ($activeSlave.fetishKnown == 1) && ($activeSlave.fetish == "submissive")>>
-			to be your bottom." $subSlave.slaveName looks relieved that that's all it is, and says, <<if ($subSlave.voice != 0)>>says, "Okay!"<<else>>nods.<</if>> _He2 takes $activeSlave.slaveName's face in _his2 hands and kisses $him dominantly.
+			to be your bottom." $subSlave.slaveName looks relieved that that's all it is, and says, <<if ($subSlave.voice != 0)>>says, "Okay!"<<else>>nods.<</if>> _He2 takes $activeSlave.slaveName's face in _his2 hand<<if hasBothArms($subSlave)>>s<</if>> and kisses $him dominantly.
 		<<elseif ($activeSlave.fetishKnown == 1) && ($activeSlave.fetish == "boobs")>>
-			to fuck your boob<<s>>." $subSlave.slaveName looks relieved that that's all it is, and says, <<if ($subSlave.voice != 0)>>says, "Okay!"<<else>>nods.<</if>> _He2 takes $activeSlave.slaveName's hands and places them right on _his2 breasts.
+			to fuck your boob<<s>>." $subSlave.slaveName looks relieved that that's all it is, and says, <<if ($subSlave.voice != 0)>>says, "Okay!"<<else>>nods.<</if>> _He2 takes $activeSlave.slaveName's <<if hasBothArms($activeSlave)>>hands and places them<<else>>hand and places it<</if>> right on _his2 breasts.
 		<<else>>
-			to fuck you." $subSlave.slaveName looks relieved that that's all it is, and <<if ($subSlave.voice != 0)>>says, "Okay!"<<else>>nods.<</if>> _He2 takes $activeSlave.slaveName's hands and places them right on _his2 breasts.
+			to fuck you." $subSlave.slaveName looks relieved that that's all it is, and <<if ($subSlave.voice != 0)>>says, "Okay!"<<else>>nods.<</if>> _He2 takes $activeSlave.slaveName's <<if hasBothArms($activeSlave)>>hands and places them<<else>>hand and places it<</if>> right on _his2 breasts.
 		<</if>>
 		$activeSlave.slaveName bursts out laughing. They're now @@.lightgreen;friends with benefits.@@
 	<<elseif $activeSlave.relationship == 3>>
diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw
index d541a8e8b559b2b94f60d3741320b3e2b08ebed1..6cd1878a3054f23429e745966924b26855664106 100644
--- a/src/uncategorized/reRelativeRecruiter.tw
+++ b/src/uncategorized/reRelativeRecruiter.tw
@@ -378,10 +378,7 @@
 <<set $activeSlave.devotion = random(25,45)>>
 <<set $activeSlave.trust = random(-15,15)>>
 <<set $activeSlave.ageImplant = 0>>
-<<set $activeSlave.amp = 0>>
-<<set $activeSlave.missingArms = 0>>
-<<set $activeSlave.missingLegs = 0>>
-<<set $activeSlave.heels = 0>>
+<<run removeLimbs($activeSlave, "all")>>
 <<if $activeSlave.career != "a Futanari Sister">><<set $activeSlave.career = "a slave">><</if>>
 <<set $activeSlave.relationship = 0>>
 <<set $activeSlave.relationshipTarget = 0>>
diff --git a/src/uncategorized/reShelterInspection.tw b/src/uncategorized/reShelterInspection.tw
index d4e26cc851ffe36dba66c67d787fc2394090cc5b..7c1d54cf889c474696f8badc2bfb75b3da71b0d4 100644
--- a/src/uncategorized/reShelterInspection.tw
+++ b/src/uncategorized/reShelterInspection.tw
@@ -191,301 +191,301 @@ Not waiting to be greeted, the inspector looks up at the nearest camera and dema
 		<</replace>>
 	<</link>> //This will cost <<print cashFormat($contractCost/2)>>//
 <<elseif ($dairyRestraintsSetting < 2) || (_Inspectee.assignment != "work in the dairy")>>
-<br><<link "Allow the inspection">>
-	<<replace "#result">>
-	<<set _inspectionContinues = 1, _inspectionResult = 0>>
-	You have _him2 ushered up to your office, and order _Inspectee.slaveName brought in.
-	<br><br>
-	/*
-	<<if _Inspectee.amp == 1 && _originSlave.amp != 1>>
-		You may have lopped off the poor $girl's arms and legs, a fact not lost on the inspector. _He2 can barely conceal _his2 terror as _he2 makes lengthy notes on _his2 tablet before practically running out of the penthouse.
-		<<set $shelterAbuse += 10>>
-	<<elseif _Inspectee.fetish == "mindbroken">>
-		<<if _Inspectee.origin == "You got $him at the Slave Shelter. $He has never communicated anything about $his background, since $he arrived at the shelter with a broken mind.">>
-			Of course, the poor $girl is just as mindbroken as ever. The inspector asks some cursory questions and gives up. "Don't worry," _he2 says. "I know <<he>> wa<<s>> like thi<<s>> when you got $him. Ju<<s>>t — ju<<s>>t keep trying, would you?" _He2 leaves, looking bitter.
-		<<elseif _Inspectee.origin == "You got $him at the Slave Shelter. $He was found unresponsive in the lower arcology with a gaping pussy and deflated belly. It is unclear what happened to $him.">>
-			Of course, the poor $girl is just as mindbroken as ever. The inspector asks some cursory questions and gives up. "Don't worry," _he2 says. "I know <<he>> wa<<s>> like thi<<s>> when you got $him. Ju<<s>>t — ju<<s>>t keep trying, would you?"
-			<<if _Inspectee.pussy > 3 && _Inspectee.bellySag > 1>>
-				_He2 gropes the slave's sagging middle before inspecting $his ruined pussy. "<<S>>till ruined, I <<s>>ee."
-			<<elseif _Inspectee.pussy <= 3 && _Inspectee.bellySag > 1>>
-				_He2 gropes the slave's sagging middle before inspecting $his pussy. "Apart from the belly, <<his>> pu<<ss>>y ha<<s>> recovered ni<<c>>ely."
-			<<elseif _Inspectee.pussy > 3 && _Inspectee.bellySag <= 1>>
-				_He2 gropes the slave's middle before inspecting $his ruined pussy. "<<His>> <<s>>tomach <<s>>eem<<s>> to have recovered; <<sh>>ame you did nothing for <<his>> poor vagina."
+	<br><<link "Allow the inspection">>
+		<<replace "#result">>
+		<<set _inspectionContinues = 1, _inspectionResult = 0>>
+		You have _him2 ushered up to your office, and order _Inspectee.slaveName brought in.
+		<br><br>
+		/*
+		<<if _Inspectee.amp == 1 && _originSlave.amp != 1>>
+			You may have lopped off the poor $girl's arms and legs, a fact not lost on the inspector. _He2 can barely conceal _his2 terror as _he2 makes lengthy notes on _his2 tablet before practically running out of the penthouse.
+			<<set $shelterAbuse += 10>>
+		<<elseif _Inspectee.fetish == "mindbroken">>
+			<<if _Inspectee.origin == "You got $him at the Slave Shelter. $He has never communicated anything about $his background, since $he arrived at the shelter with a broken mind.">>
+				Of course, the poor $girl is just as mindbroken as ever. The inspector asks some cursory questions and gives up. "Don't worry," _he2 says. "I know <<he>> wa<<s>> like thi<<s>> when you got $him. Ju<<s>>t — ju<<s>>t keep trying, would you?" _He2 leaves, looking bitter.
+			<<elseif _Inspectee.origin == "You got $him at the Slave Shelter. $He was found unresponsive in the lower arcology with a gaping pussy and deflated belly. It is unclear what happened to $him.">>
+				Of course, the poor $girl is just as mindbroken as ever. The inspector asks some cursory questions and gives up. "Don't worry," _he2 says. "I know <<he>> wa<<s>> like thi<<s>> when you got $him. Ju<<s>>t — ju<<s>>t keep trying, would you?"
+				<<if _Inspectee.pussy > 3 && _Inspectee.bellySag > 1>>
+					_He2 gropes the slave's sagging middle before inspecting $his ruined pussy. "<<S>>till ruined, I <<s>>ee."
+				<<elseif _Inspectee.pussy <= 3 && _Inspectee.bellySag > 1>>
+					_He2 gropes the slave's sagging middle before inspecting $his pussy. "Apart from the belly, <<his>> pu<<ss>>y ha<<s>> recovered ni<<c>>ely."
+				<<elseif _Inspectee.pussy > 3 && _Inspectee.bellySag <= 1>>
+					_He2 gropes the slave's middle before inspecting $his ruined pussy. "<<His>> <<s>>tomach <<s>>eem<<s>> to have recovered; <<sh>>ame you did nothing for <<his>> poor vagina."
+				<<else>>
+					_He2 runs _his2 hand across the slave's restored midriff, before inspecting $his pussy. "<<He>> i<<s>> looking much better, phy<<s>>ically, though. That'<<s>> worth noting."
+					<<set $shelterAbuse-->>
+				<</if>>
+				_He2 leaves, looking bitter.
 			<<else>>
-				_He2 runs _his2 hand across the slave's restored midriff, before inspecting $his pussy. "<<He>> i<<s>> looking much better, phy<<s>>ically, though. That'<<s>> worth noting."
-				<<set $shelterAbuse-->>
+				Of course, the poor $girl is mindbroken now. The inspector is horrified, though _he2 tries to conceal it. _He2 makes lengthy notes on _his2 tablet, and almost runs out of the penthouse.
+				<<set $shelterAbuse += 5>>
 			<</if>>
-			_He2 leaves, looking bitter.
-		<<else>>
-			Of course, the poor $girl is mindbroken now. The inspector is horrified, though _he2 tries to conceal it. _He2 makes lengthy notes on _his2 tablet, and almost runs out of the penthouse.
-			<<set $shelterAbuse += 5>>
+			<<set _inspectionContinues = 0>>
 		<</if>>
-		<<set _inspectionContinues = 0>>
-	<</if>>
 
-	<<if _inspectionContinues == 1>>
-		<<switch _Inspectee.origin>>
-		<<case "You got $him at the Slave Shelter. $He has never communicated anything about $his background, since $he arrived at the shelter with a broken mind.">>
-			The inspector asks some cursory questions and is shocked when $he responds. "<<He>> came back?" _he2 mutters, "You re<<s>>tored <<his>> mind; I can't believe it. Thi<<s>> i<<s>> incredible." _He2 carries on while writing notes on _his2 tablet, "You're more than welcome to adopt <<s>>lave<<s>> from our <<sh>>elter." You swear _he2 seems in much better spirits as _he2 leaves your penthouse.
-			<<set _inspectionContinues = 0>>
-			<<set $shelterAbuse -= 5>>
-		<<case "You got $him at the Slave Shelter. It's not clear why $his previous owner cut $his arms and legs off.">>
-			<<if _Inspectee.amp == _originSlave.amp>>
-				Unsurprisingly, the poor $girl still lacks arms and legs, so the inspector just carries on.
-			<<else>>
-				The inspector stares, dumbfounded, at pair of limbs now supporting _Inspectee.slaveName. "Mo<<s>>t owner<<s>> wouldn't go through the trouble... I think I've <<s>>een enough to know you're welcome to come back and take in another <<s>>lave any time." _He2 leaves your penthouse in much better spirits than _he2 arrived in.
+		<<if _inspectionContinues == 1>>
+			<<switch _Inspectee.origin>>
+			<<case "You got $him at the Slave Shelter. $He has never communicated anything about $his background, since $he arrived at the shelter with a broken mind.">>
+				The inspector asks some cursory questions and is shocked when $he responds. "<<He>> came back?" _he2 mutters, "You re<<s>>tored <<his>> mind; I can't believe it. Thi<<s>> i<<s>> incredible." _He2 carries on while writing notes on _his2 tablet, "You're more than welcome to adopt <<s>>lave<<s>> from our <<sh>>elter." You swear _he2 seems in much better spirits as _he2 leaves your penthouse.
 				<<set _inspectionContinues = 0>>
-				<<set $shelterAbuse -= 3>>
-			<</if>>
-		<<case "You got $him at the Slave Shelter. $His owner purposely blinded $him by dumping boiling water into $his eyes.">>
-			"I wi<<sh>> the <<s>>carring wa<<s>>n't so bad, that way people wouldn't <<s>>tare so much."
-			<<if _Inspectee.eyes > _originSlave.eyes>>
-				<<if canTalk(_Inspectee)>>
-					<<run Enunciate(_Inspectee)>>
-					_Inspectee.slaveName quickly retorts with "But I like <<s>>eeing their eye<<s>>..."
+				<<set $shelterAbuse -= 5>>
+			<<case "You got $him at the Slave Shelter. It's not clear why $his previous owner cut $his arms and legs off.">>
+				<<if _Inspectee.amp == _originSlave.amp>>
+					Unsurprisingly, the poor $girl still lacks arms and legs, so the inspector just carries on.
 				<<else>>
-					_Inspectee.slaveName shakes $his head in response.
+					The inspector stares, dumbfounded, at pair of limbs now supporting _Inspectee.slaveName. "Mo<<s>>t owner<<s>> wouldn't go through the trouble... I think I've <<s>>een enough to know you're welcome to come back and take in another <<s>>lave any time." _He2 leaves your penthouse in much better spirits than _he2 arrived in.
+					<<set _inspectionContinues = 0>>
+					<<set $shelterAbuse -= 3>>
+				<</if>>
+			<<case "You got $him at the Slave Shelter. $His owner purposely blinded $him by dumping boiling water into $his eyes.">>
+				"I wi<<sh>> the <<s>>carring wa<<s>>n't so bad, that way people wouldn't <<s>>tare so much."
+				<<if _Inspectee.eyes > _originSlave.eyes>>
+					<<if canTalk(_Inspectee)>>
+						<<run Enunciate(_Inspectee)>>
+						_Inspectee.slaveName quickly retorts with "But I like <<s>>eeing their eye<<s>>..."
+					<<else>>
+						_Inspectee.slaveName shakes $his head in response.
+					<</if>>
+					<<run Enunciate($activeSlave)>>
+					The inspector gasps at the realization that $he can see again. "They look ju<<s>>t like <<his>> old photo<<s>> too..." A tear comes to _his2 weary eye as _he2 writes out notes on _his2 tablet. "You're more than welcome to adopt <<s>>lave<<s>> from our <<sh>>elter." You swear _he2 seems in much better spirits as _he2 leaves your penthouse.
+					<<set _inspectionContinues = 0>>
+					<<set $shelterAbuse-->>
 				<</if>>
-				<<run Enunciate($activeSlave)>>
-				The inspector gasps at the realization that $he can see again. "They look ju<<s>>t like <<his>> old photo<<s>> too..." A tear comes to _his2 weary eye as _he2 writes out notes on _his2 tablet. "You're more than welcome to adopt <<s>>lave<<s>> from our <<sh>>elter." You swear _he2 seems in much better spirits as _he2 leaves your penthouse.
+			<<case "You got $him at the Slave Shelter. $He was found unresponsive in the lower arcology with a gaping pussy and deflated belly. It is unclear what happened to $him.">>
+				The inspector asks some cursory questions and is shocked when $he responds. "<<He>> came back?" _he2 mutters, "You re<<s>>tored <<his>> mind; I can't believe it. Thi<<s>> i<<s>> incredible." _He2 carries on while writing notes on _his2 tablet, "You're more than welcome to adopt <<s>>lave<<s>> from our <<sh>>elter." You swear _he2 seems in much better spirits as _he2 leaves your penthouse, even though _he2 forgot to check $his pussy.
 				<<set _inspectionContinues = 0>>
-				<<set $shelterAbuse-->>
-			<</if>>
-		<<case "You got $him at the Slave Shelter. $He was found unresponsive in the lower arcology with a gaping pussy and deflated belly. It is unclear what happened to $him.">>
-			The inspector asks some cursory questions and is shocked when $he responds. "<<He>> came back?" _he2 mutters, "You re<<s>>tored <<his>> mind; I can't believe it. Thi<<s>> i<<s>> incredible." _He2 carries on while writing notes on _his2 tablet, "You're more than welcome to adopt <<s>>lave<<s>> from our <<sh>>elter." You swear _he2 seems in much better spirits as _he2 leaves your penthouse, even though _he2 forgot to check $his pussy.
-			<<set _inspectionContinues = 0>>
-			<<set $shelterAbuse -= 5>>
+				<<set $shelterAbuse -= 5>>
 
-		<<case "You got $him at the Slave Shelter. $His previous owner forced $him to cut off $his dick and balls and cook them.">>
-			<<if _Inspectee.dick > _originSlave.dick>>
-				"I <<s>>ee that you've given $him a repla<<c>>ement tool," _he2 says as _he2 reaches down and gives it an exploratory fondle,
-				<<if canAchieveErection(_Inspectee)>>
-					"It even work<<s>>, that'<<s>> lovely." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<else>>
-					"It <<s>>eem<<s>> to be non-functional, but it'<<s>> a ni<<c>>e gesture at lea<<s>>t." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<</if>>
-				<<set _inspectionResult-->>
-			<</if>>
-			<<if _Inspectee.balls > _originSlave.balls && _Inspectee.scrotum>>
+			<<case "You got $him at the Slave Shelter. $His previous owner forced $him to cut off $his dick and balls and cook them.">>
 				<<if _Inspectee.dick > _originSlave.dick>>
-					"And the<<s>>e work too, right?" _he2 asks as _he2 points to $his dangling balls. "<<S>>o <<he>> ha<<s>> been fully re<<s>>tored; that'<<s>> <<s>>omething." The inspector adds another positive note to the inspection.
+					"I <<s>>ee that you've given $him a repla<<c>>ement tool," _he2 says as _he2 reaches down and gives it an exploratory fondle,
+					<<if canAchieveErection(_Inspectee)>>
+						"It even work<<s>>, that'<<s>> lovely." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<else>>
+						"It <<s>>eem<<s>> to be non-functional, but it'<<s>> a ni<<c>>e gesture at lea<<s>>t." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<</if>>
 					<<set _inspectionResult-->>
-				<<else>>
-					"I take it the<<s>>e testicle<<s>> are more than ju<<s>>t an implant? I'm <<s>>ure <<he>> appre<<c>>iate<<s>> the ge<<s>>ture, though what good are they without a peni<<s>>?" The inspector shakes _his2 head and notes your attempt to undo the damages to _Inspectee.slaveName.
 				<</if>>
-			<</if>>
-
-			<<if !["apathetic", "neglectful"].includes(_Inspectee.sexualFlaw) && !["anorexic", "odd"].includes(_Inspectee.behavioralFlaw) && !["none", "masochist"].includes(_Inspectee.fetish)>>
-				The inspector can see that $his personality is much better than before. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 3>>
-			<</if>>
+				<<if _Inspectee.balls > _originSlave.balls && _Inspectee.scrotum>>
+					<<if _Inspectee.dick > _originSlave.dick>>
+						"And the<<s>>e work too, right?" _he2 asks as _he2 points to $his dangling balls. "<<S>>o <<he>> ha<<s>> been fully re<<s>>tored; that'<<s>> <<s>>omething." The inspector adds another positive note to the inspection.
+						<<set _inspectionResult-->>
+					<<else>>
+						"I take it the<<s>>e testicle<<s>> are more than ju<<s>>t an implant? I'm <<s>>ure <<he>> appre<<c>>iate<<s>> the ge<<s>>ture, though what good are they without a peni<<s>>?" The inspector shakes _his2 head and notes your attempt to undo the damages to _Inspectee.slaveName.
+					<</if>>
+				<</if>>
 
-		<<case "You got $him at the Slave Shelter. $His previous owner forced $him to cut off $his breasts and cook them.">>
-			<<if _Inspectee.boobs > $genePool[_Arrival].boobs>>
-				The inspector can see that $he has a new set of breasts. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 2>>
-			<</if>>
-			<<if !["apathetic", "neglectful", "self hating"].includes(_Inspectee.sexualFlaw) && !["anorexic", "odd"].includes(_Inspectee.behavioralFlaw) && !["none", "masochist"].includes(_Inspectee.fetish)>>
-				The inspector can see that $his personality is much better than before. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 3>>
-			<</if>>
+				<<if !["apathetic", "neglectful"].includes(_Inspectee.sexualFlaw) && !["anorexic", "odd"].includes(_Inspectee.behavioralFlaw) && !["none", "masochist"].includes(_Inspectee.fetish)>>
+					The inspector can see that $his personality is much better than before. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 3>>
+				<</if>>
 
-		<<case "You got $him at the Slave Shelter. $He is an enslaved Daughter of Liberty, caught some weeks after the failed coup. $His previous owner used $him as a punching bag and dart board, then when he was bored of $him tattooed obscenities all over $his body and threw $him away.">>
-			<<if _Inspectee.slaveName != $genePool[_Arrival].slaveName>>
-				The inspector notices _Inspectee.birthName's new name. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse-->>
-			<</if>>
+			<<case "You got $him at the Slave Shelter. $His previous owner forced $him to cut off $his breasts and cook them.">>
+				<<if _Inspectee.boobs > $genePool[_Arrival].boobs>>
+					The inspector can see that $he has a new set of breasts. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 2>>
+				<</if>>
+				<<if !["apathetic", "neglectful", "self hating"].includes(_Inspectee.sexualFlaw) && !["anorexic", "odd"].includes(_Inspectee.behavioralFlaw) && !["none", "masochist"].includes(_Inspectee.fetish)>>
+					The inspector can see that $his personality is much better than before. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 3>>
+				<</if>>
 
-		<<case "You got $him at the Slave Shelter. $His previous owner gelded $him and used $him for anal abuse.">>
-			<<if _Inspectee.anus < $genePool[_Arrival].anus>>
-				The inspector can see that $his anus is better. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse-->>
-			<</if>>
-			<<if _Inspectee.dick > $genePool[_Arrival].dick>>
-				The inspector can see that $he has a new dick. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse-->>
-			<</if>>
+			<<case "You got $him at the Slave Shelter. $He is an enslaved Daughter of Liberty, caught some weeks after the failed coup. $His previous owner used $him as a punching bag and dart board, then when he was bored of $him tattooed obscenities all over $his body and threw $him away.">>
+				<<if _Inspectee.slaveName != $genePool[_Arrival].slaveName>>
+					The inspector notices _Inspectee.birthName's new name. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse-->>
+				<</if>>
 
-		<<case "You got $him at the Slave Shelter. $His background is obscure, but seems to have involved terrible abuse of $his huge cock and balls.">>
-			<<if _Inspectee.energy > $genePool[_Arrival].energy>>
-				The inspector notices that _Inspectee.birthName has more energy. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse-->>
-			<</if>>
+			<<case "You got $him at the Slave Shelter. $His previous owner gelded $him and used $him for anal abuse.">>
+				<<if _Inspectee.anus < $genePool[_Arrival].anus>>
+					The inspector can see that $his anus is better. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse-->>
+				<</if>>
+				<<if _Inspectee.dick > $genePool[_Arrival].dick>>
+					The inspector can see that $he has a new dick. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse-->>
+				<</if>>
 
-		<<case "You got $him at the Slave Shelter. $His holes were cruelly stretched by constant plug use.">>
-			<<if _Inspectee.vagina < $genePool[_Arrival].vagina && _Inspectee.anus < $genePool[_Arrival].anus>>
-				The inspector notices that _Inspectee.birthName's holes are tighter. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse-->>
-			<</if>>
+			<<case "You got $him at the Slave Shelter. $His background is obscure, but seems to have involved terrible abuse of $his huge cock and balls.">>
+				<<if _Inspectee.energy > $genePool[_Arrival].energy>>
+					The inspector notices that _Inspectee.birthName has more energy. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse-->>
+				<</if>>
 
-		<<case "You got $him at the Slave Shelter. $His previous owner discarded $him after many pregnancies.">>
-			<<if _Inspectee.vagina < $genePool[_Arrival].vagina>>
-				The inspector notices that _Inspectee.birthName's vagina is tighter. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse-->>
-			<</if>>
+			<<case "You got $him at the Slave Shelter. $His holes were cruelly stretched by constant plug use.">>
+				<<if _Inspectee.vagina < $genePool[_Arrival].vagina && _Inspectee.anus < $genePool[_Arrival].anus>>
+					The inspector notices that _Inspectee.birthName's holes are tighter. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse-->>
+				<</if>>
 
-		<<case "You got $him at the Slave Shelter. $He was worn out by twenty years of brothel service.">>
-			<<if _Inspectee.vagina < $genePool[_Arrival].vagina && _Inspectee.anus < $genePool[_Arrival].anus>>
-				The inspector notices that _Inspectee.birthName's holes are tighter. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse-->>
-			<</if>>
+			<<case "You got $him at the Slave Shelter. $His previous owner discarded $him after many pregnancies.">>
+				<<if _Inspectee.vagina < $genePool[_Arrival].vagina>>
+					The inspector notices that _Inspectee.birthName's vagina is tighter. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse-->>
+				<</if>>
 
-		<<case "You got $him at the Slave Shelter. $He was discarded after suffering a terrible reaction to growth hormone treatment.">>
-			<<if _Inspectee.chem < $genePool[_Arrival].chem>>
-				Upon scanning _Inspectee.birthName, the inspector finds that $his chem damage has been reduced. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse-->>
-			<<else>>
-				The inspector scans _Inspectee.birthName and finds that $his chem damage has been increased. The inspector is horrified, though _he2 tries to conceal it.
-				<<set $shelterAbuse++>>
-			<</if>>
-			<<if _Inspectee.dick < $genePool[_Arrival].dick>>
-				The inspector measures _Inspectee.birthName's dick and finds that it has been reduced. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse-->>
-			<<else>>
-				The inspector measures _Inspectee.birthName's dick and finds that it has increased. The inspector is horrified, though _he2 tries to conceal it.
-				<<set $shelterAbuse++>>
-			<</if>>
-			<<if _Inspectee.balls < $genePool[_Arrival].balls>>
-				The inspector measures _Inspectee.birthName's balls and finds they have been reduced. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse-->>
-			<<else>>
-				The inspector measures _Inspectee.birthName's balls and finds they have been increased. The inspector is horrified, though _he2 tries to conceal it.
-				<<set $shelterAbuse++>>
-			<</if>>
-			<<if _Inspectee.fetish != $genePool[_Arrival].fetish>>
-				The inspector measures _Inspectee.birthName's balls and finds they have been reduced. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse-->>
-			<<else>>
-				The inspector is happy that _Inspectee.birthName's balls and finds they have been increased. The inspector is horrified, though _he2 tries to conceal it.
-				<<set $shelterAbuse++>>
-			<</if>>
-		<</switch>>
-	<</if>>
-	*/
+			<<case "You got $him at the Slave Shelter. $He was worn out by twenty years of brothel service.">>
+				<<if _Inspectee.vagina < $genePool[_Arrival].vagina && _Inspectee.anus < $genePool[_Arrival].anus>>
+					The inspector notices that _Inspectee.birthName's holes are tighter. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse-->>
+				<</if>>
 
-	<<if _Inspectee.origin == "You got $him at the Slave Shelter. $He has never communicated anything about $his background, since $he arrived at the shelter with a broken mind.">>
-		<<if _Inspectee.fetish == "mindbroken">>
-			Of course, the poor $girl is just as mindbroken as ever. The inspector asks some cursory questions and gives up. "Don't worry," _he2 says. "I know <<he>> wa<<s>> like thi<<s>> when you got $him. Ju<<s>>t — ju<<s>>t keep trying, would you?" _He2 leaves, looking bitter.
-		<<else>>
-			The inspector asks some cursory questions and is shocked when $he responds. "<<He>> came back?" _he2 mutters, "You re<<s>>tored <<his>> mind; I can't believe it. Thi<<s>> i<<s>> incredible." _He2 carries on while writing notes on _his2 tablet, "You're more than welcome to adopt <<s>>lave<<s>> from our <<sh>>elter." You swear _he2 seems in much better spirits as _he2 leaves your penthouse.
-			<<set $shelterAbuse -= 5>>
-		<</if>>
-	<<elseif _Inspectee.origin == "You got $him at the Slave Shelter. $He was found unresponsive in the lower arcology with a gaping pussy and deflated belly. It is unclear what happened to $him.">>
-		<<if _Inspectee.fetish == "mindbroken">>
-			Of course, the poor $girl is just as mindbroken as ever. The inspector asks some cursory questions and gives up. "Don't worry," _he2 says. "I know <<he>> wa<<s>> like thi<<s>> when you got $him. Ju<<s>>t — ju<<s>>t keep trying, would you?"
-			<<if _Inspectee.pussy > 3 && _Inspectee.bellySag > 1>>
-				_He2 gropes the slave's sagging middle before inspecting $his ruined pussy. "<<S>>till ruined, I <<s>>ee."
-			<<elseif _Inspectee.pussy <= 3 && _Inspectee.bellySag > 1>>
-				_He2 gropes the slave's sagging middle before inspecting $his pussy. "Apart from the belly, <<his>> pu<<ss>>y ha<<s>> recovered ni<<c>>ely."
-			<<elseif _Inspectee.pussy > 3 && _Inspectee.bellySag <= 1>>
-				_He2 gropes the slave's middle before inspecting $his ruined pussy. "<<His>> <<s>>tomach <<s>>eem<<s>> to have recovered; <<sh>>ame you did nothing for <<his>> poor vagina."
-			<<else>>
-				_He2 runs _his2 hand across the slave's restored midriff, before inspecting $his pussy. "<<He>> i<<s>> looking much better, phy<<s>>ically, though. That'<<s>> worth noting."
-				<<set $shelterAbuse-->>
-			<</if>>
-			_He2 leaves, looking bitter.
-		<<else>>
-			The inspector asks some cursory questions and is shocked when $he responds. "<<He>> came back?" _he2 mutters, "You re<<s>>tored <<his>> mind; I can't believe it. Thi<<s>> i<<s>> incredible." _He2 carries on while writing notes on _his2 tablet, "You're more than welcome to adopt <<s>>lave<<s>> from our <<sh>>elter." You swear _he2 seems in much better spirits as _he2 leaves your penthouse, even though _he2 forgot to check $his pussy.
-			<<set $shelterAbuse -= 5>>
+			<<case "You got $him at the Slave Shelter. $He was discarded after suffering a terrible reaction to growth hormone treatment.">>
+				<<if _Inspectee.chem < $genePool[_Arrival].chem>>
+					Upon scanning _Inspectee.birthName, the inspector finds that $his chem damage has been reduced. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse-->>
+				<<else>>
+					The inspector scans _Inspectee.birthName and finds that $his chem damage has been increased. The inspector is horrified, though _he2 tries to conceal it.
+					<<set $shelterAbuse++>>
+				<</if>>
+				<<if _Inspectee.dick < $genePool[_Arrival].dick>>
+					The inspector measures _Inspectee.birthName's dick and finds that it has been reduced. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse-->>
+				<<else>>
+					The inspector measures _Inspectee.birthName's dick and finds that it has increased. The inspector is horrified, though _he2 tries to conceal it.
+					<<set $shelterAbuse++>>
+				<</if>>
+				<<if _Inspectee.balls < $genePool[_Arrival].balls>>
+					The inspector measures _Inspectee.birthName's balls and finds they have been reduced. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse-->>
+				<<else>>
+					The inspector measures _Inspectee.birthName's balls and finds they have been increased. The inspector is horrified, though _he2 tries to conceal it.
+					<<set $shelterAbuse++>>
+				<</if>>
+				<<if _Inspectee.fetish != $genePool[_Arrival].fetish>>
+					The inspector measures _Inspectee.birthName's balls and finds they have been reduced. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse-->>
+				<<else>>
+					The inspector is happy that _Inspectee.birthName's balls and finds they have been increased. The inspector is horrified, though _he2 tries to conceal it.
+					<<set $shelterAbuse++>>
+				<</if>>
+			<</switch>>
 		<</if>>
-	<<elseif _Inspectee.fetish == "mindbroken">>
-		Of course, the poor $girl is mindbroken now. The inspector is horrified, though _he2 tries to conceal it. _He2 makes lengthy notes on _his2 tablet, and almost runs out of the penthouse.
-		<<set $shelterAbuse += 5>>
-	<<elseif _Inspectee.trust < -20>>
-		$He is sufficiently afraid of you that $he tells the inspector whatever $he thinks you'd want $him to say. The inspector, experienced at this, is not amused. _He2 offers you a few choice words, makes notes on _his2 tablet, and storms out.
-	<<elseif _Inspectee.devotion <= 20>>
-		$He does not like you and isn't particularly terrified of you, so $he is not flattering. $He's not stupid enough to really criticize you, but $he is honest and makes no effort to conceal troubling particulars. The inspector takes copious notes. _He2 offers you a few choice words, makes notes on _his2 tablet, and storms out.
-	<<elseif _Inspectee.anus > 2>>
-		$He cooperates with the inspector, who pulls on a pair of latex gloves and performs a complete examination. When _he2 pulls the $girl's buttocks apart and probes the slave's asshole, _he2 pulls _his2 hand away as if scalded. "Oh my God," _he2 says. "_Inspectee.birthName, what happened to your anu<<s>>?"
-		<br><br>
-		<<run Enunciate(_Inspectee)>>
-		<<if (_Inspectee.devotion < 10)>>
-			<<if (_Inspectee.buttplug == "large plug") || (_Inspectee.buttplug == "huge plug") || (_Inspectee.buttplug == "long, large plug") || (_Inspectee.buttplug == "long, huge plug")>>
-				"W-well," $he says, "I wear a buttplug." The inspector frowns.
-				<<run Enunciate($activeSlave)>>
-				"A buttplug <<sh>>ouldn't do that!"
-				<<run Enunciate(_Inspectee)>>
-				The slave looks worried and replies, "It'<<s>> kinda big? And I wear it all the time. B-but I like it! It d-doe<<s>>n't hurt. Well, anymore." The inspector is not amused. _He2 offers you a few choice words, makes notes on _his2 tablet, and storms out.
-			<<elseif (_Inspectee.assignment == "whore") || (_Inspectee.assignment == "work in the brothel") || (_Inspectee.assignment == "serve the public") || (_Inspectee.assignment == "serve in the club")>>
-				"W-well," $he says, "I get fucked there at work." The inspector frowns. "How often!?" The slave looks worried and replies, "L-let me think. Four time<<s>> today? After the third time, it u<<s>>ually <<s>>top<<s>> clo<<s>>ing up again between cock<<s>>." The inspector is not amused. _He2 offers you a few choice words, makes notes on _his2 tablet, and storms out.
-			<<elseif (_Inspectee.fetish == "buttslut") && (_Inspectee.fetishKnown == 1)>>
-				"Hey," $he protests, "that'<<s>> normal." The inspector looks incredulous. "What!?" The slave looks insulted and replies, "I love anal <<s>>e<<x>>! Don't judge me. I want cock up that hole right now, you bitch. I'm going to beg for butt<<s>>e<<x>> the moment you leave." $He defiantly sticks $his rump out at you. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 1>>
-			<<elseif (_Inspectee.energy > 95) && (_Inspectee.fetishKnown == 1)>>
-				"Hey," $he protests, "that'<<s>> normal." The inspector looks incredulous. "What!?" The slave looks insulted and replies, "I love <<s>>e<<x>>! Don't judge me. I take cock in all my hole<<s>>, and I like it. I'm going to beg for butt<<s>>e<<x>> the moment you leave, you bitch." $He defiantly sticks $his rump out at you. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 1>>
-			<<else>>
-				"W-well," $he says, "I'm a <<s>>lave." The inspector frowns.
-				<<run Enunciate($activeSlave)>>
-				"What doe<<s>> that have to do with it?"
-				<<run Enunciate(_Inspectee)>>
-				The slave looks worried and replies, "I-it'<<s>> a hole, right? I get fucked in all my hole<<s>>." The inspector is not amused. _He2 offers you a few choice words, makes notes on _his2 tablet, and storms out.
-			<</if>>
-		<<else>>
-			<<if (_Inspectee.buttplug == "large plug") || (_Inspectee.buttplug == "huge plug") || (_Inspectee.buttplug == "long, large plug") || (_Inspectee.buttplug == "long, huge plug")>>
-				"I wear a buttplug!" $he says confidently. The inspector frowns.
-				<<run Enunciate($activeSlave)>>
-				"A buttplug <<sh>>ouldn't do that!"
-				<<run Enunciate(_Inspectee)>>
-				The slave looks worried and replies, "It'<<s>> really big, and I wear it all the time. I like it! It keep<<s>> my hole ready for anything." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 1>>
-			<<elseif (_Inspectee.assignment == "whore") || (_Inspectee.assignment == "work in the brothel") || (_Inspectee.assignment == "serve the public") || (_Inspectee.assignment == "serve in the club")>>
-				"I get fucked there at work!" $he says confidently. The inspector frowns. "How often!?" The slave thinks for a moment and replies, "Four time<<s>> today. After the third time, it u<<s>>ually <<s>>top<<s>> clo<<s>>ing up again between cock<<s>>. I'm good at my job!" The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 1>>
-			<<elseif (_Inspectee.fetish == "buttslut") && (_Inspectee.fetishKnown == 1)>>
-				"Hey," $he protests, "that'<<s>> normal." The inspector looks incredulous. "What!?" The slave looks insulted and replies, "I love anal <<s>>e<<x>>! Don't judge me. I want cock up that hole right now, you bitch. I'm going to beg for butt<<s>>e<<x>> the moment you leave." $He defiantly sticks $his rump out at you. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 1>>
-			<<elseif (_Inspectee.energy > 95) && (_Inspectee.fetishKnown == 1)>>
-				"Hey," $he protests, "that'<<s>> normal." The inspector looks incredulous. "What!?" The slave looks insulted and replies, "I love <<s>>e<<x>>! Don't judge me. I take cock in all my hole<<s>>, and I like it. I'm going to beg for butt<<s>>e<<x>> the moment you leave, you bitch." $He defiantly sticks $his rump out at you. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 1>>
+		*/
+
+		<<if _Inspectee.origin == "You got $him at the Slave Shelter. $He has never communicated anything about $his background, since $he arrived at the shelter with a broken mind.">>
+			<<if _Inspectee.fetish == "mindbroken">>
+				Of course, the poor $girl is just as mindbroken as ever. The inspector asks some cursory questions and gives up. "Don't worry," _he2 says. "I know <<he>> wa<<s>> like thi<<s>> when you got $him. Ju<<s>>t — ju<<s>>t keep trying, would you?" _He2 leaves, looking bitter.
 			<<else>>
-				"I'm a <<s>>lave," $he says confidently. The inspector frowns.
-				<<run Enunciate($activeSlave)>>
-				"What doe<<s>> that have to do with it?"
-				<<run Enunciate(_Inspectee)>>
-				The slave beams and replies, "It'<<s>> a hole. I'm a good $girl, <<s>>o I get fucked in all my hole<<s>>." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 1>>
+				The inspector asks some cursory questions and is shocked when $he responds. "<<He>> came back?" _he2 mutters, "You re<<s>>tored <<his>> mind; I can't believe it. Thi<<s>> i<<s>> incredible." _He2 carries on while writing notes on _his2 tablet, "You're more than welcome to adopt <<s>>lave<<s>> from our <<sh>>elter." You swear _he2 seems in much better spirits as _he2 leaves your penthouse.
+				<<set $shelterAbuse -= 5>>
 			<</if>>
-		<</if>>
-	<<else>>
-		The inspector asks, "What do you do for work, _Inspectee.birthName?"
-		<br><br>
-		<<switch _Inspectee.assignment>>
-		<<case "whore" "work in the brothel">>
-			<<if (_Inspectee.fetishStrength > 95) || (_Inspectee.energy > 95)>>
-				_Inspectee.slaveName says happily, "I'm a whore!" The inspector makes a 'go on' gesture, and the slave continues, "It'<<s>> awe<<s>>ome. Nothing but cock, every day." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 1>>
+		<<elseif _Inspectee.origin == "You got $him at the Slave Shelter. $He was found unresponsive in the lower arcology with a gaping pussy and deflated belly. It is unclear what happened to $him.">>
+			<<if _Inspectee.fetish == "mindbroken">>
+				Of course, the poor $girl is just as mindbroken as ever. The inspector asks some cursory questions and gives up. "Don't worry," _he2 says. "I know <<he>> wa<<s>> like thi<<s>> when you got $him. Ju<<s>>t — ju<<s>>t keep trying, would you?"
+				<<if _Inspectee.pussy > 3 && _Inspectee.bellySag > 1>>
+					_He2 gropes the slave's sagging middle before inspecting $his ruined pussy. "<<S>>till ruined, I <<s>>ee."
+				<<elseif _Inspectee.pussy <= 3 && _Inspectee.bellySag > 1>>
+					_He2 gropes the slave's sagging middle before inspecting $his pussy. "Apart from the belly, <<his>> pu<<ss>>y ha<<s>> recovered ni<<c>>ely."
+				<<elseif _Inspectee.pussy > 3 && _Inspectee.bellySag <= 1>>
+					_He2 gropes the slave's middle before inspecting $his ruined pussy. "<<His>> <<s>>tomach <<s>>eem<<s>> to have recovered; <<sh>>ame you did nothing for <<his>> poor vagina."
+				<<else>>
+					_He2 runs _his2 hand across the slave's restored midriff, before inspecting $his pussy. "<<He>> i<<s>> looking much better, phy<<s>>ically, though. That'<<s>> worth noting."
+					<<set $shelterAbuse-->>
+				<</if>>
+				_He2 leaves, looking bitter.
 			<<else>>
-				_Inspectee.slaveName says confidently, "I'm a whore!" The inspector makes a 'go on' gesture, and the slave continues, "It'<<s>> hard work <<s>>ometime<<s>>, but I'm okay. I'm much happier with my current owner, thank you." The inspector looks pleased, and says _he2'll put out a @@.green;good word@@ about you.
-				<<run repX(500, "event", _Inspectee)>>
-				<<set $shelterAbuse -= 1>>
+				The inspector asks some cursory questions and is shocked when $he responds. "<<He>> came back?" _he2 mutters, "You re<<s>>tored <<his>> mind; I can't believe it. Thi<<s>> i<<s>> incredible." _He2 carries on while writing notes on _his2 tablet, "You're more than welcome to adopt <<s>>lave<<s>> from our <<sh>>elter." You swear _he2 seems in much better spirits as _he2 leaves your penthouse, even though _he2 forgot to check $his pussy.
+				<<set $shelterAbuse -= 5>>
 			<</if>>
-		<<case "serve the public" "serve in the club">>
-			<<if (_Inspectee.fetishStrength > 95) || (_Inspectee.energy > 95)>>
-				_Inspectee.slaveName says happily, "I'm a <<s>>lut!" The inspector makes a 'go on' gesture, and the slave continues, "It'<<s>> awe<<s>>ome. Nothing but cute boy<<s>> and girl<<s>>, every day." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 1>>
+		<<elseif _Inspectee.fetish == "mindbroken">>
+			Of course, the poor $girl is mindbroken now. The inspector is horrified, though _he2 tries to conceal it. _He2 makes lengthy notes on _his2 tablet, and almost runs out of the penthouse.
+			<<set $shelterAbuse += 5>>
+		<<elseif _Inspectee.trust < -20>>
+			$He is sufficiently afraid of you that $he tells the inspector whatever $he thinks you'd want $him to say. The inspector, experienced at this, is not amused. _He2 offers you a few choice words, makes notes on _his2 tablet, and storms out.
+		<<elseif _Inspectee.anus > 2>>
+			$He cooperates with the inspector, who pulls on a pair of latex gloves and performs a complete examination. When _he2 pulls the $girl's buttocks apart and probes the slave's asshole, _he2 pulls _his2 hand away as if scalded. "Oh my God," _he2 says. "_Inspectee.birthName, what happened to your anu<<s>>?"
+			<br><br>
+			<<run Enunciate(_Inspectee)>>
+			<<if (_Inspectee.devotion < 10)>>
+				<<if (_Inspectee.buttplug == "large plug") || (_Inspectee.buttplug == "huge plug") || (_Inspectee.buttplug == "long, large plug") || (_Inspectee.buttplug == "long, huge plug")>>
+					"W-well," $he says, "I wear a buttplug." The inspector frowns.
+					<<run Enunciate($activeSlave)>>
+					"A buttplug <<sh>>ouldn't do that!"
+					<<run Enunciate(_Inspectee)>>
+					The slave looks worried and replies, "It'<<s>> kinda big? And I wear it all the time. B-but I like it! It d-doe<<s>>n't hurt. Well, anymore." The inspector is not amused. _He2 offers you a few choice words, makes notes on _his2 tablet, and storms out.
+				<<elseif (_Inspectee.assignment == "whore") || (_Inspectee.assignment == "work in the brothel") || (_Inspectee.assignment == "serve the public") || (_Inspectee.assignment == "serve in the club")>>
+					"W-well," $he says, "I get fucked there at work." The inspector frowns. "How often!?" The slave looks worried and replies, "L-let me think. Four time<<s>> today? After the third time, it u<<s>>ually <<s>>top<<s>> clo<<s>>ing up again between cock<<s>>." The inspector is not amused. _He2 offers you a few choice words, makes notes on _his2 tablet, and storms out.
+				<<elseif (_Inspectee.fetish == "buttslut") && (_Inspectee.fetishKnown == 1)>>
+					"Hey," $he protests, "that'<<s>> normal." The inspector looks incredulous. "What!?" The slave looks insulted and replies, "I love anal <<s>>e<<x>>! Don't judge me. I want cock up that hole right now, you bitch. I'm going to beg for butt<<s>>e<<x>> the moment you leave." $He defiantly sticks $his rump out at you. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 1>>
+				<<elseif (_Inspectee.energy > 95) && (_Inspectee.fetishKnown == 1)>>
+					"Hey," $he protests, "that'<<s>> normal." The inspector looks incredulous. "What!?" The slave looks insulted and replies, "I love <<s>>e<<x>>! Don't judge me. I take cock in all my hole<<s>>, and I like it. I'm going to beg for butt<<s>>e<<x>> the moment you leave, you bitch." $He defiantly sticks $his rump out at you. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 1>>
+				<<else>>
+					"W-well," $he says, "I'm a <<s>>lave." The inspector frowns.
+					<<run Enunciate($activeSlave)>>
+					"What doe<<s>> that have to do with it?"
+					<<run Enunciate(_Inspectee)>>
+					The slave looks worried and replies, "I-it'<<s>> a hole, right? I get fucked in all my hole<<s>>." The inspector is not amused. _He2 offers you a few choice words, makes notes on _his2 tablet, and storms out.
+				<</if>>
 			<<else>>
-				_Inspectee.slaveName says confidently, "I'm a <<s>>lut!" The inspector makes a 'go on' gesture, and the slave continues, "It'<<s>> not bad. I'm much happier with my current owner, thank you." The inspector looks pleased, and says _he2'll put out a @@.green;good word@@ about you.
-				<<run repX(500, "event", _Inspectee)>>
-				<<set $shelterAbuse -= 1>>
+				<<if (_Inspectee.buttplug == "large plug") || (_Inspectee.buttplug == "huge plug") || (_Inspectee.buttplug == "long, large plug") || (_Inspectee.buttplug == "long, huge plug")>>
+					"I wear a buttplug!" $he says confidently. The inspector frowns.
+					<<run Enunciate($activeSlave)>>
+					"A buttplug <<sh>>ouldn't do that!"
+					<<run Enunciate(_Inspectee)>>
+					The slave looks worried and replies, "It'<<s>> really big, and I wear it all the time. I like it! It keep<<s>> my hole ready for anything." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 1>>
+				<<elseif (_Inspectee.assignment == "whore") || (_Inspectee.assignment == "work in the brothel") || (_Inspectee.assignment == "serve the public") || (_Inspectee.assignment == "serve in the club")>>
+					"I get fucked there at work!" $he says confidently. The inspector frowns. "How often!?" The slave thinks for a moment and replies, "Four time<<s>> today. After the third time, it u<<s>>ually <<s>>top<<s>> clo<<s>>ing up again between cock<<s>>. I'm good at my job!" The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 1>>
+				<<elseif (_Inspectee.fetish == "buttslut") && (_Inspectee.fetishKnown == 1)>>
+					"Hey," $he protests, "that'<<s>> normal." The inspector looks incredulous. "What!?" The slave looks insulted and replies, "I love anal <<s>>e<<x>>! Don't judge me. I want cock up that hole right now, you bitch. I'm going to beg for butt<<s>>e<<x>> the moment you leave." $He defiantly sticks $his rump out at you. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 1>>
+				<<elseif (_Inspectee.energy > 95) && (_Inspectee.fetishKnown == 1)>>
+					"Hey," $he protests, "that'<<s>> normal." The inspector looks incredulous. "What!?" The slave looks insulted and replies, "I love <<s>>e<<x>>! Don't judge me. I take cock in all my hole<<s>>, and I like it. I'm going to beg for butt<<s>>e<<x>> the moment you leave, you bitch." $He defiantly sticks $his rump out at you. The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 1>>
+				<<else>>
+					"I'm a <<s>>lave," $he says confidently. The inspector frowns.
+					<<run Enunciate($activeSlave)>>
+					"What doe<<s>> that have to do with it?"
+					<<run Enunciate(_Inspectee)>>
+					The slave beams and replies, "It'<<s>> a hole. I'm a good $girl, <<s>>o I get fucked in all my hole<<s>>." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 1>>
+				<</if>>
 			<</if>>
-		<<case "get milked" "work in the dairy">>
-			<<if _Inspectee.lactation > 0>>
-				_Inspectee.slaveName says happily, "I'm a milk cow!" The inspector arches an eyebrow skeptically, and the slave continues, "I give milk. <<S>>ee?" $He expresses a squirt of milk from one nipple. It'<<s>> a ni<<c>>e life. I'm much happier with my current owner, thank you." The inspector looks pleased, and says _he2'll put out a @@.green;good word@@ about you.
+		<<elseif _Inspectee.devotion <= 20>>
+			$He does not like you and isn't particularly terrified of you, so $he is not flattering. $He's not stupid enough to really criticize you, but $he is honest and makes no effort to conceal troubling particulars. The inspector takes copious notes. _He2 offers you a few choice words, makes notes on _his2 tablet, and storms out.
+		<<else>>
+			The inspector asks, "What do you do for work, _Inspectee.birthName?"
+			<br><br>
+			<<switch _Inspectee.assignment>>
+			<<case "whore" "work in the brothel">>
+				<<if (_Inspectee.fetishStrength > 95) || (_Inspectee.energy > 95)>>
+					_Inspectee.slaveName says happily, "I'm a whore!" The inspector makes a 'go on' gesture, and the slave continues, "It'<<s>> awe<<s>>ome. Nothing but cock, every day." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 1>>
+				<<else>>
+					_Inspectee.slaveName says confidently, "I'm a whore!" The inspector makes a 'go on' gesture, and the slave continues, "It'<<s>> hard work <<s>>ometime<<s>>, but I'm okay. I'm much happier with my current owner, thank you." The inspector looks pleased, and says _he2'll put out a @@.green;good word@@ about you.
+					<<run repX(500, "event", _Inspectee)>>
+					<<set $shelterAbuse -= 1>>
+				<</if>>
+			<<case "serve the public" "serve in the club">>
+				<<if (_Inspectee.fetishStrength > 95) || (_Inspectee.energy > 95)>>
+					_Inspectee.slaveName says happily, "I'm a <<s>>lut!" The inspector makes a 'go on' gesture, and the slave continues, "It'<<s>> awe<<s>>ome. Nothing but cute boy<<s>> and girl<<s>>, every day." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 1>>
+				<<else>>
+					_Inspectee.slaveName says confidently, "I'm a <<s>>lut!" The inspector makes a 'go on' gesture, and the slave continues, "It'<<s>> not bad. I'm much happier with my current owner, thank you." The inspector looks pleased, and says _he2'll put out a @@.green;good word@@ about you.
+					<<run repX(500, "event", _Inspectee)>>
+					<<set $shelterAbuse -= 1>>
+				<</if>>
+			<<case "get milked" "work in the dairy">>
+				<<if _Inspectee.lactation > 0>>
+					_Inspectee.slaveName says happily, "I'm a milk cow!" The inspector arches an eyebrow skeptically, and the slave continues, "I give milk. <<S>>ee?" $He expresses a squirt of milk from one nipple. It'<<s>> a ni<<c>>e life. I'm much happier with my current owner, thank you." The inspector looks pleased, and says _he2'll put out a @@.green;good word@@ about you.
+					<<run repX(500, "event", _Inspectee)>>
+					<<set $shelterAbuse -= 1>>
+				<<else>>
+					_Inspectee.slaveName says happily, "I get cockmilked!" The inspector arches an eyebrow skeptically, and the slave continues, "I give cum. It'<<s>> actually lot<<s>> of fun!" $He shakes $his penis for emphasis. "The machine feel<<s>> <<s>>o good. And when I'm almo<<s>>t empty, I get buttfucked to get the la<<s>>t drop out of me!" $He shivers. "It'<<s>> really ni<<c>>e..." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
+					<<set $shelterAbuse -= 1>>
+				<</if>>
+			<<default>>
+				_Inspectee.slaveName <<say>>s flatly, "Whatever my beloved <<Master>> require<<s>>. I have a good life now, and I would appre<<c>>iate it if you would <<s>>upport me by doing everything you can for _himP." Taken aback, the inspector says _he2'll put out a @@.green;good word@@ about you.
 				<<run repX(500, "event", _Inspectee)>>
 				<<set $shelterAbuse -= 1>>
-			<<else>>
-				_Inspectee.slaveName says happily, "I get cockmilked!" The inspector arches an eyebrow skeptically, and the slave continues, "I give cum. It'<<s>> actually lot<<s>> of fun!" $He shakes $his penis for emphasis. "The machine feel<<s>> <<s>>o good. And when I'm almo<<s>>t empty, I get buttfucked to get the la<<s>>t drop out of me!" $He shivers. "It'<<s>> really ni<<c>>e..." The inspector looks deflated, and reluctantly makes a positive note on _his2 tablet.
-				<<set $shelterAbuse -= 1>>
-			<</if>>
-		<<default>>
-			_Inspectee.slaveName <<say>>s flatly, "Whatever my beloved <<Master>> require<<s>>. I have a good life now, and I would appre<<c>>iate it if you would <<s>>upport me by doing everything you can for _himP." Taken aback, the inspector says _he2'll put out a @@.green;good word@@ about you.
-			<<run repX(500, "event", _Inspectee)>>
-			<<set $shelterAbuse -= 1>>
-		<</switch>>
-	<</if>>
-	<<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */
-	<</replace>>
-<</link>>
+			<</switch>>
+		<</if>>
+		<<set $nextButton = "Continue">><<UpdateNextButton>> /* unlock Continue button */
+		<</replace>>
+	<</link>>
 <</if>>
 </span>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 3e1ff8d5c1ea6538dda07f6bee4bd15cd9110f42..870d6ea06c218c2ab4f665a0bf6e35a8e41828a8 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -862,7 +862,7 @@ $He's got a
 <<elseif $activeSlave.butt <= 3>><<print either("big and healthy", "curved and plump", "healthy and plump")>> derrière.
 <<elseif $activeSlave.butt <= 4>><<print either("big bubble", "curvy and enticing", "juicy and large")>> butt.
 <<elseif $activeSlave.butt <= 5>><<print either("huge", "juicy and huge", "massive and undeniable")>> rear end.
-<<elseif !hasAnyLegs($activeSlave)>>ridiculous ass. It's so big it would jiggle as $he walked — if $he could walk.
+<<elseif !hasBothLegs($activeSlave)>>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>>
 
@@ -1715,15 +1715,74 @@ Work on $him structurally:
 <</if>>
 <br>
 
-<<if hasAnyNaturalLimbs($activeSlave)>>
-	<<if $activeSlave.indentureRestrictions < 1 && $seeExtreme == 1>>
-		<<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP1"}) == -1 && $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP2"}) == -1>>
-			[[Remove arms and legs|Surgery Degradation][surgeryAmp($activeSlave, "left arm"), surgeryAmp($activeSlave, "right arm"), surgeryAmp($activeSlave, "left leg"), surgeryAmp($activeSlave, "right leg"), $activeSlave.amp = 1, $activeSlave.missingArms = 3, $activeSlave.missingLegs = 3, $activeSlave.releaseRules = "restrictive", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $surgeryType = "amp"]] //This will greatly restrict $him//
-		<<else>>
-			[[Remove arms and legs|Surgery Degradation][surgeryAmp($activeSlave, "left arm"), surgeryAmp($activeSlave, "right arm"), surgeryAmp($activeSlave, "left leg"), surgeryAmp($activeSlave, "right leg"), $activeSlave.amp = 1, $activeSlave.missingArms = 3, $activeSlave.missingLegs = 3, $activeSlave.releaseRules = "restrictive", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $surgeryType = "amp1"]] //This will greatly restrict $him//
+<<if $seeExtreme === 1 && $activeSlave.indentureRestrictions < 1 && hasAnyNaturalLimbs($activeSlave)>>
+	<style>
+		.container {
+			display: grid;
+			grid-template-columns: 100px 100px 100px;
+		}
+	</style>
+	<<set _LA = 0, _RA = 0, _LL = 0, _RL = 0>>
+
+	<div class="container">
+	<<if getLeftArmID($activeSlave) === 1>>
+		<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Left arm:</div>
+		<div><label><<radiobutton "_LA" 0 checked>> Leave </label></div>
+		<div><label><<radiobutton "_LA" 1>> Amputate </label></div>
+	<</if>>
+	<<if getRightArmID($activeSlave) === 1>>
+		<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Right arm:</div>
+		<div><label><<radiobutton "_RA" 0 checked>> Leave </label></div>
+		<div><label><<radiobutton "_RA" 1>> Amputate </label></div>
+	<</if>>
+	<<if getLeftLegID($activeSlave) === 1>>
+		<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Left leg:</div>
+		<div><label><<radiobutton "_LL" 0 checked>> Leave </label></div>
+		<div><label><<radiobutton "_LL" 1>> Amputate </label></div>
+	<</if>>
+	<<if getRightLegID($activeSlave) === 1>>
+		<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Right leg:</div>
+		<div><label><<radiobutton "_RL" 0 checked>> Leave </label></div>
+		<div><label><<radiobutton "_RL" 1>> Amputate </label></div>
+	<</if>>
+	</div>
+
+	&nbsp;&nbsp;&nbsp;&nbsp;
+	<<link "Amputate limb(s)">>
+		<<set _atleastOne = 0>>
+		<<if _LA === 1>>
+			<<run removeLimbs($activeSlave, "left arm")>>
+			<<set _atleastOne++>>
+		<</if>>
+		<<if _RA === 1>>
+			<<run removeLimbs($activeSlave, "right arm")>>
+			<<set _atleastOne++>>
+		<</if>>
+		<<if _LL === 1>>
+			<<run removeLimbs($activeSlave, "left leg")>>
+			<<set _atleastOne++>>
+		<</if>>
+		<<if _RL === 1>>
+			<<run removeLimbs($activeSlave, "right leg")>>
+			<<set _atleastOne++>>
+		<</if>>
+		<<if _atleastOne>>
+			<<set $activeSlave.health -= _atleastOne * 10, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
+			<<if !hasAnyArms($activeSlave)>>
+				<<set $activeSlave.releaseRules = "restrictive">>
+			<</if>>
+			<<if !hasAnyNaturalLimbs($activeSlave) && (isProstheticAvailable($activeSlave, "interfaceP1") || isProstheticAvailable($activeSlave, "interfaceP2"))>>
+				<<set $surgeryType = "amp1">>
+			<<else>>
+				<<set $surgeryType = "amp">>
+			<</if>>
+			<<goto "Surgery Degradation">>
 		<</if>>
-	<</if>>
-<<elseif isAmputee($activeSlave) && $activeSlave.PLimb == 0>>
+	<</link>> //This will greatly restrict $him.//
+	<br>
+<</if>> /* extreme toggle */
+
+<<if isAmputee($activeSlave) && $activeSlave.PLimb == 0>>
 	<<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP1"}) != -1>> |
 		[[Install basic prosthetic interface|Surgery Degradation][$activeSlave.PLimb = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20, $surgeryType = "PLimb interface1"]]
 	<</if>>
diff --git a/src/uncategorized/reputation.tw b/src/uncategorized/reputation.tw
index 0d349d0e0a19ecf6db88f7d26b4b5c85101c8a13..95ea974133346388d320047646a07551398c1591 100644
--- a/src/uncategorized/reputation.tw
+++ b/src/uncategorized/reputation.tw
@@ -293,6 +293,19 @@ On formal occasions, you are announced as $PCTitle.
 	<</if>>
 <</if>>
 
+<<if $SF.Toggle && $SF.Active >= 1 && $SF.UC.Assign > 0>>
+	<br>Assigning a <<if $SF.UC.Assign === 1>>small<<else>>large<</if>> portion of $SF.Lower to @@.green;undercover work, slightly boosts your reputation@@.
+	<<if $SF.UC.Assign === 1>>
+		<<set _value = $SF.Squad.Troops * 0.05>>
+	<<else>>
+		<<set _value = $SF.Squad.Troops * 0.25>>
+	<</if>>
+	<<run repX(_value, "specialForces")>> <br>
+<<elseif $SF.FS.BadOutcome === "ISOLATION">>
+	<br>Your citizens are @@.red;very displeased@@ that you are hosting a legion of heavily armed squatters in your basement.
+	<<run repX(forceNeg($SF.Squad.Troops+$SF.Size), "specialForces")>>
+<</if>>
+
 <<if $arcologies[0].FSSupremacist != "unset">>
 	<<if ($PC.race == $arcologies[0].FSSupremacistRace)>>
 		Since you are a member of the $PC.race race, society @@.green;strongly approves@@ of your ownership of the arcology.
@@ -746,11 +759,6 @@ On formal occasions, you are announced as $PCTitle.
 	<</if>>
 <</if>>
 
-<<if $SF.BadOutcome === "lockdown">>
-	Your citizens are @@.red;very displeased@@ that you are hosting a legion of heavily armed squatters in your basement.
-	<<run repX(forceNeg($SF.Troops+$SF.Size), "specialForces")>>
-<</if>>
-
 <<if $FCNNstation == 1>>
 	Playing host to the Free Cities News Network brings @@.green;approval@@ from those who still consider freedom of the press a virtue.
 	<<run repX(500, "policies")>>
diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw
index 764337b93871ce90b2d567eb5857491babe45e38..4921b3e33563ba54e0a342db7ca185fa4eeb4838 100644
--- a/src/uncategorized/saLiveWithHG.tw
+++ b/src/uncategorized/saLiveWithHG.tw
@@ -799,7 +799,7 @@
 	<<else>>
 		and keeps $him on $his diet.
 	<</if>>
-<<elseif (($slaves[$i].muscles <= 95 && (($arcologies[0].FSPhysicalIdealist > 0 && $arcologies[0].FSPhysicalIdealistLaw == 0) || (($HeadGirl.fetish == "submissive" || $HeadGirl.fetish == "masochist") && $HeadGirl.fetishKnown == 1))) || ($slaves[$i].muscles <= 45 && ($arcologies[0].FSPhysicalIdealist > 0 && $arcologies[0].FSPhysicalIdealistLaw == 1)) || $slaves[$i].muscles <= 5) && hasAnyLimbs($slaves[$i])>>
+<<elseif (($slaves[$i].muscles <= 95 && (($arcologies[0].FSPhysicalIdealist > 0 && $arcologies[0].FSPhysicalIdealistLaw == 0) || (($HeadGirl.fetish == "submissive" || $HeadGirl.fetish == "masochist") && $HeadGirl.fetishKnown == 1))) || ($slaves[$i].muscles <= 45 && ($arcologies[0].FSPhysicalIdealist > 0 && $arcologies[0].FSPhysicalIdealistLaw == 1)) || $slaves[$i].muscles <= 5) && !isAmputee($slaves[$i])>>
 	$HeadGirl.slaveName thinks $slaves[$i].slaveName
 	<<if $HeadGirl.fetish == "submissive">>
 		could use bigger muscles to better dominate _him2 with in bed
@@ -923,7 +923,8 @@
 			<<if ($slaves[$i].health > 40)>>
 				<<if hasAnyNaturalLimbs($slaves[$i]) && ($slaves[$i].devotion < -20)>>
 					$HeadGirl.slaveName decides to extract the ultimate in sadistic pleasure from $slaves[$i].slaveName, and directs the autosurgery to @@.red;amputate $his <<if hasAnyArms($slaves[$i])>>arm<<if hasBothArms($slaves[$i])>>s<</if>> <<if hasAnyLegs($slaves[$i])>>and<</if>><</if>><<if hasAnyLegs($slaves[$i])>> leg<<if hasBothLegs($slaves[$i])>>s<</if>><</if>>.@@ _He2 carefully describes the entire process to the sobbing slave @@.gold;in minute detail@@ before allowing $him to be sedated.
-					<<set $slaves[$i].devotion -= 20, $slaves[$i].trust -= 20, $slaves[$i].health -= 40, $slaves[$i].amp = 1, $activeSlave.missingArms = 3, $activeSlave.missingLegs = 3>>
+					<<set $slaves[$i].devotion -= 20, $slaves[$i].trust -= 20, $slaves[$i].health -= 40>>
+					<<run removeLimbs($slaves[$i], "all")>>
 				<</if>>
 				<<if ($slaves[$i].balls > 0) && ($slaves[$i].devotion <= 50)>>
 					$HeadGirl.slaveName decides to have some once-only sadistic pleasure, and carefully straps $slaves[$i].slaveName into the surgery until $he's completely immobile. $HeadGirl.slaveName situates <<if canSee($slaves[$i])>>a mirror so the terrified $girl can see $his own crotch<<else>>$him so that the terrified $girl can sense what part of $his body is being manipulated even through the anesthetics<</if>>, gets behind $him, and carefully sodomizes $him during the entire process of @@.red;castration.@@ $slaves[$i].slaveName is anesthetized down there and can't feel the brutal anal rape, but $his abuser orgasms repeatedly to $him @@.gold;weeping at the <<if canSee($slaves[$i])>>sight<<else>>muted sensation<</if>> of being gelded and raped at once.@@
diff --git a/src/uncategorized/salon.tw b/src/uncategorized/salon.tw
index bb2372b5037da8558bd582257979ebd8da011115..75e2f5a1c4a336f7b58329ed37bba0f4d88ddbc5 100644
--- a/src/uncategorized/salon.tw
+++ b/src/uncategorized/salon.tw
@@ -903,7 +903,8 @@ Dye or paint:
 		| [[Very Bushy|Salon][$activeSlave.pubicHStyle = "very bushy",cashX(forceNeg($modCost), "slaveMod", $activeSlave)]]
 
 <<else>>
-	<br><br>$His groin is completely hairless.
+	<br><br>
+	$His groin is completely hairless.
 <</if>>
 
 /* UNDERARM HAIR */
diff --git a/src/uncategorized/seCustomSlaveDelivery.tw b/src/uncategorized/seCustomSlaveDelivery.tw
index cd3eda5b7a06e5777e53a1537cda92ff5920ac8f..2b6824ba7614c5c48ca71f4b8e4aff2eb6a9cfec 100644
--- a/src/uncategorized/seCustomSlaveDelivery.tw
+++ b/src/uncategorized/seCustomSlaveDelivery.tw
@@ -195,9 +195,8 @@
 <<set $activeSlave.hears = $customSlave.hears>>
 <<set $activeSlave.smells = $customSlave.smells>>
 <<set $activeSlave.tastes = $customSlave.tastes>>
-<<set $activeSlave.amp = $customSlave.amp>>
-<<set $activeSlave.missingArms = $customSlave.missingArms>>
-<<set $activeSlave.missingLegs = $customSlave.missingLegs>>
+<<set $activeSlave.arm = $customSlave.arm>>
+<<set $activeSlave.leg = $customSlave.leg>>
 <<set $activeSlave.weekAcquired = $week>>
 <<set $activeSlave.origin = "You purchased $him by special order.">>
 <<set $activeSlave.career = "a slave">>
diff --git a/src/uncategorized/slaveShelter.tw b/src/uncategorized/slaveShelter.tw
index 59fedd55e994dc7ec509eeabb444681a2baf0341..98ed666cb535d1360f513e896ba8ecf25f158743 100644
--- a/src/uncategorized/slaveShelter.tw
+++ b/src/uncategorized/slaveShelter.tw
@@ -64,9 +64,7 @@ You contact the Slave Shelter to review the profile of the slave the Shelter is
 	<<set $shelterSlave = $activeSlave>>
 	<<set $shelterSlave.origin = "It's not clear why $his previous owner cut $his arms and legs off.">>
 	<<set $shelterSlave.career = "a slave">>
-	<<set $shelterSlave.amp = 1>>
-	<<set $shelterSlave.missingArms = 3>>
-	<<set $shelterSlave.missingLegs = 3>>
+	<<removeLimbs($shelterSlave, "all")>>
 	<<set $shelterSlave.devotion = random(-100,-90)>>
 	<<set $shelterSlave.trust = random(-100,-90)>>
 	<<set $shelterSlave.health = random(-80,-60)>>
diff --git a/src/uncategorized/slaveStats.tw b/src/uncategorized/slaveStats.tw
index 4d7f2f64cc464637c5daf50f809cdbd05a8dc856..86976c47fc5d90135329f3a122ad91e71fdbe552 100644
--- a/src/uncategorized/slaveStats.tw
+++ b/src/uncategorized/slaveStats.tw
@@ -127,7 +127,8 @@ slaveName: $activeSlave.slaveName	   /* TODO: figure out why this is being inden
 <br>waist: $activeSlave.waist
 <br>corsetPiercing: $activeSlave.corsetPiercing
 <br>PLimb: $activeSlave.PLimb
-<br>amp: $activeSlave.amp
+<br>arm: $activeSlave.arms
+<br>leg: $activeSlave.leg
 <br>heels: $activeSlave.heels
 <br>voice: $activeSlave.voice
 <br>voiceImplant: $activeSlave.voiceImplant
@@ -330,7 +331,6 @@ slaveName: $activeSlave.slaveName	   /* TODO: figure out why this is being inden
 <br>eggType: $activeSlave.eggType
 <br>choosesOwnChastity: $activeSlave.choosesOwnChastity
 <br>pregControl: $activeSlave.pregControl
-<br>readyLimbs: $activeSlave.readyLimbs
 <br>ageAdjust: $activeSlave.ageAdjust
 <br>bald: $activeSlave.bald
 <br>origBodyOwner: $activeSlave.origBodyOwner
@@ -378,8 +378,6 @@ slaveName: $activeSlave.slaveName	   /* TODO: figure out why this is being inden
 <br>override_Arm_H_Color: $activeSlave.override_Arm_H_Color
 <br>override_Brow_H_Color: $activeSlave.override_Brow_H_Color
 <br>missingEyes: $activeSlave.missingEyes
-<br>missingArms: $activeSlave.missingArms
-<br>missingLegs: $activeSlave.missingLegs
 <br>slaveCost: $activeSlave.slaveCost
 <br>lifetimeCashExpenses: $activeSlave.lifetimeCashExpenses
 <br>lifetimeCashIncome: $activeSlave.lifetimeCashIncome
diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw
index caed106e789d14843319579a81a07dda066d9329..8820520c09674f3c5862b3ccdd3ca6e1189d8e01 100644
--- a/src/uncategorized/surgeryDegradation.tw
+++ b/src/uncategorized/surgeryDegradation.tw
@@ -239,9 +239,7 @@ As the remote surgery's long recovery cycle completes,
 	<br><br>The suit includes a network of small tubes filled with hydraulic fluid, and tiny pumps to move it around. This is necessary to keep the Fuckdoll's internal temperature stable, but it can also be used to restrict $his movements. The suit is doing so now; the Fuckdoll is desperately attempting to move, but the suit won't let $him.
 	<<if hasAnyProstheticLimbs($activeSlave)>>
 		Its P-Limbs have been removed, since they aren't compatible with Fuckdoll suits.
-		<<set $activeSlave.amp = 1>>
-		<<set $activeSlave.missingArms = 3>>
-		<<set $activeSlave.missingLegs = 3>>
+		<<run removeLimbs($activeSlave, "all")>>
 	<</if>>
 	<<if isAmputee($activeSlave)>>
 		The Fuckdoll's limbless torso rocks back and forth slightly.
@@ -1860,10 +1858,10 @@ As the remote surgery's long recovery cycle completes,
 	<<set $nextLink = "Surgery Degradation", $surgeryType = "amp">>
 	Since you have already have a prosthetic interface prepared for this slave, you can install it during the operation.<br>
 	The procedure will put additional strain on $his health but less so than if you were to perform the procedures separately.
-	<<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP1"}) != -1>><br>
+	<<if isProstheticAvailable($activeSlave, "interfaceP1")>><br>
 		[[Install basic interface|Surgery Degradation][$activeSlave.PLimb = 1, $activeSlave.health -= 10, $surgeryType = "amp2", $nextLink = "Surgery Degradation"]]
 	<</if>>
-	<<if $activeSlave.readyProsthetics.findIndex(function(p) {return p.id == "interfaceP2"}) != -1>><br>
+	<<if isProstheticAvailable($activeSlave, "interfaceP2")>><br>
 		[[Install advanced interface|Surgery Degradation][$activeSlave.PLimb = 2, $activeSlave.health -= 10, $surgeryType = "amp2", $nextLink = "Surgery Degradation"]]
 	<</if>>
 
diff --git a/src/uncategorized/universalRules.tw b/src/uncategorized/universalRules.tw
index bcce725d487c289d5aad8efed2953e43e5a14882..d1e4ec74157483b333c9df1156d9d167699026c0 100644
--- a/src/uncategorized/universalRules.tw
+++ b/src/uncategorized/universalRules.tw
@@ -168,7 +168,7 @@ One 'welcome' for a new slave is to have them branded. Where would you like such
 	| [[Hand|Universal Rules][$brandTarget.primary = "hand"]]
 	| [[Buttocks|Universal Rules][$brandTarget.primary = "buttock"]]
 	| [[Thigh|Universal Rules][$brandTarget.primary = "thigh"]]
-	| [[Calf|Universal Rules][$brandTarget.primary = "calve"]]
+	| [[Calf|Universal Rules][$brandTarget.primary = "calf"]]
 	| [[Ankle|Universal Rules][$brandTarget.primary = "ankle"]]
 	| [[Feet|Universal Rules][$brandTarget.primary = "foot"]]
 	| [[Neck|Universal Rules][$brandTarget.primary = "neck"]]
@@ -215,7 +215,7 @@ One 'welcome' for a new slave is to have them branded. Where would you like such
 	| [[Buttocks|Universal Rules][$brandTarget.secondary = "buttock"]]
 	/*<<if hasAnyNaturalLegs($activeSlave)>>
 		| [[Thigh|Universal Rules][$brandTarget.secondary = "thigh"]]
-		| [[Calf|Universal Rules][$brandTarget.secondary = "calve"]]
+		| [[Calf|Universal Rules][$brandTarget.secondary = "calf"]]
 		| [[Ankle|Universal Rules][$brandTarget.secondary = "ankle"]]
 		| [[Feet|Universal Rules][$brandTarget.secondary = "foot"]]
 	<</if>>*/
@@ -343,7 +343,7 @@ One 'welcome' for a new slave is to have them scarred. Where would you like such
 	| [[Hand|Universal Rules][$scarTarget.primary = "hand"]]
 	| [[Buttocks|Universal Rules][$scarTarget.primary = "buttock"]]
 	| [[Thigh|Universal Rules][$scarTarget.primary = "thigh"]]
-	| [[Calf|Universal Rules][$scarTarget.primary = "calve"]]
+	| [[Calf|Universal Rules][$scarTarget.primary = "calf"]]
 	| [[Ankle|Universal Rules][$scarTarget.primary = "ankle"]]
 	| [[Feet|Universal Rules][$scarTarget.primary = "foot"]]
 	| [[Neck|Universal Rules][$scarTarget.primary = "neck"]]
@@ -390,7 +390,7 @@ One 'welcome' for a new slave is to have them scarred. Where would you like such
 	| [[Buttocks|Universal Rules][$scarTarget.secondary = "buttock"]]
 	/*<<if hasAnyNaturalLegs($activeSlave)>>
 		| [[Thigh|Universal Rules][$scarTarget.secondary = "thigh"]]
-		| [[Calf|Universal Rules][$scarTarget.secondary = "calve"]]
+		| [[Calf|Universal Rules][$scarTarget.secondary = "calf"]]
 		| [[Ankle|Universal Rules][$scarTarget.secondary = "ankle"]]
 		| [[Feet|Universal Rules][$scarTarget.secondary = "foot"]]
 	<</if>>*/
diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw
index 3db5be8354bb561bd520d157b1ab450956dba1a0..14b6b32a1e9eec144a66aeccff1608f9ca450070 100644
--- a/src/utility/descriptionWidgetsStyle.tw
+++ b/src/utility/descriptionWidgetsStyle.tw
@@ -258,7 +258,6 @@ $activeSlave.slaveName is
 
 <<case "striped panties">>
 	a simple garment that hugs $his
-
 	<<if hasAnyLegs($activeSlave)>>
 		body closely and comfortably, and
 		<<footwearDescription>>
@@ -578,7 +577,7 @@ $activeSlave.slaveName is
 
 <<case "a burkini">>
 	consisting of a polyester tunic and
-	<<if !hasAnyLegs($activeSlave)>>
+	<<if hasAnyLegs($activeSlave)>>
 		pants, and
 		<<footwearDescription>>
 	<<else>>
@@ -861,33 +860,31 @@ $activeSlave.slaveName is
 
 <<case "harem gauze">>
 	<<if hasAnyLegs($activeSlave)>>
-		$he is wearing
+		$He is wearing
 		<<footwearDescription>>
 	<</if>>
 	$He's covered and even veiled, but you can see everything straight through the filmy cloth.
 
 <<case "slutty jewelry">>
+	including a belt of thin chain with a lewd ornament (a little
+	<<if ($activeSlave.dick > 0) && ($activeSlave.balls == 0)>>
+		curved golden cock without balls)
+	<<elseif ($activeSlave.dick > 0)>>
+		golden cock and balls)
+	<<elseif ($activeSlave.fetish == "cumslut") && ($activeSlave.fetishStrength > 95)>>
+		pair of golden lips)
+	<<elseif ($activeSlave.boobs > 1000)>>
+		pair of golden breasts)
+	<<elseif ($activeSlave.vagina == -1)>>
+		crinkled anus)
+	<<else>>
+		golden pussy)
+	<</if>>
+	over $his stomach.
 	<<if hasAnyLegs($activeSlave)>>
 		$He is wearing
 		<<footwearDescription>>
-	<<else>>
-		including a belt of thin chain with a lewd ornament (a little
-		<<if ($activeSlave.dick > 0) && ($activeSlave.balls == 0)>>
-			curved golden cock without balls)
-		<<elseif ($activeSlave.dick > 0)>>
-			golden cock and balls)
-		<<elseif ($activeSlave.fetish == "cumslut") && ($activeSlave.fetishStrength > 95)>>
-			pair of golden lips)
-		<<elseif ($activeSlave.boobs > 1000)>>
-			pair of golden breasts)
-		<<elseif ($activeSlave.vagina == -1)>>
-			crinkled anus)
-		<<else>>
-			golden pussy)
-		<</if>>
-		over $his stomach.
 	<</if>>
-
 	<<= App.Desc.piercing($activeSlave, "chastity")>>
 
 <<case "a Santa dress">>
diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw
index eff2e46f99e8f9581eed64bbf28566875ba7f227..da88fcf7a380c0b5a66882afdf75d49b519aa402 100644
--- a/src/utility/slaveCreationWidgets.tw
+++ b/src/utility/slaveCreationWidgets.tw
@@ -800,7 +800,10 @@
 			<<set $activeSlave.devotion = random(96,100), $activeSlave.trust = random(96, 100), $activeSlave.energy = random(96,100), $activeSlave.intelligence = 70, $activeSlave.skill.combat = 1>>
 			<<set $activeSlave.career = either("a bodyguard", "a bouncer", "a bounty hunter", "a gang member", "a law enforcement officer", "a mercenary", "a prison guard", "a private detective", "a revolutionary", "a security guard", "a soldier", "a street thug", "a transporter", "an assassin", "an enforcer", "in a militia")>>
 		<<case "Bodyguard">>
-			<<set $activeSlave.devotion = 90, $activeSlave.muscles = random(30,70), $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]})), $activeSlave.weight = random(-10,10), $activeSlave.teeth = either("normal", "pointy"), $activeSlave.amp = either(-4, -4, 0, 0, 0, 0), $activeSlave.skill.combat = 1>>
+			<<set $activeSlave.devotion = 90, $activeSlave.muscles = random(30,70), $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]})), $activeSlave.weight = random(-10,10), $activeSlave.teeth = either("normal", "pointy"), $activeSlave.skill.combat = 1>>
+			<<if jsRandom(0, 2) === 0>>
+				<<run attachLimbs($activeSlave, "all", 5)>>
+			<</if>>
 			<<set $activeSlave.career = either("a bodyguard", "a kunoichi", "a law enforcement officer", "a military brat", "a revolutionary", "a soldier", "a transporter", "an assassin", "in a militia")>>
 		<<case "Wardeness">>
 			<<set $activeSlave.energy = random(80,100), $activeSlave.sexualFlaw = either("malicious", "none", "none", "none", "none"), $activeSlave.fetish = "sadist", $activeSlave.fetishStrength = 100, $activeSlave.muscles = random(50,80), $activeSlave.skill.combat = 1>>