diff --git a/.eslintignore b/.eslintignore
index 63b268d81542eb01c941f6d8abc4c932324a126c..1cfd403f0016c26b5641e8b7b8ad4342b4428ab3 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -7,3 +7,4 @@
 **/optionsMacro.js
 temp.**
 **.temp
+**/001-lib
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 23158a55f027b5782fed75b6a570e62b6fdb0570..ff4fa81c34490fcfa3c6c772510086b7351686a8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
 ## Unreleased
 
+* Elohiem's webGL art update 4
+* near complete conversion of .tw passages to .js
+* fixes
 
 ## 0.10.7.1-4.0.0-alpha.7 - 2021-07-16
 
diff --git a/devTools/types/assistant.d.ts b/devTools/types/assistant.d.ts
index 767cbfe6b6d780732a115fbd414ac52b7a03d6de..9d0729f420f450793519ae5103e0d3d5c70e6bf2 100644
--- a/devTools/types/assistant.d.ts
+++ b/devTools/types/assistant.d.ts
@@ -7,7 +7,8 @@ interface assistant {
 	personality: -1 | 0 | 1;
 	name: string;
 	power: number;
-	fsOptions: 1 | 0;
+	fsOptions: FC.Bool;
+	options: FC.Bool;
 	market: {
 		relationship: "nonconsensual" | "incestuous" | "cute" | "romantic";
 		limit: number;
diff --git a/js/003-data/careers.js b/js/003-data/careers.js
index 8764824377cbd086155963e1900c364cccbd1446..d1757edade6584a3a06edb7ca11ab35550b92d8e 100644
--- a/js/003-data/careers.js
+++ b/js/003-data/careers.js
@@ -16,6 +16,8 @@ App.Data.Careers = {
 
 		whore: ["a bimbo", "a child prostitute", "a criminal", "a cum dump", "a Futanari Sister", "a juvenile delinquent", "a mail-order bride", "a meat toilet", "a mistress", "a model", "a pageant star", "a pirate", "a porn star", "a prostitute", "a reality show star", "a saleswoman", "a serial divorcee", "a stripper", "a trophy wife", "an escort", "an exotic dancer"],
 
+		servant: ["a butler", "a cook", "a handmaiden", "a housewife", "a maid", "a shrine maiden"],
+
 		/* 	otherCareers: ["a producer", "being homeschooled by her parents", "from a middle class family", "from an upper class family"]>> */
 	},
 	Leader: {
@@ -44,7 +46,5 @@ App.Data.Careers = {
 		schoolteacher: ["a child prodigy", "a coach", "a dean", "a historian", "a librarian", "a principal", "a private instructor", "a professor", "a scholar", "a scientist", "a teacher's pet", "a teacher", "a teaching assistant", "an archaeologist", "an astronaut", "an economist"],
 
 		recruiter: ["a club recruiter", "a college scout", "a con artist", "a cult leader", "a girl scout", "a hunter", "a lobbyist", "a military recruiter", "a missionary", "a political activist", "a princess", "a spy", "a talent scout", "retired"],
-
-		servant: ["a butler", "a cook", "a handmaiden", "a housewife", "a maid", "a shrine maiden"],
 	},
 };
diff --git a/js/003-data/miscDataNames.js b/js/003-data/miscDataNames.js
index 849d1d719254445c88c50e7cce4f82babdbdeede..7a064ba431a9ec695a998fb5854019e9cfee99ff 100644
--- a/js/003-data/miscDataNames.js
+++ b/js/003-data/miscDataNames.js
@@ -920,9 +920,9 @@ App.Data.misc.bimboSlaveNames = ["Air", "Alex", "Alexis", "Amaze", "Amber-Louise
 App.Data.misc.bimboMaleNames = ["A.J.", "Aaron", "Abe", "Adam", "Aiden", "Al", "Alex", "Andy", "Anvil", "Ares", "Argo", "Arnold", "Austin", "Barrett", "Barron", "Bash", "Beardo", "Beast", "Beau", "Beef", "Ben", "Bernie", "Bert", "Beto", "Biff", "Bill", "Billie", "Billy", "Bimbo", "Blake", "Blane", "Bob", "Bobby", "Bod", "Boogie", "Boone", "Boris", "Boss", "Bow", "Brad", "Bradley", "Brak", "Brandon", "Brayden", "Brenden", "Brent", "Brett", "Brian", "Brick", "Bro", "Brock", "Brodie", "Brody", "Broly", "Broski", "Bruce", "Brute", "Bryan", "Bryce", "Bubba", "Buck", "Bud", "Bull", "Bullet", "Burner", "Burnie", "Burt", "Butch", "Buzz", "Cain", "Cal", "Cam", "Cameron", "Cap", "Carson", "Cayden", "Chad", "Champ", "Charlie", "Chase", "Chaz", "Chet", "Chip", "Chris", "Chud", "Chunk", "Clark", "Cody", "Cole", "Connor", "Cool", "Coors", "Cosmo", "Crane", "Crash", "Croc", "Crud", "Crunch", "Crunk", "Crusher", "Curt", "Cutter", "Cyrus", "D.J.", "Dave", "Davey", "David", "Dawg", "Deuce", "Dex", "Dick", "Dickie", "Diesel", "Dino", "Dirk", "Dog", "Dolf", "Dolph", "Dom", "Don", "Donald", "Doug", "Downtown", "Doyle", "Duke", "Dylan", "Dynamite", "Earl", "Earle", "Ed", "Eddie", "Edge", "Ego", "Eric", "Erwin", "Ethan", "Falcon", "Finn", "Flash", "Ford", "Frank", "Fred", "Freddie", "Freddy", "Gabe", "Garrett", "Garth", "Gator", "Georgy", "Gerry", "Giorgio", "Grant", "Grease", "Greg", "Guinness", "Guy", "Hammer", "Han", "Hank", "Hawk", "Heff", "Hock", "Huck", "Hugh", "Hunk", "Hunter", "Ian", "Igor", "Iron", "Irwin", "Isaac", "Jack", "Jackie", "Jackson", "Jake", "Jared", "Jay", "Jayson", "Jerry", "Jesse", "Jimbo", "Jock", "Joe", "Johnny", "Jonah", "Jones", "Jonesy", "Juggernaut", "Junior", "Justin", "Kane", "Kay", "Keith", "Kevin", "King", "Kramer", "Kris", "Kurt", "Kyle", "Lance", "Lee", "Levi", "Liam", "Lightning", "Logan", "Lou", "Louie", "Luke", "M.C.", "Marc", "Mark", "Marshall", "Mash", "Master", "Mate", "Mater", "Matt", "Maverick", "Max", "Meat", "Mel", "Mike", "Mikey", "Miller", "Mitch", "Mongo", "Moose", "Munch", "Murray", "Musk", "Nash", "Nate", "Neal", "Neil", "Newt", "Nick", "Nigel", "Oliver", "Owen", "Ox", "Patch", "Paul", "Paulie", "Pauly", "Pax", "Pete", "Petey", "Pitt", "Powers", "Preston", "Puck", "Punk", "Quincey", "Rack", "Ralph", "Ray", "Rex", "Rich", "Rick", "Ricky", "Rico", "Rip", "Rob", "Rocco", "Rock", "Rocker", "Rocko", "Rod", "Ron", "Rooster", "Ross", "Rum", "Russ", "Russell", "Rusty", "Sabre", "Scooter", "Scott", "Seth", "Skip", "Slash", "Sledge", "Smash", "Smasher", "Spencer", "Spinner", "Spud", "Spuds", "Stallion", "Stan", "Stanley", "Steel", "Steele", "Steve", "Stone", "Stuart", "Stud", "Sylvester", "Tad", "Tanner", "Terence", "Thad", "Thor", "Thrush", "Toby", "Todd", "Tom", "Tone", "Tony", "Topher", "Track", "Travis", "Trent", "Trevor", "Trey", "Trip", "Tucker", "Twitch", "Tyler", "Tyrone", "Verne", "Vince", "Volk", "Wally", "Wash", "Wayne", "Wells", "Will", "Willie", "Witt", "Wolf", "Wolfgang", "Wyatt", "Zach", "Zack", "Zap", "Zayne", "Zeke", "Zeus"];
 
 /*
-Name pool selector based on nationality and race. Use as follows, given some slave _slave:
-<<set _namePool = (setup.namePoolSelector[_slave.nationality + "." + _slave.race] || setup.namePoolSelector[_slave.nationality] || setup.whiteAmericanSlaveNames)>>
-Then pick _namePool.random(), or display those names as possible choices, or do whatever else you do with name pools.
+Name pool selector based on nationality and race. Use as follows, given some slave "slave":
+namePool = (setup.namePoolSelector[slave.nationality + "." + slave.race] || setup.namePoolSelector[slave.nationality] || setup.whiteAmericanSlaveNames)
+Then pick namePool.random(), or display those names as possible choices, or do whatever else you do with name pools.
 */
 App.Data.misc.namePoolSelector = {
 	"Afghan": App.Data.misc.afghanSlaveNames,
diff --git a/js/medicine/surgery/face/face.js b/js/medicine/surgery/face/face.js
index 209bb26b2c75a577f3011b969bf2908478ccbb97..cfbbae7aa30625280b94e44859a778a05648e7f8 100644
--- a/js/medicine/surgery/face/face.js
+++ b/js/medicine/surgery/face/face.js
@@ -1,6 +1,6 @@
 App.Medicine.Surgery.Reactions.Face = class extends App.Medicine.Surgery.SimpleReaction {
 	/**
-	 * @param {number}oldFace
+	 * @param {number} oldFace
 	 */
 	constructor(oldFace) {
 		super();
diff --git a/js/medicine/surgery/reaction/addForeskin.js b/js/medicine/surgery/reaction/addForeskin.js
index a3e507e47c2bd8e5af421e5399e9a8710eceafde..359bd6bd4e9c7677a7bd81c775197be4c1ef16e1 100644
--- a/js/medicine/surgery/reaction/addForeskin.js
+++ b/js/medicine/surgery/reaction/addForeskin.js
@@ -8,7 +8,7 @@
 			const r = [];
 
 			if (slave.dick > 0) {
-				r.push(`${He} leaves the surgery gingerly, knowing ${he}'s had surgery on ${his} dick. Taking the first opportunity to check out ${his} member${(canSee(slave)) ? `in a mirror` : ``}, ${he}'s`);
+				r.push(`${He} leaves the surgery gingerly, knowing ${he}'s had surgery on ${his} dick. Taking the first opportunity to check out ${his} member${(canSee(slave)) ? ` in a mirror` : ``}, ${he}'s`);
 				if (slave.fetish === "mindbroken") {
 					r.push(`confused to find nothing has really changed.`);
 				} else if (slave.devotion > 50) {
@@ -31,7 +31,7 @@
 					reaction.trust -= 5;
 				}
 			} else {
-				r.push(`${He} leaves the surgery gingerly, knowing ${he}'s had surgery on ${his} genitals. Taking the first opportunity to check out ${his} crotch${(canSee(slave)) ? `in a mirror` : ``}, ${he}'s`);
+				r.push(`${He} leaves the surgery gingerly, knowing ${he}'s had surgery on ${his} genitals. Taking the first opportunity to check out ${his} crotch${(canSee(slave)) ? ` in a mirror` : ``}, ${he}'s`);
 				if (slave.fetish === "mindbroken") {
 					r.push(`confused to find that ${his} clitoris is missing.`);
 				} else if (slave.devotion > 50) {
diff --git a/js/medicine/surgery/reaction/addProstate.js b/js/medicine/surgery/reaction/addProstate.js
index 8a44289cc8fd60f3297164da96fbd66a690586e2..6a2bdcc91db3f37622190ee41f4ad37e1e3eb02a 100644
--- a/js/medicine/surgery/reaction/addProstate.js
+++ b/js/medicine/surgery/reaction/addProstate.js
@@ -23,7 +23,7 @@
 					if (slave.dick === 0) {
 						r.push(`squirting female`);
 					}
-					r.push(`ejaculation, since ${his} new organ is of course hooked into ${his} urethra and does its duty whenever ${he} climaxes${(slave.balls === 0) ? `despite ${his} lack of testicles to add actual semen to ${his} copious emissions` : ``}.`);
+					r.push(`ejaculation, since ${his} new organ is of course hooked into ${his} urethra and does its duty whenever ${he} climaxes${(slave.balls === 0) ? ` despite ${his} lack of testicles to add actual semen to ${his} copious emissions` : ``}.`);
 					if (slave.fetishKnown === 1 && slave.fetish === "buttslut") {
 						r.push(`${He} was already an anal slut, but ${he} can now experience anal pleasure along an entirely new dimension. ${He}'s <span class="devotion inc">extremely grateful,</span> and <span class="lightsalmon">a more eager buttslut than ever.</span>`);
 						reaction.devotion += 5;
@@ -47,7 +47,7 @@
 					if (slave.dick === 0) {
 						r.push(`squirting female`);
 					}
-					r.push(`ejaculation, since ${his} new organ is of course hooked into ${his} urethra and does its duty whenever ${he} climaxes${(slave.balls === 0) ? `despite ${his} lack of testicles to add actual semen to ${his} copious emissions` : ``}. ${His} main reaction is confusion; this alteration is pretty far outside any of the more conventional surgeries slaves might expect to receive, and ${his} mixed feeling tend to cancel each other out.`);
+					r.push(`ejaculation, since ${his} new organ is of course hooked into ${his} urethra and does its duty whenever ${he} climaxes${(slave.balls === 0) ? ` despite ${his} lack of testicles to add actual semen to ${his} copious emissions` : ``}. ${His} main reaction is confusion; this alteration is pretty far outside any of the more conventional surgeries slaves might expect to receive, and ${his} mixed feeling tend to cancel each other out.`);
 				} else {
 					r.push(`${He} doesn't have to know exactly what you did, though, to be <span class="trust dec">mortified</span> and <span class="devotion dec">infuriated</span> by your messing around inside ${his} body. ${He} hasn't yet learned to accept that you control ${him} completely, down to the arrangement and even presence of ${his} internal organs.`);
 					reaction.trust -= 10;
diff --git a/js/medicine/surgery/reaction/pLimbInterface3.js b/js/medicine/surgery/reaction/pLimbInterface3.js
index 43fc3fcb9cf35af4f31085732c3ca21ad978bd61..475ac751248a1475aa2e3a820578570c5ba5ab86 100644
--- a/js/medicine/surgery/reaction/pLimbInterface3.js
+++ b/js/medicine/surgery/reaction/pLimbInterface3.js
@@ -16,9 +16,9 @@
 			r.push(`installed in ${his} stumps. ${His} stumps twitch slightly as the software begins configuring. Since ${he} already had anchors installed in previous surgery this procedure was less invasive and thus <span class="health dec">${his} health has been only slightly affected.</span>`);
 			if (slave.fetish !== "mindbroken" && slave.fuckdoll === 0) {
 				if (slave.devotion > 20) {
-					r.push(`${He} is <span class="devotion inc">overjoyed</span> when ${he} finds out this upgrade will allow ${him} to //feel// with ${his} limbs again and thanks you profusely the first chance ${he} gets. ${He} <span class="trust inc">places more trust in you,</span> too, since you obviously have ${his} best interests at heart.`);
+					r.push(`${He} is <span class="devotion inc">overjoyed</span> when ${he} finds out this upgrade will allow ${him} to <i>feel</i> with ${his} limbs again and thanks you profusely the first chance ${he} gets. ${He} <span class="trust inc">places more trust in you,</span> too, since you obviously have ${his} best interests at heart.`);
 				} else if (slave.devotion >= -20) {
-					r.push(`${He}'s <span class="devotion inc">overwhelmed with joy and gratitude,</span> when ${he} finds out this upgrade will allow ${him} to //feel// with ${his} limbs again, in part because ${he} didn't think you'd do something like this for ${him}. ${He} thanks you profusely the first chance ${he} gets and is determined to prove ${himself} worthy of the expense you went to for ${him}. ${He} <span class="trust inc">places more trust in you,</span> too, since you seem to have a plan for ${him}.`);
+					r.push(`${He}'s <span class="devotion inc">overwhelmed with joy and gratitude,</span> when ${he} finds out this upgrade will allow ${him} to <i>feel</i> with ${his} limbs again, in part because ${he} didn't think you'd do something like this for ${him}. ${He} thanks you profusely the first chance ${he} gets and is determined to prove ${himself} worthy of the expense you went to for ${him}. ${He} <span class="trust inc">places more trust in you,</span> too, since you seem to have a plan for ${him}.`);
 				} else {
 					r.push(`Despite ${his} hatred of you, ${he} can't help but feel some <span class="trust inc">trust</span> and <span class="devotion inc">gratitude,</span> towards you, since you clearly have a plan that involves putting a good deal of value into ${him}. Your goals might not be ${hers}, but at least ${he} has an indication that you're not toying with ${him}.`);
 				}
diff --git a/js/medicine/surgery/reaction/retrogradeVirusInjectionNCS.js b/js/medicine/surgery/reaction/retrogradeVirusInjectionNCS.js
index c8e04b20ec3ef91619f22215155c88cf4d034315..25a58e095776d71e97cff7922322393bdb288f1e 100644
--- a/js/medicine/surgery/reaction/retrogradeVirusInjectionNCS.js
+++ b/js/medicine/surgery/reaction/retrogradeVirusInjectionNCS.js
@@ -169,7 +169,7 @@
 					r.push(hair);
 				}
 				if (genitalChanges.length > 0) {
-					r.push(`${He} can${sense} that ${his} junk is different now, it seems ${his}`);
+					r.push(`${He} can ${sense} that ${his} junk is different now, it seems ${his}`);
 					if (genitalChanges.length > 2) {
 						for (let i = 0; i < genitalChanges.length; i++) {
 							if (i < genitalChanges.length - 1) {
@@ -190,20 +190,7 @@
 					if (genitalChanges.length > 0 || hairChanges > 0) {
 						r.push(`also`);
 					}
-					r.push(`${sense} that ${his} body has some physical changes, it seems to ${him} that`);
-					if (physicalChanges.length > 2) {
-						for (let i = 0; i < physicalChanges.length; i++) {
-							if (i < physicalChanges.length - 1) {
-								r.push(physicalChanges[i]);
-							} else {
-								r.push(`and${physicalChanges[i]}`);
-							}
-						}
-					} else if (physicalChanges.length > 1) {
-						r.push(`${physicalChanges[0]} and ${physicalChanges[1]}`);
-					} else {
-						r.push(physicalChanges[0]);
-					}
+					r.push(`${sense} that ${his} body has some physical changes, it seems to ${him} that ${toSentence(physicalChanges)}`);
 					const reaction = either('comes as a bit of a surprise', 'comes as quite a shock', `confirms ${his} suspicions`, `doesn't seem to phase ${him}`, `${he} finds interesting`, `${he} can't get over`) + '.';
 					r.push(`which ${reaction}`);
 				}
@@ -227,7 +214,7 @@
 			if (slave.fetish === "mindbroken") {
 				r.push(`${He} doesn't seem to comprehend what this means for ${him}.`);
 			} else if (slave.devotion > 20) {
-				r.push(`${He} is <span class="devotion inc">happy</span> with how young ${his} body has become${(slave.visualAge > 26) ? `and is excited about the process continuing` : ``}. ${He} is already <span class="trust inc">wondering</span> what new kinky things you have planned for ${him}.`);
+				r.push(`${He} is <span class="devotion inc">happy</span> with how young ${his} body has become${(slave.visualAge > 26) ? ` and is excited about the process continuing` : ``}. ${He} is already <span class="trust inc">wondering</span> what new kinky things you have planned for ${him}.`);
 				reaction.trust += 5;
 				reaction.devotion += 5;
 				if (slave.visualAge > 26) {
diff --git a/js/random.js b/js/random.js
index f21de6962ce4922b8ee608cea4c3809616e7ec77..6024049777f2448dfa37e6899251292ba47c431b 100644
--- a/js/random.js
+++ b/js/random.js
@@ -62,10 +62,10 @@ function jsRandom(min, max, count = 1) {
  */
 function jsRandomMany(arr, count) {
 	let result = [];
-	let _tmp = arr.slice();
+	let tmp = arr.slice();
 	for (let i = 0; i < count; i++) {
-		let index = Math.floor(Math.random() * _tmp.length);
-		result.push(_tmp.splice(index, 1)[0]);
+		let index = Math.floor(Math.random() * tmp.length);
+		result.push(tmp.splice(index, 1)[0]);
 	}
 	return result;
 }
diff --git a/sanityCheck.sh b/sanityCheck.sh
index cbe5b51291def7d2035d9bdc930dd0bc100dfa10..e8199e4e2f4ac26dfd89e666e58fc46114307a43 100755
--- a/sanityCheck.sh
+++ b/sanityCheck.sh
@@ -117,6 +117,8 @@ $GREP "span class=[^\"\']" -- src/*.js ':!src/001-lib/Jquery/Jquery.js' | myprin
 $GREP '[^A-Za-z]let(\r|\n)' | myprint "WrongLetStyle"
 # Check for lines with only "const"
 $GREP 'const(\r|\n)' | myprint "WrongConstStyle"
+# Check for events with mismatched names
+$GREP -P 'App\.Events\.(.*)\s*=\s*class\s+(?!\1)(.*)(?=\s+extends\s+App\.Events\.BaseEvent)' -- src/*.js | myprint "MismatchedEventName"
 
 # Check that all the tags are properly opened and closed & a lot of other stuff
 java -jar devTools/javaSanityCheck/SanityCheck.jar
diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index cfb2d1866362ea20feb33c31fa2e35960135f774..4daddafe3010d50d670df148936ed6f7ec609350 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -2350,15 +2350,16 @@ slave has hip implant
 butt:
 
 butt size
-0	  - flat
-1	  - small
-2	  - plump*
-3	  - big bubble butt
-4	  - huge
-5	  - enormous
-6	  - gigantic
-7	  - ridiculous
-8 - 10 - immense
+0	   - flat
+1      - slightly less flat
+2	   - small
+3	   - big
+4	   - large
+5	   - huge
+6	   - enormous
+7	   - gigantic
+8	   - ridiculous
+9 - 10 - immense
 11 - 20- inhuman
 
 *Descriptions vary for just how big 2 is, as such, it may be better to just go with 3
diff --git a/src/004-base/arcologyBuilding.js b/src/004-base/arcologyBuilding.js
index 6c569b4440349c897a47170e216eeaafd202c284..78b51ef79496929d2390ea16ce7845918b9dd429 100644
--- a/src/004-base/arcologyBuilding.js
+++ b/src/004-base/arcologyBuilding.js
@@ -86,7 +86,7 @@ App.Arcology.Cell.BaseCell = class extends App.Entity.Serializable {
 		 * Thanks JS!
 		 * @type {App.Arcology.Cell.BaseCell}
 		 */
-		const _this = this;
+		const that = this;
 
 		const fragment = document.createDocumentFragment();
 
@@ -172,7 +172,7 @@ App.Arcology.Cell.BaseCell = class extends App.Entity.Serializable {
 				if (ownedCells > 1) {
 					const span = document.createElement("span");
 					span.classList.add("clear-formatting");
-					span.append(App.Arcology.getCellLink("Sell", _this.name, () => _this.cellPassage(containingBuilding),
+					span.append(App.Arcology.getCellLink("Sell", that.name, () => that.cellPassage(containingBuilding),
 						() => {
 							cashX(price(false), "capEx");
 							App.Arcology.updateOwnership();
@@ -187,7 +187,7 @@ App.Arcology.Cell.BaseCell = class extends App.Entity.Serializable {
 				if (availableCells >= 1) {
 					const buySpan = document.createElement("span");
 					buySpan.classList.add("clear-formatting");
-					buySpan.append(App.Arcology.getCellLink("Buy", _this.name, () => _this.cellPassage(containingBuilding),
+					buySpan.append(App.Arcology.getCellLink("Buy", that.name, () => that.cellPassage(containingBuilding),
 						() => {
 							cashX(-(price(true) + 10000), "capEx");
 							A.demandFactor += DEMAND_FACTOR_DIFF;
@@ -202,7 +202,7 @@ App.Arcology.Cell.BaseCell = class extends App.Entity.Serializable {
 
 						const repPrice = Math.clamp(price(true) / 2, 0, 18000);
 						repDiv.append("You have so much political capital that you can spend reputation to acquire ownership by spending reputation. ",
-							App.Arcology.getCellLink("Use reputation", _this.name, () => _this.cellPassage(containingBuilding),
+							App.Arcology.getCellLink("Use reputation", that.name, () => that.cellPassage(containingBuilding),
 								() => {
 									repX(-(repPrice), "capEx");
 									A.demandFactor += DEMAND_FACTOR_DIFF;
diff --git a/src/005-passages/managePassages.js b/src/005-passages/managePassages.js
index 6d74d4e33f585e07baa6e071339ba3b6047541e4..4b1f337a91da65339e6f1caec9157be6e9f748e2 100644
--- a/src/005-passages/managePassages.js
+++ b/src/005-passages/managePassages.js
@@ -94,22 +94,21 @@ new App.DomPassage("Elective Surgery",
 new App.DomPassage("Brothel Advertisement",
 	() => {
 		return App.Facilities.Brothel.ads();
-	}
+	}, ["jump-from-safe"]
 );
 
 new App.DomPassage("Club Advertisement",
 	() => {
 		return App.Facilities.Club.ads();
-	}
+	}, ["jump-from-safe"]
 );
 
 new App.DomPassage("Coursing Association",
 	() => {
 		V.nextButton = "Back to Main";
 		V.nextLink = "Main";
-		V.returnTo = "Coursing Association";
 		return App.UI.coursingAssociation();
-	}
+	}, ["jump-from-safe"]
 );
 
 new App.DomPassage("Personal assistant options",
@@ -151,7 +150,7 @@ new App.DomPassage("Prosthetic Lab",
 		V.nextButton = "Back";
 		V.nextLink = "Manage Penthouse";
 		return App.UI.prostheticLab();
-	}
+	}, ["jump-to-safe", "jump-from-safe"]
 );
 
 new App.DomPassage("Gene Lab",
diff --git a/src/Corporation/manageCorporation.js b/src/Corporation/manageCorporation.js
index e6b4c10a13cb40c99a9c791705fc93bb0f99b832..c18d9f886c475bcd4d04c1c918cf5b4cc069a942 100644
--- a/src/Corporation/manageCorporation.js
+++ b/src/Corporation/manageCorporation.js
@@ -108,105 +108,105 @@ App.Corporate.manage = function() {
 		const el = new DocumentFragment();
 		App.UI.DOM.appendNewElement("h1", el, "Division Management");
 
-		for (let _div of App.Corporate.divisionList) {
-			if (!_div.founded) {
+		for (let division of App.Corporate.divisionList) {
+			if (!division.founded) {
 				continue;
 			}
 
-			App.UI.DOM.appendNewElement("h2", el, `${_div.name} Division`);
-			if (_div.foundedDate !== 0) {
-				App.UI.DOM.appendNewElement("div", el, `Founded on ${asDateString(_div.foundedDate)}.`, "founding");
+			App.UI.DOM.appendNewElement("h2", el, `${division.name} Division`);
+			if (division.foundedDate !== 0) {
+				App.UI.DOM.appendNewElement("div", el, `Founded on ${asDateString(division.foundedDate)}.`, "founding");
 			}
 
-			App.UI.DOM.appendNewElement("div", el, `This division focuses on ${_div.focusDescription}.`);
+			App.UI.DOM.appendNewElement("div", el, `This division focuses on ${division.focusDescription}.`);
 
 			let div = document.createElement("div");
-			$(div).append(_div.messageSlaveCount());
+			$(div).append(division.messageSlaveCount());
 			el.append(div);
 
-			let _divMaint = _div.getDisplayMaintenanceCost();
+			let divMaint = division.getDisplayMaintenanceCost();
 			addDiv(el, "It costs ",
-				App.UI.DOM.makeElement("span", cashFormat(Math.trunc(_divMaint.cost)), ["cash", "dec"]),
+				App.UI.DOM.makeElement("span", cashFormat(Math.trunc(divMaint.cost)), ["cash", "dec"]),
 				" to run. On average that is ",
-				App.UI.DOM.makeElement("span", cashFormat(Math.trunc(_divMaint.perUnit)), ["cash", "dec"]),
+				App.UI.DOM.makeElement("span", cashFormat(Math.trunc(divMaint.perUnit)), ["cash", "dec"]),
 				" per slave.");
 
 			div = document.createElement("div");
-			$(div).append(_div.messageSlaveOutput());
+			$(div).append(division.messageSlaveOutput());
 			el.append(div);
 
-			let _divSentenceStart = ["Currently the division", "It also"];
+			let divSentenceStart = ["Currently the division", "It also"];
 			App.UI.DOM.appendNewElement("h3", el, "Direct Control");
 
-			if (_div.fromMarket) {
-				addDiv(el, `${_divSentenceStart.shift()} is ${_div.slaveAction.present} `,
-					App.UI.DOM.makeElement("span", numberWithPlural(_div.activeSlaves, "slave"), "green"));
+			if (division.fromMarket) {
+				addDiv(el, `${divSentenceStart.shift()} is ${division.slaveAction.present} `,
+					App.UI.DOM.makeElement("span", numberWithPlural(division.activeSlaves, "slave"), "green"));
 
-				if (_div.activeSlaves < _div.developmentCount) {
-					let _fillSlaveCount = _div.availableRoom;
-					addDiv(el, `There is room to ${_div.slaveAction.future} ${numberWithPluralOne(_fillSlaveCount, "more slave")}.`);
+				if (division.activeSlaves < division.developmentCount) {
+					let fillSlaveCount = division.availableRoom;
+					addDiv(el, `There is room to ${division.slaveAction.future} ${numberWithPluralOne(fillSlaveCount, "more slave")}.`);
 
-					let _buySlaveArray = [
+					let buySlaveArray = [
 						{'name': 'Buy Slave', 'count': 1},
 						{'name': 'Buy x10', 'count': 10}
 					];
 
-					if (!_buySlaveArray.some(function(x) { return x.count === _fillSlaveCount; })) {
-						_buySlaveArray.push({'name': 'Fill', 'count': _fillSlaveCount});
+					if (!buySlaveArray.some(function(x) { return x.count === fillSlaveCount; })) {
+						buySlaveArray.push({'name': 'Fill', 'count': fillSlaveCount});
 					}
-					let _singleSlaveCost = App.Corporate.slaveMarketPurchaseValue(_div, 1);
-					if (V.corp.Cash > _singleSlaveCost) {
+					let singleSlaveCost = App.Corporate.slaveMarketPurchaseValue(division, 1);
+					if (V.corp.Cash > singleSlaveCost) {
 						addDiv(el, `The corporation can purchase slaves directly from the market for about `,
-							cashFormatColor(_singleSlaveCost), ".");
+							cashFormatColor(singleSlaveCost), ".");
 
 						const links = [];
 
-						for (const _slaveNum of _buySlaveArray.filter(num => _div.availableRoom >= num.count)) {
-							let _slaveSetCost = App.Corporate.slaveMarketPurchaseValue(_div, _slaveNum.count);
-							if (V.corp.Cash < _slaveSetCost) {
+						for (const slaveNum of buySlaveArray.filter(num => division.availableRoom >= num.count)) {
+							let slaveSetCost = App.Corporate.slaveMarketPurchaseValue(division, slaveNum.count);
+							if (V.corp.Cash < slaveSetCost) {
 								continue;
 							}
-							links.push(App.UI.DOM.link(_slaveNum.name, () => {
-								App.Corporate.buySlaves(_div.id, _slaveNum.count);
+							links.push(App.UI.DOM.link(slaveNum.name, () => {
+								App.Corporate.buySlaves(division.id, slaveNum.count);
 								refresh();
 							}));
 						}
 						el.append(App.UI.DOM.generateLinksStrip(links));
 					} else {
 						addDiv(el, App.UI.DOM.makeElement("span", "The corporation cannot afford to purchase any slaves from the market.", "note"), " It requires about ",
-							App.UI.DOM.makeElement("span", cashFormat(_singleSlaveCost), "cash"), ` to buy a ${asSingular(_div.slaveAction.market)}.`);
+							App.UI.DOM.makeElement("span", cashFormat(singleSlaveCost), "cash"), ` to buy a ${asSingular(division.slaveAction.market)}.`);
 					}
 				} else {
-					addDiv(el, "There is ", App.UI.DOM.makeElement("em", "no room"), ` to ${_div.slaveAction.future} more slaves.`);
+					addDiv(el, "There is ", App.UI.DOM.makeElement("em", "no room"), ` to ${division.slaveAction.future} more slaves.`);
 				}
 			}
-			if (_div.toMarket) {
-				let _finishedSlaveNoun = _div.nounFinishedSlave;
-				if (_div.heldSlaves > 0) {
-					addDiv(el, `${_divSentenceStart.shift()} holds `,
-						App.UI.DOM.makeElement("span", numberWithPlural(_div.heldSlaves, _finishedSlaveNoun), "green"),
+			if (division.toMarket) {
+				let finishedSlaveNoun = division.nounFinishedSlave;
+				if (division.heldSlaves > 0) {
+					addDiv(el, `${divSentenceStart.shift()} holds `,
+						App.UI.DOM.makeElement("span", numberWithPlural(division.heldSlaves, finishedSlaveNoun), "green"),
 						".");
-					for (const _nextDiv of _div.relatedDivisions.to
+					for (const nextDiv of division.relatedDivisions.to
 						.filter(div => div.availableRoom > 0
-							&& !App.Corporate.ownsIntermediaryDivision(_div, div))) {
-						addDiv(el, `The ${_nextDiv.name} Division can accept up to `, App.UI.DOM.makeElement("span", numberWithPlural(_nextDiv.availableRoom, "slave"), "green"), ".");
+							&& !App.Corporate.ownsIntermediaryDivision(division, div))) {
+						addDiv(el, `The ${nextDiv.name} Division can accept up to `, App.UI.DOM.makeElement("span", numberWithPlural(nextDiv.availableRoom, "slave"), "green"), ".");
 
-						let _sendSlaveArray = [
+						let sendSlaveArray = [
 							{'name': 'Send Slave', 'count': 1},
 							{'name': 'Send x10', 'count': 10}
 						];
-						if (_div.heldSlaves >= _nextDiv.availableRoom) {
-							_sendSlaveArray.push({
-								'name': `Fill  ${_nextDiv.name} Division`,
-								'count': _nextDiv.availableRoom
+						if (division.heldSlaves >= nextDiv.availableRoom) {
+							sendSlaveArray.push({
+								'name': `Fill  ${nextDiv.name} Division`,
+								'count': nextDiv.availableRoom
 							});
 						} else {
-							_sendSlaveArray.push({'name': 'Send All', 'count': _div.heldSlaves});
+							sendSlaveArray.push({'name': 'Send All', 'count': division.heldSlaves});
 						}
 						const links = [];
-						for (const _slaveNum of _sendSlaveArray.filter(slaveNum => slaveNum.count <= _nextDiv.availableRoom && slaveNum.count <= _div.heldSlaves)) {
-							links.push(App.UI.DOM.link(_slaveNum.name, () => {
-								App.Corporate.transferSlaves(_div.id, _nextDiv.id, _slaveNum.count);
+						for (const slaveNum of sendSlaveArray.filter(slaveNum => slaveNum.count <= nextDiv.availableRoom && slaveNum.count <= division.heldSlaves)) {
+							links.push(App.UI.DOM.link(slaveNum.name, () => {
+								App.Corporate.transferSlaves(division.id, nextDiv.id, slaveNum.count);
 								refresh();
 							}));
 						}
@@ -215,23 +215,23 @@ App.Corporate.manage = function() {
 
 					App.UI.DOM.appendNewElement("div", el, "The corporation can sell these slaves to the market.");
 
-					let _sellSlaveArray = [
+					let sellSlaveArray = [
 						{'name': 'Sell Slave', 'count': 1},
 						{'name': 'Sell x10', 'count': 10},
 						{'name': 'Sell x100', 'count': 100},
-						{'name': 'Sell All', 'count': _div.heldSlaves}
+						{'name': 'Sell All', 'count': division.heldSlaves}
 					];
 
 					const links = [];
-					for (const _slaveNum of _sellSlaveArray.filter(slaveNum => _div.heldSlaves >= slaveNum.count)) {
-						links.push(App.UI.DOM.link(_slaveNum.name, () => {
-							App.Corporate.sellSlaves(_div.id, _slaveNum.count);
+					for (const slaveNum of sellSlaveArray.filter(slaveNum => division.heldSlaves >= slaveNum.count)) {
+						links.push(App.UI.DOM.link(slaveNum.name, () => {
+							App.Corporate.sellSlaves(division.id, slaveNum.count);
 							refresh();
 						}));
 					}
 					el.append(App.UI.DOM.generateLinksStrip(links));
 				} else {
-					App.UI.DOM.appendNewElement("div", el, `The division is not holding any ${asPlural(_finishedSlaveNoun)}.`);
+					App.UI.DOM.appendNewElement("div", el, `The division is not holding any ${asPlural(finishedSlaveNoun)}.`);
 				}
 			}
 
@@ -239,30 +239,30 @@ App.Corporate.manage = function() {
 			const links = [];
 
 			/* Expanding the division*/
-			let _depExpandCost = _div.sizeCost * 1000;
-			addDiv(el, "Expanding the division costs ", App.UI.DOM.makeElement("span", cashFormat(_depExpandCost), ["cash", "dec"]), " Downsizing recoups 80% of the investment; slaves will be sold at the going rate.");
+			let depExpandCost = division.sizeCost * 1000;
+			addDiv(el, "Expanding the division costs ", App.UI.DOM.makeElement("span", cashFormat(depExpandCost), ["cash", "dec"]), " Downsizing recoups 80% of the investment; slaves will be sold at the going rate.");
 
-			let _buyDevArray = [
+			let buyDevArray = [
 				{'name': 'Expand Division', 'count': 1},
 				{'name': 'Expand x10', 'count': 10}
 			];
 
-			for (const _buySet of _buyDevArray.filter(buySet => App.Corporate.cash >= buySet.count * _depExpandCost)) {
-				links.push(App.UI.DOM.link(_buySet.name, () => {
-					App.Corporate.buyDevelopment(_div.id, _buySet.count);
+			for (const buySet of buyDevArray.filter(buySet => App.Corporate.cash >= buySet.count * depExpandCost)) {
+				links.push(App.UI.DOM.link(buySet.name, () => {
+					App.Corporate.buyDevelopment(division.id, buySet.count);
 					refresh();
 				}));
 			}
 
 			/* Downsize the division*/
-			const _sellDevArray = [
+			const sellDevArray = [
 				{'name': 'Downsize Division', 'count': 1},
 				{'name': 'Downsize x10', 'count': 10}
 			];
 
-			for (const _sellSet of _sellDevArray.filter(divNum => _div.developmentCount > divNum.count)) {
-				links.push(App.UI.DOM.link(_sellSet.name, () => {
-					App.Corporate.sellDevelopment(_div.id, _sellSet.count);
+			for (const sellSet of sellDevArray.filter(divNum => division.developmentCount > divNum.count)) {
+				links.push(App.UI.DOM.link(sellSet.name, () => {
+					App.Corporate.sellDevelopment(division.id, sellSet.count);
 					refresh();
 				}));
 			}
@@ -272,43 +272,43 @@ App.Corporate.manage = function() {
 			App.UI.DOM.appendNewElement("h3", el, "Rules");
 
 			const options = new App.UI.OptionsGroup().customRefresh(refresh);
-			for (const _nextDiv of _div.relatedDivisions.to
-				.filter(nextDiv => nextDiv.founded && !App.Corporate.ownsIntermediaryDivision(_div, nextDiv))) {
+			for (const nextDiv of division.relatedDivisions.to
+				.filter(nextDiv => nextDiv.founded && !App.Corporate.ownsIntermediaryDivision(division, nextDiv))) {
 				// TODO: Originally this had a bit of flavor per nextDep. ie, Surgery said "to undergo surgery"
-				const o = {send: _div.getAutoSendToDivision(_nextDiv)};
-				options.addOption(`Auto send slaves to ${_nextDiv.name} Division`, "send", o)
+				const o = {send: division.getAutoSendToDivision(nextDiv)};
+				options.addOption(`Auto send slaves to ${nextDiv.name} Division`, "send", o)
 					.addValue("Enabled", true, () => {
-						App.Corporate.setAutoSendToDivision(_div.id, _nextDiv.id, true);
+						App.Corporate.setAutoSendToDivision(division.id, nextDiv.id, true);
 						refresh();
 					}).on()
 					.addValue("Disabled", false, () => {
-						App.Corporate.setAutoSendToDivision(_div.id, _nextDiv.id, false);
+						App.Corporate.setAutoSendToDivision(division.id, nextDiv.id, false);
 						refresh();
 					}).off();
 			}
 
-			if (_div.toMarket) {
-				const o = {send: _div.getAutoSendToMarket()};
+			if (division.toMarket) {
+				const o = {send: division.getAutoSendToMarket()};
 				options.addOption("Auto send to market", "send", o)
 					.addValue("Enabled", 1, () => {
-						App.Corporate.setAutoSendToMarket(_div.id, 1);
+						App.Corporate.setAutoSendToMarket(division.id, 1);
 						refresh();
 					}).on()
 					.addValue("Disabled", 0, () => {
-						App.Corporate.setAutoSendToMarket(_div.id, 0);
+						App.Corporate.setAutoSendToMarket(division.id, 0);
 						refresh();
 					}).off();
 			}
 
-			if (_div.fromMarket) {
-				const o = {buy: _div.getAutoBuyFromMarket()};
+			if (division.fromMarket) {
+				const o = {buy: division.getAutoBuyFromMarket()};
 				options.addOption("Auto buy slaves from the market", "buy", o)
 					.addValue("Enabled", 1, () => {
-						App.Corporate.setAutoBuyFromMarket(_div.id, 1);
+						App.Corporate.setAutoBuyFromMarket(division.id, 1);
 						refresh();
 					}).on()
 					.addValue("Disabled", 0, () => {
-						App.Corporate.setAutoBuyFromMarket(_div.id, 0);
+						App.Corporate.setAutoBuyFromMarket(division.id, 0);
 						refresh();
 					}).off();
 			}
@@ -327,7 +327,7 @@ App.Corporate.manage = function() {
 						App.UI.DOM.appendNewElement("p", frag, "Dissolving the division will destroy all of its assets!", "note");
 						App.UI.DOM.appendNewElement("p", frag, "This decision cannot be reverted!", ["warning", "note"]);
 						frag.append(App.UI.DOM.link("Dissolve", () => {
-							App.Corporate.divisions[_div.id].dissolve();
+							App.Corporate.divisions[division.id].dissolve();
 							refresh();
 							Dialog.close();
 						}));
@@ -349,22 +349,22 @@ App.Corporate.manage = function() {
 
 		addDiv(el, `The corporation can expand by founding a new division related to its current ${onlyPlural(App.Corporate.divisionList.filter(div => div.founded).length, "division")}.`);
 
-		for (const _div of App.Corporate.divisionList.filter(x => !x.founded && x.relatedDivisions.anyFounded)) {
-			const _depCost = _div.foundingCost * 1000;
+		for (const division of App.Corporate.divisionList.filter(x => !x.founded && x.relatedDivisions.anyFounded)) {
+			const depCost = division.foundingCost * 1000;
 
-			if (App.Corporate.cash >= _depCost) {
+			if (App.Corporate.cash >= depCost) {
 				addDiv(el,
-					App.UI.DOM.link("Add " + _div.name + " Division", () => {
-						App.Corporate.divisions[_div.id].create(App.Corporate);
+					App.UI.DOM.link("Add " + division.name + " Division", () => {
+						App.Corporate.divisions[division.id].create(App.Corporate);
 						refresh();
 					}),
 					" (",
-					App.UI.DOM.makeElement("span", cashFormat(_depCost), "cash"),
-					`): A division focusing on ${_div.focusDescription}.`);
+					App.UI.DOM.makeElement("span", cashFormat(depCost), "cash"),
+					`): A division focusing on ${division.focusDescription}.`);
 			} else {
-				addDiv(el, `${_div.name} (`,
-					App.UI.DOM.makeElement("span", cashFormat(_depCost), ["cash", "dec"]),
-					`): The corporation cannot afford to start a division focusing on ${_div.focusDescription}.`);
+				addDiv(el, `${division.name} (`,
+					App.UI.DOM.makeElement("span", cashFormat(depCost), ["cash", "dec"]),
+					`): The corporation cannot afford to start a division focusing on ${division.focusDescription}.`);
 			}
 		}
 		return el;
@@ -380,23 +380,23 @@ App.Corporate.manage = function() {
 		App.UI.DOM.appendNewElement("h2", el, "Dividend");
 
 		const div = document.createElement("div");
-		let _dividends = App.Corporate.dividendOptions;
-		let _index = _dividends.findIndex(element => App.Corporate.dividendRatio >= element);
-		let _dividend = _dividends[_index];
-		if (_index >= 0) {
-			let _nextIndex = _index + 1;
-			App.Corporate.dividendRatio = _dividend;/* Normalize */
-			div.append(`The corporation is currently reserving ${Math.trunc(_dividend * 100)}% of its profit to be paid out as dividends. `);
+		let dividends = App.Corporate.dividendOptions;
+		let index = dividends.findIndex(element => App.Corporate.dividendRatio >= element);
+		let dividend = dividends[index];
+		if (index >= 0) {
+			let nextIndex = index + 1;
+			App.Corporate.dividendRatio = dividend;/* Normalize */
+			div.append(`The corporation is currently reserving ${Math.trunc(dividend * 100)}% of its profit to be paid out as dividends. `);
 			const links = [];
-			if (_index > 0) {
+			if (index > 0) {
 				links.push(App.UI.DOM.link("Increase Ratio", () => {
-					App.Corporate.dividendRatio = _dividends[_index - 1];
+					App.Corporate.dividendRatio = dividends[index - 1];
 					refresh();
 				}));
 			}
-			if (_nextIndex !== _dividends.length) {
+			if (nextIndex !== dividends.length) {
 				links.push(App.UI.DOM.link("Reduce Ratio", () => {
-					App.Corporate.dividendRatio = _dividends[_nextIndex];
+					App.Corporate.dividendRatio = dividends[nextIndex];
 					refresh();
 				}));
 			} else {
@@ -409,7 +409,7 @@ App.Corporate.manage = function() {
 		} else {
 			div.append(`The corporation is currently not reserving a portion of its profit to be paid out as dividends. `);
 			div.append(App.UI.DOM.link("Increase Ratio", () => {
-				App.Corporate.dividendRatio = _dividends[_dividends.length - 1];
+				App.Corporate.dividendRatio = dividends[dividends.length - 1];
 				refresh();
 			}));
 		}
@@ -449,43 +449,43 @@ App.Corporate.manage = function() {
 		if (V.corp.Cash > corpSharePrice(-1000)) {
 			if (V.publicShares <= V.personalShares - 2000 && V.publicShares > 0) {
 				// It won't buy back player shares if the corporation is entirely owned by the player
-				let _persExtraShares = V.personalShares % 1000 || 1000;
+				let persExtraShares = V.personalShares % 1000 || 1000;
 				addDiv(el, "The corporation can buyback some of your shares. ",
-					App.UI.DOM.link(`Buyback ${_persExtraShares}`, () => {
-						cashX(corpSharePrice(-_persExtraShares), 'stocksTraded');
-						V.corp.Cash -= corpSharePrice(-_persExtraShares);
-						V.personalShares -= _persExtraShares;
+					App.UI.DOM.link(`Buyback ${persExtraShares}`, () => {
+						cashX(corpSharePrice(-persExtraShares), 'stocksTraded');
+						V.corp.Cash -= corpSharePrice(-persExtraShares);
+						V.personalShares -= persExtraShares;
 						refresh();
 					}));
 			}
 			if (V.publicShares >= 1000) {
-				let _pubExtraShares = V.publicShares % 1000 || 1000;
+				let pubExtraShares = V.publicShares % 1000 || 1000;
 				addDiv(el, "The corporation can buyback some of the public shares. ",
-					App.UI.DOM.link(`Buyback ${_pubExtraShares}`, () => {
-						V.corp.Cash -= corpSharePrice(-_pubExtraShares);
-						V.corp.Cash -= corpSharePrice(-_pubExtraShares);
-						V.publicShares -= _pubExtraShares;
+					App.UI.DOM.link(`Buyback ${pubExtraShares}`, () => {
+						V.corp.Cash -= corpSharePrice(-pubExtraShares);
+						V.corp.Cash -= corpSharePrice(-pubExtraShares);
+						V.publicShares -= pubExtraShares;
 						refresh();
 					}));
 			}
 		}
 
-		let _persLeftoverShares = 1000 - (V.personalShares % 1000);
-		if (V.cash > corpSharePrice(_persLeftoverShares)) {
-			addDiv(el, `The corporation can issue ${_persLeftoverShares} shares to you. `,
-				App.UI.DOM.link(`Issue ${_persLeftoverShares}`, () => {
-					cashX(forceNeg(corpSharePrice(_persLeftoverShares)), 'stocksTraded');
-					V.corp.Cash += corpSharePrice(_persLeftoverShares);
-					V.personalShares += _persLeftoverShares;
+		let persLeftoverShares = 1000 - (V.personalShares % 1000);
+		if (V.cash > corpSharePrice(persLeftoverShares)) {
+			addDiv(el, `The corporation can issue ${persLeftoverShares} shares to you. `,
+				App.UI.DOM.link(`Issue ${persLeftoverShares}`, () => {
+					cashX(forceNeg(corpSharePrice(persLeftoverShares)), 'stocksTraded');
+					V.corp.Cash += corpSharePrice(persLeftoverShares);
+					V.personalShares += persLeftoverShares;
 					refresh();
 				}));
 		}
-		let _pubLeftoverShares = 1000 - (V.publicShares % 1000);
+		let pubLeftoverShares = 1000 - (V.publicShares % 1000);
 		if (V.publicShares <= V.personalShares - 2000) {
-			addDiv(el, `The corporation can issue ${_pubLeftoverShares} shares onto the stock market. `,
-				App.UI.DOM.link(`Issue ${_pubLeftoverShares}`, () => {
-					V.corp.Cash += corpSharePrice(_pubLeftoverShares);
-					V.publicShares += _pubLeftoverShares;
+			addDiv(el, `The corporation can issue ${pubLeftoverShares} shares onto the stock market. `,
+				App.UI.DOM.link(`Issue ${pubLeftoverShares}`, () => {
+					V.corp.Cash += corpSharePrice(pubLeftoverShares);
+					V.publicShares += pubLeftoverShares;
 					refresh();
 				}));
 		}
@@ -511,16 +511,16 @@ App.Corporate.manage = function() {
 
 		App.UI.DOM.appendNewElement("h3", el, "Stock Split");
 		// Splitting shares when they're unwieldy
-		let _splitFeeInitial = 10000;
-		let _splitFeeValue = _splitFeeInitial - Math.floor((_splitFeeInitial * (V.PC.skill.trading / 100.0) / 2.0) / 1000) * 1000;
-		let _splitStockConstants = App.Corporate.stockSplits;
+		let splitFeeInitial = 10000;
+		let splitFeeValue = splitFeeInitial - Math.floor((splitFeeInitial * (V.PC.skill.trading / 100.0) / 2.0) / 1000) * 1000;
+		let splitStockConstants = App.Corporate.stockSplits;
 
 		r = [];
 		r.push(`The corporation can perform a stock split to increase the number of stocks while maintaining the same owned value. This requires paying a market fee of`);
-		r.push(App.UI.DOM.makeElement("span", cashFormat(_splitFeeValue), ["cash", "dec"]));
+		r.push(App.UI.DOM.makeElement("span", cashFormat(splitFeeValue), ["cash", "dec"]));
 		r.push(`plus a per-share fee depending on the type of split being done.`);
 
-		if (_splitFeeValue < _splitFeeInitial) {
+		if (splitFeeValue < splitFeeInitial) {
 			r.push(App.UI.DOM.makeElement("span", "You negotiated lower fees due to your", "note"));
 			r.push(App.UI.DOM.makeElement("span", "business acumen", ["skill", "player", "note"]));
 		}
@@ -531,36 +531,36 @@ App.Corporate.manage = function() {
 		}
 
 		const ul = document.createElement("ul");
-		for (const _stockType of _splitStockConstants) {
-			let _splitValue = _stockType.cost;
-			let _splitDenom = _stockType.oldStocks || 1;
-			let _splitNumerator = _stockType.newStocks || 1;
-			let _splitMultiplier = _splitNumerator / _splitDenom;
-			let _splitTotal = _splitValue * (V.publicShares + V.personalShares) + _splitFeeValue;
-			let _splitWeek = _stockType.weeks;
+		for (const stockType of splitStockConstants) {
+			let splitValue = stockType.cost;
+			let splitDenom = stockType.oldStocks || 1;
+			let splitNumerator = stockType.newStocks || 1;
+			let splitMultiplier = splitNumerator / splitDenom;
+			let splitTotal = splitValue * (V.publicShares + V.personalShares) + splitFeeValue;
+			let splitWeek = stockType.weeks;
 
 			const li = document.createElement("li");
 			r = [];
-			r.push(`${_splitNumerator}-for-${_splitDenom}`);
-			if (_splitDenom > _splitNumerator) {
+			r.push(`${splitNumerator}-for-${splitDenom}`);
+			if (splitDenom > splitNumerator) {
 				r.push(`inverse`);
 			}
 			r.push(`stock split at`);
-			r.push(App.UI.DOM.makeElement("span", cashFormat(_splitValue), ["cash", "dec"]));
+			r.push(App.UI.DOM.makeElement("span", cashFormat(splitValue), ["cash", "dec"]));
 			r.push(`per share. Including market fees, this will cost the corporation a total of`);
-			r.push(App.UI.DOM.makeElement("span", `${cashFormat(_splitTotal)},`, ["cash", "dec"]));
+			r.push(App.UI.DOM.makeElement("span", `${cashFormat(splitTotal)},`, ["cash", "dec"]));
 			r.push(`leaving the going rate for stock at`);
-			r.push(App.UI.DOM.makeElement("span", cashFormat(Math.floor(corpSharePrice(0, V.personalShares * _splitMultiplier, V.publicShares * _splitMultiplier))), "cash"));
+			r.push(App.UI.DOM.makeElement("span", cashFormat(Math.floor(corpSharePrice(0, V.personalShares * splitMultiplier, V.publicShares * splitMultiplier))), "cash"));
 			r.push(`per 1000 shares.`);
 			if (V.corp.SpecTimer === 0) {
-				if (V.publicShares % _splitDenom !== 0 || V.personalShares % _splitDenom !== 0) {
+				if (V.publicShares % splitDenom !== 0 || V.personalShares % splitDenom !== 0) {
 					r.push(App.UI.DOM.makeElement("span", "The number of shares cannot be evenly split", "note"));
-				} else if (V.corp.Cash > _splitTotal) {
+				} else if (V.corp.Cash > splitTotal) {
 					r.push(App.UI.DOM.link("Split Shares", () => {
-						V.corp.Cash -= _splitTotal;
-						V.publicShares *= _splitMultiplier;
-						V.personalShares *= _splitMultiplier;
-						V.corp.SpecTimer = _splitWeek;
+						V.corp.Cash -= splitTotal;
+						V.publicShares *= splitMultiplier;
+						V.personalShares *= splitMultiplier;
+						V.corp.SpecTimer = splitWeek;
 						refresh();
 					}));
 				} else {
diff --git a/src/Mods/Catmod/events/CMRESS/annoyingcat.js b/src/Mods/Catmod/events/CMRESS/annoyingcat.js
index 1071bc486ab833503ace5fb30e0603b4d0038b68..73c9f2f4196652149dc61d9e6054d80462bc03e3 100644
--- a/src/Mods/Catmod/events/CMRESS/annoyingcat.js
+++ b/src/Mods/Catmod/events/CMRESS/annoyingcat.js
@@ -21,7 +21,7 @@ App.Events.CMRESSAnnoyingCat = class CMRESSAnnoyingCat extends App.Events.BaseEv
 		const {
 			He, he, his, him, girl
 		} = getPronouns(eventSlave);
-		const {s, title} = getEnunciation(eventSlave);
+		const {title} = getEnunciation(eventSlave);
 
 		/** @type {App.Entity.PlayerState} */
 		let PC = V.PC;
@@ -40,7 +40,7 @@ App.Events.CMRESSAnnoyingCat = class CMRESSAnnoyingCat extends App.Events.BaseEv
 
 		App.Events.addResponses(node, [
 			canDoAnal(eventSlave)
-				? new App.Events.Result(`Roughly fuck ${his} ass to shut ${him} up`, annoyedfuck, analVirginWarning())
+				? new App.Events.Result(`Roughly fuck ${his} ass to shut ${him} up`, annoyedFuck, analVirginWarning())
 				: new App.Events.Result(),
 			new App.Events.Result(`Tell ${him} to stop being such a nuisance`, stopit),
 			new App.Events.Result(`Ignore ${him}`, ignore),
@@ -52,7 +52,7 @@ App.Events.CMRESSAnnoyingCat = class CMRESSAnnoyingCat extends App.Events.BaseEv
 			}
 		}
 
-		function annoyedfuck() {
+		function annoyedFuck() {
 			t = [];
 			t.push(`As ${eventSlave.slaveName} meows at you, you order the irritating cat${girl} to turn around, drop ${his} bottoms, lift ${his} tail and spread ${his} cheeks. As though to make the command's intent even more obvious, you ${PC.dick !== 0 ? "pull your cock free from your pants" : "take a strapon and slide it up your legs"} as the furball look at you in surprise for a moment. Without a word of protest, the cat${girl} simply turns, pulls ${his} bottoms just under ${his} asscheeks, and lifts up ${his} tail to show you ${his}`);
 			if (eventSlave.butt > 12) {
@@ -85,7 +85,13 @@ App.Events.CMRESSAnnoyingCat = class CMRESSAnnoyingCat extends App.Events.BaseEv
 
 		function stopit() {
 			let t = [];
-			t.push(`You grab ${eventSlave.slaveName} by the hand and tell ${him} to stop being so goddamn annoying. ${He} cocks ${his} head at you, apparently genuinely confused, and then huffs out a loud exhale. ${canTalk(eventSlave) ? `"Uh, ${s}orry, ${title}, I wa${s}n't trying to be annoying or anything..." ${He} mewls,` : `${He} makes a second weird, apologetic sounding noise,`} then scurries off when you let ${him} go with ${his} <span class="trust dec">ears flat against ${his} head.</span>`);
+			t.push(`You grab ${eventSlave.slaveName} by the hand and tell ${him} to stop being so goddamn annoying. ${He} cocks ${his} head at you, apparently genuinely confused, and then huffs out a loud exhale.`);
+			if (canTalk(eventSlave)) {
+				t.push(Spoken(eventSlave, `"Uh, sorry, ${title}, I wasn't trying to be annoying or anything..." ${He} mewls,`));
+			} else {
+				t.push(`${He} makes a second weird, apologetic sounding noise,`);
+			}
+			t.push(`then scurries off when you let ${him} go with ${his} <span class="trust dec">ears flat against ${his} head.</span>`);
 			eventSlave.trust -= 3;
 			return t;
 		}
diff --git a/src/Mods/Catmod/events/CMRESS/catLove.js b/src/Mods/Catmod/events/CMRESS/catLove.js
index d1d452d8779481b8333bd7b1a49e216cc449bf3a..5ad3a57c21527b7b6ce1ec961c129017f029e795 100644
--- a/src/Mods/Catmod/events/CMRESS/catLove.js
+++ b/src/Mods/Catmod/events/CMRESS/catLove.js
@@ -21,7 +21,7 @@ App.Events.CMRESSCatLove = class CMRESSCatLove extends App.Events.BaseEvent {
 		const {
 			He, he, his, His, him, himself, girl
 		} = getPronouns(eventSlave);
-		const {s, title} = getEnunciation(eventSlave);
+		const {title} = getEnunciation(eventSlave);
 
 		/** @type {App.Entity.PlayerState} */
 		let PC = V.PC;
@@ -37,28 +37,64 @@ App.Events.CMRESSCatLove = class CMRESSCatLove extends App.Events.BaseEvent {
 			App.Events.addParagraph(node, t);
 
 			t = [];
-			t.push(`${eventSlave.slaveName} ${him}self is prominently displayed at the center of the catfolk at the bottom of the image, all of whom are looking up to you with big, worshipful smiles across their faces, pointed ears perked up. The bright golden hues make it look like a religious icon, but instead of a halo you're surrounded by two complex-looking genetic tubes; the faces of Dr. Nieskowitz and some other wizened scientists hang around you like angels. It's incredibly well-made, and even inlaid with a few sparkly things that seem to be whatever ${eventSlave.slaveName} could find lying around. ${canTalk(eventSlave) ? `"I, uhm, wanted to make you ${s}omething nice, ${title}..." ${eventSlave.slaveName} meows out sheepishly as ${he} holds the icon out towards you. "You made all of u${s}, and um, well, you're ${s}o good and pretty and everything..." ` : `${He} just holds out the icon, staring at you with big ${App.Desc.eyesColor(eventSlave)} that hope you get the meaning.`}`);
+			t.push(`${eventSlave.slaveName} ${him}self is prominently displayed at the center of the catfolk at the bottom of the image, all of whom are looking up to you with big, worshipful smiles across their faces, pointed ears perked up. The bright golden hues make it look like a religious icon, but instead of a halo you're surrounded by two complex-looking genetic tubes; the faces of Dr. Nieskowitz and some other wizened scientists hang around you like angels. It's incredibly well-made, and even inlaid with a few sparkly things that seem to be whatever ${eventSlave.slaveName} could find lying around.`);
+			if (canTalk(eventSlave)) {
+				t.push(
+					Spoken(eventSlave, `"I, uhm, wanted to make you something nice, ${title}..."`),
+					`${eventSlave.slaveName} meows out sheepishly as ${he} holds the icon out towards you.`,
+					Spoken(eventSlave, `"You made all of us, and um, well, you're so good and pretty and everything..." `)
+				);
+			} else {
+				t.push(`${He} just holds out the icon, staring at you with big ${App.Desc.eyesColor(eventSlave)} that hope you get the meaning.`);
+			}
 			App.Events.addParagraph(node, t);
 		} else if (eventSlave.intelligence + eventSlave.intelligenceImplant > 50) {
 			t.push("an elegant, small clay sculpture portraying you surrounded by a few happy catgirls.");
 			App.Events.addParagraph(node, t);
 
 			t = [];
-			t.push(`${He} holds the little sculpture out to you with wobbly hands, finding it hard to balance the unwieldy thing as you examine ${his} craftscatship. The sculpture is surprisingly pretty; one of the slaves around you is obviously supposed to be ${eventSlave.slaveName}, and they're all burshing up against you lovingly with individual expressions of happiness tediously moulded onto their faces. ${canTalk(eventSlave) ? `"I thought you might like a better gift, so I found ${s}ome clay in the workshop and made thi${s}, ${title}." ${eventSlave.slaveName} says, struggling to hold the awkward sculpture. "You're ${s}o nice to me and I like you ${s}o much, I, um, wanted to give you ${s}omething to ${s}how how much I love you..." ` : `${He} holds the sculpture out obediently as you examine it, ears twitching atop ${his} head as ${he} eagerly awaits your judgement.`}`);
+			t.push(`${He} holds the little sculpture out to you with wobbly hands, finding it hard to balance the unwieldy thing as you examine ${his} craftscatship. The sculpture is surprisingly pretty; one of the slaves around you is obviously supposed to be ${eventSlave.slaveName}, and they're all burshing up against you lovingly with individual expressions of happiness tediously moulded onto their faces.`);
+			if (canTalk(eventSlave)) {
+				t.push(
+					Spoken(eventSlave, `"I thought you might like a better gift, so I found some clay in the workshop and made this, ${title}."`),
+					`${eventSlave.slaveName} says, struggling to hold the awkward sculpture.`,
+					Spoken(eventSlave, `"You're so nice to me and I like you so much, I, um, wanted to give you something to show how much I love you..." `)
+				);
+			} else {
+				t.push(`${He} holds the sculpture out obediently as you examine it, ears twitching atop ${his} head as ${he} eagerly awaits your judgement.`);
+			}
 			App.Events.addParagraph(node, t);
 		} else if (eventSlave.intelligence + eventSlave.intelligenceImplant > 35) {
 			t.push("a pretty drawing of the two of you cuddling one another happily.");
 			App.Events.addParagraph(node, t);
 
 			t = [];
-			t.push(`${He} displays the drawing proudly. It's surprisingly well-drawn, especially considering ${his} awkward, furry hands, and ${he}'s rendered all your features flatteringly with ${eventSlave.slaveName} lovingly cradling up against your chest like an old-world girlfriend. It's obvious that ${he}'s put a lot of work into drawing this, likely in ${his} spare time after finishing the day's assignments. ${canTalk(eventSlave) ? `"I hope you like it, ${title}!" ${eventSlave.slaveName} says, eagerly watching your face as you study the nice drawing. "I worked really hard on it, but it'${s} okay, becau${s}e I got to look at your face the whole time, and you're extremely pretty, ${title}..." ` : `${He} holds the drawing out enthusiastically, obviously proud of ${his} work and silently waiting for you to decide whether you're proud of it too.`}`);
+			t.push(`${He} displays the drawing proudly. It's surprisingly well-drawn, especially considering ${his} awkward, furry hands, and ${he}'s rendered all your features flatteringly with ${eventSlave.slaveName} lovingly cradling up against your chest like an old-world girlfriend. It's obvious that ${he}'s put a lot of work into drawing this, likely in ${his} spare time after finishing the day's assignments.`);
+			if (canTalk(eventSlave)) {
+				t.push(
+					Spoken(eventSlave, `"I hope you like it, ${title}!"`),
+					`${eventSlave.slaveName} says, eagerly watching your face as you study the nice drawing.`,
+					Spoken(eventSlave, `"I worked really hard on it, but it's okay, because I got to look at your face the whole time, and you're extremely pretty, ${title}..."`)
+				);
+			}else {
+				t.push(`${He} holds the drawing out enthusiastically, obviously proud of ${his} work and silently waiting for you to decide whether you're proud of it too.`);
+			}
 			App.Events.addParagraph(node, t);
 		} else {
 			t.push("a heart cut out of red construction paper showing crude figures of you and a catgirl holding hands and smiling.");
 			App.Events.addParagraph(node, t);
 
 			t = [];
-			t.push(`Upon closer inspection, the crude cat figure is clearly intended to be ${eventSlave.slaveName}, and the two of you are standing above big white text written in what looks like crayon reading "I LUV U ${V.PC.title !== 0 ? `MASTER` : `MISTRESS`}". ${eventSlave.slaveName} trembles a little as you look at the simple drawing. ${canTalk(eventSlave) ? `"I'm ${s}-${s}orry ${title}..." ${eventSlave.slaveName} meows weakly, still holding out ${his} heart. "I w-wanted to make you ${s}omething pretty like everybody else because I love you ${s}o m-much, but I can't draw good like them, ${title}... I h-hope you like it..." ` : `${He} holds hi${s} little paper heart out for you, staring at you with big wide ${App.Desc.eyesColor(eventSlave)} as ${his} ears flatten preemptively, apparently expecting you to hate the crude offering.`}`);
+			t.push(`Upon closer inspection, the crude cat figure is clearly intended to be ${eventSlave.slaveName}, and the two of you are standing above big white text written in what looks like crayon reading "I LUV U ${V.PC.title !== 0 ? `MASTER` : `MISTRESS`}". ${eventSlave.slaveName} trembles a little as you look at the simple drawing.`);
+			if (canTalk(eventSlave)) {
+				t.push(
+					Spoken(eventSlave, `"I'm s-sorry ${title}..."`),
+					`${eventSlave.slaveName} meows weakly, still holding out ${his} heart.`,
+					Spoken(eventSlave, `"I w-wanted to make you something pretty like everybody else because I love you so m-much, but I can't draw good like them, ${title}... I h-hope you like it..."`)
+				);
+			} else {
+				t.push(`${He} holds his little paper heart out for you, staring at you with big wide ${App.Desc.eyesColor(eventSlave)} as ${his} ears flatten preemptively, apparently expecting you to hate the crude offering.`);
+			}
 			App.Events.addParagraph(node, t);
 		}
 
@@ -105,16 +141,40 @@ App.Events.CMRESSCatLove = class CMRESSCatLove extends App.Events.BaseEvent {
 			let t = [];
 			t.push(`You take ${eventSlave.slaveName} by the hand, still holding ${his} little present, and lead ${him} over to your office. As ${he} looks at you confused, you gingerly take the`);
 			if (eventSlave.intelligence + eventSlave.intelligenceImplant > 80) {
-				t.push(`beautiful icon from ${his} hand, open your display case with a twist of your private key, and place it inside. ${eventSlave.slaveName} takes a moment to process what's happening, then smiles wider than you've ever seen ${him} smile before and presses ${his} head against your chest. ${canTalk(eventSlave) ? `"I'm ${s}o happy you like it, ${title}!" ` : `${He} purrs from the back of ${his} throat so intensely you can hear it against your heart`}, filled with <span class="trust inc">safety</span> and <span class="devotion inc">love from the bottom of ${his} heart.</span>`);
+				t.push(`beautiful icon from ${his} hand, open your display case with a twist of your private key, and place it inside. ${eventSlave.slaveName} takes a moment to process what's happening, then smiles wider than you've ever seen ${him} smile before and presses ${his} head against your chest.`);
+				if (canTalk(eventSlave)) {
+					t.push(Spoken(eventSlave, `"I'm so happy you like it, ${title}!",`));
+				} else {
+					t.push(`${He} purrs from the back of ${his} throat so intensely you can hear it against your heart,`);
+				}
+				t.push(`filled with <span class="trust inc">safety</span> and <span class="devotion inc">love from the bottom of ${his} heart.</span>`);
 				V.trinkets.push(`a gorgeous quasi-religious icon made by ${eventSlave.slaveName} showing you creating the catgirl race`);
 			} else if (eventSlave.intelligence + eventSlave.intelligenceImplant > 50) {
-				t.push(`elegant clay sculpture from ${his} hands, open your display case with a twist of your private key, and place it inside. ${eventSlave.slaveName} takes a moment to process what's happening, then smiles wider than you've ever seen ${him} smile before and presses ${his} head against your chest, tears welling up in ${his} eyes. ${canTalk(eventSlave) ? `"You're the be${s}t -- the best ${title} in the whole wide world, ${title}!" She mrowls out while hugging you` : `${He} purrs from the back of ${his} throat so intensely you can hear it against your heart`}, filled with <span class="trust inc">safety</span> and <span class="devotion inc">love from the bottom of ${his} heart.</span>`);
+				t.push(`elegant clay sculpture from ${his} hands, open your display case with a twist of your private key, and place it inside. ${eventSlave.slaveName} takes a moment to process what's happening, then smiles wider than you've ever seen ${him} smile before and presses ${his} head against your chest, tears welling up in ${his} eyes.`);
+				if (canTalk(eventSlave)) {
+					t.push(
+						Spoken(eventSlave, `"You're the best -- the best ${title} in the whole wide world, ${title}!"`),
+						`She mrowls out while hugging you,`
+					);
+				} else {
+					t.push(`${He} purrs from the back of ${his} throat so intensely you can hear it against your heart,`);
+				}
+				t.push(`filled with <span class="trust inc">safety</span> and <span class="devotion inc">love from the bottom of ${his} heart.</span>`);
 				V.trinkets.push(`a small, elegant clay sculpture made by ${eventSlave.slaveName} showing you surrounded by happy catgirl slaves`);
 			} else if (eventSlave.intelligence + eventSlave.intelligenceImplant > 35) {
 				t.push(`pretty drawn picture from ${his} hands, open your display case with a twist of your private key, and place it inside. ${eventSlave.slaveName} takes a moment to process what's happening, then chokes out a shocked meow, opens ${his} mouth, half-meows again, and stutters. ${canTalk(eventSlave) ? `"Y-you really like it that much, ${title}?" She squeaks, and then, tears forming in the corner of ${his} eyes, launches into a tight, warm hug around your waist.` : `Incapable of saying anything further, ${he} simply launches himself at you and hugs you so tight it nearly squeezes on your ribs, tears forming at the corner of ${his} eyes.`} ${He}'s filled with the kind of <span class="trust inc">safety</span> and <span class="devotion inc">love from the bottom of ${his} heart</span> that only comes from genuine adoration.`);
 				V.trinkets.push(`a pretty drawing of you and ${eventSlave.slaveName} cuddling together peacefully`);
 			} else {
-				t.push(`construction paper heart from ${his} hands, open your display case with a twist of your private key, and place it inside. ${eventSlave.slaveName} looks at you, looks at the display case, looks back at you, and then suddenly breaks into tears. ${canTalk(eventSlave) ? `"${title} -- I l-love you ${s}o much --" She almost whimpers, before hugging ${himself} around your waist so tight it feels like ${he}'s squeezing down your ribs.` : `${He} simply sobs for a few moments, then hugs you with so much furry warmth that you swear you can feel ${his} heart beating against yours.`} ${He}'s filled with the kind of <span class="trust inc">safety</span> and <span class="devotion inc">love from the bottom of ${his} heart</span> that only comes from genuine adoration.`);
+				t.push(`construction paper heart from ${his} hands, open your display case with a twist of your private key, and place it inside. ${eventSlave.slaveName} looks at you, looks at the display case, looks back at you, and then suddenly breaks into tears.`);
+				if (canTalk(eventSlave)) {
+					t.push(
+						Spoken(eventSlave, `"${title} -- I l-love you so much --"`),
+						`${He} almost whimpers, before hugging ${himself} around your waist so tight it feels like ${he}'s squeezing down your ribs.`
+					);
+				} else {
+					t.push(`${He} simply sobs for a few moments, then hugs you with so much furry warmth that you swear you can feel ${his} heart beating against yours.`);
+				}
+				t.push(`${He}'s filled with the kind of <span class="trust inc">safety</span> and <span class="devotion inc">love from the bottom of ${his} heart</span> that only comes from genuine adoration.`);
 				V.trinkets.push(`a red construction paper heart with crude crayon figures of you and ${eventSlave.slaveName} holding hands above text reading "I LUV U ${V.PC.title !== 0 ? `MASTER` : `MISTRESS`}"`);
 			}
 			eventSlave.trust += 20;
diff --git a/src/Mods/Catmod/events/CMRESS/catPresent.js b/src/Mods/Catmod/events/CMRESS/catPresent.js
index 36ccf9a770b4ff4c2b50323c55e3cd8e0d3a843a..b34b260f80960dd66f508dd6b3af47f43f4f7fd3 100644
--- a/src/Mods/Catmod/events/CMRESS/catPresent.js
+++ b/src/Mods/Catmod/events/CMRESS/catPresent.js
@@ -21,7 +21,7 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven
 		const {
 			He, he, his, him, himself, His, girl
 		} = getPronouns(eventSlave);
-		const {s, title} = getEnunciation(eventSlave);
+		const {title} = getEnunciation(eventSlave);
 
 		/** @type {App.Entity.PlayerState} */
 		let PC = V.PC;
@@ -40,34 +40,83 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven
 
 		t = [];
 		if (catPresent === 0) {
-			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding a bundle of credits in one of ${his} furry hands. ${He} proudly drops the small wad of cash on your desk, beaming up at you with a mouthful of feline fangs. ${canTalk(eventSlave) ? `"Look what I found, ${title}! Someone dropped all this, ${s}o now it's your${s}!"` : `${He} swishes ${his} tail from side to side, apparently waiting for you to take the mysterious money.`} There's maybe two hundred credits worth of small bills here. It looks more like ${he} lifted some poor guy's wallet than 'found' this on the ground.`);
+			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding a bundle of credits in one of ${his} furry hands. ${He} proudly drops the small wad of cash on your desk, beaming up at you with a mouthful of feline fangs.`);
+			if (canTalk(eventSlave)) {
+				t.push(Spoken(eventSlave, `"Look what I found, ${title}! Someone dropped all this, so now it's yours!"`));
+			} else {
+				t.push(`${He} swishes ${his} tail from side to side, apparently waiting for you to take the mysterious money.`);
+			}
+			t.push(`There's maybe two hundred credits worth of small bills here. It looks more like ${he} lifted some poor guy's wallet than 'found' this on the ground.`);
 			presentType = "nice";
 		} else if (catPresent === 1) {
-			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding a small, fluffy, brightly-colored toy in ${his} mouth. The cat${girl} confidently walks up to your desk as though about to discuss some important matter of business, then opens ${his} mouth to drop it right in front of you, slick with ${his} drool. ${canTalk(eventSlave) ? `"Thi${s} i${s} my favorite toy, ${title}! So I wanted it to be your favorite toy too!"` : `${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`} You stare blankly for a moment at the fully-grown, ostensibly intelligent cat${girl} asking you to play with a drooled-on cat toy.`);
+			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding a small, fluffy, brightly-colored toy in ${his} mouth. The cat${girl} confidently walks up to your desk as though about to discuss some important matter of business, then opens ${his} mouth to drop it right in front of you, slick with ${his} drool.`);
+			if (canTalk(eventSlave)) {
+				t.push(Spoken(eventSlave, `"This is my favorite toy, ${title}! So I wanted it to be your favorite toy too!"`));
+			} else {
+				t.push(`${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`);
+			}
+			t.push(`You stare blankly for a moment at the fully-grown, ostensibly intelligent cat${girl} asking you to play with a drooled-on cat toy.`);
 			presentType = "junk";
 		} else if (catPresent === 2) {
-			t.push(`As you sit working at your desk, ${eventSlave.slaveName} practically bursts in, the ${eventSlave.skin} fur around ${his} mouth streaked red with blood and carrying what looks like a dead rat in ${his} mouth. ${He} walks right up to your desk and opens ${his} mouth to show off equally bloodstained fangs, dropping the dead rodent onto your desk with a wet plop of blood and saliva, where it proceeds to bleed out in the middle of the desk. ${canTalk(eventSlave) ? `"Look, ${title}! I ${s}aw this gros${s} rat running around the garden ${s}o I killed it. Are you proud of me?"` : `${He} looks enormously proud of ${himself} for killing a rodent that's smaller than ${his} fist and dropping the mutilated body in front of you.`}`);
+			t.push(`As you sit working at your desk, ${eventSlave.slaveName} practically bursts in, the ${eventSlave.skin} fur around ${his} mouth streaked red with blood and carrying what looks like a dead rat in ${his} mouth. ${He} walks right up to your desk and opens ${his} mouth to show off equally bloodstained fangs, dropping the dead rodent onto your desk with a wet plop of blood and saliva, where it proceeds to bleed out in the middle of the desk.`);
+			if (canTalk(eventSlave)) {
+				t.push(Spoken(eventSlave, `"Look, ${title}! I saw this gross rat running around the garden so I killed it. Are you proud of me?"`));
+			} else {
+				t.push(`${He} looks enormously proud of ${himself} for killing a rodent that's smaller than ${his} fist and dropping the mutilated body in front of you.`);
+			}
 			presentType = "dead";
 		} else if (catPresent === 3) {
 			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, carrying something indistinguishable in ${his} mouth. As ${he} walks over to your desk, ${he} opens ${his} mouth and drops it out with a wet plop in front of you, at which point you realize that ${he} has just dropped a dead rat on your desk which is now creating a red puddle around itself. ${eventSlave.slaveName} just smiles ear-to-ear at you with what seems like genuine pride and a mouth full of sharp fangs, which you now realize are streaked with blood.`);
 			presentType = "dead";
 		} else if (catPresent === 4) {
-			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, carrying something indistinguishable in ${his} mouth. As ${he} walks over to your desk, ${he} opens ${his} mouth and drops it out with a wet plop in front of you, at which point you realize that ${he} has just dropped a dead rat on your desk - or at least, you assume that the furry thing bleeding out is dead, until it twitches its leg, scampers up, and leaps off your desk, attempting to scurry out of the room. ${eventSlave.slaveName}'s stilted eyes go wide and ${his} tail perks up, and before you can even issue an order ${he}'s leaped atop the fleeing, injured rat, pinning the tiny thing down and sinking ${his} sharp fangs into it without a moment of hesitation. ${He} shakes his head violently from side to side, apparently trying to snap the vermin's spine, then stands up, walks back to you, opens ${his} mouth and drops the disgusting, bleeding, mutilated rat corpse on your desk. Again. ${canTalk(eventSlave) ? `"Did you ${s}ee me kill it, ${title}!? I did good, right?"` : `${He} smiles ear to ear at you, waiting for you to take the 'present'.`}`);
+			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, carrying something indistinguishable in ${his} mouth. As ${he} walks over to your desk, ${he} opens ${his} mouth and drops it out with a wet plop in front of you, at which point you realize that ${he} has just dropped a dead rat on your desk - or at least, you assume that the furry thing bleeding out is dead, until it twitches its leg, scampers up, and leaps off your desk, attempting to scurry out of the room. ${eventSlave.slaveName}'s stilted eyes go wide and ${his} tail perks up, and before you can even issue an order ${he}'s leaped atop the fleeing, injured rat, pinning the tiny thing down and sinking ${his} sharp fangs into it without a moment of hesitation. ${He} shakes his head violently from side to side, apparently trying to snap the vermin's spine, then stands up, walks back to you, opens ${his} mouth and drops the disgusting, bleeding, mutilated rat corpse on your desk. Again.`);
+			if (canTalk(eventSlave)) {
+				t.push(Spoken(eventSlave, `"Did you see me kill it, ${title}!? I did good, right?"`));
+			} else {
+				t.push(`${He} smiles ear to ear at you, waiting for you to take the 'present'.`);
+			}
 			presentType = "dead";
 		} else if (catPresent === 5) {
-			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, carrying something indistinguishable in ${his} mouth. As ${he} walks over to your desk, ${he} opens ${his} mouth and drops it out with a wet plop in front of you, at which point you realize that ${he} has just dropped a bundle of small bills which ${he} was, for some inexplicable reason, carrying around in ${his} mouth. They are drenched with ${his} saliva and completely ruined. You look at the pile of ruined currency and ask ${him} why ${he} didn't just carry it to you in ${his} hands. ${canTalk(eventSlave) ? `${eventSlave.slaveName} blinks twice. "Oh - um, yeah, I gues${s} I probably ${s}hould have done that, ${title}. Um- ${s}orry."` : `${He} looks down at the pile of ruined money, looks back up at you, and then blinks sheepishly.`} `);
+			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, carrying something indistinguishable in ${his} mouth. As ${he} walks over to your desk, ${he} opens ${his} mouth and drops it out with a wet plop in front of you, at which point you realize that ${he} has just dropped a bundle of small bills which ${he} was, for some inexplicable reason, carrying around in ${his} mouth. They are drenched with ${his} saliva and completely ruined. You look at the pile of ruined currency and ask ${him} why ${he} didn't just carry it to you in ${his} hands.`);
+			if (canTalk(eventSlave)) {
+				t.push(
+					`${eventSlave.slaveName} blinks twice.`,
+					Spoken(eventSlave, `"Oh - um, yeah, I guess I probably should have done that, ${title}. Um- sorry."`));
+			} else {
+				t.push(`${He} looks down at the pile of ruined money, looks back up at you, and then blinks sheepishly.`);
+			}
 			presentType = "junk";
 		} else if (catPresent === 6) {
-			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a small ball of brightly colored string in front of you, beaming wide enough to show of ${his} pearly white fangs. ${canTalk(eventSlave) ? `"Look at thi${s}, ${title}! You can bat it around and ${s}tuff! I brought it to you becau${s}e I thought you'd have fun playing with it!"` : `${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`}`);
+			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a small ball of brightly colored string in front of you, beaming wide enough to show of ${his} pearly white fangs.`);
+			if (canTalk(eventSlave)) {
+				t.push(Spoken(eventSlave, `"Look at this, ${title}! You can bat it around and stuff! I brought it to you because I thought you'd have fun playing with it!"`));
+			} else {
+				t.push(`${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`);
+			}
 			presentType = "junk";
 		} else if (catPresent === 7) {
-			t.push(`As you sit working at your desk, ${eventSlave.slaveName} practically bursts in, the ${eventSlave.skin} fur around ${his} mouth streaked red with blood and carrying an entire dead rabbit in ${his} mouth, the dead thing almost as big as ${his} entire head and hanging limply from between ${his} fangs. ${He} nearly sprints over to your desk, looking excited beyond belief as ${he} spits the large rabbit out in front of you, where the corpse splats against your desk in a splash of saliva and blood that flicks some liquid against your face. ${He}'s nearly quivering with excitement and pride. ${canTalk(eventSlave) ? `"Look! Look! I killed a rabbit, ${title}!! A whole rabbit! I saw it out${s}ide and cha${s}ed it down ${s}o you could hang it up on your wall! Did I do good, ${title}?"` : `${He} looks absolutely overjoyed with ${himself} for having killed something bigger than a rat for once.`}`);
+			t.push(`As you sit working at your desk, ${eventSlave.slaveName} practically bursts in, the ${eventSlave.skin} fur around ${his} mouth streaked red with blood and carrying an entire dead rabbit in ${his} mouth, the dead thing almost as big as ${his} entire head and hanging limply from between ${his} fangs. ${He} nearly sprints over to your desk, looking excited beyond belief as ${he} spits the large rabbit out in front of you, where the corpse splats against your desk in a splash of saliva and blood that flicks some liquid against your face. ${He}'s nearly quivering with excitement and pride.`);
+			if (canTalk(eventSlave)) {
+				t.push(Spoken(eventSlave, `"Look! Look! I killed a rabbit, ${title}!! A whole rabbit! I saw it outside and chased it down so you could hang it up on your wall! Did I do good, ${title}?"`));
+			} else {
+				t.push(`${He} looks absolutely overjoyed with ${himself} for having killed something bigger than a rat for once.`);
+			}
 			presentType = "dead";
 		} else if (catPresent === 8) {
-			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a shiny, gorgeous ring in front of you, beaming wide enough to show of ${his} pearly white fangs. This looks like a valuable piece of jewelry, easily worth a few thousand credits at least. You ask ${him} where ${he} got this as you examine the expensive thing. ${canTalk(eventSlave) ? `"I found it, ${title}! That mean${s} it'${s} your${s} now."` : `However, given that ${he} is totally mute, ${he} just stares back at you while smiling. You don't think you're going to get any answers there.`}`);
+			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a shiny, gorgeous ring in front of you, beaming wide enough to show of ${his} pearly white fangs. This looks like a valuable piece of jewelry, easily worth a few thousand credits at least. You ask ${him} where ${he} got this as you examine the expensive thing.`);
+			if (canTalk(eventSlave)) {
+				t.push(Spoken(eventSlave, `"I found it, ${title}! That means it's yours now."`));
+			} else {
+				t.push(`However, given that ${he} is totally mute, ${he} just stares back at you while smiling. You don't think you're going to get any answers there.`);
+			}
 			presentType = "nice";
 		} else {
-			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a lump of shiny metal in front of you, beaming wide enough to show of ${his} pearly white fangs, which glint almost as brightly as the metal. ${canTalk(eventSlave) ? `"Look what I found, ${title}! You can put it on your wall or ${s}omething. I${s}n't it pretty?"` : `${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`}`);
+			t.push(`As you sit working at your desk, ${eventSlave.slaveName} trots in, holding something bright in one hand. ${He} walks right up to the desk and drops a lump of shiny metal in front of you, beaming wide enough to show of ${his} pearly white fangs, which glint almost as brightly as the metal.`);
+			if (canTalk(eventSlave)) {
+				t.push(Spoken(eventSlave, `"Look what I found, ${title}! You can put it on your wall or something. Isn't it pretty?"`));
+			} else {
+				t.push(`${He} stares at you playfully and wiggles ${his} butt from side to side behind ${him}.`);
+			}
 			presentType = "junk";
 		}
 		App.Events.addParagraph(node, t);
@@ -121,7 +170,16 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven
 		function yes() {
 			let t = [];
 			if (catPresent === 0) {
-				t.push(`You take the <span class="green">wad of cash</span> as ${eventSlave.slaveName} smiles at you, thanking ${him} for bringing it. It's a relatively insignificant amount of money for someone as wealthy as you, although probably a significant sum to whatever poor sod lost it, but ${eventSlave.slaveName} swishes ${his} tail from side to side enthusiastically as you put the cash in your pocket. ${canTalk(eventSlave) ? `"Of cour${s}e, ${title}!" ${He} meows out,` : `${He} makes a satisfied purring noise,`} then leaves <span class="devotion inc">with ${his} ears twitching happily.</span>`);
+				t.push(`You take the <span class="green">wad of cash</span> as ${eventSlave.slaveName} smiles at you, thanking ${him} for bringing it. It's a relatively insignificant amount of money for someone as wealthy as you, although probably a significant sum to whatever poor sod lost it, but ${eventSlave.slaveName} swishes ${his} tail from side to side enthusiastically as you put the cash in your pocket.`);
+				if (canTalk(eventSlave)) {
+					t.push(
+						Spoken(eventSlave, `"Of course, ${title}!"`),
+						`${He} meows out,`
+					);
+				} else {
+					t.push(`${He} makes a satisfied purring noise,`);
+				}
+				t.push(`then leaves <span class="devotion inc">with ${his} ears twitching happily.</span>`);
 				cashX(200, "event", eventSlave);
 				eventSlave.devotion += 2;
 			} else if (catPresent === 8) {
@@ -129,10 +187,28 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven
 				cashX(2500, "event", eventSlave);
 				eventSlave.devotion += 2;
 			} else if (presentType === "junk") {
-				t.push(`You pick up the piece of junk, examine it for a few moments, then smile back at ${eventSlave.slaveName} and thank ${him} for bringing you something that ${he} clearly personally treasures. ${eventSlave.slaveName}'s furry face lights up as you say that you like ${his} little present, even though it's totally useless to you, and ${his} tail starts to <span class="devotion inc">swish from side to side happily behind ${him}.</span> ${canTalk(eventSlave) ? `"I'm ${s}o glad you like it, ${title}. I knew you would! I'm happy that you're my ${title}." ${He} says,` : `${He} makes a satisfied purring noise,`} then leaves you to file the small trinket away in one of your drawers.`);
+				t.push(`You pick up the piece of junk, examine it for a few moments, then smile back at ${eventSlave.slaveName} and thank ${him} for bringing you something that ${he} clearly personally treasures. ${eventSlave.slaveName}'s furry face lights up as you say that you like ${his} little present, even though it's totally useless to you, and ${his} tail starts to <span class="devotion inc">swish from side to side happily behind ${him}.</span>`);
+				if (canTalk(eventSlave)) {
+					t.push(
+						Spoken(eventSlave, `"I'm so glad you like it, ${title}. I knew you would! I'm happy that you're my ${title}."`),
+						`${He} says,`
+					);
+				} else {
+					t.push(`${He} makes a satisfied purring noise,`);
+				}
+				t.push(`then leaves you to file the small trinket away in one of your drawers.`);
 				eventSlave.devotion += 4;
 			} else {
-				t.push(`You wince slightly as you pick up the dead, bleeding animal, pulling it off your desk before it can leak onto anything important. Even though you own ${eventSlave.slaveName} and have absolute power over ${him}, the look of anticipation and excitement on ${his} face is too much to resist, and you say that you're very proud of ${him} for doing such good hunting work. ${eventSlave.slaveName} beams a full mouth of bloody fangs at you, obviously <span class="devotion inc">overjoyed</span> at your praise. ${canTalk(eventSlave) ? `"I killed it for you, ${title}! I promi${s}e I won't let any gros${s} vermin dirty up the penthouse." ${He} mrows,` : `${He} makes a satisfied purring noise,`} then leaves you to quietly throw the dead animal into the nearby trashcan and call for another slave to clean up the blood.`);
+				t.push(`You wince slightly as you pick up the dead, bleeding animal, pulling it off your desk before it can leak onto anything important. Even though you own ${eventSlave.slaveName} and have absolute power over ${him}, the look of anticipation and excitement on ${his} face is too much to resist, and you say that you're very proud of ${him} for doing such good hunting work. ${eventSlave.slaveName} beams a full mouth of bloody fangs at you, obviously <span class="devotion inc">overjoyed</span> at your praise.`);
+				if (canTalk(eventSlave)) {
+					t.push(
+						Spoken(eventSlave, `"I killed it for you, ${title}! I promise I won't let any gross vermin dirty up the penthouse."`),
+						`${He} mrows,`
+					);
+				} else {
+					t.push(`${He} makes a satisfied purring noise,`);
+				}
+				t.push(`then leaves you to quietly throw the dead animal into the nearby trashcan and call for another slave to clean up the blood.`);
 				eventSlave.devotion += 6;
 			}
 			return t;
@@ -141,12 +217,39 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven
 		function no() {
 			let t = [];
 			if (presentType === "nice") {
-				t.push(`You push the 'found' offering away, shaking your head. You tell ${him} that it's a very nice offering to bring this to you, but then briefly explain that taking other people's money without giving them a choice is wrong, and that someone out there probably needs this more than you do anyway. ${eventSlave.slaveName} ${canTalk(eventSlave) ? `cocks ${his} head slightly. "How come taking people'${s} money without a choice is wrong but you en${s}lave lots of people then, ${title}?" Not wanting to get into an ethical debate with an overgrown housecat, you tell ${him} that it just is and to leave so you can get back to work. ${eventSlave.slaveName} gives you a puzzled look and then heads out.` : `${He} just makes a confused noise from the back of ${his} throat, then nods at you and heads out.`}`);
+				t.push(`You push the 'found' offering away, shaking your head. You tell ${him} that it's a very nice offering to bring this to you, but then briefly explain that taking other people's money without giving them a choice is wrong, and that someone out there probably needs this more than you do anyway. ${eventSlave.slaveName}`);
+				if (canTalk(eventSlave)) {
+					t.push(
+						`cocks ${his} head slightly.`,
+						Spoken(eventSlave, `"How come taking people's money without a choice is wrong but you enslave lots of people then, ${title}?"`),
+						`Not wanting to get into an ethical debate with an overgrown housecat, you tell ${him} that it just is and to leave so you can get back to work. ${eventSlave.slaveName} gives you a puzzled look and then heads out.`
+					);
+				} else {
+					t.push(`${He} just makes a confused noise from the back of ${his} throat, then nods at you and heads out.`);
+				}
 			} else if (presentType === "junk") {
-				t.push(`You push the piece of junk into the trashcan to the side of your desk with one hand, ignoring the <span class="devotion dec">dismayed</span> look that spreads across ${his} furry face as you do. You sternly tell ${him} to stop bothering you with useless junk and that have more important things to do than look at ${his} stupid cat toys and shiny rocks. ${canTalk(eventSlave) ? `"I'm - I-I'm ${s}orry, ${title}, I ju${s}t thought you'd like it..." ${He} weakly meows. You tell ${him} that you don't.` : `${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness.`} ${His} eyes look a little watery as ${he} leaves.`);
+				t.push(`You push the piece of junk into the trashcan to the side of your desk with one hand, ignoring the <span class="devotion dec">dismayed</span> look that spreads across ${his} furry face as you do. You sternly tell ${him} to stop bothering you with useless junk and that have more important things to do than look at ${his} stupid cat toys and shiny rocks.`);
+				if (canTalk(eventSlave)) {
+					t.push(
+						Spoken(eventSlave, `"I'm - I-I'm sorry, ${title}, I just thought you'd like it..."`),
+						`${He} weakly meows. You tell ${him} that you don't.`
+					);
+				} else {
+					t.push(`${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness.`);
+				}
+				t.push(`${His} eyes look a little watery as ${he} leaves.`);
 				eventSlave.devotion -= 4;
 			} else {
-				t.push(`You pick the disgusting dead animal up with one hand and drop the corpse into the trashcan next to your desk. Once it's off your workspace, you proceed to sternly tell ${eventSlave.slaveName} that what ${he} just did is disgusting, unsanitary, and incredibly infantile, and that ${he} could have ruined something important by dropping a filthy corpse in the area where you conduct multinational business deals. ${canTalk(eventSlave) ? `"S-${s}orry, ${title}... I wa${s} ju${s}t... really proud of it, I gues${s}... I killed it for you..." ${He} weakly meows.` : `${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness.`} You tell ${him} to clean up the mess ${he} made on your desk, glaring at the overexcitable cat${girl}. ${His} eyes look a <span class="devotion dec">little watery</span> as ${he} leans over the surface and gets to cleaning off the blood.`);
+				t.push(`You pick the disgusting dead animal up with one hand and drop the corpse into the trashcan next to your desk. Once it's off your workspace, you proceed to sternly tell ${eventSlave.slaveName} that what ${he} just did is disgusting, unsanitary, and incredibly infantile, and that ${he} could have ruined something important by dropping a filthy corpse in the area where you conduct multinational business deals.`);
+				if (canTalk(eventSlave)) {
+					t.push(
+						Spoken(eventSlave, `"S-sorry, ${title}... I was just... really proud of it, I guess... I killed it for you..."`),
+						`${He} weakly meows.`
+					);
+				} else {
+					t.push(`${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness.`);
+				}
+				t.push(`You tell ${him} to clean up the mess ${he} made on your desk, glaring at the overexcitable cat${girl}. ${His} eyes look a <span class="devotion dec">little watery</span> as ${he} leans over the surface and gets to cleaning off the blood.`);
 				eventSlave.devotion -= 6;
 			}
 			return t;
@@ -154,14 +257,36 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven
 
 		function rabbit() {
 			let t = [];
-			t.push(`You take a good look at the dead rabbit on your desk. For once, this thing actually looks kind of good. It's got two small puncture wounds just beneath its neck, but the corpse is almost totally intact, and it's pretty fat, too. With rabbit becoming an increasingly rare delicacy these days as desperate poachers violate the nature restrictions of old world governments too impotent to enforce them, you make up your mind to cook and eat this rare hunted treat. Placing your hands on the desk, you look back up at ${eventSlave.slaveName}, tell ${him} ${he}'s done an excellent job, and that you're going to have ${his} kill roasted and eaten. ${eventSlave.slaveName} practically quivers up and down with excitement at the praise, visibly excited that you're going to actually do something useful with ${his} present - and at the prospect of a real meal. After listening to ${him} gush your praises for a few minutes, you send ${him} out to get back to work. Later in the evening, the two of you enjoy delicious roast rabbit together, cooked with golden-brown crispy skin and a tender inside that leaves traces of juice running down both of your cheeks. ${canTalk(eventSlave) ? `"You're the <span class="devotion inc">be${s}t,</span> ${title}." ${He} mrows,` : `${He} stares <span class="devotion inc">happily</span> for a long time into your eyes as you eat,`} bloody juice running down into the fur around ${his} mouth for the second time today.`);
+			t.push(`You take a good look at the dead rabbit on your desk. For once, this thing actually looks kind of good. It's got two small puncture wounds just beneath its neck, but the corpse is almost totally intact, and it's pretty fat, too. With rabbit becoming an increasingly rare delicacy these days as desperate poachers violate the nature restrictions of old world governments too impotent to enforce them, you make up your mind to cook and eat this rare hunted treat. Placing your hands on the desk, you look back up at ${eventSlave.slaveName}, tell ${him} ${he}'s done an excellent job, and that you're going to have ${his} kill roasted and eaten. ${eventSlave.slaveName} practically quivers up and down with excitement at the praise, visibly excited that you're going to actually do something useful with ${his} present - and at the prospect of a real meal. After listening to ${him} gush your praises for a few minutes, you send ${him} out to get back to work. Later in the evening, the two of you enjoy delicious roast rabbit together, cooked with golden-brown crispy skin and a tender inside that leaves traces of juice running down both of your cheeks.`);
+			if (canTalk(eventSlave)) {
+				t.push(
+					Spoken(eventSlave, `"You're the`),
+					App.UI.DOM.makeElement("span", Spoken(eventSlave, "best,"), ["devotion", "inc"]),
+					Spoken(eventSlave, `${title}."`),
+					`${He} mrows,`
+				);
+			} else {
+				t.push(`${He} stares <span class="devotion inc">happily</span> for a long time into your eyes as you eat,`);
+			}
+			t.push(`bloody juice running down into the fur around ${his} mouth for the second time today.`);
 			eventSlave.devotion += 8;
 			return t;
 		}
 
 		function noMoreDeadShit() {
 			let t = [];
-			t.push(`You slam your fist on the table loud enough that it makes ${eventSlave.slaveName} jump and ${his} tail to flick straight up in the air, the dead animal still bleeding out over your desk, and yell at the harebrained cat${girl} to stop dropping filthy fucking dead animals on your desk, and for that matter for all the rest of your idiotic catsluts to stop doing it too. ${eventSlave.slaveName} cowers in front of your desk as you yell at ${him}, all of ${his} pride and excitement at securing a kill on something immediately forgotten. ${canTalk(eventSlave) ? `"I - I d-didn't know you hated my hunting ${s}o much, ${title}," ${He} weakly meows. "I ju${s}t want to make you proud - u-uhm, I promi${s}e I'll ${s}top..." You tell ${him} that ${he} better, or you'll beat ${his} ass so red ${he} won't be walking for a month.` : `${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness. You tell ${him} that that better mean that ${he}'s going to stop, and ${he} weakly nods ${his} head up and down in confirmation.`} ${He} does ${his} best to hide ${his} <span class="devotion dec">watering eyes</span> as ${he} gets to cleaning off your desk, but they're pretty obvious.`);
+			t.push(`You slam your fist on the table loud enough that it makes ${eventSlave.slaveName} jump and ${his} tail to flick straight up in the air, the dead animal still bleeding out over your desk, and yell at the harebrained cat${girl} to stop dropping filthy fucking dead animals on your desk, and for that matter for all the rest of your idiotic catsluts to stop doing it too. ${eventSlave.slaveName} cowers in front of your desk as you yell at ${him}, all of ${his} pride and excitement at securing a kill on something immediately forgotten.`);
+			if (canTalk(eventSlave)) {
+				t.push(
+					Spoken(eventSlave, `"I - I d-didn't know you hated my hunting so much, ${title},"`),
+					`${He} weakly meows.`,
+					Spoken(eventSlave, `"I just want to make you proud - u-uhm, I promise I'll stop..."`),
+					`You tell ${him} that ${he} better, or you'll beat ${his} ass so red ${he} won't be walking for a month.`
+				);
+			} else {
+				t.push(`${He} makes a single, sad whimpering sound, all ${he}'s capable of given ${his} muteness. You tell ${him} that that better mean that ${he}'s going to stop, and ${he} weakly nods ${his} head up and down in confirmation.`);
+			}
+			t.push(`${He} does ${his} best to hide ${his} <span class="devotion dec">watering eyes</span> as ${he} gets to cleaning off your desk, but they're pretty obvious.`);
 			V.noDeadShit = 1;
 			eventSlave.devotion -= 10;
 			return t;
@@ -169,7 +294,13 @@ App.Events.CMRESSCatPresent = class CMRESSCatPresent extends App.Events.BaseEven
 
 		function moreDeadShit() {
 			let t = [];
-			t.push(`You sigh as ${eventSlave.slaveName} drops a stupid present on your desk once more and wearily tell ${him} that ${he}'s allowed to hunt again. ${His} pointy ears immediately perk up, instantaneously forgetting whatever it was that ${he}'d offered up to you in tribute just a few seconds ago. ${canTalk(eventSlave) ? `"Really!? I - thank${s}, ${title}! I'm gonna find lot${s} of stuff to kill for you, I promi${s}e! I'll be the be${s}t hunter ever!"` : `${He} wiggles ${his} butt from side to side enthusiastically and makes the loudest purring sound ${his} damaged vocal chords are capable of.`} You sigh in exasperation as the excitable cat${girl} bounds out of the room <span class="devotion inc">enthusiastically,</span> mentally preparing yourself for whatever disgusting corpse ${he}'s liable to drop on your desk next to show off ${his} catlike adoration.`);
+			t.push(`You sigh as ${eventSlave.slaveName} drops a stupid present on your desk once more and wearily tell ${him} that ${he}'s allowed to hunt again. ${His} pointy ears immediately perk up, instantaneously forgetting whatever it was that ${he}'d offered up to you in tribute just a few seconds ago.`);
+			if (canTalk(eventSlave)) {
+				t.push(Spoken(eventSlave, `"Really!? I - thanks, ${title}! I'm gonna find lots of stuff to kill for you, I promise! I'll be the best hunter ever!"`));
+			} else {
+				t.push(`${He} wiggles ${his} butt from side to side enthusiastically and makes the loudest purring sound ${his} damaged vocal chords are capable of.`);
+			}
+			t.push(`You sigh in exasperation as the excitable cat${girl} bounds out of the room <span class="devotion inc">enthusiastically,</span> mentally preparing yourself for whatever disgusting corpse ${he}'s liable to drop on your desk next to show off ${his} catlike adoration.`);
 			V.noDeadShit = 0;
 			eventSlave.devotion += 8;
 			return t;
diff --git a/src/Mods/Catmod/events/CMRESS/lazyCat.js b/src/Mods/Catmod/events/CMRESS/lazyCat.js
index fdb91c2e3ce738f1ea679d1934d7bd4d6f0f7215..4fe94cf7424666f77cc80c36a1f80c85cd6ac611 100644
--- a/src/Mods/Catmod/events/CMRESS/lazyCat.js
+++ b/src/Mods/Catmod/events/CMRESS/lazyCat.js
@@ -20,7 +20,7 @@ App.Events.CMRESSLazyCat = class CMRESSLazyCat extends App.Events.BaseEvent {
 		const {
 			He, he, his, him, girl
 		} = getPronouns(eventSlave);
-		const {s, title} = getEnunciation(eventSlave);
+		const {title} = getEnunciation(eventSlave);
 
 		/** @type {App.Entity.PlayerState} */
 		let PC = V.PC;
@@ -134,7 +134,19 @@ App.Events.CMRESSLazyCat = class CMRESSLazyCat extends App.Events.BaseEvent {
 			}
 			t.push(`and immediately delivering a powerful, open-handed slap to ${his} right asscheek. The forceful slap sears through the fur and makes ${his} tail jerk upwards as ${his} bubbly ass jiggles, ears flicking up in pain. Before ${he} can even yelp out in protest or react to the sharp, stinging pain, you land a second slap, then a third, loud smacking noises echoing across the room as you give the pinned cat a hard spanking. Over the next ten minutes, you absolutely blister the lazy cat${girl}'s furry ass, working into a rhythm of disciplined abuse that leaves the fluffy bitch sobbing and ${his} butt beaten so well you can see it glowing a painful, alluring cherry-red even through ${his} ${eventSlave.skin} fur. The second that you let go of the pinned cat and tell ${him} that ${he}'s free to leave, ${he} leaps off your knee,`);
 			if (eventSlave.fetish === "masochist") {
-				t.push(`turns around with tears rolling freely down ${his} cheeks as though to show off how brightly red you've bruised ${his} cheeks, wiggles ${his} beaten bottom, and smiles. ${canTalk(eventSlave) ? `"<span class="devotion inc">T-thank${s} for kicking my as${s},</span> ${title}. I promise I'll, l-like, never nap at work again." It sounds less than authentic as the maso-kitty tugs up ${his} bottoms over ${his} red, furry butt with a wince,` : ` makes a <span class="devotion inc">heart symbol</span> with ${his} hands and presses it against ${his} burning ass so it looks red,`}`);
+				t.push(`turns around with tears rolling freely down ${his} cheeks as though to show off how brightly red you've bruised ${his} cheeks, wiggles ${his} beaten bottom, and smiles.`);
+				if (canTalk(eventSlave)) {
+					t.push(
+						App.UI.DOM.combineNodes(
+							`"`,
+							App.UI.DOM.makeElement("span", Spoken(eventSlave, `T-thanks for kicking my ass,`), ["devotion", "inc"])
+						),
+						Spoken(eventSlave, `${title}. I promise I'll, l-like, never nap at work again."`),
+						`It sounds less than authentic as the maso-kitty tugs up ${his} bottoms over ${his} red, furry butt with a wince,`
+					);
+				} else {
+					t.push(` makes a <span class="devotion inc">heart symbol</span> with ${his} hands and presses it against ${his} burning ass so it looks red,`);
+				}
 				eventSlave.devotion += 4;
 			}
 			t.push(`then scurries off to tend to ${his}<span class="trust dec">bruised and reddened asscheeks.</span>`);
diff --git a/src/Mods/Catmod/events/SoSSniper.js b/src/Mods/Catmod/events/SoSSniper.js
index 160a1d94d60df6dadc3d04d2cc1578b831db8dd5..9753fdc068359d92066d0b6cb1dc6e583b1820fc 100644
--- a/src/Mods/Catmod/events/SoSSniper.js
+++ b/src/Mods/Catmod/events/SoSSniper.js
@@ -33,6 +33,7 @@ App.Events.RESosSniper = class RESosSniper extends App.Events.BaseEvent {
 		slave.weight = random(-20, 30);
 		slave.muscles = random(20, 80);
 		slave.waist = random(10, 80);
+		eyeSurgery(slave, "both", "normal");
 		slave.shouldersTat = either("flowers", "tribal patterns", "asian art");
 		slave.custom.tattoo = "$He has the orange sun of the Sons of Sekhmet tattooed on $his neck, marking $him as a high-ranking operative.";
 
diff --git a/src/Mods/Catmod/events/SoSassassin.js b/src/Mods/Catmod/events/SoSassassin.js
index 84d74065bc95964bd22b0001741cbab74ffbb884..e7157f5184baa2749a7395decc281e48a0e5e7d9 100644
--- a/src/Mods/Catmod/events/SoSassassin.js
+++ b/src/Mods/Catmod/events/SoSassassin.js
@@ -72,11 +72,11 @@ App.Events.RESosAssassin = class RESosAssassin extends App.Events.BaseEvent {
 					slave.custom.tattoo = "$He has the orange sun of the Sons of Sekhmet tattooed on $his neck, marking $him as a high-ranking operative.";
 					newSlave(slave);
 				} else if (S.Bodyguard.skill.combat > 0 && V.personalArms < 1) {
-					r.push(`The two trained killers clash ferociously, ${S.Bodyguard.slaveName} using the longer reach of ${his} sword to keep the mysterious assassin's lightning-fast long knife at bay. For what feels like a full minute they dodge each other's lethal blows, both unable to land a hit on the other, until you see the security drones you called for finally start to arrive. Sensing that her time window is closing, the assassin tries to step back, only for her retreat to be cut off as${S.Bodyguard.slaveName} ferociously leaps forward and plunges ${his} sword directly through the assassin's neck. ${He} nearly decapitates the pretty head as ${he} pulls ${his} sword back, the marketplace watching the <span class="red">minorly damaged</span> scene with a mixture of <span class="green">shock and admiration</span>.`);
+					r.push(`The two trained killers clash ferociously, ${S.Bodyguard.slaveName} using the longer reach of ${his} sword to keep the mysterious assassin's lightning-fast long knife at bay. For what feels like a full minute they dodge each other's lethal blows, both unable to land a hit on the other, until you see the security drones you called for finally start to arrive. Sensing that her time window is closing, the assassin tries to step back, only for her retreat to be cut off as ${S.Bodyguard.slaveName} ferociously leaps forward and plunges ${his} sword directly through the assassin's neck. ${He} nearly decapitates the pretty head as ${he} pulls ${his} sword back, the marketplace watching the <span class="red">minorly damaged</span> scene with a mixture of <span class="green">shock and admiration</span>.`);
 					cashX(-1000, "event", S.Bodyguard);
 					repX(2500, "event", S.Bodyguard);
 				} else if (S.Bodyguard.skill.combat < 1 && V.personalArms > 0) {
-					r.push(`The two killers clash, but it's immediately apparent who's better trained. The assassin blocks every strike coming from ${S.Bodyguard.slaveName} and hits back twice as hard, forcing ${him} on the defensive. When${S.Bodyguard.slaveName} stumbles, the assassin furiously kicks the blade out from ${his} hand and leaps atop ${him}, readying her own knife to slash the bodyguard's throat. You raise your handgun at the same time, one bullet left in the trigger, and fire a single round through the assassin's skull just before she can. Her head explodes backwards in a burst of gore, and she slumps off ${S.Bodyguard.slaveName}, her knife clattering to the ground. The citizens in the marketplace watch the <span class="red">minorly damaged</span> scene with a mixture of <span class="green">shock and admiration,</span> both you and ${S.Bodyguard.slaveName} panting in the wake of the attack and surrounded by bodies.`);
+					r.push(`The two killers clash, but it's immediately apparent who's better trained. The assassin blocks every strike coming from ${S.Bodyguard.slaveName} and hits back twice as hard, forcing ${him} on the defensive. When ${S.Bodyguard.slaveName} stumbles, the assassin furiously kicks the blade out from ${his} hand and leaps atop ${him}, readying her own knife to slash the bodyguard's throat. You raise your handgun at the same time, one bullet left in the trigger, and fire a single round through the assassin's skull just before she can. Her head explodes backwards in a burst of gore, and she slumps off ${S.Bodyguard.slaveName}, her knife clattering to the ground. The citizens in the marketplace watch the <span class="red">minorly damaged</span> scene with a mixture of <span class="green">shock and admiration,</span> both you and ${S.Bodyguard.slaveName} panting in the wake of the attack and surrounded by bodies.`);
 				} else {
 					V.gameover = "sons assassinated with bodyguard";
 					setTimeout(() => Engine.play("Gameover"), Engine.minDomActionDelay); // TODO: uhh, do we not want to delay here?  If so, need to suspend the rest of the content.
@@ -119,27 +119,27 @@ App.Events.RESosAssassin = class RESosAssassin extends App.Events.BaseEvent {
 				r.push(`The two trained killers clash ferociously, ${S.Bodyguard.slaveName} using the longer reach of ${his} sword to keep the mysterious assassin's lightning-fast long knife at bay. As the two narrowly avoid each other's attacks, you pull up your handgun, one bullet left in the chamber, carefully lower your aim, and fire into the melee, blasting a hole through the assassin's left thigh. As she cries out in pain and stumbles, your trained bodyguard tackles her to the ground and slams a fist into her face before she can activate whatever suicide method she has. As the security drones arrive, the marketplace watching the <span class="red">minorly damaged</span> scene with a mixture of <span class="green">shock and admiration,</span> you call for a medic and some sedatives. You're about to claim yourself a <span class="green">brand new slave.</span>`);
 				cashX(-1000, "event", S.Bodyguard);
 				repX(2500, "event", S.Bodyguard);
-				const _slave = GenerateNewSlave("XX", {minAge: 18, maxAge: 24, disableDisability: 1});
-				generateSalonModifications(_slave);
-				_slave.face = random(50, 100);
-				_slave.origin = "$He was an elite assassin of the Sons of Sekhmet, narrowly captured in a well-planned assassination attempt where $he distracted you with $his pretty face.";
-				_slave.intelligenceImplant = 30;
-				_slave.career = "an assassin";
-				_slave.skill.combat = 1;
-				_slave.devotion = -100;
-				_slave.trust = random(-20, 10);
-				_slave.weight = random(-20, 30);
-				_slave.muscles = random(20, 80);
-				_slave.waist = random(10, 80);
-				_slave.shouldersTat = either("flowers", "tribal patterns", "asian art");
-				_slave.custom.tattoo = "$He has the orange sun of the Sons of Sekhmet tattooed on $his neck, marking $him as a high-ranking operative.";
-				newSlave(_slave);
+				const slave = GenerateNewSlave("XX", {minAge: 18, maxAge: 24, disableDisability: 1});
+				generateSalonModifications(slave);
+				slave.face = random(50, 100);
+				slave.origin = "$He was an elite assassin of the Sons of Sekhmet, narrowly captured in a well-planned assassination attempt where $he distracted you with $his pretty face.";
+				slave.intelligenceImplant = 30;
+				slave.career = "an assassin";
+				slave.skill.combat = 1;
+				slave.devotion = -100;
+				slave.trust = random(-20, 10);
+				slave.weight = random(-20, 30);
+				slave.muscles = random(20, 80);
+				slave.waist = random(10, 80);
+				slave.shouldersTat = either("flowers", "tribal patterns", "asian art");
+				slave.custom.tattoo = "$He has the orange sun of the Sons of Sekhmet tattooed on $his neck, marking $him as a high-ranking operative.";
+				newSlave(slave);
 			} else if (S.Bodyguard.skill.combat > 0) {
-				r.push(`The two trained killers clash ferociously, ${S.Bodyguard.slaveName} using the longer reach of ${his} sword to keep the mysterious assassin's lightning-fast long knife at bay. For what feels like a full minute they dodge each other's lethal blows, both unable to land a hit on the other, until you see the security drones you called for finally start to arrive. Sensing that her time window is closing, the assassin tries to step back, only for her retreat to be cut off as${S.Bodyguard.slaveName} ferociously leaps forward and plunges ${his} sword directly through the assassin's neck. ${He} nearly decapitates the pretty head as ${he} pulls ${his} sword back, the marketplace watching the <span class="red">minorly damaged</span> scene with a mixture of <span class="green">shock and admiration</span>.`);
+				r.push(`The two trained killers clash ferociously, ${S.Bodyguard.slaveName} using the longer reach of ${his} sword to keep the mysterious assassin's lightning-fast long knife at bay. For what feels like a full minute they dodge each other's lethal blows, both unable to land a hit on the other, until you see the security drones you called for finally start to arrive. Sensing that her time window is closing, the assassin tries to step back, only for her retreat to be cut off as ${S.Bodyguard.slaveName} ferociously leaps forward and plunges ${his} sword directly through the assassin's neck. ${He} nearly decapitates the pretty head as ${he} pulls ${his} sword back, the marketplace watching the <span class="red">minorly damaged</span> scene with a mixture of <span class="green">shock and admiration</span>.`);
 				cashX(-1000, "event", S.Bodyguard);
 				repX(2500, "event", S.Bodyguard);
 			} else if (V.personalArms > 0 && V.PC.skill.warfare >= 60) {
-				r.push(`The two killers clash, but it's immediately apparent who's better trained. The assassin blocks every strike coming from ${S.Bodyguard.slaveName} and hits back twice as hard, forcing ${him} on the defensive. When${S.Bodyguard.slaveName} stumbles, the assassin furiously kicks the blade out from ${his} hand and leaps atop ${him}, readying her own knife to slash the bodyguard's throat. You raise your handgun at the same time, one bullet left in the trigger, and fire a single round through the assassin's skull just before she can. Her head explodes backwards in a burst of gore, and she slumps off ${S.Bodyguard.slaveName}, her knife clattering to the ground. The citizens in the marketplace watch the <span class="red">minorly damaged</span> scene with a mixture of <span class="green">shock and admiration,</span> both you and ${S.Bodyguard.slaveName} panting in the wake of the attack and surrounded by bodies.`);
+				r.push(`The two killers clash, but it's immediately apparent who's better trained. The assassin blocks every strike coming from ${S.Bodyguard.slaveName} and hits back twice as hard, forcing ${him} on the defensive. When ${S.Bodyguard.slaveName} stumbles, the assassin furiously kicks the blade out from ${his} hand and leaps atop ${him}, readying her own knife to slash the bodyguard's throat. You raise your handgun at the same time, one bullet left in the trigger, and fire a single round through the assassin's skull just before she can. Her head explodes backwards in a burst of gore, and she slumps off ${S.Bodyguard.slaveName}, her knife clattering to the ground. The citizens in the marketplace watch the <span class="red">minorly damaged</span> scene with a mixture of <span class="green">shock and admiration,</span> both you and ${S.Bodyguard.slaveName} panting in the wake of the attack and surrounded by bodies.`);
 			} else {
 				V.gameover = "sons assassinated with bodyguard";
 				setTimeout(() => Engine.play("Gameover"), Engine.minDomActionDelay); // TODO: uhh, do we not want to delay here?  If so, need to suspend the rest of the content.
@@ -150,7 +150,7 @@ App.Events.RESosAssassin = class RESosAssassin extends App.Events.BaseEvent {
 			if (V.personalArms > 0 && S.Bodyguard) {
 				r.push(`You pull your handgun out of its holster as ${S.Bodyguard.slaveName} snaps to attention, exchanging fire with the two assailants. A bullet hits you in the shoulder and sends you sprawling back against the ground in agony, but between the two of you you hit both of the attackers and they drop to the ground dead.`);
 			} else if (S.Bodyguard) {
-				r.push(`${S.Bodyguard.slaveName} quickly snaps to attention, pulling ${his} machine pistol from its holster and firing back at the two attackers. A bullet hits you in the arm and sends you sprawling back against the ground in agony, but${S.Bodyguard.slaveName} drops both of the attackers before they can finish the job.`);
+				r.push(`${S.Bodyguard.slaveName} quickly snaps to attention, pulling ${his} machine pistol from its holster and firing back at the two attackers. A bullet hits you in the arm and sends you sprawling back against the ground in agony, but ${S.Bodyguard.slaveName} drops both of the attackers before they can finish the job.`);
 			} else {
 				V.gameover = "shotbysons";
 				setTimeout(() => Engine.play("Gameover"), Engine.minDomActionDelay); // TODO: uhh, do we not want to delay here?  If so, need to suspend the rest of the content.
@@ -161,11 +161,11 @@ App.Events.RESosAssassin = class RESosAssassin extends App.Events.BaseEvent {
 			if (S.Bodyguard) {
 				r.push(`She's intercepted by ${S.Bodyguard.slaveName}, who drops ${his} empty firearm on the ground to pull ${his} own sword free.`);
 				if (S.Bodyguard.skill.combat > 0) {
-					r.push(`The two trained killers clash ferociously, ${S.Bodyguard.slaveName} using the longer reach of ${his} sword to keep the mysterious assassin's lightning-fast long knife at bay. For what feels like a full minute they dodge each other's lethal blows, both unable to land a hit on the other, until you see the security drones you called for finally start to arrive. Sensing that her time window is closing, the assassin tries to step back, only for her retreat to be cut off as${S.Bodyguard.slaveName} ferociously leaps forward and plunges ${his} sword directly through the assassin's neck. ${He} nearly decapitates the pretty head as ${he} pulls ${his} sword back, the marketplace watching the <span class="red">minorly damaged</span> scene with a mixture of <span class="green">shock and admiration</span>.`);
+					r.push(`The two trained killers clash ferociously, ${S.Bodyguard.slaveName} using the longer reach of ${his} sword to keep the mysterious assassin's lightning-fast long knife at bay. For what feels like a full minute they dodge each other's lethal blows, both unable to land a hit on the other, until you see the security drones you called for finally start to arrive. Sensing that her time window is closing, the assassin tries to step back, only for her retreat to be cut off as ${S.Bodyguard.slaveName} ferociously leaps forward and plunges ${his} sword directly through the assassin's neck. ${He} nearly decapitates the pretty head as ${he} pulls ${his} sword back, the marketplace watching the <span class="red">minorly damaged</span> scene with a mixture of <span class="green">shock and admiration</span>.`);
 					cashX(-1000, "event", S.Bodyguard);
 					repX(2500, "event", S.Bodyguard);
 				} else if (V.personalArms > 0 && V.PC.skill.warfare >= 60) {
-					r.push(`The two killers clash, but it's immediately apparent who's better trained. The assassin blocks every strike coming from ${S.Bodyguard.slaveName} and hits back twice as hard, forcing ${him} on the defensive. When${S.Bodyguard.slaveName} stumbles, the assassin furiously kicks the blade out from ${his} hand and leaps atop ${him}, slashing ${S.Bodyguard.slaveName}'s throat in a single, clean motion as you clutch your arm on the ground and fumble with your handgun, grimacing from the pain. Covered in blood, the assassin stands over ${S.Bodyguard.slaveName}'s corpse and approaches you, smiling psychotically.`);
+					r.push(`The two killers clash, but it's immediately apparent who's better trained. The assassin blocks every strike coming from ${S.Bodyguard.slaveName} and hits back twice as hard, forcing ${him} on the defensive. When ${S.Bodyguard.slaveName} stumbles, the assassin furiously kicks the blade out from ${his} hand and leaps atop ${him}, slashing ${S.Bodyguard.slaveName}'s throat in a single, clean motion as you clutch your arm on the ground and fumble with your handgun, grimacing from the pain. Covered in blood, the assassin stands over ${S.Bodyguard.slaveName}'s corpse and approaches you, smiling psychotically.`);
 					App.Events.addNode(node, r, "div");
 					r = [];
 					r.push(`"Bhalwi al-sham asmik qalbik, dog." The assassin spits, lunging towards you.`);
diff --git a/src/Mods/Catmod/events/scheduled/vatcatboy.js b/src/Mods/Catmod/events/scheduled/vatcatboy.js
index b19e262f2179b734844eaa29b8bb12a893e75814..f2363120629dc4758e1b735c28741c37dfbbb3d4 100644
--- a/src/Mods/Catmod/events/scheduled/vatcatboy.js
+++ b/src/Mods/Catmod/events/scheduled/vatcatboy.js
@@ -44,7 +44,7 @@ App.Events.SEVatCatBoy = class SEVatCatBoy extends App.Events.BaseEvent {
 		slave.canRecruit = 0;
 
 		App.Events.addParagraph(node, [
-			`With their latest genemodding project complete, Dr. Nieskowitz proudly presents to you a healthy, unconscious catboy, floating suspended in the tube of thick green liquid you use to grow them. "Looks like he came out just fine." The aging doctor says with an authoritative gesture. "Another successful project. _slave.slaveName is going to make a lovely addition to your little collection."`
+			`With their latest genemodding project complete, Dr. Nieskowitz proudly presents to you a healthy, unconscious catboy, floating suspended in the tube of thick green liquid you use to grow them. "Looks like he came out just fine." The aging doctor says with an authoritative gesture. "Another successful project. ${slave.slaveName} is going to make a lovely addition to your little collection."`
 		]);
 
 		App.Events.addResponses(node, [new App.Events.Result(`Bring your new slave back home`, home)]);
diff --git a/src/Mods/Catmod/events/scheduled/vatcatgirl.js b/src/Mods/Catmod/events/scheduled/vatcatgirl.js
index 1bf3bd288d444c3d221d9bc92c1ae4b2aabb0924..4acf7fa5312e92684c412f96c12bed2e7dc21d8e 100644
--- a/src/Mods/Catmod/events/scheduled/vatcatgirl.js
+++ b/src/Mods/Catmod/events/scheduled/vatcatgirl.js
@@ -44,7 +44,7 @@ App.Events.SEVatCatGirl = class SEVatCatGirl extends App.Events.BaseEvent {
 		slave.skill.entertainment = 0;
 		slave.accent = 4;
 		slave.canRecruit = 0;
-		App.Events.addParagraph(node, [`With their latest genemodding project complete, Dr. Nieskowitz proudly presents to you a healthy, unconscious catgirl, floating suspended in the tube of thick green liquid you use to grow them. "Looks like she came out just fine." The aging doctor says with an authoritative gesture. "Another successful project. _slave.slaveName is going to make a lovely addition to your little collection."`]);
+		App.Events.addParagraph(node, [`With their latest genemodding project complete, Dr. Nieskowitz proudly presents to you a healthy, unconscious catgirl, floating suspended in the tube of thick green liquid you use to grow them. "Looks like she came out just fine." The aging doctor says with an authoritative gesture. "Another successful project. ${slave.slaveName} is going to make a lovely addition to your little collection."`]);
 
 		App.Events.addResponses(node, [new App.Events.Result(`Bring your new slave back home`, home)]);
 
diff --git a/src/Mods/SecExp/events/conflictHandler.js b/src/Mods/SecExp/events/conflictHandler.js
index 094090297be3ab408616eda2e59fcaef65115466..1a69bfaa256623919dee1597eb903cd0e9ce22cb 100644
--- a/src/Mods/SecExp/events/conflictHandler.js
+++ b/src/Mods/SecExp/events/conflictHandler.js
@@ -81,6 +81,7 @@ App.Events.conflictHandler = function() {
 	let atkMod = 1;
 	let defMod = 1;
 	let armyMod = V.SecExp.war.attacker.troops / (inBattle ? 80 : 100);
+	const activeSF = V.SF.Toggle && V.SF.Active >= 1;
 	// Battles
 	let militiaMod = (isMajorBattle) ? 1.5 : 1;
 	let slaveMod = (isMajorBattle) ? 1.5 : 1;
@@ -115,7 +116,7 @@ App.Events.conflictHandler = function() {
 
 	if (inBattle) {
 		if (isMajorBattle) {
-			if (V.SF.Toggle && V.SF.Active >= 1) {
+			if (activeSF) {
 				if (V.SF.Squad.Firebase >= 7) {
 					atkMod += (V.SF.Squad.Firebase - 6) * 0.05;
 				}
@@ -292,7 +293,7 @@ App.Events.conflictHandler = function() {
 		}
 	}
 
-	if (inBattle && App.SecExp.battle.deployedUnits('bots') || inRebellion && V.SecExp.units.bots.active === 1) {
+	if (App.SecExp.battle.deployedUnits('bots')) {
 		unitData = App.SecExp.getUnit("bots");
 		attack += unitData.attack * atkMod;
 		defense += unitData.defense * defMod;
@@ -310,7 +311,7 @@ App.Events.conflictHandler = function() {
 		}
 	}
 
-	if (V.SF.Toggle && V.SF.Active >= 1 && (inBattle && V.SecExp.war.deploySF || inRebellion)) {
+	if (activeSF && (inBattle && V.SecExp.war.deploySF || inRebellion)) {
 		unitData = App.SecExp.getUnit("SF");
 		attack += unitData.attack;
 		defense += unitData.defense;
@@ -346,21 +347,22 @@ App.Events.conflictHandler = function() {
 		SFMod = Math.clamp(SFMod, 0.5, 1.5);
 	}
 	let moraleTroopMod = Math.clamp(App.SecExp.battle.troopCount() / 100, 1, (inBattle ? 5 : 10));
+	const modifierSF = activeSF ? 1 : 0;
 
 	if (inBattle) {
-		morale += (App.SecExp.BaseDroneUnit.morale * V.SecExp.units.bots.isDeployed + App.SecExp.BaseMilitiaUnit.morale * militiaMod * App.SecExp.battle.deployedUnits('militia') + App.SecExp.BaseSlaveUnit.morale * slaveMod * App.SecExp.battle.deployedUnits('slaves') + App.SecExp.BaseMercUnit.morale * mercMod * App.SecExp.battle.deployedUnits('mercs') + App.SecExp.BaseSpecialForcesUnit.morale * V.SecExp.war.deploySF * SFMod) / (V.SecExp.units.bots.isDeployed + App.SecExp.battle.deployedUnits('militia') + App.SecExp.battle.deployedUnits('slaves') + App.SecExp.battle.deployedUnits('mercs') + V.SecExp.war.deploySF);
+		morale += (App.SecExp.BaseDroneUnit.morale * App.SecExp.battle.deployedUnits('bots') + App.SecExp.BaseMilitiaUnit.morale * militiaMod * App.SecExp.battle.deployedUnits('militia') + App.SecExp.BaseSlaveUnit.morale * slaveMod * App.SecExp.battle.deployedUnits('slaves') + App.SecExp.BaseMercUnit.morale * mercMod * App.SecExp.battle.deployedUnits('mercs') + App.SecExp.BaseSpecialForcesUnit.morale * V.SecExp.war.deploySF * SFMod) / (App.SecExp.battle.deployedUnits('bots') + App.SecExp.battle.deployedUnits('militia') + App.SecExp.battle.deployedUnits('slaves') + App.SecExp.battle.deployedUnits('mercs') + V.SecExp.war.deploySF);
 		if (V.SecExp.buildings.barracks) {
 			morale = morale + morale * V.SecExp.buildings.barracks.luxury * 0.05;	// barracks bonus
 		}
 	} else {
-		morale += (App.SecExp.BaseDroneUnit.morale * V.SecExp.units.bots.active + App.SecExp.BaseMilitiaUnit.morale * App.SecExp.battle.deployedUnits('militia') + App.SecExp.BaseSlaveUnit.morale * App.SecExp.battle.deployedUnits('slaves') + App.SecExp.BaseMercUnit.morale * App.SecExp.battle.deployedUnits('mercs') + App.SecExp.BaseSpecialForcesUnit.morale * V.SF.Active) / (V.SecExp.units.bots.active + App.SecExp.battle.deployedUnits('militia') + App.SecExp.battle.deployedUnits('slaves') + App.SecExp.battle.deployedUnits('mercs') + V.SF.Active);
-		morale += morale * (V.SecExp.buildings.barracks ? V.SecExp.buildings.barracks.luxury * 0.05 : 0);	// barracks bonus
+		morale += (App.SecExp.BaseDroneUnit.morale * App.SecExp.battle.deployedUnits('bots') + App.SecExp.BaseMilitiaUnit.morale * App.SecExp.battle.deployedUnits('militia') + App.SecExp.BaseSlaveUnit.morale * App.SecExp.battle.deployedUnits('slaves') + App.SecExp.BaseMercUnit.morale * App.SecExp.battle.deployedUnits('mercs') + App.SecExp.BaseSpecialForcesUnit.morale * modifierSF) / (App.SecExp.battle.deployedUnits('bots') + App.SecExp.battle.deployedUnits('militia') + App.SecExp.battle.deployedUnits('slaves') + App.SecExp.battle.deployedUnits('mercs') + modifierSF);
+		morale += morale * (V.SecExp.buildings.barracks ? V.SecExp.buildings.barracks.luxury * 0.05 : 1);	// barracks bonus
 	}
 	morale *= moraleTroopMod;
 	if (inBattle) {
-		baseHp = (App.SecExp.BaseDroneUnit.hp * V.SecExp.units.bots.isDeployed + App.SecExp.BaseMilitiaUnit.hp * App.SecExp.battle.deployedUnits('militia') + App.SecExp.BaseSlaveUnit.hp * App.SecExp.battle.deployedUnits('slaves') + App.SecExp.BaseMercUnit.hp * App.SecExp.battle.deployedUnits('mercs') + App.SecExp.BaseSpecialForcesUnit.hp * V.SecExp.war.deploySF) / (V.SecExp.units.bots.isDeployed + App.SecExp.battle.deployedUnits('militia') + App.SecExp.battle.deployedUnits('slaves') + App.SecExp.battle.deployedUnits('mercs') + V.SecExp.war.deploySF);
+		baseHp = (App.SecExp.BaseDroneUnit.hp * App.SecExp.battle.deployedUnits('bots') + App.SecExp.BaseMilitiaUnit.hp * App.SecExp.battle.deployedUnits('militia') + App.SecExp.BaseSlaveUnit.hp * App.SecExp.battle.deployedUnits('slaves') + App.SecExp.BaseMercUnit.hp * App.SecExp.battle.deployedUnits('mercs') + App.SecExp.BaseSpecialForcesUnit.hp * V.SecExp.war.deploySF) / (App.SecExp.battle.deployedUnits('bots') + App.SecExp.battle.deployedUnits('militia') + App.SecExp.battle.deployedUnits('slaves') + App.SecExp.battle.deployedUnits('mercs') + V.SecExp.war.deploySF);
 	} else {
-		baseHp = (App.SecExp.BaseDroneUnit.hp * (V.SecExp.units.bots.active ? V.SecExp.units.bots.active : 0) + App.SecExp.BaseMilitiaUnit.hp * App.SecExp.battle.deployedUnits('militia') + App.SecExp.BaseSlaveUnit.hp * App.SecExp.battle.deployedUnits('slaves') + App.SecExp.BaseMercUnit.hp * App.SecExp.battle.deployedUnits('mercs') + App.SecExp.BaseSpecialForcesUnit.hp * V.SF.Active) / ((V.SecExp.units.bots.active ? V.SecExp.units.bots.active : 0) + App.SecExp.battle.deployedUnits('militia') + App.SecExp.battle.deployedUnits('slaves') + App.SecExp.battle.deployedUnits('mercs') + V.SF.Active);
+		baseHp = (App.SecExp.BaseDroneUnit.hp * App.SecExp.battle.deployedUnits('bots') + App.SecExp.BaseMilitiaUnit.hp * App.SecExp.battle.deployedUnits('militia') + App.SecExp.BaseSlaveUnit.hp * App.SecExp.battle.deployedUnits('slaves') + App.SecExp.BaseMercUnit.hp * App.SecExp.battle.deployedUnits('mercs') + App.SecExp.BaseSpecialForcesUnit.hp * modifierSF) / (App.SecExp.battle.deployedUnits('bots') + App.SecExp.battle.deployedUnits('militia') + App.SecExp.battle.deployedUnits('slaves') + App.SecExp.battle.deployedUnits('mercs') + modifierSF);
 	}
 
 	// calculates opposing army stats
@@ -503,7 +505,7 @@ App.Events.conflictHandler = function() {
 			App.UI.DOM.appendNewElement("div", node, `Slaves morale modifier: +${slaveMod}%`);
 			App.UI.DOM.appendNewElement("div", node, `Militia morale modifier: +${militiaMod}%`);
 			App.UI.DOM.appendNewElement("div", node, `Mercenaries morale modifier: +${mercMod}%`);
-			if (V.SF.Toggle && V.SF.Active >= 1 && V.SecExp.war.deploySF) {
+			if (activeSF && V.SecExp.war.deploySF) {
 				App.UI.DOM.appendNewElement("div", node, `Special Force morale modifier: +${SFMod}%`);
 			}
 			if (V.SecExp.buildings.barracks && V.SecExp.buildings.barracks.luxury >= 1) {
diff --git a/src/Mods/SecExp/events/rebellionOptions.js b/src/Mods/SecExp/events/rebellionOptions.js
index 87e5d88954392baf4a26379913321bccd32bbd71..fc99eb6d960a450d68903ef683477607748e5b27 100644
--- a/src/Mods/SecExp/events/rebellionOptions.js
+++ b/src/Mods/SecExp/events/rebellionOptions.js
@@ -9,21 +9,14 @@ App.Events.rebellionOptions = class rebellionOptions extends App.Events.BaseEven
 
 	execute(node) {
 		let r = [];
-
 		V.nextButton = " ";
 		V.encyclopedia = "Battles";
-		const _isSlaveRebellion = V.SecExp.war.type.includes("Slave");
+		const isSlaveRebellion = V.SecExp.war.type.includes("Slave");
 
 		App.UI.DOM.appendNewElement("h2", node, `${V.SecExp.war.type}!`);
-
-		r.push(`In the end it happened, the`);
-		if (_isSlaveRebellion) {
-			r.push(`slaves`);
-		} else {
-			r.push(`citizens`);
-		}
+		r.push(`In the end it happened, the ${isSlaveRebellion ? "slaves" : "citizens"}`);
 		r.push(`of your arcology dared took up arms and rose up against their betters. Your penthouse is flooded with reports from all over the arcology of small skirmishes between the rioting slaves and the security forces. It appears <strong>${num(Math.trunc(V.SecExp.war.attacker.troops))}</strong> rebels are in the streets right now, building barricades and`);
-		if (_isSlaveRebellion) {
+		if (isSlaveRebellion) {
 			r.push(`freeing their peers.`);
 		} else {
 			r.push(`destroying your property.`);
@@ -46,9 +39,9 @@ App.Events.rebellionOptions = class rebellionOptions extends App.Events.BaseEven
 			App.Events.addParagraph(node, r);
 			r = [];
 			let rebelling = [];
-			for (const _squad of App.SecExp.unit.humanSquads()) {
-				if (_squad.active === 1 && (V.SecExp.war.rebellingID.includes(_squad.ID))) {
-					rebelling.push(_squad.platoonName);
+			for (const squad of App.SecExp.unit.humanSquads()) {
+				if (squad.active === 1 && (V.SecExp.war.rebellingID.includes(squad.ID))) {
+					rebelling.push(squad.platoonName);
 				}
 			}
 			r.push(`${toSentence(rebelling)} betrayed you and joined the insurrection.`);
@@ -57,9 +50,9 @@ App.Events.rebellionOptions = class rebellionOptions extends App.Events.BaseEven
 		if (V.arcologyUpgrade.drones === 1) {
 			defending.push(`Your security drones`);
 		}
-		for (const _squad of App.SecExp.unit.humanSquads()) {
-			if (_squad.active === 1 && (!V.SecExp.war.rebellingID.includes(_squad.ID))) {
-				defending.push(_squad.platoonName);
+		for (const squad of App.SecExp.unit.humanSquads()) {
+			if (squad.active === 1 && (!V.SecExp.war.rebellingID.includes(squad.ID))) {
+				defending.push(squad.platoonName);
 			}
 		}
 		if (V.SF.Toggle && V.SF.Active >= 1) {
diff --git a/src/Mods/SecExp/events/rebellionReport.js b/src/Mods/SecExp/events/rebellionReport.js
index 663cea8f7f561fd7184fcf624e1523296eb41471..32d940507acc4a118479eaa512fcc173d408a05c 100644
--- a/src/Mods/SecExp/events/rebellionReport.js
+++ b/src/Mods/SecExp/events/rebellionReport.js
@@ -631,7 +631,7 @@ App.Events.rebellionReport = function() {
 				}
 			}
 		}
-		if (V.SecExp.units.bots.active === 1) {
+		if (App.SecExp.battle.deployedUnits('bots')) {
 			if (hasLosses) {
 				loss = lossesList.pluck();
 				loss = Math.clamp(loss, 0, V.SecExp.units.bots.troops);
diff --git a/src/Mods/SecExp/events/secExpSmilingMan2.js b/src/Mods/SecExp/events/secExpSmilingMan2.js
index 4f1f0f9b43d6baaaf4ebfab1c4571899f09aa7cc..8cccd4aadd3ce2fcba345dafe3a550d481e68b0f 100644
--- a/src/Mods/SecExp/events/secExpSmilingMan2.js
+++ b/src/Mods/SecExp/events/secExpSmilingMan2.js
@@ -49,8 +49,8 @@ App.Events.secExpSmilingMan2 = class secExpSmilingMan2 extends App.Events.BaseEv
 
 		if (V.arcologies[0].ownership >= 60) {
 			if (V.SecExp.core.authority <= 10000) {
-				const _cells = V.building.findCells(cell => cell.canBeSold());
-				jsEither(_cells).owner = 0;
+				const cells = V.building.findCells(cell => cell.canBeSold());
+				jsEither(cells).owner = 0;
 				r.push(`Vast amount of data relative to the ownership of the arcology is lost. You lost all legal claims to one of the sectors.`);
 			} else {
 				r.push(`Vast amount of data relative to the ownership of the arcology is lost. You would've run the risk of losing ownership of one of the sectors, but fortunately your authority is so high your citizens do not dare question your claims even in the absence of a valid legal case.`);
diff --git a/src/Mods/SecExp/js/secExp.js b/src/Mods/SecExp/js/secExp.js
index 215bb2bd1939fb6e9314915f3ff903c9a50db0dd..7f931eecad976f0d7fa3af9b88569a5dd5a40e23 100644
--- a/src/Mods/SecExp/js/secExp.js
+++ b/src/Mods/SecExp/js/secExp.js
@@ -137,8 +137,7 @@ App.SecExp.generator = (function() {
 
 			if (V.week < 30) {
 				troops *= random(1, 2); // troops *= Math.trunc(random( (1*(1.01+(V.week/100))), (2*(1.01+(V.week/100))) ))) {
-			}
-			if (V.week < 60) {
+			} else if (V.week < 60) {
 				troops *= random(1, 3); // troops *= Math.trunc(random( (1*(1.01+(V.week/200))), (3*(1.01+(V.week/200))) ))) {
 				equip = random(0, 1);
 			} else if (V.week < 90) {
@@ -402,25 +401,17 @@ App.SecExp.battle = (function() {
 	 * @returns {number} unit count
 	 */
 	function deployedUnits(input = '') {
+		const inBattle = V.SecExp.war.type.includes("Attack");
 		let count = {}; let init = 0;
 		App.SecExp.unit.list().forEach(s => { count[s] = 0; });
-		if (V.SecExp.war.type.includes("Attack")) {
-			if (V.SecExp.units.bots.isDeployed > 0) {
-				count.bots++;
-			}
-			if (V.SF.Toggle && V.SF.Active >= 1 && V.SecExp.war.deploySF) {
-				init++;
-			}
-		} else { // rebellion
-			if (V.SecExp.units.bots.active > 0) {
-				count.bots++;
-			}
-			if (V.SF.Toggle && V.SF.Active >= 1) {
-				init++;
-			}
-			if (V.SecExp.war.irregulars > 0) {
-				count.militia++;
-			}
+		if (App.SecExp.unit.isDeployed(V.SecExp.units.bots)) {
+			count.bots++;
+		}
+		if (V.SF.Toggle && V.SF.Active >= 1 && (inBattle && V.SecExp.war.deploySF || !inBattle)) {
+			init++;
+		}
+		if (!inBattle && V.SecExp.war.irregulars > 0) { // rebellion
+			count.militia++;
 		}
 
 		App.SecExp.unit.list().slice(1).forEach(s => { count[s] += V.SecExp.units[s].squads.filter((u) => App.SecExp.unit.isDeployed(u)).length; });
@@ -436,8 +427,8 @@ App.SecExp.battle = (function() {
 	 * @returns {number} troop count
 	 */
 	function troopCount() {
+		const inBattle = V.SecExp.war.type.includes("Attack");
 		let troops = 0;
-
 		/** @param {function(FC.SecExp.PlayerHumanUnitData) : boolean} pred */
 		function countHumanTroops(pred) {
 			let arrays = [];
@@ -450,27 +441,17 @@ App.SecExp.battle = (function() {
 				}
 			}
 		}
-
-		if (V.SecExp.war.type.includes("Attack")) {
-			if (V.SecExp.units.bots.isDeployed === 1) {
-				troops += V.SecExp.units.bots.troops;
-			}
-			countHumanTroops((u) => u.isDeployed === 1);
-			if (V.SF.Toggle && V.SF.Active >= 1 && V.SecExp.war.deploySF) {
-				troops += App.SecExp.troopsFromSF();
-			}
-		} else {
-			if (V.SecExp.war.irregulars > 0) {
-				troops += V.SecExp.war.irregulars;
-			}
-			if (V.SecExp.units.bots.active === 1) {
-				troops += V.SecExp.units.bots.troops;
-			}
-			countHumanTroops((u) => u.active === 1 && !V.SecExp.war.rebellingID.includes(u.ID));
-			if (V.SF.Toggle && V.SF.Active >= 1) {
-				troops += App.SecExp.troopsFromSF();
-			}
+		
+		if (App.SecExp.battle.deployedUnits('bots') > 0) {
+			troops += V.SecExp.units.bots.troops;
+		}
+		if (V.SF.Toggle && V.SF.Active >= 1 && (inBattle && V.SecExp.war.deploySF || !inBattle)) {
+			troops += App.SecExp.troopsFromSF();
+		}
+		if (!inBattle) {
+			troops += V.SecExp.war.irregulars;
 		}
+		countHumanTroops((u) => App.SecExp.unit.isDeployed(u));
 		return troops;
 	}
 
diff --git a/src/Mods/SpecialForce/FirebaseTour.js b/src/Mods/SpecialForce/FirebaseTour.js
index ef6c3b9be6cc3186313de65eae9f7b814c906a80..6a629077790361e4bdf0c90622a8ff6372136de2 100644
--- a/src/Mods/SpecialForce/FirebaseTour.js
+++ b/src/Mods/SpecialForce/FirebaseTour.js
@@ -93,7 +93,7 @@ App.UI.firebaseTour = function() {
 		r.push(`raises a hand in greeting and nods. She is sprawled on a couch, wearing only her combat suit tank top and fingerless gloves. She's holding a near-empty bottle of strong liquor in her hand and you can see a naked slave ${girlU} kneeling on the floor between her legs. The Colonel has her legs wrapped tightly around the ${girlU}'s head, forcing the ${girlU} to service her if ${heU} wants to breathe. The Colonel is close to her climax then suddenly tenses her lower body, thus gripping the ${girlU} even tighter, and throws her head back in ecstasy as she orgasms. She lets out a long breath before finally releasing the ${girlU}, giving ${himU} a hard smack and shouting at ${himU} to fuck off.`);
 		App.Events.addParagraph(node, r);
 		r = [];
-		r.push(`The Colonel finishes off her bottle, tossing it over her shoulder then leaning back on the couch and spreading her legs wide. You look down briefly, falling into your habits of inspection. Her pussy is completely devoid of hair with heavy labia with a very large and hard clit peaking out. Beads of moisture, the result of her excitation, are visible, and you can tell from long experience that she would be tight as a vise. You return your gaze to her face to find her smirking at you. "Like what you see, ${App.SF.ColonelStatus()}?" She waves her hand at the plaza around her, "So do they. But you're not here for pussy. You're here to talk business. So, what's up?"`);
+		r.push(`The Colonel finishes off her bottle, tossing it over her shoulder then leaning back on the couch and spreading her legs wide. You look down briefly, falling into your habits of inspection. Her pussy is completely devoid of hair with heavy labia with a very large and hard clit peeking out. Beads of moisture, the result of her excitation, are visible, and you can tell from long experience that she would be tight as a vise. You return your gaze to her face to find her smirking at you. "Like what you see, ${App.SF.ColonelStatus()}?" She waves her hand at the plaza around her, "So do they. But you're not here for pussy. You're here to talk business. So, what's up?"`);
 	} else if (random(0, 100) > 50) {
 		r.push(`is in no condition initially to greet you. She's naked except for one sock that gives you a very good view of her muscled, taut body laid out across the couch with her feet on the table. She is face-down in a drugged-out stupor in the middle of a wide variety of powders and pills. Perhaps sensing your approach, her head suddenly shoots up and looks at you with unfocused, bloodshot eyes. "Sorry, ${App.SF.ColonelStatus()}," she slurs, wiping her face and weakly holding up a hand. "Hold on a second, I need something to help me out here. Long fucking night." She struggles to sit on the couch and bending over the table, loudly snorts up some of the white powder on it. "Ahhh, fuck," she says, breathing heavily.`);
 		App.Events.addParagraph(node, r);
diff --git a/src/Mods/SpecialForce/Proposal.js b/src/Mods/SpecialForce/Proposal.js
index 2c5aeacf882351e9f0136c4400963481ed0b8cc1..b82e8581b093949bf83074dc52b799ca9c94f421 100644
--- a/src/Mods/SpecialForce/Proposal.js
+++ b/src/Mods/SpecialForce/Proposal.js
@@ -9,7 +9,7 @@ App.Events.SecurityForceProposal = class SecurityForceProposal extends App.Event
 
 	execute(node) {
 		V.nextButton = " ";
-		let _price = 20000;
+		let price = 20000;
 		App.Events.addParagraph(node, [`The Free Cities were founded on the principles of unrestrained anarcho-capitalism. To those with such beliefs, the very idea of possessing an armed force, a key tool of government control, or weapons at all, was anathema.`]);
 
 		App.Events.addParagraph(node, [`In the period since, however, your citizens have seen the value in weaponry. They watched on their news-feed as some Free Cities were sacked by the armies and mobs of the old world, driven by their hatred of the citizens' luxurious lifestyles. They've seen other Cities toppled from within, by slave conspiracies or infighting among citizen groupings with differing beliefs. They've witnessed the distressingly rapid rise of fanatical anti-slavery organizations, who would like nothing more than to see them slowly bled by their own chattel. They are learned people, and they know what happens to slaveowners who lose their power.`]);
@@ -24,16 +24,16 @@ App.Events.SecurityForceProposal = class SecurityForceProposal extends App.Event
 		]);
 
 		if (V.PC.skill.warfare >= 100) {
-			_price *= 0.5;
+			price *= 0.5;
 		} else if (V.PC.skill.warfare >= 50 || V.PC.career === "arcology owner") {
-			_price *= 0.75;
+			price *= 0.75;
 		}
 
 		const choices = [];
 		choices.push(new App.Events.Result(`Prepare for an announcement`, announce,
 			App.Events.makeNode([
 				`Initial costs are`,
-				App.UI.DOM.makeElement("span", cashFormat(_price), ["cash", "inc"]),
+				App.UI.DOM.cashFormat(price),
 				`and upon establishment the force will have significant support costs until it is self-sufficient.`
 			])
 		));
@@ -45,7 +45,7 @@ App.Events.SecurityForceProposal = class SecurityForceProposal extends App.Event
 			V.SF.Active = 1;
 			V.SF.IntroProgress = -1;
 			App.SF.Init();
-			cashX(forceNeg(_price), "specialForcesCap");
+			cashX(forceNeg(price), "specialForcesCap");
 			Engine.play("Security Force Naming-Colonel");
 			return ``;
 		}
diff --git a/src/Mods/SpecialForce/TrickShotNight.js b/src/Mods/SpecialForce/TrickShotNight.js
index c8ffdc81188bab43edaa74c34c443cdab451e5f0..d596ae01d4b03d56b8418b2057376d2e9e9285b5 100644
--- a/src/Mods/SpecialForce/TrickShotNight.js
+++ b/src/Mods/SpecialForce/TrickShotNight.js
@@ -118,7 +118,7 @@ App.Events.TrickShotNight = class TrickShotNight extends App.Events.BaseEvent {
 						cashX(-buyIn, "event");
 					} else {
 						soldier.clothes = "no clothing";
-						App.Event.refreshEventArt(soldier);
+						App.Events.refreshEventArt(soldier);
 						r.push(`For all your skillful maneuvering to reach this position, ultimately the win comes down to chance. This time, however, luck has rendered you the victor. A silence falls over the room as the result is declared, but after some time your opponent breaks the hush by joking that life as your slave is probably easier than fighting for ${V.arcologies[0].name}. After some awkward laughter the night continues, and at the end your former mercenary joins you on your trip back to the penthouse to submit to processing and to begin ${his} new life as your sexual servant. ${He}'s not young, but ${he}'s tough and not distrusting of you due to ${his} service in ${V.SF.Lower}.`);
 						r.push(App.UI.newSlaveIntro(soldier));
 					}
diff --git a/src/art/vector/VectorArtJS.js b/src/art/vector/VectorArtJS.js
index ca812876a7b47b147b6bddc006d00adf52b0b8da..8d29158c477c01ac70742cf7d7f368f9a7ce9578 100644
--- a/src/art/vector/VectorArtJS.js
+++ b/src/art/vector/VectorArtJS.js
@@ -1324,7 +1324,7 @@ App.Art.vectorArtElement = (function() {
 
 	function ArtVectorBelly() {
 		if (slave.belly >= 2000) {
-			/* TODO: add check in penis control. do not draw penis atop belly if _art_belly_scale_factor > 1. */
+			/* TODO: add check in penis control. do not draw penis atop belly if art_belly_scale_factor > 1. */
 			if (slave.navelPiercing === 1) {
 				svgQueue.add("Art_Vector_Belly_Pregnant_Piercing");
 			} else if (slave.navelPiercing === 2) {
diff --git a/src/art/webgl/art.js b/src/art/webgl/art.js
index c14a86e54603bff2ad51de64ab58aa5ccef648f9..5719c4994998047f6e4f2377d2f89c5c2690de6f 100644
--- a/src/art/webgl/art.js
+++ b/src/art/webgl/art.js
@@ -1149,9 +1149,9 @@ App.Art.applyMaterials = function(slave, scene, p) {
 	let sqDO = (D[0] - O[0])**2 + (D[1] - O[1])**2 + (D[2] - O[2])**2;
 
 	// factor to multiply skintone texture to get expected skin color
-	let mA = [O[0]/A[0], O[1]/A[1], O[2]/A[2]];
+	let mA = [O[0]/A[0]*0.92, O[1]/A[1]*0.88, O[2]/A[2]*0.88];
 	let mB = [O[0]/B[0], O[1]/B[1], O[2]/B[2]];
-	let mC = [O[0]/C[0]*0.84, O[1]/C[1]*0.84, O[2]/C[2]*0.84];
+	let mC = [O[0]/C[0], O[1]/C[1], O[2]/C[2]];
 	let mD = [O[0]/D[0], O[1]/D[1], O[2]/D[2]];
 
 	let lA = [lipsColor[0]/A[0], lipsColor[1]/A[1], lipsColor[2]/A[2]];
@@ -1172,7 +1172,7 @@ App.Art.applyMaterials = function(slave, scene, p) {
 		materials.push(["WhiteToneFace", "Ks", S]);
 		materials.push(["WhiteToneEars", "Kd", mA]);
 		materials.push(["WhiteToneEars", "Ks", S]);
-		materials.push(["WhiteToneLips", "Kd", [lA[0]*0.8, lA[1]*0.8, lA[2]*0.8]]);
+		materials.push(["WhiteToneLips", "Kd", [lA[0]*0.9, lA[1]*0.9, lA[2]*0.9]]);
 		materials.push(["WhiteToneLips", "Ns", lipsGloss]);
 		materials.push(["WhiteToneFingernails", "Kd", nailColor]);
 		materials.push(["WhiteToneFingernails", "Ks", S]);
diff --git a/src/art/webgl/ui.js b/src/art/webgl/ui.js
index 0534df47e67854fc085e8128aa1556cc1d649d53..2f6d90315a4bbe8aba6aed2b0f332413eab21f5a 100644
--- a/src/art/webgl/ui.js
+++ b/src/art/webgl/ui.js
@@ -174,8 +174,9 @@ App.Art.createWebglUI = function(container, slave, artSize, scene, p) {
 			break;
 	}
 
-	cvs.width = sz[0];
-	cvs.height = sz[1];
+	let zoom = Math.max(1, window.devicePixelRatio);
+	cvs.width = sz[0] * zoom;
+	cvs.height = sz[1] * zoom;
 	container.setAttribute("style", "position: relative; width: " + sz[0] + "px; height: " + sz[1] + "px;");
 
 	if(typeof V.setSuperSampling === "undefined") {
@@ -191,6 +192,11 @@ App.Art.createWebglUI = function(container, slave, artSize, scene, p) {
 	scene.settings.reinhard = true;
 	scene.settings.whiteM = 1.20;
 
+	if (!V.setColorBurn) {
+		scene.settings.whiteM = 1.30;
+		scene.directionalLights[0].intensity = 1.15;
+	}
+
 	App.Art.engine.render(scene, cvs);
 
 	/*
diff --git a/src/budget/costsBudget.js b/src/budget/costsBudget.js
index cdb27938280afd09a22c0b6d7ac8c89f998810b4..3a44531d671c0555394ad8eb8110f7dac17ce7e6 100644
--- a/src/budget/costsBudget.js
+++ b/src/budget/costsBudget.js
@@ -68,13 +68,13 @@ App.Budget.costs = function() {
 		const r = [];
 		r.push("The current score is");
 		if (V.localEcon > 100) {
-			let _econPercent = Math.trunc(1000 - 100000 / V.localEcon) / 10;
-			r.push(`reducing prices by <span class="cash inc">${_econPercent}%.</span>`);
+			let econPercent = Math.trunc(1000 - 100000 / V.localEcon) / 10;
+			r.push(`reducing prices by <span class="cash inc">${econPercent}%.</span>`);
 		} else if (V.localEcon === 100) {
 			r.push("equal to the base score. There are no price modifications.");
 		} else {
-			let _econPercent = Math.trunc(100000 / V.localEcon - 1000) / 10;
-			r.push(`increasing prices by <span class="cash dec">${_econPercent}%.</span>`);
+			let econPercent = Math.trunc(100000 / V.localEcon - 1000) / 10;
+			r.push(`increasing prices by <span class="cash dec">${econPercent}%.</span>`);
 		}
 		$(p).append(...App.Events.spaceSentences(r));
 
@@ -88,10 +88,10 @@ App.Budget.costs = function() {
 		const p = document.createElement("p");
 		App.UI.DOM.appendNewElement("div", p, "Your weekly costs are as follows:", "detail");
 
-		let _options = new App.UI.OptionsGroup();
-		_options.addOption("", "costsBudget", V.showAllEntries)
+		let options = new App.UI.OptionsGroup();
+		options.addOption("", "costsBudget", V.showAllEntries)
 			.addValue("Normal", 0).on().addValue("Show Empty Entries", 1);
-		p.append(_options.render());
+		p.append(options.render());
 
 		return p;
 	}
diff --git a/src/budget/repBudget.js b/src/budget/repBudget.js
index c46216dbd4f686cc1e1aecd4249661a9d966e285..5cbad0d806633f704e6b387965a0688422160165 100644
--- a/src/budget/repBudget.js
+++ b/src/budget/repBudget.js
@@ -31,10 +31,10 @@ App.Budget.rep = function() {
 		const p = document.createElement("p");
 		App.UI.DOM.appendNewElement("div", p, "Your weekly reputation changes are as follows:", "detail");
 
-		let _options = new App.UI.OptionsGroup();
-		_options.addOption("", "repBudget", V.showAllEntries)
+		let options = new App.UI.OptionsGroup();
+		options.addOption("", "repBudget", V.showAllEntries)
 			.addValue("Normal", 0).on().addValue("Show Empty Entries", 1);
-		p.append(_options.render());
+		p.append(options.render());
 
 		return p;
 	}
diff --git a/src/cheats/cheatEditNeightbors.js b/src/cheats/cheatEditNeightbors.js
index 57235cafa24a2aaff64ddae7ee62c5970ef39b87..0e8535a2deb410a3c3276dad3eb198b5a63aa5f8 100644
--- a/src/cheats/cheatEditNeightbors.js
+++ b/src/cheats/cheatEditNeightbors.js
@@ -3,8 +3,8 @@ App.UI.Cheat.neighbors = function() {
 	const r = [];
 
 	if (V.arcologies.length > 1) {
-		const _neighbors = V.arcologies.length - 1;
-		r.push(`Your arcology has ${_neighbors} ${(_neighbors === 1) ? `neighbor.` : `neighbors.`}`);
+		const neighbors = V.arcologies.length - 1;
+		r.push(`Your arcology has ${neighbors} ${(neighbors === 1) ? `neighbor.` : `neighbors.`}`);
 	} else {
 		r.push(`Your arcology has no neighbors.`);
 	}
@@ -18,12 +18,12 @@ App.UI.Cheat.neighbors = function() {
 				for (const arc of V.arcologies) {
 					compass.delete(arc.direction);// remove directions already in use
 				}
-				const _govTypes = [
+				const govTypes = [
 					"a committee", "a corporation", "an individual", "an oligarchy", "direct democracy", "elected officials"
 				];
 				/** @type {FC.ArcologyState} */
 				const activeArcology = {
-					name: "Arcology X-", direction: compass.random(), government: _govTypes.random(), honeymoon: 0, prosperity: 50, ownership: 50, minority: 20, PCminority: 0, demandFactor: 0, FSSupremacist: "unset", FSSupremacistRace: 0, FSSubjugationist: "unset", FSSubjugationistRace: 0, FSGenderRadicalist: "unset", FSGenderFundamentalist: "unset", FSPaternalist: "unset", FSDegradationist: "unset", FSIntellectualDependency: "unset", FSSlaveProfessionalism: "unset", FSBodyPurist: "unset", FSTransformationFetishist: "unset", FSYouthPreferentialist: "unset", FSMaturityPreferentialist: "unset", FSStatuesqueGlorification: "unset", FSPetiteAdmiration: "unset", FSSlimnessEnthusiast: "unset", FSAssetExpansionist: "unset", FSPastoralist: "unset", FSPhysicalIdealist: "unset", FSChattelReligionist: "unset", FSRomanRevivalist: "unset", FSAztecRevivalist: "unset", FSEgyptianRevivalist: "unset", FSEdoRevivalist: "unset", FSArabianRevivalist: "unset", FSChineseRevivalist: "unset", FSNull: "unset", FSRepopulationFocus: "unset", FSHedonisticDecadence: "unset", FSCummunism: "unset", FSIncestFetishist: "unset", FSRestart: "unset", embargo: 1, embargoTarget: -1, influenceTarget: -1, influenceBonus: 0, rival: 0
+					name: "Arcology X-", direction: compass.random(), government: govTypes.random(), honeymoon: 0, prosperity: 50, ownership: 50, minority: 20, PCminority: 0, demandFactor: 0, FSSupremacist: "unset", FSSupremacistRace: 0, FSSubjugationist: "unset", FSSubjugationistRace: 0, FSGenderRadicalist: "unset", FSGenderFundamentalist: "unset", FSPaternalist: "unset", FSDegradationist: "unset", FSIntellectualDependency: "unset", FSSlaveProfessionalism: "unset", FSBodyPurist: "unset", FSTransformationFetishist: "unset", FSYouthPreferentialist: "unset", FSMaturityPreferentialist: "unset", FSStatuesqueGlorification: "unset", FSPetiteAdmiration: "unset", FSSlimnessEnthusiast: "unset", FSAssetExpansionist: "unset", FSPastoralist: "unset", FSPhysicalIdealist: "unset", FSChattelReligionist: "unset", FSRomanRevivalist: "unset", FSAztecRevivalist: "unset", FSEgyptianRevivalist: "unset", FSEdoRevivalist: "unset", FSArabianRevivalist: "unset", FSChineseRevivalist: "unset", FSNull: "unset", FSRepopulationFocus: "unset", FSHedonisticDecadence: "unset", FSCummunism: "unset", FSIncestFetishist: "unset", FSRestart: "unset", embargo: 1, embargoTarget: -1, influenceTarget: -1, influenceBonus: 0, rival: 0
 				};
 
 				if (V.arcologies.length < 4) {
diff --git a/src/cheats/cheatEditSlave.js b/src/cheats/cheatEditSlave.js
index 947078459efa500de28a2e6d6aeee60b10459093..396bbc382216d1c1f8f2fa1f3e9285bf464b1919 100644
--- a/src/cheats/cheatEditSlave.js
+++ b/src/cheats/cheatEditSlave.js
@@ -15,7 +15,7 @@ App.UI.SlaveInteract.cheatEditSlave = function(slave) {
 	tabBar.addTab("Upper", "upper", App.StartingGirls.upper(V.tempSlave, true));
 	tabBar.addTab("Lower", "lower", App.StartingGirls.lower(V.tempSlave, true));
 	if (V.tempSlave.womb.length > 0) {
-		tabBar.addTab(`Fetus${V.tempSlave.womb.length > 1 ? 'es' : ''}`, "fetuses", analyzePregnancies(V.tempSlave, true));
+		tabBar.addTab(V.tempSlave.womb.length > 1 ? 'Fetuses' : 'Fetus', "fetuses", analyzePregnancies(V.tempSlave, true));
 	}
 	tabBar.addTab("Genes", "genes", genes());
 	tabBar.addTab("Mental", "mental", App.StartingGirls.mental(V.tempSlave, true));
diff --git a/src/cheats/neighborArcologyCheatDatatypeCleanup.js b/src/cheats/neighborArcologyCheatDatatypeCleanup.js
index b6ae454ded73eb150069a0f59cdd27e9b3c378b1..d03b0a7b7a2fcc9c3cb983f2136e72cf10571520 100644
--- a/src/cheats/neighborArcologyCheatDatatypeCleanup.js
+++ b/src/cheats/neighborArcologyCheatDatatypeCleanup.js
@@ -1,9 +1,9 @@
 App.UI.Cheat.neighborArcologyCheatDatatypeCleanup = function() {
 	const node = new DocumentFragment();
 
-	const _clean = App.Update.arcologiesDatatypeCleanup();
-	if (_clean) {
-		App.UI.DOM.appendNewElement("p", node, _clean);
+	const clean = App.Update.arcologiesDatatypeCleanup();
+	if (clean) {
+		App.UI.DOM.appendNewElement("p", node, clean);
 	}
 
 	App.UI.DOM.appendNewElement("p", node, "You have CHEATED your way to influencing the neighboring arcologies. They have been unscrupulously directed according to your CHEAT whims.");
diff --git a/src/debugging/debugJS.js b/src/debugging/debugJS.js
index 503a6f8b0d8425c1f6f9295d05e342b396fa56d7..9e7c48e295ee64db09ab703d1a710d207cf83def 100644
--- a/src/debugging/debugJS.js
+++ b/src/debugging/debugJS.js
@@ -2,7 +2,7 @@
 /* eslint-disable no-var */
 /*
 Given an object, this will return an array where for each property of the original object, we include the object
-{variable: property, oldVal: _oldDiff.property, newVal: _newDiff.property}
+{variable: property, oldVal: oldDiff.property, newVal: newDiff.property}
 */
 globalThis.generateDiffArray = function(obj) {
 	let diffArray = Object.keys(obj).map(function(key) {
diff --git a/src/endWeek/economics/arcmgmt.js b/src/endWeek/economics/arcmgmt.js
index ba08a18315ebd863f2d4c5b5513cf4cc7611d18c..60e8b70996a0abda268a9e49a01b71e5725575bc 100644
--- a/src/endWeek/economics/arcmgmt.js
+++ b/src/endWeek/economics/arcmgmt.js
@@ -2,25 +2,25 @@ App.EndWeek.arcManagement = function() {
 	const el = new DocumentFragment();
 	const secExpImmigrationBonus = App.SecExp.propagandaEffects("immigration");
 	let r;
-	let _enslaved;
-	let _crime;
-	let _terrain;
-	let _transportHub;
-	let _honeymoon;
-	let _LCD;
-	let _SCD;
-	let _LSCD;
-	let _MCD;
-	let _UCD;
-	let _TCD;
-	let _rentMultiplier;
-	let _AWeekGrowth;
-	let _econMult;
+	let enslaved;
+	let crime;
+	let terrain;
+	let transportHub;
+	let honeymoon;
+	let LCD;
+	let SCD;
+	let LSCD;
+	let MCD;
+	let UCD;
+	let TCD;
+	let rentMultiplier;
+	let AWeekGrowth;
+	let econMult;
 
 	if (V.useTabs === 0) {
 		App.UI.DOM.appendNewElement("h2", el, "Arcology Management");
 	}
-	const _schools = App.Utils.schoolCounter();
+	const schoolNumber = App.Utils.schoolCounter();
 
 	App.UI.DOM.appendNewElement("p", el, ownershipReport(false));
 
@@ -49,31 +49,31 @@ App.EndWeek.arcManagement = function() {
 	More elite citizens require their own slaves and will cause the population of slaves to increase as they move in. FS and policies will impact how many slaves they desire and how productive they are. The PC's menials also compete for labor within the arcology. Slaves can now 'expire', speed depends on FS and policies. Default lifespan for menials is an average of ~4 years. */
 
 	V.oldACitizens = V.ACitizens;
-	let _FSScore = 0; /* FS progress for tourism */
-	let	_slaveDemandU = 1; /* Changes to upperClass slave demand */
-	let	_slaveDemandT = 1; /* Changes to topClass slave demand */
-	let	_expirationFS = 0.005; /* Changes to likelihood of slave death */
-	let _expirationLC = 0.003; /* Changes to likelihood of lowerClass death */
-	let _expirationMC = 0.002; /* Changes to likelihood of middleClass death */
-	let _expirationUC = 0.001; /* Changes to likelihood of upperClass death */
-	let _expirationTC = 0.001; /* Changes to likelihood of topClass death */
-	let	_slaveProductivity = 0.8; /* Changes to slave productivity*/
-	let	_lowerClass = 0; /* Fixed amount of changes to lowerClass interest to move in*/
-	let	_lowerClassP = 1; /* Scaling changes to lowerClass interest ("stacking bonus")*/
-	let	_welfareFS = 0.004; /* Changes to likelihood of lowerClass getting enslaved*/
-	let	_middleClass = 0; /* See lowerClass examples for the rest of these*/
-	let	_middleClassP = 1;
-	let	_upperClass = 0;
-	let	_upperClassP = 1;
-	let	_topClass = 0;
-	let	_topClassP = 1;
+	let FSScore = 0; /* FS progress for tourism */
+	let	slaveDemandU = 1; /* Changes to upperClass slave demand */
+	let	slaveDemandT = 1; /* Changes to topClass slave demand */
+	let	expirationFS = 0.005; /* Changes to likelihood of slave death */
+	let expirationLC = 0.003; /* Changes to likelihood of lowerClass death */
+	let expirationMC = 0.002; /* Changes to likelihood of middleClass death */
+	let expirationUC = 0.001; /* Changes to likelihood of upperClass death */
+	let expirationTC = 0.001; /* Changes to likelihood of topClass death */
+	let	slaveProductivity = 0.8; /* Changes to slave productivity*/
+	let	lowerClass = 0; /* Fixed amount of changes to lowerClass interest to move in*/
+	let	lowerClassP = 1; /* Scaling changes to lowerClass interest ("stacking bonus")*/
+	let	welfareFS = 0.004; /* Changes to likelihood of lowerClass getting enslaved*/
+	let	middleClass = 0; /* See lowerClass examples for the rest of these*/
+	let	middleClassP = 1;
+	let	upperClass = 0;
+	let	upperClassP = 1;
+	let	topClass = 0;
+	let	topClassP = 1;
 
 	el.append(fsImpact());
 	el.append(policiesImpact());
 
 	const schoolSubsidy = Array.from(App.Data.misc.schools.keys()).reduce((acc, current) => acc + V[current].subsidize, 0);
-	_middleClass += (schoolSubsidy) * 40;
-	_middleClassP *= 1 + (schoolSubsidy) * 0.005;
+	middleClass += (schoolSubsidy) * 40;
+	middleClassP *= 1 + (schoolSubsidy) * 0.005;
 
 	r = [];
 	r.push(slaveRetirement());
@@ -83,13 +83,13 @@ App.EndWeek.arcManagement = function() {
 
 	citizenToSlave();
 
-	V.GDP = Math.trunc(((V.NPCSlaves + V.menials) * 0.35 * _slaveProductivity) + (V.lowerClass * 0.35) + (V.middleClass * 0.75) + (V.upperClass * 2) + (V.topClass * 10)) / 10;
+	V.GDP = Math.trunc(((V.NPCSlaves + V.menials) * 0.35 * slaveProductivity) + (V.lowerClass * 0.35) + (V.middleClass * 0.75) + (V.upperClass * 2) + (V.topClass * 10)) / 10;
 
 	/* formula to calculate localEcon effect */
 	if (V.localEcon >= 100) {
-		_econMult = (1 + 1.15 * (Math.trunc(1000-100000/200)/8.5)/100);
+		econMult = (1 + 1.15 * (Math.trunc(1000-100000/200)/8.5)/100);
 	} else {
-		_econMult = (1/(1 + 5 * Math.sqrt(Math.trunc(100000/50-1000)/8.5)/100));
+		econMult = (1/(1 + 5 * Math.sqrt(Math.trunc(100000/50-1000)/8.5)/100));
 	}
 
 	if (!isFrozen()) {
@@ -105,12 +105,12 @@ App.EndWeek.arcManagement = function() {
 	}
 	V.ACitizens = V.lowerClass + V.middleClass + V.upperClass + V.topClass;
 	if (V.cheatMode === 1 || V.debugMode === 1) {
-		appendDiv(`${V.arcologies[0].prosperity} Prosperity | ${_FSScore} FS Score | ${_honeymoon} Honeymoon | ${_transportHub} Transporthub | ${_terrain} Terrain | ${_crime} Crime`);
-		appendDiv(`${num(_LSCD)} Lower + Slave Class Demand | ${num(_SCD)} Slave Class Demand | ${num(_slaveProductivity)} Slave Productivity`);
-		appendDiv(`${num(_LCD)} Lower Class Demand | ${num(_lowerClassP)} LC Multiplier`);
-		appendDiv(`${num(_MCD)} Middle Class Demand | ${num(_middleClassP)} MC Multiplier`);
-		appendDiv(`${num(_UCD)} Upper Class Demand | ${num(_upperClassP)} UC Multiplier`);
-		appendDiv(`${num(_TCD)} Top Class Demand | ${num(_topClassP)} TC Multiplier`);
+		appendDiv(`${V.arcologies[0].prosperity} Prosperity | ${FSScore} FS Score | ${honeymoon} Honeymoon | ${transportHub} Transporthub | ${terrain} Terrain | ${crime} Crime`);
+		appendDiv(`${num(LSCD)} Lower + Slave Class Demand | ${num(SCD)} Slave Class Demand | ${num(slaveProductivity)} Slave Productivity`);
+		appendDiv(`${num(LCD)} Lower Class Demand | ${num(lowerClassP)} LC Multiplier`);
+		appendDiv(`${num(MCD)} Middle Class Demand | ${num(middleClassP)} MC Multiplier`);
+		appendDiv(`${num(UCD)} Upper Class Demand | ${num(upperClassP)} UC Multiplier`);
+		appendDiv(`${num(TCD)} Top Class Demand | ${num(topClassP)} TC Multiplier`);
 	}
 	const percOfPop = (n) => Math.trunc((n / (V.ACitizens + V.ASlaves)) * 1000) / 10;
 	appendDiv(`${V.arcologies[0].name} is home to the following:`);
@@ -225,122 +225,122 @@ App.EndWeek.arcManagement = function() {
 	App.Events.addParagraph(el, r);
 	r = [];
 
-	_rentMultiplier = 1;
+	rentMultiplier = 1;
 	if (V.arcologies[0].FSPaternalistLaw === 1) {
-		_rentMultiplier *= 0.95;
+		rentMultiplier *= 0.95;
 		r.push(`Tenants who can prove that they abstain from certain practices are given a reduction to their rent.`);
 	}
 	if (V.arcologies[0].FSYouthPreferentialistLaw === 1) {
-		_rentMultiplier *= 0.95;
+		rentMultiplier *= 0.95;
 		r.push(`Younger citizens are offered subsidized rent to encourage young people to join the free population of your arcology.`);
 	} else if (V.arcologies[0].FSMaturityPreferentialistLaw === 1) {
-		_rentMultiplier *= 0.95;
+		rentMultiplier *= 0.95;
 		r.push(`Older citizens are offered subsidized rent to encourage mature people to join the free population of your arcology.`);
 	}
 	if (V.arcologies[0].FSPetiteAdmirationLaw === 1) {
-		_rentMultiplier *= 0.95;
+		rentMultiplier *= 0.95;
 		r.push(`Citizens are offered subsidized rent to take drastically shorter partners and harem members.`);
 	} else if (V.arcologies[0].FSStatuesqueGlorificationLaw === 1) {
-		_rentMultiplier *= 0.95;
+		rentMultiplier *= 0.95;
 		r.push(`Tall citizens are offered rent subsidies, at the expense of short citizens, to encourage more statuesque individuals to join the free population of your arcology.`);
 	}
 	if (V.arcologies[0].FSRepopulationFocusLaw === 1) {
-		_rentMultiplier *= 0.95;
+		rentMultiplier *= 0.95;
 		r.push(`Pregnant citizens are offered subsidized rent to encourage free women to become pregnant and pregnant women to join the free population of your arcology.`);
 	} else if (V.arcologies[0].FSRestartLaw === 1) {
-		_rentMultiplier *= 1.05;
+		rentMultiplier *= 1.05;
 		r.push(`Non-Elite citizens who refuse to be sterilized face a moderate tax and the looming possibility of expulsion or enslavement.`);
 	}
 	if (V.arcologies[0].FSHedonisticDecadenceLaw === 1) {
-		_rentMultiplier *= 0.95;
+		rentMultiplier *= 0.95;
 		r.push(`Food vendors are offered subsidized rent and operating expenses to set up shop in your arcology.`);
 	}
 	if (V.secExpEnabled > 0) {
 		if (V.SecExp.edicts.alternativeRents === 1) { // A silly policy
 			r.push(`Your citizens are allowed to pay their rents in slaves rather than cash and a few financially challenged individuals make use of this.`);
-			_rentMultiplier *= 0.95;
-			const _movement = random(0, 3);
-			V.menials += _movement;
-			V.NPCSlaves -= _movement;
+			rentMultiplier *= 0.95;
+			const movement = random(0, 3);
+			V.menials += movement;
+			V.NPCSlaves -= movement;
 		}
 		if (V.SecExp.edicts.defense.discountMercenaries === 1) {
 			r.push(`Mercenaries willing to come to your arcology are given a discount on rent.`);
-			_rentMultiplier *= 0.98;
+			rentMultiplier *= 0.98;
 		}
 		if (V.SecExp.edicts.defense.privilege.militiaSoldier === 1) {
 			r.push(`Citizens in the militia are exempt from rent payment.`);
-			_rentMultiplier *= 0.98;
+			rentMultiplier *= 0.98;
 		}
 	}
 	if (V.arcologies[0].FSArabianRevivalistLaw === 1) {
-		_rentMultiplier *= 1.05;
+		rentMultiplier *= 1.05;
 		r.push(`Those of your citizens who have not yet subscribed to the society you are building are permitted to live and do business here, but must pay a moderate jizya tax for the privilege as part of their rent.`);
 	}
 	if (V.arcologies[0].FSNeoImperialistLaw2 === 1) {
-		_rentMultiplier *= 1.05;
+		rentMultiplier *= 1.05;
 		r.push(`Your Barons, equipped with golden bands as a symbol of office, flit about their assigned sections of the arcology to personally check up on businesses and punish petty criminals. They make any evasion of your rent extraordinarily difficult, and consistently earn you more than they take.`);
 	}
 	App.Events.addParagraph(el, r);
 	r = [];
-	_rentMultiplier *= 1 + (5 - V.baseDifficulty) / 20;
-	const _rents = Math.trunc((V.lowerClass * V.rent.lowerClass + V.middleClass * V.rent.middleClass + V.upperClass * V.rent.upperClass + V.topClass * V.rent.topClass) * _rentMultiplier / 25);
-	if (!Number.isInteger(_rents)) {
+	rentMultiplier *= 1 + (5 - V.baseDifficulty) / 20;
+	const rents = Math.trunc((V.lowerClass * V.rent.lowerClass + V.middleClass * V.rent.middleClass + V.upperClass * V.rent.upperClass + V.topClass * V.rent.topClass) * rentMultiplier / 25);
+	if (!Number.isInteger(rents)) {
 		appendDiv(`<span class="red">Error: rents is outside accepted range, please report this issue</span>`);
 	} else {
-		cashX(_rents, "rents");
+		cashX(rents, "rents");
 	}
 
-	r.push(`This week, rents from ${V.arcologies[0].name} came to <span class="yellowgreen">${cashFormat(_rents)}.</span>`);
+	r.push(`This week, rents from ${V.arcologies[0].name} came to <span class="yellowgreen">${cashFormat(rents)}.</span>`);
 	if (V.difficultySwitch === 0) {
 		if (V.localEcon < 100) {
-			let _bribes = (V.week * 100) + random(-100, 100);
+			let bribes = (V.week * 100) + random(-100, 100);
 			if (V.cash > 1000) {
-				_bribes += Math.trunc(V.cash * 0.02);
+				bribes += Math.trunc(V.cash * 0.02);
 			}
-			r.push(`The <span class="red">degenerating world economy</span> makes supplying and maintaining ${V.arcologies[0].name} extremely difficult. This week, bribes and other costs to keep it running came to <span class="yellowgreen">${cashFormat(_bribes)}.</span>`);
-			cashX(forceNeg(_bribes), "rents");
+			r.push(`The <span class="red">degenerating world economy</span> makes supplying and maintaining ${V.arcologies[0].name} extremely difficult. This week, bribes and other costs to keep it running came to <span class="yellowgreen">${cashFormat(bribes)}.</span>`);
+			cashX(forceNeg(bribes), "rents");
 		}
 	}
 
 	if (V.menials + V.menialBioreactors + V.fuckdolls > 0) {
-		let _menialEarnings = 0;
-		let _bioreactorEarnings = 0;
-		let _fuckdollsEarnings = 0;
+		let menialEarnings = 0;
+		let bioreactorEarnings = 0;
+		let fuckdollsEarnings = 0;
 		r.push(`You own`);
 		if (V.menials > 0) {
-			if (V.menials > Math.trunc(_LSCD / _slaveProductivity - _SCD)) {
-				_menialEarnings += Math.max(Math.trunc(_LSCD / _slaveProductivity - _SCD) * 10, 0);
+			if (V.menials > Math.trunc(LSCD / slaveProductivity - SCD)) {
+				menialEarnings += Math.max(Math.trunc(LSCD / slaveProductivity - SCD) * 10, 0);
 				r.push(`<span class="red">more menial slaves than there was work,</span> consider selling some.`);
-				if (_menialEarnings === 0) {
+				if (menialEarnings === 0) {
 					r.push(`Actually, consider selling them all...demand for labor is so low that <span class="red">none of them made any money</span> this week.`);
 				}
 				r.push(`<br> You own`);
 			} else {
-				_menialEarnings = V.menials * 10;
+				menialEarnings = V.menials * 10;
 				if (V.Sweatshops > 0) {
 					if (V.Sweatshops * 500 <= V.menials) {
-						_menialEarnings += V.Sweatshops * 7000;
-						_menialEarnings += (V.menials - V.Sweatshops * 500) * 10;
+						menialEarnings += V.Sweatshops * 7000;
+						menialEarnings += (V.menials - V.Sweatshops * 500) * 10;
 					} else {
-						_menialEarnings += V.menials * 14;
+						menialEarnings += V.menials * 14;
 					}
 				}
 			}
 			if (V.illegalDeals.menialDrug === 1) {
-				_menialEarnings = Math.trunc(_menialEarnings * 1.5);
+				menialEarnings = Math.trunc(menialEarnings * 1.5);
 			}
 			if (V.menials > 1) {
 				r.push(`${num(V.menials)} menial slaves${((V.menialBioreactors > 0) && (V.fuckdolls === 0)) ? ` and` : `,`}`);
 			} else {
 				r.push(`one menial slave${((V.menialBioreactors > 0) && (V.fuckdolls === 0)) ? ` and` : `,`}`);
 			}
-			cashX(_menialEarnings, "menialTrades");
+			cashX(menialEarnings, "menialTrades");
 		}
 
 		if (V.menialBioreactors > 0) {
-			_bioreactorEarnings = V.menialBioreactors * (10 + (10 * V.arcologies[0].FSPastoralistLaw));
+			bioreactorEarnings = V.menialBioreactors * (10 + (10 * V.arcologies[0].FSPastoralistLaw));
 			if (V.dairy && V.dairyUpgradeMenials) {
-				_bioreactorEarnings += V.menialBioreactors * 5;
+				bioreactorEarnings += V.menialBioreactors * 5;
 			}
 			if (V.menialBioreactors > 1) {
 				r.push(`${num(V.menialBioreactors)} standard bioreactors,`);
@@ -350,44 +350,44 @@ App.EndWeek.arcManagement = function() {
 			if (V.fuckdolls > 0) {
 				r.push(`and`);
 			}
-			cashX(_bioreactorEarnings, "menialBioreactors");
+			cashX(bioreactorEarnings, "menialBioreactors");
 		}
 
 
 		if (V.fuckdolls > 0) {
 			const arcadeFreeSpace = V.arcade - App.Entity.facilities.arcade.employeesIDs().size;
-			const _fuckdollsArcade = arcadeFreeSpace > 0 ? Math.min(arcadeFreeSpace, V.fuckdolls) : 0;
-			let _arcadeUpgradeInjectors;
+			const fuckdollsArcade = arcadeFreeSpace > 0 ? Math.min(arcadeFreeSpace, V.fuckdolls) : 0;
+			let arcadeUpgradeInjectors;
 			if (V.arcadeUpgradeInjectors === 0) {
-				_arcadeUpgradeInjectors = 0;
+				arcadeUpgradeInjectors = 0;
 			} else if (V.arcadeUpgradeInjectors === 1) {
-				_arcadeUpgradeInjectors = 1;
+				arcadeUpgradeInjectors = 1;
 			} else {
-				_arcadeUpgradeInjectors = 1.5;
+				arcadeUpgradeInjectors = 1.5;
 			}
-			_fuckdollsEarnings = Math.trunc(((V.fuckdolls - _fuckdollsArcade) * 140 + _fuckdollsArcade * (175 + 35 * _arcadeUpgradeInjectors)) * (V.arcadePrice - 0.5) / 10);
+			fuckdollsEarnings = Math.trunc(((V.fuckdolls - fuckdollsArcade) * 140 + fuckdollsArcade * (175 + 35 * arcadeUpgradeInjectors)) * (V.arcadePrice - 0.5) / 10);
 			/* The "/ 10" at the end is just there to keep the price in line with other current prices, hopefully prices will get to a spot where this can be dropped*/
 			if (V.fuckdolls > 1) {
 				r.push(`${num(V.fuckdolls)} standard Fuckdolls,`);
 			} else if (V.fuckdolls === 1) {
 				r.push(`one Fuckdoll,`);
 			}
-			if (_fuckdollsArcade > 1) {
-				r.push(`${num(_fuckdollsArcade)} of which are stationed in the arcade,`);
-			} else if (_fuckdollsArcade === 1 && V.fuckdolls > 1) {
+			if (fuckdollsArcade > 1) {
+				r.push(`${num(fuckdollsArcade)} of which are stationed in the arcade,`);
+			} else if (fuckdollsArcade === 1 && V.fuckdolls > 1) {
 				r.push(`one of which is stationed in the arcade,`);
-			} else if (_fuckdollsArcade === 1) {
+			} else if (fuckdollsArcade === 1) {
 				r.push(`which is stationed in the arcade,`);
 			}
 			if (V.policies.publicFuckdolls === 1) {
-				repX(_fuckdollsEarnings / 5, "fuckdolls");
-				_fuckdollsEarnings = Math.trunc(V.fuckdolls * -0.5);
+				repX(fuckdollsEarnings / 5, "fuckdolls");
+				fuckdollsEarnings = Math.trunc(V.fuckdolls * -0.5);
 				/* The upkeep of a Fuckdoll*/
 			}
-			cashX(_fuckdollsEarnings, "fuckdolls");
+			cashX(fuckdollsEarnings, "fuckdolls");
 		}
 
-		const totalEarnings = _menialEarnings + _bioreactorEarnings + _fuckdollsEarnings;
+		const totalEarnings = menialEarnings + bioreactorEarnings + fuckdollsEarnings;
 		if (totalEarnings > 0) {
 			r.push(`earning you <span class="yellowgreen">${cashFormat(totalEarnings)}.</span>`);
 		} else if (totalEarnings === 0) {
@@ -400,222 +400,222 @@ App.EndWeek.arcManagement = function() {
 		}
 	}
 
-	_AWeekGrowth = V.AGrowth;
-	if (_AWeekGrowth + V.arcologies[0].prosperity > V.AProsperityCap) {
+	AWeekGrowth = V.AGrowth;
+	if (AWeekGrowth + V.arcologies[0].prosperity > V.AProsperityCap) {
 		r.push(`<span class="yellow">${V.arcologies[0].name} is at its maximum prosperity, so rents will not increase until it is improved.</span>`);
-	} else if ((2 * _AWeekGrowth) + V.arcologies[0].prosperity >= V.AProsperityCap) {
+	} else if ((2 * AWeekGrowth) + V.arcologies[0].prosperity >= V.AProsperityCap) {
 		r.push(`<span class="yellow">Your arcology is nearly at its maximum prosperity.</span>`);
-		V.arcologies[0].prosperity += _AWeekGrowth;
+		V.arcologies[0].prosperity += AWeekGrowth;
 	} else {
 		if (V.arcologies[0].ownership >= 100) {
 			r.push(`Your controlling interest in ${V.arcologies[0].name} allows you to lead it economically, <span class="green">supercharging growth.</span>`);
-			_AWeekGrowth += 3;
+			AWeekGrowth += 3;
 		} else if (V.arcologies[0].ownership >= random(40, 100)) {
 			r.push(`Your interest in ${V.arcologies[0].name} allows you to lead it economically, <span class="green">boosting growth.</span>`);
-			_AWeekGrowth++;
+			AWeekGrowth++;
 		}
 		if (V.arcologies[0].prosperity < (V.rep / 100)) {
 			r.push(`Your impressive reputation relative to ${V.arcologies[0].name}'s prosperity <span class="green">drives an increase in business.</span>`);
-			_AWeekGrowth++;
+			AWeekGrowth++;
 		} else if (V.rep > 18000) { // no growth penalty if PC is at high rep, no matter how high prosperity goes
 		} else if (V.arcologies[0].prosperity > (V.rep / 60)) {
 			r.push(`Your low reputation relative to ${V.arcologies[0].name}'s prosperity <span class="red">seriously impedes business growth.</span>`);
-			_AWeekGrowth -= 2;
+			AWeekGrowth -= 2;
 		} else if (V.arcologies[0].prosperity > (V.rep / 80)) {
 			r.push(`Your unimpressive reputation relative to ${V.arcologies[0].name}'s prosperity <span class="yellow">slows business growth.</span>`);
-			_AWeekGrowth--;
+			AWeekGrowth--;
 		}
 		if (V.secExpEnabled > 0) {
 			if (V.SecExp.core.trade <= 20) {
-				_AWeekGrowth += 1;
+				AWeekGrowth += 1;
 			} else if (V.SecExp.core.trade <= 40) {
-				_AWeekGrowth += 2;
+				AWeekGrowth += 2;
 			} else if (V.SecExp.core.trade <= 60) {
-				_AWeekGrowth += 3;
+				AWeekGrowth += 3;
 			} else if (V.SecExp.core.trade <= 80) {
-				_AWeekGrowth += 4;
+				AWeekGrowth += 4;
 			} else {
-				_AWeekGrowth += 5;
+				AWeekGrowth += 5;
 			}
 
 			if (V.SecExp.smilingMan.progress === 10) {
 				r.push(`The ex-criminal known to the world as The Smiling Man puts her impressive skills to work, improving the financial situation of the arcology with ease.`);
-				_AWeekGrowth++;
+				AWeekGrowth++;
 			}
 		}
 		if (V.personalAttention === "business") {
 			if ((V.PC.skill.trading >= 100) || (V.PC.career === "arcology owner")) {
 				r.push(`Your <span class="skill player">business focus and your experience</span> allow you to greatly assist in advancing the arcology's prosperity.`);
-				_AWeekGrowth += 2;
+				AWeekGrowth += 2;
 			} else {
 				r.push(`Your business focus allows you to help improve the arcology's prosperity.`);
-				_AWeekGrowth++;
+				AWeekGrowth++;
 			}
 			if (V.PC.actualAge >= 50) {
 				if (V.arcologies[0].FSMaturityPreferentialistLaw === 1) {
 					r.push(`You are able to leverage your long seniority in the business community using the arcology's favorable laws to further advance prosperity.`);
-					_AWeekGrowth++;
+					AWeekGrowth++;
 				}
 			} else if (V.PC.actualAge < 35) {
 				if (V.arcologies[0].FSYouthPreferentialistLaw === 1) {
 					r.push(`You are able to leverage your freshness in the business community using the arcology's favorable laws to further advance prosperity.`);
-					_AWeekGrowth++;
+					AWeekGrowth++;
 				}
 			}
 		}
 		if (V.arcologies[0].FSNull !== "unset") {
 			r.push(`Your cultural openness is a powerful driver of economic activity.`);
-			_AWeekGrowth += Math.max(1, Math.trunc(V.arcologies[0].FSNull / 25));
+			AWeekGrowth += Math.max(1, Math.trunc(V.arcologies[0].FSNull / 25));
 		}
 		if (V.arcologies[0].FSRestart !== "unset") {
 			r.push(`Your powerful connections open many avenues of economic expansion.`);
-			_AWeekGrowth += Math.max(1, Math.trunc(V.arcologies[0].FSRestart / 10));
+			AWeekGrowth += Math.max(1, Math.trunc(V.arcologies[0].FSRestart / 10));
 		}
 		if (V.arcologies[0].FSPaternalist >= random(1, 100)) {
 			r.push(`This week, the careful attention to slave welfare your new society emphasizes has been a driver of prosperity.`);
-			_AWeekGrowth++;
+			AWeekGrowth++;
 		}
 		if (V.arcologies[0].FSHedonisticDecadence >= random(1, 100)) {
 			r.push(`This week, several new businesses opened local branches or broke ground, greatly increasing prosperity.`);
-			_AWeekGrowth += 2;
+			AWeekGrowth += 2;
 		}
 		if (V.arcologies[0].FSChattelReligionistCreed === 1) {
 			if (V.nicaea.focus === "owners") {
 				r.push(`The focus on slaveowners' whims in the creed of ${V.nicaea.name} interests the rich and powerful, increasing prosperity.`);
-				_AWeekGrowth += V.nicaea.power;
+				AWeekGrowth += V.nicaea.power;
 			}
 		}
 		if (V.arcologies[0].FSSlaveProfessionalismLaw === 1) {
 			r.push(`The concentrated intelligence of the free population finds innovative ways to spur prosperity.`);
-			_AWeekGrowth++;
+			AWeekGrowth++;
 		}
 		if (V.arcologies[0].FSRomanRevivalist >= random(1, 100)) {
 			r.push(`This week, intense interest in your project to revive Roman values has driven prosperity.`);
-			_AWeekGrowth++;
+			AWeekGrowth++;
 		} else if (V.arcologies[0].FSNeoImperialist >= random(1, 100)) {
 			r.push(`This week, your tightly hierarchical Imperial society's efficient organization has attracted traders and increased prosperity.`);
-			_AWeekGrowth++;
+			AWeekGrowth++;
 		} else if (V.arcologies[0].FSChineseRevivalist !== "unset") {
 			if ((V.HeadGirlID !== 0) && (V.RecruiterID !== 0) && (V.BodyguardID !== 0)) {
 				r.push(`This week, your imperial administration, staffed with a Head Girl, a Recruiter, and a Bodyguard, has improved prosperity.`);
-				_AWeekGrowth += 2;
+				AWeekGrowth += 2;
 			}
 		}
 		if (V.PC.skill.trading >= 100) {
 			r.push(`Your <span class="skill player">business skills</span> drive increased prosperity.`);
-			_AWeekGrowth++;
+			AWeekGrowth++;
 		} else if (V.PC.career === "arcology owner") {
 			r.push(`Your <span class="skill player">experience in the Free Cities</span> helps increase prosperity.`);
-			_AWeekGrowth++;
+			AWeekGrowth++;
 		}
-		if (_schools === 1) {
+		if (schoolNumber === 1) {
 			r.push(`The presence of a slave school in the arcology improves the local economy.`);
-		} else if (_schools > 0) {
+		} else if (schoolNumber > 0) {
 			r.push(`The presence of slave schools in the arcology greatly improves the local economy.`);
 		} else if (V.arcologies[0].prosperity > 80) {
 			r.push(`The lack of a branch campus from a reputable slave school is slowing further development of the local economy.`);
-			_AWeekGrowth--;
+			AWeekGrowth--;
 		}
-		_AWeekGrowth += _schools;
+		AWeekGrowth += schoolNumber;
 		if (V.arcologies[0].FSDegradationistLaw === 1) {
 			r.push(`Requiring menials to be given time to fuck human sex toys in the arcade reduces labor efficiency, slowing growth and costs money for each menial slave you own.`);
-			_AWeekGrowth--;
+			AWeekGrowth--;
 			cashX(forceNeg(V.menials * 3 * V.arcadePrice), "fuckdolls");
 		}
 		if (V.arcologies[0].FSBodyPuristLaw === 1) {
 			r.push(`The drug surcharge used to fund the purity regime reduces growth.`);
-			_AWeekGrowth--;
+			AWeekGrowth--;
 		}
 		if (V.arcologies[0].FSPastoralistLaw === 1) {
 			r.push(`Prosperity improvement is slowed by the regulations on animal products.`);
-			_AWeekGrowth--;
+			AWeekGrowth--;
 		}
 		if (V.arcologies[0].FSPaternalistSMR === 1) {
 			r.push(`Your slave market regulations slow the flow of chattel through the arcology.`);
-			_AWeekGrowth--;
+			AWeekGrowth--;
 		}
 
 		// deactivated with sec Exp as they are modifiers for the trade mechanic
 		if (V.secExpEnabled === 0) {
 			if (V.terrain === "urban") {
 				r.push(`Since your arcology is located in the heart of an urban area, its commerce is naturally vibrant.`);
-				_AWeekGrowth++;
+				AWeekGrowth++;
 			}
 			if (V.terrain === "ravine") {
 				r.push(`Since your arcology is located in the heart of a ravine, its commerce is hindered by a lack of accessibility.`);
-				_AWeekGrowth--;
+				AWeekGrowth--;
 			}
 		}
 
 		if (V.arcologies[0].embargoTarget && V.arcologies[0].embargoTarget !== -1) {
 			r.push(`The local economy is hurt by the double edged sword of your economic warfare.`);
-			_AWeekGrowth -= V.arcologies[0].embargo * 2;
+			AWeekGrowth -= V.arcologies[0].embargo * 2;
 		}
 
-		let _desc = [];
-		let _descNeg = [];
+		let desc = [];
+		let descNeg = [];
 		for (const arcology of V.arcologies) {
-			const _opinion = App.Neighbor.opinion(V.arcologies[0], arcology);
-			if (_opinion >= 100) {
-				_desc.push(arcology.name);
-			} else if (_opinion <= -100) {
-				_descNeg.push(arcology.name);
+			const opinion = App.Neighbor.opinion(V.arcologies[0], arcology);
+			if (opinion >= 100) {
+				desc.push(arcology.name);
+			} else if (opinion <= -100) {
+				descNeg.push(arcology.name);
 			}
 		}
-		if (_desc.length > 0) {
+		if (desc.length > 0) {
 			r.push(`Your arcology's economy benefits from close social alignment with`);
-			if (_descNeg.length > 0) {
-				r.push(`${toSentence(_desc)}, but`);
+			if (descNeg.length > 0) {
+				r.push(`${toSentence(desc)}, but`);
 			} else {
-				r.push(`${toSentence(_desc)}.`);
+				r.push(`${toSentence(desc)}.`);
 			}
-			_AWeekGrowth += _desc.length;
+			AWeekGrowth += desc.length;
 		}
-		if (_descNeg.length > 0) {
-			if (_desc.length === 0) {
+		if (descNeg.length > 0) {
+			if (desc.length === 0) {
 				r.push(`Your arcology's economy is`);
 			}
-			r.push(`hindered by social conflicts with ${toSentence(_descNeg)}.`);
-			_AWeekGrowth -= _descNeg.length;
+			r.push(`hindered by social conflicts with ${toSentence(descNeg)}.`);
+			AWeekGrowth -= descNeg.length;
 		}
 		if (V.policies.alwaysSubsidizeGrowth === 1) {
 			r.push(`Growth was subsidized as planned.`);
-			_AWeekGrowth++;
+			AWeekGrowth++;
 		}
 		if (V.secExpEnabled > 0) {
 			App.Events.addParagraph(el, r);
 			r = [];
 			if (V.SecExp.core.authority > 18000) {
 				r.push(`Your authority is so high it discourages new business, slowing down the economic growth of the arcology.`);
-				_AWeekGrowth--;
+				AWeekGrowth--;
 			}
 			if (V.SecExp.core.security > 80) {
 				r.push(`Your arcology is extremely safe and stable. Many businesses are attracted to it because of this.`);
-				_AWeekGrowth++;
+				AWeekGrowth++;
 			} else if (V.SecExp.core.security < 20) {
 				r.push(`Your arcology's low security is an instability factor simply too dangerous to be ignored. Many businesses avoid your arcology because of this.`);
-				_AWeekGrowth--;
+				AWeekGrowth--;
 			}
 
 			if (V.SecExp.edicts.weaponsLaw === 3) {
 				r.push(`The free flow of weapons in your arcology has a positive impact on its economy.`);
-				_AWeekGrowth++;
+				AWeekGrowth++;
 			} else if (V.SecExp.edicts.weaponsLaw === 2) {
 				r.push(`The fairly liberal flow of weapons in your arcology has a positive impact on its economy.`);
-				_AWeekGrowth++;
+				AWeekGrowth++;
 			}
 			if (V.SecExp.buildings.propHub && V.SecExp.buildings.propHub.upgrades.controlLeaks > 0) {
 				r.push(`The authenticity department prepares extremely accurate, but false financial reports, misleading many of your competitors, allowing your arcology more space to grow undisturbed.`);
-				_AWeekGrowth++;
+				AWeekGrowth++;
 			}
 			if (V.SecExp.smilingMan.progress >= 2) {
 				if (V.SecExp.smilingMan.globalCrisisWeeks && V.SecExp.smilingMan.globalCrisisWeeks > 0) {
 					r.push(`The great global crisis ignited by The Smiling Man plan is a great weight on the shoulders of everyone, causing great harm to the prosperity of the arcology.`);
-					_AWeekGrowth -= random(2, 4);
+					AWeekGrowth -= random(2, 4);
 					V.SecExp.smilingMan.globalCrisisWeeks--;
 				} else if (V.SecExp.smilingMan.progress >= 3) {
 					r.push(`With the global economy recovering from the great crisis unleashed by the Smiling Man, there is plenty of room to grow. Your arcology's prosperity benefits from this greatly.`);
-					_AWeekGrowth++;
+					AWeekGrowth++;
 				}
 				if ((V.SecExp.smilingMan.globalCrisisWeeks) && V.SecExp.smilingMan.globalCrisisWeeks === 0) {
 					delete V.SecExp.smilingMan.globalCrisisWeeks;
@@ -623,18 +623,18 @@ App.EndWeek.arcManagement = function() {
 			}
 			const reactorDamaged = App.SecExp.updateFacilityDamage("reactor");
 			r.push(reactorDamaged.text);
-			_AWeekGrowth -= reactorDamaged.growth;
+			AWeekGrowth -= reactorDamaged.growth;
 
 			const secExpTrade = App.SecExp.tradeReport();
 			r.push(secExpTrade.text);
-			_AWeekGrowth += secExpTrade.bonus;
+			AWeekGrowth += secExpTrade.bonus;
 			App.Events.addParagraph(el, r);
 			r = [];
 		}
-		_AWeekGrowth = Math.trunc(0.5 * _AWeekGrowth);
-		if (_AWeekGrowth > 0) {
+		AWeekGrowth = Math.trunc(0.5 * AWeekGrowth);
+		if (AWeekGrowth > 0) {
 			r.push(`Since ${V.arcologies[0].name} can support more citizens and more activity, <span class="green">its prosperity improved this week.</span>`);
-		} else if (_AWeekGrowth === 0) {
+		} else if (AWeekGrowth === 0) {
 			r.push(`Though ${V.arcologies[0].name} can support more citizens and more activity, <span class="yellow">growth was moribund this week.</span>`);
 		} else {
 			r.push(`Though ${V.arcologies[0].name} can support more citizens and more activity, <span class="red">it lost prosperity this week.</span>`);
@@ -643,67 +643,67 @@ App.EndWeek.arcManagement = function() {
 		App.Events.addNode(el, r);
 		r = [];
 
-		if (isNaN(_AWeekGrowth)) {
+		if (isNaN(AWeekGrowth)) {
 			App.UI.DOM.appendElement("div", el, `Error: AWeekGrowth is NaN`, "red");
 		} else {
-			V.arcologies[0].prosperity += _AWeekGrowth;
+			V.arcologies[0].prosperity += AWeekGrowth;
 		}
 	}
 
-	if (_schools > 0) {
+	if (schoolNumber > 0) {
 		el.append(schools());
 	}
 
 	if (V.assistant.market && V.assistant.market.limit > 0) {
-		let _popCap = menialPopCap();
-		let _menialSlaveValue = menialSlaveCost();
+		let popCap = menialPopCap();
+		let menialSlaveValue = menialSlaveCost();
 		const {HeM, heM} = getPronouns(assistant.pronouns().market).appendSuffix('M');
 		r.push(`Your <span class="bold">business assistant</span> manages the menial slave market.`);
-		if (_menialSlaveValue <= 900 + V.assistant.market.aggressiveness) { /* BUY */
-			let _bulkMax = _popCap.value - V.menials - V.fuckdolls - V.menialBioreactors;
-			if (_bulkMax <= 0) {
+		if (menialSlaveValue <= 900 + V.assistant.market.aggressiveness) { /* BUY */
+			let bulkMax = popCap.value - V.menials - V.fuckdolls - V.menialBioreactors;
+			if (bulkMax <= 0) {
 				r.push(`There is no room in the parts of your arcology you own for more menial slaves.`);
 			} else {
-				if (V.cash > V.assistant.market.limit + _menialSlaveValue) {
-					let _menialBulkPremium = Math.trunc(1 + Math.clamp((V.cash - V.assistant.market.limit) / _menialSlaveValue, 0, _bulkMax) / 400);
+				if (V.cash > V.assistant.market.limit + menialSlaveValue) {
+					let menialBulkPremium = Math.trunc(1 + Math.clamp((V.cash - V.assistant.market.limit) / menialSlaveValue, 0, bulkMax) / 400);
 					r.push(`${HeM} acquires more chattel, since it's a buyers' market.`);
 					if (V.arcologies[0].FSPastoralist !== "unset" && V.arcologies[0].FSPaternalist === "unset") {
-						V.menialBioreactors += Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (_menialSlaveValue + _menialBulkPremium - 100), 0, _bulkMax));
-						V.menialSupplyFactor -= Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (_menialSlaveValue + _menialBulkPremium - 100), 0, _bulkMax));
-						cashX(forceNeg(Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (_menialSlaveValue + _menialBulkPremium - 100), 0, _bulkMax)) * (_menialSlaveValue + _menialBulkPremium - 100)), "menialBioreactorsTransferA");
+						V.menialBioreactors += Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (menialSlaveValue + menialBulkPremium - 100), 0, bulkMax));
+						V.menialSupplyFactor -= Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (menialSlaveValue + menialBulkPremium - 100), 0, bulkMax));
+						cashX(forceNeg(Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (menialSlaveValue + menialBulkPremium - 100), 0, bulkMax)) * (menialSlaveValue + menialBulkPremium - 100)), "menialBioreactorsTransferA");
 					} else if (V.arcologies[0].FSDegradationist !== "unset") {
-						V.fuckdolls += Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / ((_menialSlaveValue + _menialBulkPremium) * 2), 0, _bulkMax));
-						V.menialSupplyFactor -= Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / ((_menialSlaveValue + _menialBulkPremium) * 2), 0, _bulkMax));
-						cashX(forceNeg(Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / ((_menialSlaveValue + _menialBulkPremium) * 2), 0, _bulkMax)) * ((_menialSlaveValue + _menialBulkPremium) * 2)), "fuckdollsTransferA");
+						V.fuckdolls += Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / ((menialSlaveValue + menialBulkPremium) * 2), 0, bulkMax));
+						V.menialSupplyFactor -= Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / ((menialSlaveValue + menialBulkPremium) * 2), 0, bulkMax));
+						cashX(forceNeg(Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / ((menialSlaveValue + menialBulkPremium) * 2), 0, bulkMax)) * ((menialSlaveValue + menialBulkPremium) * 2)), "fuckdollsTransferA");
 					} else {
-						V.menials += Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (_menialSlaveValue + _menialBulkPremium), 0, _bulkMax));
-						V.menialSupplyFactor -= Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (_menialSlaveValue + _menialBulkPremium), 0, _bulkMax));
-						cashX(forceNeg(Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (_menialSlaveValue + _menialBulkPremium), 0, _bulkMax) * (_menialSlaveValue + _menialBulkPremium))), "menialTransferA");
+						V.menials += Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (menialSlaveValue + menialBulkPremium), 0, bulkMax));
+						V.menialSupplyFactor -= Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (menialSlaveValue + menialBulkPremium), 0, bulkMax));
+						cashX(forceNeg(Math.trunc(Math.clamp((V.cash - V.assistant.market.limit) / (menialSlaveValue + menialBulkPremium), 0, bulkMax) * (menialSlaveValue + menialBulkPremium))), "menialTransferA");
 					}
 				}
 			}
-		} else if (_menialSlaveValue >= 1100 - V.assistant.market.aggressiveness) { /* SELL */
+		} else if (menialSlaveValue >= 1100 - V.assistant.market.aggressiveness) { /* SELL */
 			if (V.menials + V.fuckdolls + V.menialBioreactors > 0) {
 				r.push(`${HeM} liquidates your chattel holdings, since it's a sellers' market.`);
 			}
-			let _cashX;
+			let cost;
 			if (V.menials > 0) {
-				_cashX = V.menials * (menialSlaveCost(-V.menials));
+				cost = V.menials * (menialSlaveCost(-V.menials));
 				V.menialDemandFactor -= V.menials;
 				V.menials = 0;
-				cashX(_cashX, "menialTransferA");
+				cashX(cost, "menialTransferA");
 			}
 			if (V.fuckdolls > 0) {
-				_cashX = V.fuckdolls * (menialSlaveCost(-V.fuckdolls) * 2);
+				cost = V.fuckdolls * (menialSlaveCost(-V.fuckdolls) * 2);
 				V.menialDemandFactor -= V.fuckdolls;
 				V.fuckdolls = 0;
-				cashX(_cashX, "fuckdollsTransferA");
+				cashX(cost, "fuckdollsTransferA");
 			}
 			if (V.menialBioreactors > 0) {
-				_cashX = V.menialBioreactors * (menialSlaveCost(-V.menialBioreactors) - 100);
+				cost = V.menialBioreactors * (menialSlaveCost(-V.menialBioreactors) - 100);
 				V.menialDemandFactor -= V.menialBioreactors;
 				V.menialBioreactors = 0;
-				cashX(_cashX, "menialBioreactorsTransferA");
+				cashX(cost, "menialBioreactorsTransferA");
 			}
 		} else {
 			r.push(`Prices are average, so ${heM} does not make any significant moves.`);
@@ -727,338 +727,338 @@ App.EndWeek.arcManagement = function() {
 		const r = [];
 
 		if (V.arcologies[0].FSSupremacist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSSupremacist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 0.04;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 0.05;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * -80;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * -0.004;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * -16;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * -0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 5.4;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 0.002;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 2;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 0.004;
+			FSScore += Math.min(V.arcologies[0].FSSupremacist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 0.04;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 0.05;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * -80;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * -0.004;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * -16;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * -0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 5.4;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 0.002;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 2;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSupremacist, 100) / 20) * 0.004;
 			r.push(`Your racial policies are concentrating power in the hands of ${V.arcologies[0].FSSupremacistRace} people.`); /* perhaps too obvious to bother with printing? */
 		}
 		if (V.arcologies[0].FSSubjugationist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSSubjugationist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 0.04;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 0.05;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * -80;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * -0.004;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * -16;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * -0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 5.4;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 0.002;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 2;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 0.004;
+			FSScore += Math.min(V.arcologies[0].FSSubjugationist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 0.04;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 0.05;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * -80;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * -0.004;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * -16;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * -0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 5.4;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 0.002;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 2;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSubjugationist, 100) / 20) * 0.004;
 			r.push(`Your racial policies are stripping all power from the ${V.arcologies[0].FSSubjugationistRace} people.`); /* perhaps too obvious to bother with printing? */
 		}
 		if (V.arcologies[0].FSGenderRadicalist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSGenderRadicalist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20) * 0.025;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20) * -40;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20) * -0.002;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20);
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20) * 0.002;
+			FSScore += Math.min(V.arcologies[0].FSGenderRadicalist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20) * 0.025;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20) * -40;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20) * -0.002;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20);
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderRadicalist, 100) / 20) * 0.002;
 			r.push(`Your radical views on gender are scaring away the more traditionally minded.`);
 		}
 		if (V.arcologies[0].FSGenderFundamentalist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSGenderFundamentalist, 100);
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSGenderFundamentalist, 100) / 20) * 40;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderFundamentalist, 100) / 20) * 0.002;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSGenderFundamentalist, 100) / 20) * -1;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderFundamentalist, 100) / 20) * -0.002;
+			FSScore += Math.min(V.arcologies[0].FSGenderFundamentalist, 100);
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSGenderFundamentalist, 100) / 20) * 40;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderFundamentalist, 100) / 20) * 0.002;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSGenderFundamentalist, 100) / 20) * -1;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSGenderFundamentalist, 100) / 20) * -0.002;
 			r.push(`Your traditional views on gender are comforting to many, unimaginative to some.`);
 		}
 		if (V.arcologies[0].FSPaternalist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSPaternalist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.04;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.05;
-			_expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.15;
-			_slaveProductivity += Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * 0.02;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * 80;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * 0.004;
-			_welfareFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.1;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * 16;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * 0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -5.4;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.002;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -2;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.002;
+			FSScore += Math.min(V.arcologies[0].FSPaternalist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.04;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.05;
+			expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.15;
+			slaveProductivity += Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * 0.02;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * 80;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * 0.004;
+			welfareFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.1;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * 16;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * 0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -5.4;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.002;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -2;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.002;
 			r.push(`Poor citizens can rely on their better-off peers in ${V.arcologies[0].name}.`);
 		}
 		if (V.arcologies[0].FSDegradationist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSDegradationist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.04;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.05;
-			_expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.2;
-			_slaveProductivity += Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.01;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * -80;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * -0.004;
-			_welfareFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.1;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * -16;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * -0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 5.4;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.002;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 2;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.004;
+			FSScore += Math.min(V.arcologies[0].FSDegradationist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.04;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.05;
+			expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.2;
+			slaveProductivity += Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.01;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * -80;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * -0.004;
+			welfareFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.1;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * -16;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * -0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 5.4;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.002;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 2;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSDegradationist, 100) / 20) * 0.004;
 			r.push(`The arcology is a cutthroat place in which falling into slavery is very easy.`);
 		}
 		if (V.arcologies[0].FSIntellectualDependency !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSIntellectualDependency, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 0.03;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 0.04;
-			_expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 0.05;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 20;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 0.002;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 10;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 0.003;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * -3;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * -0.020;
+			FSScore += Math.min(V.arcologies[0].FSIntellectualDependency, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 0.03;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 0.04;
+			expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 0.05;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 20;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 0.002;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 10;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * 0.003;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * -3;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSIntellectualDependency, 100) / 20) * -0.020;
 			r.push(`It's always a party in ${V.arcologies[0].name}, giving it a strong appeal to those unable to host such an event.`);
 		}
 		if (V.arcologies[0].FSSlaveProfessionalism !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSSlaveProfessionalism, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * -0.1;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * -0.125;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * -20;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * -0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * 2.7;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * 0.001;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * 0.5;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * 0.001;
+			FSScore += Math.min(V.arcologies[0].FSSlaveProfessionalism, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * -0.1;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * -0.125;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * -20;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * -0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * 2.7;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * 0.001;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * 0.5;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSSlaveProfessionalism, 100) / 20) * 0.001;
 			r.push(`The intelligent atmosphere of ${V.arcologies[0].name} makes it an attractive place for those with the brains to define their place in the world.`);
 		}
 		if (V.arcologies[0].FSBodyPurist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSBodyPurist, 100);
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * 40;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * 0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * -2.7;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * -0.001;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * -0.5;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * -0.001;
+			FSScore += Math.min(V.arcologies[0].FSBodyPurist, 100);
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * 40;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * 0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * -2.7;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * -0.001;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * -0.5;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * -0.001;
 			r.push(`Body purist fashion standards comfort the poor as they stand out less from their more fortunate neighbors.`);
 		}
 		if (V.arcologies[0].FSTransformationFetishist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSTransformationFetishist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 0.025;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * -40;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * -0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 2.7;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 0.001;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 0.5;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 0.001;
+			FSScore += Math.min(V.arcologies[0].FSTransformationFetishist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 0.025;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * -40;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * -0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 2.7;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 0.001;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 0.5;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSTransformationFetishist, 100) / 20) * 0.001;
 			r.push(`The lower class fear the kind of transformations could be forced on them if they ever end up enslaved, whereas the rich enjoy wielding such power.`);
 		}
 		if (V.arcologies[0].FSYouthPreferentialist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSYouthPreferentialist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * 0.025;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * 40;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * 0.002;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * -8;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * -0.002;
+			FSScore += Math.min(V.arcologies[0].FSYouthPreferentialist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * 0.025;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * 40;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * 0.002;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * -8;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSYouthPreferentialist, 100) / 20) * -0.002;
 			r.push(`Preference for youth makes the young poor in your arcology feel appreciated despite their lack of wealth.`);
 		}
 		if (V.arcologies[0].FSMaturityPreferentialist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSMaturityPreferentialist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * 0.025;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * -40;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * -0.002;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * 8;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * 0.002;
+			FSScore += Math.min(V.arcologies[0].FSMaturityPreferentialist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * 0.025;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * -40;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * -0.002;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * 8;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSMaturityPreferentialist, 100) / 20) * 0.002;
 			r.push(`Preference for maturity makes the middle class of your arcology feel like their experience is finally properly appreciated.`);
 		}
 		if (V.arcologies[0].FSPetiteAdmiration !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSPetiteAdmiration, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPetiteAdmiration, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPetiteAdmiration, 100) / 20) * 0.025;
+			FSScore += Math.min(V.arcologies[0].FSPetiteAdmiration, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPetiteAdmiration, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPetiteAdmiration, 100) / 20) * 0.025;
 		}
 		if (V.arcologies[0].FSStatuesqueGlorification !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSStatuesqueGlorification, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSStatuesqueGlorification, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSStatuesqueGlorification, 100) / 20) * 0.025;
+			FSScore += Math.min(V.arcologies[0].FSStatuesqueGlorification, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSStatuesqueGlorification, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSStatuesqueGlorification, 100) / 20) * 0.025;
 		}
 		if (V.arcologies[0].FSSlimnessEnthusiast !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSSlimnessEnthusiast, 100);
+			FSScore += Math.min(V.arcologies[0].FSSlimnessEnthusiast, 100);
 		}
 		if (V.arcologies[0].FSAssetExpansionist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSAssetExpansionist, 100);
+			FSScore += Math.min(V.arcologies[0].FSAssetExpansionist, 100);
 			if (V.arcologies[0].FSBodyPurist !== "unset") {
-				_expirationFS *= 1 + (Math.trunc(Math.min(V.arcologies[0].FSAssetExpansionist, 100) / 20) * 0.05) * (1 + (Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * -0.1));
+				expirationFS *= 1 + (Math.trunc(Math.min(V.arcologies[0].FSAssetExpansionist, 100) / 20) * 0.05) * (1 + (Math.trunc(Math.min(V.arcologies[0].FSBodyPurist, 100) / 20) * -0.1));
 			} else {
-				_expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSAssetExpansionist, 100) / 20) * 0.05;
+				expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSAssetExpansionist, 100) / 20) * 0.05;
 			}
 		}
 		if (V.arcologies[0].FSPastoralist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSPastoralist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.04;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.05;
+			FSScore += Math.min(V.arcologies[0].FSPastoralist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.04;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.05;
 			if (V.arcologies[0].FSPaternalist !== "unset") {
-				_expirationFS *= 1 + (Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.05) * (1 + (Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.1));
+				expirationFS *= 1 + (Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.05) * (1 + (Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.1));
 			} else {
-				_expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.05;
-			}
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * -80;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * -0.004;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 16;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 2.7;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.001;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.5;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.001;
+				expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.05;
+			}
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * -80;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * -0.004;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 16;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 2.7;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.001;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.5;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPastoralist, 100) / 20) * 0.001;
 			r.push(`The pastoralization of ${V.arcologies[0].name} spurs a whole industry around human produce.`);
 		}
 		if (V.arcologies[0].FSPhysicalIdealist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSPhysicalIdealist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.025;
-			_slaveProductivity += Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.01;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * -40;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * -0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 2.7;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.001;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.5;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.001;
+			FSScore += Math.min(V.arcologies[0].FSPhysicalIdealist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.025;
+			slaveProductivity += Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.01;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * -40;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * -0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 2.7;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.001;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.5;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSPhysicalIdealist, 100) / 20) * 0.001;
 			r.push(`Fit slaves and citizens are more productive! However, your arcology's poor do not look forward to even more toil and sweat.`);
 		}
 		if (V.arcologies[0].FSChattelReligionist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSChattelReligionist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 0.025;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * -40;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * -0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 2.7;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 0.001;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 0.5;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 0.001;
+			FSScore += Math.min(V.arcologies[0].FSChattelReligionist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 0.025;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * -40;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * -0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 2.7;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 0.001;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 0.5;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChattelReligionist, 100) / 20) * 0.001;
 			r.push(`Chattel Religionism helps some poor citizens see slavery as a spiritually pure fate.`);
 		}
 		if (V.arcologies[0].FSRomanRevivalist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSRomanRevivalist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * 0.025;
-			_expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * -0.1;
-			_welfareFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * -0.05;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * 40;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * 0.00;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20);
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * -0.002;
+			FSScore += Math.min(V.arcologies[0].FSRomanRevivalist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * 0.025;
+			expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * -0.1;
+			welfareFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * -0.05;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * 40;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * 0.00;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20);
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRomanRevivalist, 100) / 20) * -0.002;
 			r.push(`Your citizens take pride in looking after each other.`);
 		}
 		if (V.arcologies[0].FSNeoImperialist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSNeoImperialist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.05;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.030;
-			_expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * -0.06;
-			_welfareFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * -0.025;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * -20;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * -0.002;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 16;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.004;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 5.4;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.002;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.5;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.002;
+			FSScore += Math.min(V.arcologies[0].FSNeoImperialist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.05;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.030;
+			expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * -0.06;
+			welfareFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * -0.025;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * -20;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * -0.002;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 16;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.004;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 5.4;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.002;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.5;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNeoImperialist, 100) / 20) * 0.002;
 			r.push(`Your new Imperium creates a staunchly hierarchical society, and while your elites and soldiers enjoy social prestige and luxury, the lower classes are often unhappy about being made to grovel.`);
 		}
 		if (V.arcologies[0].FSEgyptianRevivalist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSEgyptianRevivalist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * 0.025;
-			_welfareFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * -0.05;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * 40;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * 0.002;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20);
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * -0.002;
+			FSScore += Math.min(V.arcologies[0].FSEgyptianRevivalist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * 0.025;
+			welfareFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * -0.05;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * 40;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * 0.002;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20);
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEgyptianRevivalist, 100) / 20) * -0.002;
 			r.push(`Egyptian Revivalism is benevolent in some ways, and charity is common here.`);
 		}
 		if (V.arcologies[0].FSEdoRevivalist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSEdoRevivalist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEdoRevivalist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEdoRevivalist, 100) / 20) * 0.025;
+			FSScore += Math.min(V.arcologies[0].FSEdoRevivalist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEdoRevivalist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSEdoRevivalist, 100) / 20) * 0.025;
 		}
 		if (V.arcologies[0].FSArabianRevivalist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSArabianRevivalist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSArabianRevivalist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSArabianRevivalist, 100) / 20) * 0.025;
+			FSScore += Math.min(V.arcologies[0].FSArabianRevivalist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSArabianRevivalist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSArabianRevivalist, 100) / 20) * 0.025;
 		}
 		if (V.arcologies[0].FSChineseRevivalist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSChineseRevivalist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChineseRevivalist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChineseRevivalist, 100) / 20) * 0.025;
+			FSScore += Math.min(V.arcologies[0].FSChineseRevivalist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChineseRevivalist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSChineseRevivalist, 100) / 20) * 0.025;
 		}
 		if (V.arcologies[0].FSAztecRevivalist !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSAztecRevivalist, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSAztecRevivalist, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSAztecRevivalist, 100) / 20) * 0.025;
+			FSScore += Math.min(V.arcologies[0].FSAztecRevivalist, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSAztecRevivalist, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSAztecRevivalist, 100) / 20) * 0.025;
 		}
 		if (V.arcologies[0].FSNull !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSNull, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -0.1;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -0.125;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * 400;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * 0.016;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * 64;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * 0.008;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -21.6;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -0.008;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -8;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -0.016;
+			FSScore += Math.min(V.arcologies[0].FSNull, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -0.1;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -0.125;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * 400;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * 0.016;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * 64;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * 0.008;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -21.6;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -0.008;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -8;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSNull, 100) / 20) * -0.016;
 			r.push(`Your arcology's vibrant, open culture helps everyone succeed, preventing many struggling citizens from falling into slavery.`);
 		}
 		if (V.arcologies[0].FSRepopulationFocus !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSRepopulationFocus, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.04;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.05;
-			_slaveProductivity += Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * -0.01;
+			FSScore += Math.min(V.arcologies[0].FSRepopulationFocus, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.04;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.05;
+			slaveProductivity += Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * -0.01;
 			if (V.arcologies[0].FSPaternalist !== "unset") {
-				_expirationFS *= 1 + (Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.05) * (1 + (Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.1));
+				expirationFS *= 1 + (Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.05) * (1 + (Math.trunc(Math.min(V.arcologies[0].FSPaternalist, 100) / 20) * -0.1));
 			} else {
-				_expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.05;
-			}
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 80;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.004;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 16;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * -5.4;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * -0.002;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * -2;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * -0.004;
+				expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.05;
+			}
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 80;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.004;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 16;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * 0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * -5.4;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * -0.002;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * -2;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRepopulationFocus, 100) / 20) * -0.004;
 			r.push(`You've made repopulation a priority and the less fortunate hope all these new children will make their lives easier in the future, but the wealthy are wary.`);
 		}
 		if (V.arcologies[0].FSRestart !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSRestart, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 0.04;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 0.05;
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * -80;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * -0.004;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * -16;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * -0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 5.4;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 0.002;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 2;
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 0.004;
+			FSScore += Math.min(V.arcologies[0].FSRestart, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 0.04;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 0.05;
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * -80;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * -0.004;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * -16;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * -0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 5.4;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 0.002;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 2;
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSRestart, 100) / 20) * 0.004;
 			r.push(`Highly restricted breeding pleases the powerful, but the less fortunate may seek reproductive freedom elsewhere.`);
 		}
 		if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
-			_FSScore += Math.min(V.arcologies[0].FSHedonisticDecadence, 100);
-			_slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 0.02;
-			_slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 0.025;
-			_slaveProductivity += Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * -0.01;
-			_expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 0.1; /* too high?*/
-			_lowerClass += Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 40;
-			_lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 0.002;
-			_middleClass += Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * -16;
-			_middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * -0.002;
-			_upperClass += Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * -5.4;
-			_upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * -0.002;
-			_topClass += Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20);
-			_topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 0.002;
+			FSScore += Math.min(V.arcologies[0].FSHedonisticDecadence, 100);
+			slaveDemandU *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 0.02;
+			slaveDemandT *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 0.025;
+			slaveProductivity += Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * -0.01;
+			expirationFS *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 0.1; /* too high?*/
+			lowerClass += Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 40;
+			lowerClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 0.002;
+			middleClass += Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * -16;
+			middleClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * -0.002;
+			upperClass += Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * -5.4;
+			upperClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * -0.002;
+			topClass += Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20);
+			topClassP *= 1 + Math.trunc(Math.min(V.arcologies[0].FSHedonisticDecadence, 100) / 20) * 0.002;
 			r.push(`Your citizens enjoy the pleasures of life to their fullest, but some prefer to earn these pleasures.`);
 		}
 		if (r.length > 0) {
@@ -1072,125 +1072,125 @@ App.EndWeek.arcManagement = function() {
 		const el = new DocumentFragment();
 		const r = [];
 		if (V.policies.retirement.menial2Citizen === 1) {
-			_slaveDemandU *= 0.8;
-			_slaveDemandT *= 0.75;
-			_slaveProductivity += 0.05;
-			_expirationFS *= 0.8;
-			_lowerClass += 200;
-			_lowerClassP *= 1.01;
-			_middleClass += 80;
-			_middleClassP *= 1.01;
-			_upperClass += -27;
-			_upperClassP *= 0.99;
-			_topClass += -5;
-			_topClassP *= 0.99;
+			slaveDemandU *= 0.8;
+			slaveDemandT *= 0.75;
+			slaveProductivity += 0.05;
+			expirationFS *= 0.8;
+			lowerClass += 200;
+			lowerClassP *= 1.01;
+			middleClass += 80;
+			middleClassP *= 1.01;
+			upperClass += -27;
+			upperClassP *= 0.99;
+			topClass += -5;
+			topClassP *= 0.99;
 		}
 		if (V.policies.proRefugees === 1) {
-			_slaveDemandU *= 1.1;
-			_slaveDemandT *= 1.125;
+			slaveDemandU *= 1.1;
+			slaveDemandT *= 1.125;
 			r.push(`Some desperate people filtered into the arcology during the week: as owner, you were able to enslave a handful of them.`);
 		}
 		if (V.policies.immigrationCash === 1) {
-			_lowerClass += 200;
-			_lowerClassP *= 1.01;
-			_middleClass += 40;
-			_middleClassP *= 1.005;
-			_upperClass += -13.5;
-			_upperClassP *= 0.995;
-			_topClass += -5;
-			_topClassP *= 0.99;
+			lowerClass += 200;
+			lowerClassP *= 1.01;
+			middleClass += 40;
+			middleClassP *= 1.005;
+			upperClass += -13.5;
+			upperClassP *= 0.995;
+			topClass += -5;
+			topClassP *= 0.99;
 			r.push(`The rent promotion for new immigrants brings new citizens to the arcology.`);
 		}
 		if (V.policies.immigrationRep === 1) {
-			_lowerClass += 200;
-			_lowerClassP *= 1.01;
-			_middleClass += 40;
-			_middleClassP *= 1.005;
-			_upperClass += -13.5;
-			_upperClassP *= 0.995;
-			_topClass += -5;
-			_topClassP *= 0.99;
+			lowerClass += 200;
+			lowerClassP *= 1.01;
+			middleClass += 40;
+			middleClassP *= 1.005;
+			upperClass += -13.5;
+			upperClassP *= 0.995;
+			topClass += -5;
+			topClassP *= 0.99;
 			r.push(`Your welcome program for new citizens helps encourage wealthy people from the old world to immigrate, but <span class="red">annoys some longstanding citizens.</span>`);
 			repX(forceNeg(100), "policies");
 		}
 		if (V.policies.immigrationCash === -1) {
-			_lowerClass += -200;
-			_lowerClassP *= 0.99;
-			_middleClass += -40;
-			_middleClassP *= 0.995;
-			_upperClass += 13.5;
-			_upperClassP *= 1.005;
-			_topClass += 5;
-			_topClassP *= 1.01;
+			lowerClass += -200;
+			lowerClassP *= 0.99;
+			middleClass += -40;
+			middleClassP *= 0.995;
+			upperClass += 13.5;
+			upperClassP *= 1.005;
+			topClass += 5;
+			topClassP *= 1.01;
 			r.push(`You covertly <span class="yellowgreen">sell</span> the private information of potential arcology immigrants on the old world black market.`);
 			cashX(random(500, 1500), "policies");
 		}
 		if (V.policies.immigrationRep === -1) {
-			_lowerClass += -200;
-			_lowerClassP *= 0.99;
-			_middleClass += -40;
-			_middleClassP *= 0.995;
-			_upperClass += 13.5;
-			_upperClassP *= 1.005;
-			_topClass += 5;
-			_topClassP *= 1.01;
+			lowerClass += -200;
+			lowerClassP *= 0.99;
+			middleClass += -40;
+			middleClassP *= 0.995;
+			upperClass += 13.5;
+			upperClassP *= 1.005;
+			topClass += 5;
+			topClassP *= 1.01;
 			r.push(`You allow citizens input on potential immigrants, a <span class="green">popular</span> program.`);
 			repX(100, "policies");
 		}
 		if (V.policies.enslavementCash === 1) {
-			_slaveDemandU *= 1.1;
-			_slaveDemandT *= 1.125;
-			_lowerClass += -200;
-			_lowerClassP *= .99;
-			_topClass += 5;
-			_topClassP *= 1.01;
+			slaveDemandU *= 1.1;
+			slaveDemandT *= 1.125;
+			lowerClass += -200;
+			lowerClassP *= .99;
+			topClass += 5;
+			topClassP *= 1.01;
 			r.push(`You <span class="yellowgreen">take kickbacks</span> for ignoring enslavement of citizens.`);
 			cashX(random(500, 1500), "policies");
 		}
 		if (V.policies.enslavementRep === 1) {
-			_slaveDemandU *= 1.1;
-			_slaveDemandT *= 1.125;
-			_lowerClass += -200;
-			_lowerClassP *= 0.99;
-			_topClass += 5;
-			_topClassP *= 1.01;
+			slaveDemandU *= 1.1;
+			slaveDemandT *= 1.125;
+			lowerClass += -200;
+			lowerClassP *= 0.99;
+			topClass += 5;
+			topClassP *= 1.01;
 			r.push(`You <span class="green">make friends</span> by tacitly supporting enslavement of upstart citizens.`);
 			repX(100, "policies");
 		}
 		if (V.policies.enslavementCash === -1) {
-			_slaveDemandU *= 0.9;
-			_slaveDemandT *= 0.875;
-			_lowerClass += 200;
-			_lowerClassP *= 1.02;
-			_topClass += -5;
-			_topClassP *= 0.98;
+			slaveDemandU *= 0.9;
+			slaveDemandT *= 0.875;
+			lowerClass += 200;
+			lowerClassP *= 1.02;
+			topClass += -5;
+			topClassP *= 0.98;
 			r.push(`Your charity purse prevents a few citizens from falling into slavery.`);
 		}
 		if (V.policies.enslavementRep === -1) {
-			_slaveDemandU *= 0.9;
-			_slaveDemandT *= 0.875;
-			_lowerClass += 200;
-			_lowerClassP *= 1.01;
-			_topClass += -5;
-			_topClassP *= 0.99;
+			slaveDemandU *= 0.9;
+			slaveDemandT *= 0.875;
+			lowerClass += 200;
+			lowerClassP *= 1.01;
+			topClass += -5;
+			topClassP *= 0.99;
 			r.push(`You use your personal influence to help struggling citizens.`);
 			repX(forceNeg(100), "policies");
 		}
 		if (V.arcologies[0].FSSupremacistLawME === 1) {
-			_slaveDemandU *= 2.2;
-			_slaveDemandT *= 2.5;
-			_lowerClass += -400;
-			_lowerClassP *= 0.98;
-			_middleClass += -80;
-			_middleClassP *= 0.99;
-			_upperClass += 27;
-			_upperClassP *= 1.01;
-			_topClass += 10;
-			_topClassP *= 1.02;
+			slaveDemandU *= 2.2;
+			slaveDemandT *= 2.5;
+			lowerClass += -400;
+			lowerClassP *= 0.98;
+			middleClass += -80;
+			middleClassP *= 0.99;
+			upperClass += 27;
+			upperClassP *= 1.01;
+			topClass += 10;
+			topClassP *= 1.02;
 			if (V.FSSupLawTrigger === 1) {
-				const _slavesSupLaw = Math.trunc((V.lowerClass + V.middleClass + V.upperClass) * 0.65);
-				V.NPCSlaves += Math.trunc(_slavesSupLaw * 0.7);
-				V.menials += Math.trunc(_slavesSupLaw * 0.2);
+				const slavesSupLaw = Math.trunc((V.lowerClass + V.middleClass + V.upperClass) * 0.65);
+				V.NPCSlaves += Math.trunc(slavesSupLaw * 0.7);
+				V.menials += Math.trunc(slavesSupLaw * 0.2);
 				V.lowerClass = Math.trunc(V.lowerClass * 0.35);
 				V.middleClass = Math.trunc(V.middleClass * 0.35);
 				V.upperClass = Math.trunc(V.upperClass * 0.35);
@@ -1198,20 +1198,20 @@ App.EndWeek.arcManagement = function() {
 			}
 		}
 		if (V.arcologies[0].FSSubjugationistLawME === 1) {
-			_slaveDemandU *= 1.24;
-			_slaveDemandT *= 1.3;
-			_lowerClass += -200;
-			_lowerClassP *= 0.99;
-			_middleClass += -40;
-			_middleClassP *= 0.995;
-			_upperClass += 13.5;
-			_upperClassP *= 1.005;
-			_topClass += 5;
-			_topClassP *= 1.01;
+			slaveDemandU *= 1.24;
+			slaveDemandT *= 1.3;
+			lowerClass += -200;
+			lowerClassP *= 0.99;
+			middleClass += -40;
+			middleClassP *= 0.995;
+			upperClass += 13.5;
+			upperClassP *= 1.005;
+			topClass += 5;
+			topClassP *= 1.01;
 			if (V.FSSubLawTrigger === 1) {
-				const _slavesSubLaw = Math.trunc((V.lowerClass + V.middleClass + V.upperClass) * 0.2);
-				V.NPCSlaves += Math.trunc(_slavesSubLaw * 0.7);
-				V.menials += Math.trunc(_slavesSubLaw * 0.2);
+				const slavesSubLaw = Math.trunc((V.lowerClass + V.middleClass + V.upperClass) * 0.2);
+				V.NPCSlaves += Math.trunc(slavesSubLaw * 0.7);
+				V.menials += Math.trunc(slavesSubLaw * 0.2);
 				V.lowerClass = Math.trunc(V.lowerClass * 0.8);
 				V.middleClass = Math.trunc(V.middleClass * 0.8);
 				V.upperClass = Math.trunc(V.upperClass * 0.8);
@@ -1219,81 +1219,81 @@ App.EndWeek.arcManagement = function() {
 			}
 		}
 		if (V.arcologies[0].FSRepopulationFocusLaw === 1) {
-			_lowerClass += 100;
-			_lowerClassP *= 1.005;
-			_topClass += -2.5;
-			_topClassP *= 0.995;
+			lowerClass += 100;
+			lowerClassP *= 1.005;
+			topClass += -2.5;
+			topClassP *= 0.995;
 			r.push(`The rent promotion for pregnant women attracts several gravid ladies and a few girls eager to become mothers to enroll as citizens in your arcology.`);
 		}
 		if (V.arcologies[0].FSRestartLaw === 1) {
-			_lowerClass += -100;
-			_lowerClassP *= 0.99;
-			_topClass += 2.5;
-			_topClassP *= 1.01;
+			lowerClass += -100;
+			lowerClassP *= 0.99;
+			topClass += 2.5;
+			topClassP *= 1.01;
 			r.push(`Your sterilization program drives several disloyal citizens out of the arcology.`);
 		}
 		if (V.arcologies[0].FSHedonisticDecadenceLaw === 1) {
-			_middleClass += 80;
-			_middleClassP *= 1.01;
+			middleClass += 80;
+			middleClassP *= 1.01;
 		}
 		if (V.arcologies[0].FSDegradationistLaw === 1) {
-			_slaveProductivity += -0.05;
+			slaveProductivity += -0.05;
 		}
 		if (V.arcologies[0].FSPaternalistLaw === 1) {
-			_slaveDemandU *= 0.9;
-			_slaveDemandT *= 0.875;
-			_upperClass += -13.5;
-			_upperClassP *= 1.005;
-			_topClass += -2.5;
-			_topClassP *= 1.005;
+			slaveDemandU *= 0.9;
+			slaveDemandT *= 0.875;
+			upperClass += -13.5;
+			upperClassP *= 1.005;
+			topClass += -2.5;
+			topClassP *= 1.005;
 		}
 		if (V.arcologies[0].FSYouthPreferentialistLaw === 1) {
-			_lowerClass += 200;
-			_lowerClassP *= 1.01;
-			_middleClass += -80;
-			_middleClassP *= 0.99;
+			lowerClass += 200;
+			lowerClassP *= 1.01;
+			middleClass += -80;
+			middleClassP *= 0.99;
 		}
 		if (V.arcologies[0].FSMaturityPreferentialistLaw === 1) {
-			_lowerClass += -200;
-			_lowerClassP *= 0.99;
-			_middleClass += 80;
-			_middleClassP *= 1.01;
+			lowerClass += -200;
+			lowerClassP *= 0.99;
+			middleClass += 80;
+			middleClassP *= 1.01;
 		}
 		if (V.arcologies[0].FSPetiteAdmirationLaw === 1) {
-			_lowerClass += -200;
-			_lowerClassP *= 0.99;
-			_middleClass += 80;
-			_middleClassP *= 1.01;
+			lowerClass += -200;
+			lowerClassP *= 0.99;
+			middleClass += 80;
+			middleClassP *= 1.01;
 		}
 		if (V.arcologies[0].FSStatuesqueGlorificationLaw === 1) {
-			_lowerClass += -400;
-			_lowerClassP *= 0.95;
-			_middleClass += 40;
-			_middleClassP *= 1.01;
-			_upperClass += -10;
-			_upperClassP *= .99;
+			lowerClass += -400;
+			lowerClassP *= 0.95;
+			middleClass += 40;
+			middleClassP *= 1.01;
+			upperClass += -10;
+			upperClassP *= .99;
 		}
 		if (V.arcologies[0].FSIntellectualDependencyLaw === 1) {
-			_slaveDemandU *= 1.24;
-			_slaveDemandT *= 1.3;
-			_lowerClass += -50;
-			_lowerClassP *= 0.90;
-			_middleClass += -40;
-			_middleClassP *= 0.90;
-			_upperClass += -1;
-			_upperClassP *= .99;
+			slaveDemandU *= 1.24;
+			slaveDemandT *= 1.3;
+			lowerClass += -50;
+			lowerClassP *= 0.90;
+			middleClass += -40;
+			middleClassP *= 0.90;
+			upperClass += -1;
+			upperClassP *= .99;
 		}
 		if (V.arcologies[0].FSSlaveProfessionalismLaw === 1) {
-			_slaveDemandU *= 1.4;
-			_slaveDemandT *= 1.5;
-			_lowerClass += -300;
-			_lowerClassP *= 0.95;
-			_middleClass += -40;
-			_middleClassP *= 0.995;
-			_upperClass += -5;
-			_upperClassP *= .99;
-			_topClass += 7;
-			_topClassP *= 1.05;
+			slaveDemandU *= 1.4;
+			slaveDemandT *= 1.5;
+			lowerClass += -300;
+			lowerClassP *= 0.95;
+			middleClass += -40;
+			middleClassP *= 0.995;
+			upperClass += -5;
+			upperClassP *= .99;
+			topClass += 7;
+			topClassP *= 1.05;
 			if (V.FSSlaveProfLawTrigger === 1) {
 				V.lowerClass = Math.trunc(V.lowerClass * 0.8);
 				V.middleClass = Math.trunc(V.middleClass * 0.8);
@@ -1303,62 +1303,62 @@ App.EndWeek.arcManagement = function() {
 		}
 		if (V.arcologies[0].FSChattelReligionistCreed === 1) {
 			if (V.nicaea.focus === "slaves") {
-				_slaveDemandU *= 1 + V.nicaea.power * -0.05;
-				_slaveDemandT *= 1 + V.nicaea.power * -0.0625;
-				_slaveProductivity += V.nicaea.power * 0.025;
-				_expirationFS *= 1 + V.nicaea.power * -0.125;
-				_lowerClass += V.nicaea.power * 100;
-				_lowerClassP *= 1 + V.nicaea.power * 0.005;
-				_topClass += V.nicaea.power * -2.5;
-				_topClassP *= 1 + V.nicaea.power * -0.005;
+				slaveDemandU *= 1 + V.nicaea.power * -0.05;
+				slaveDemandT *= 1 + V.nicaea.power * -0.0625;
+				slaveProductivity += V.nicaea.power * 0.025;
+				expirationFS *= 1 + V.nicaea.power * -0.125;
+				lowerClass += V.nicaea.power * 100;
+				lowerClassP *= 1 + V.nicaea.power * 0.005;
+				topClass += V.nicaea.power * -2.5;
+				topClassP *= 1 + V.nicaea.power * -0.005;
 			} else if (V.nicaea.focus === "owners") {
-				_slaveDemandU *= 1 + V.nicaea.power * 0.05;
-				_slaveDemandT *= 1 + V.nicaea.power * 0.0625;
-				_lowerClass += V.nicaea.power * -100;
-				_lowerClassP *= 1 + V.nicaea.power * -0.005;
-				_middleClass += V.nicaea.power * -20;
-				_middleClassP *= 1 + V.nicaea.power * -0.0025;
-				_upperClass += V.nicaea.power * 6.75;
-				_upperClassP *= 1 + V.nicaea.power * 0.0025;
-				_topClass += V.nicaea.power * 2.5;
-				_topClassP *= 1 + V.nicaea.power * 0.005;
+				slaveDemandU *= 1 + V.nicaea.power * 0.05;
+				slaveDemandT *= 1 + V.nicaea.power * 0.0625;
+				lowerClass += V.nicaea.power * -100;
+				lowerClassP *= 1 + V.nicaea.power * -0.005;
+				middleClass += V.nicaea.power * -20;
+				middleClassP *= 1 + V.nicaea.power * -0.0025;
+				upperClass += V.nicaea.power * 6.75;
+				upperClassP *= 1 + V.nicaea.power * 0.0025;
+				topClass += V.nicaea.power * 2.5;
+				topClassP *= 1 + V.nicaea.power * 0.005;
 			}
 			if (V.nicaea.assignment === "whore") {
-				_upperClass += V.nicaea.power * 6.75;
-				_upperClassP *= 1 + V.nicaea.power * 0.0025;
-				_topClass += V.nicaea.power * 1.25;
-				_topClassP *= 1 + V.nicaea.power * 0.0025;
+				upperClass += V.nicaea.power * 6.75;
+				upperClassP *= 1 + V.nicaea.power * 0.0025;
+				topClass += V.nicaea.power * 1.25;
+				topClassP *= 1 + V.nicaea.power * 0.0025;
 			} else if (V.nicaea.assignment === "serve the public") {
-				_lowerClass += V.nicaea.power * 50;
-				_lowerClassP *= 1 + V.nicaea.power * 0.0025;
-				_middleClass += V.nicaea.power * 20;
-				_middleClassP *= 1 + V.nicaea.power * 0.0025;
+				lowerClass += V.nicaea.power * 50;
+				lowerClassP *= 1 + V.nicaea.power * 0.0025;
+				middleClass += V.nicaea.power * 20;
+				middleClassP *= 1 + V.nicaea.power * 0.0025;
 			} else {
-				_slaveDemandU *= 1 + V.nicaea.power * 0.05;
-				_slaveDemandT *= 1 + V.nicaea.power * 0.0625;
-				_lowerClass += V.nicaea.power * -50;
-				_lowerClassP *= 1 + V.nicaea.power * -0.0025;
-				_middleClass += V.nicaea.power * -20;
-				_middleClassP *= 1 + V.nicaea.power * -0.0025;
-				_upperClass += V.nicaea.power * 13.5;
-				_upperClassP *= 1 + V.nicaea.power * 0.005;
-				_topClass += V.nicaea.power * 2.5;
-				_topClassP *= 1 + V.nicaea.power * 0.005;
+				slaveDemandU *= 1 + V.nicaea.power * 0.05;
+				slaveDemandT *= 1 + V.nicaea.power * 0.0625;
+				lowerClass += V.nicaea.power * -50;
+				lowerClassP *= 1 + V.nicaea.power * -0.0025;
+				middleClass += V.nicaea.power * -20;
+				middleClassP *= 1 + V.nicaea.power * -0.0025;
+				upperClass += V.nicaea.power * 13.5;
+				upperClassP *= 1 + V.nicaea.power * 0.005;
+				topClass += V.nicaea.power * 2.5;
+				topClassP *= 1 + V.nicaea.power * 0.005;
 			}
 			if (V.nicaea.achievement === "slaves") {
-				_slaveDemandU *= 1 + V.nicaea.power * 0.2;
-				_slaveDemandT *= 1 + V.nicaea.power * 0.25;
-				_lowerClass += V.nicaea.power * -200;
-				_lowerClassP *= 1 + V.nicaea.power * -0.01;
+				slaveDemandU *= 1 + V.nicaea.power * 0.2;
+				slaveDemandT *= 1 + V.nicaea.power * 0.25;
+				lowerClass += V.nicaea.power * -200;
+				lowerClassP *= 1 + V.nicaea.power * -0.01;
 			}
 		}
 		if (V.arcologies[0].FSAztecRevivalistLaw === 1) {
-			_lowerClass += 200;
-			_lowerClassP *= 1.01;
-			_middleClass += -40;
-			_middleClassP *= 0.995;
-			_upperClass += -13.5;
-			_upperClassP *= 0.995;
+			lowerClass += 200;
+			lowerClassP *= 1.01;
+			middleClass += -40;
+			middleClassP *= 0.995;
+			upperClass += -13.5;
+			upperClassP *= 0.995;
 		}
 		if (r.length > 0) {
 			App.UI.DOM.appendNewElement("h3", el, "Policies");
@@ -1421,41 +1421,41 @@ App.EndWeek.arcManagement = function() {
 
 	function isFrozen() {
 		/* during bad weather and without appropriate upgrades, transport (including visitors and immigration/emigration) will be halted */
-		let _weatherFreeze = 0;
+		let weatherFreeze = 0;
 		if (V.weatherToday.severity > 3) {
 			if (V.secExpEnabled > 0 && V.SecExp.buildings.transportHub) {
 				if (V.SecExp.buildings.transportHub.surfaceTransport < 4) {
-					_weatherFreeze = 1;
+					weatherFreeze = 1;
 				}
 			} else if (V.antiWeatherFreeze < 2) {
-				_weatherFreeze = 1;
+				weatherFreeze = 1;
 			}
 		} else if (V.weatherToday.severity > 2) {
 			if (V.secExpEnabled > 0 && V.SecExp.buildings.transportHub) {
 				if (V.SecExp.buildings.transportHub.surfaceTransport < 3) {
-					_weatherFreeze = 1;
+					weatherFreeze = 1;
 				}
 			} else if (V.antiWeatherFreeze < 1) {
-				_weatherFreeze = 1;
+				weatherFreeze = 1;
 			}
 		}
-		if (_weatherFreeze) {
+		if (weatherFreeze) {
 			const warning = App.UI.DOM.combineNodes(`The terrible weather is `, App.UI.DOM.makeElement("span", `preventing people from entering or leaving`, "red"), ` your arcology. Improving your transport infrastructure will prevent this from happening.`);
 			App.UI.DOM.appendNewElement("div", el, warning, "note");
 			V.weatherAwareness = 1;
 		}
-		return _weatherFreeze;
+		return weatherFreeze;
 	}
 
 	function enslavement() {
-		if (_enslaved > 0) {
-			const _enslavedPC = Math.max(Math.trunc(_enslaved / 4), 1);
-			const _enslavedNPC = _enslaved - _enslavedPC;
-			V.menials += _enslavedPC;
-			V.NPCSlaves += _enslavedNPC;
-			if (_enslaved > 1) {
-				appendDiv(`In total <span class="green">${num(_enslaved)} lower class citizens</span> were enslaved for failing to pay their debts.`);
-				appendDiv(`<span class="green">You enslaved ${num(_enslavedPC)}</span> of them while other debtholders in the arcology enslaved the remaining ${num(_enslavedNPC)}.`);
+		if (enslaved > 0) {
+			const enslavedPC = Math.max(Math.trunc(enslaved / 4), 1);
+			const enslavedNPC = enslaved - enslavedPC;
+			V.menials += enslavedPC;
+			V.NPCSlaves += enslavedNPC;
+			if (enslaved > 1) {
+				appendDiv(`In total <span class="green">${num(enslaved)} lower class citizens</span> were enslaved for failing to pay their debts.`);
+				appendDiv(`<span class="green">You enslaved ${num(enslavedPC)}</span> of them while other debtholders in the arcology enslaved the remaining ${num(enslavedNPC)}.`);
 			} else {
 				appendDiv(`<span class="green">As arcology owner you claimed the slave.</span>`);
 			}
@@ -1463,148 +1463,148 @@ App.EndWeek.arcManagement = function() {
 	}
 
 	function transport() {
-		_FSScore = _FSScore / V.FSCreditCount;
-		_transportHub = 1;
-		_crime = 0.8;
+		FSScore = FSScore / V.FSCreditCount;
+		transportHub = 1;
+		crime = 0.8;
 		if (V.secExpEnabled > 0) {
-			_transportHub = 0.7;
+			transportHub = 0.7;
 			if (V.SecExp.buildings.transportHub) {
-				_transportHub += V.SecExp.buildings.transportHub.airport / 10 + V.SecExp.buildings.transportHub.surfaceTransport / 10;
+				transportHub += V.SecExp.buildings.transportHub.airport / 10 + V.SecExp.buildings.transportHub.surfaceTransport / 10;
 			}
-			_crime = (100 - V.SecExp.core.crimeLow) / 100 + 0.2;
+			crime = (100 - V.SecExp.core.crimeLow) / 100 + 0.2;
 			const waterwayDamaged = App.SecExp.updateFacilityDamage("waterway");
 			appendDiv(waterwayDamaged.text);
 		}
 		if (V.terrain === "urban") {
-			_terrain = 1.2;
+			terrain = 1.2;
 		} else if (V.terrain === "rural" || V.terrain === "marine") {
-			_terrain = 1;
+			terrain = 1;
 		} else {
-			_terrain = 0.8;
+			terrain = 0.8;
 		}
 
-		_honeymoon = 0;
+		honeymoon = 0;
 		if (V.arcologies[0].honeymoon > 0) {
-			_honeymoon = 10 * V.arcologies[0].honeymoon;
+			honeymoon = 10 * V.arcologies[0].honeymoon;
 		}
-		const _oldVisitors = V.visitors;
-		V.visitors = Math.trunc(((V.arcologies[0].prosperity + _FSScore * 5 + _honeymoon) * _transportHub * _terrain * _crime) * _econMult);
+		const oldVisitors = V.visitors;
+		V.visitors = Math.trunc(((V.arcologies[0].prosperity + FSScore * 5 + honeymoon) * transportHub * terrain * crime) * econMult);
 
 		if (V.visitors < 50) {
 			V.visitors = normalRandInt(50, 2);
 		}
 		if (isNaN(V.visitors)) {
 			appendDiv(`<span class="red">Visitors is NaN, report this issue!</span>`);
-			V.visitors = _oldVisitors;
+			V.visitors = oldVisitors;
 		}
 		appendDiv(`<span class="green">${num(V.visitors)} traders and tourists</span> visited your arcology this week.`);
 		appendDiv(App.SecExp.propagandaEffects("enslavement").text);
-		_enslaved += App.SecExp.propagandaEffects("enslavement").effect;
+		enslaved += App.SecExp.propagandaEffects("enslavement").effect;
 
 		/* slaves*/
 		/* Slaves getting retired*/
 		if (V.policies.retirement.menial2Citizen === 1) {
-			let _weeklyRetiredMenials = V.menials / ((V.customMenialRetirementAge - 15) * 52);
-			let _weeklyRetiredNPCMenials = V.NPCSlaves / ((V.customMenialRetirementAge - 15) * 52);
+			let weeklyRetiredMenials = V.menials / ((V.customMenialRetirementAge - 15) * 52);
+			let weeklyRetiredNPCMenials = V.NPCSlaves / ((V.customMenialRetirementAge - 15) * 52);
 			/* This implies a minimum menial age of 15. Even if the player sets minimum ages lower, there's no point having a 3 year old menial slave. 15 seems alright while being nice and round. This also implies ages are distributed evenly, no easy way around that.*/
-			if (_weeklyRetiredMenials > 1) {
-				_weeklyRetiredMenials = Math.trunc(_weeklyRetiredMenials);
-				if (_weeklyRetiredMenials > 1) {
-					appendDiv(`<span class="red">${num(_weeklyRetiredMenials)} of your menial slaves</span> retired as free citizens this week.`);
+			if (weeklyRetiredMenials > 1) {
+				weeklyRetiredMenials = Math.trunc(weeklyRetiredMenials);
+				if (weeklyRetiredMenials > 1) {
+					appendDiv(`<span class="red">${num(weeklyRetiredMenials)} of your menial slaves</span> retired as free citizens this week.`);
 				} else {
 					appendDiv(`<span class="red">One of your menial slaves</span> retired as a free citizen this week.`);
 				}
 			} else {
-				_weeklyRetiredMenials *= 100;
-				if (_weeklyRetiredMenials > random(1, 100)) {
-					_weeklyRetiredMenials = 1;
+				weeklyRetiredMenials *= 100;
+				if (weeklyRetiredMenials > random(1, 100)) {
+					weeklyRetiredMenials = 1;
 					appendDiv(`<span class="red">One of your menial slaves</span> retired as a free citizen this week.`);
 				} else {
-					_weeklyRetiredMenials = 0;
+					weeklyRetiredMenials = 0;
 				}
 			}
-			if (_weeklyRetiredNPCMenials > 1) {
-				_weeklyRetiredNPCMenials = Math.trunc(_weeklyRetiredNPCMenials);
-				if (_weeklyRetiredNPCMenials > 1) {
-					appendDiv(`<span class="red">${num(_weeklyRetiredNPCMenials)} menial slaves</span> were retired as free citizens by other slave owners in your arcology this week.`);
+			if (weeklyRetiredNPCMenials > 1) {
+				weeklyRetiredNPCMenials = Math.trunc(weeklyRetiredNPCMenials);
+				if (weeklyRetiredNPCMenials > 1) {
+					appendDiv(`<span class="red">${num(weeklyRetiredNPCMenials)} menial slaves</span> were retired as free citizens by other slave owners in your arcology this week.`);
 				} else {
 					appendDiv(`<span class="red">One menial slave</span> was retired as a free citizen by another slave owner in your arcology this week.`);
 				}
 			} else {
-				_weeklyRetiredNPCMenials *= 100;
-				if (_weeklyRetiredNPCMenials > random(1, 100)) {
-					_weeklyRetiredNPCMenials = 1;
+				weeklyRetiredNPCMenials *= 100;
+				if (weeklyRetiredNPCMenials > random(1, 100)) {
+					weeklyRetiredNPCMenials = 1;
 					appendDiv(`<span class="red">One menial slave</span> was retired as a free citizen by another slave owner in your arcology this week.`);
 				} else {
-					_weeklyRetiredNPCMenials = 0;
+					weeklyRetiredNPCMenials = 0;
 				}
 			}
-			V.menials -= _weeklyRetiredMenials;
-			V.NPCSlaves -= _weeklyRetiredNPCMenials;
-			V.lowerClass += _weeklyRetiredMenials + _weeklyRetiredNPCMenials;
+			V.menials -= weeklyRetiredMenials;
+			V.NPCSlaves -= weeklyRetiredNPCMenials;
+			V.lowerClass += weeklyRetiredMenials + weeklyRetiredNPCMenials;
 		}
 		/* Demand for simple labor*/
-		_LSCD = Math.trunc((V.LSCBase * _econMult) + (V.arcologies[0].prosperity * 4) + ((V.middleClass + V.visitors * 0.6) * 1.5) + ((V.upperClass + V.visitors * 0.2) * 3.5) + (V.topClass * 18));
+		LSCD = Math.trunc((V.LSCBase * econMult) + (V.arcologies[0].prosperity * 4) + ((V.middleClass + V.visitors * 0.6) * 1.5) + ((V.upperClass + V.visitors * 0.2) * 3.5) + (V.topClass * 18));
 		/* Demand for owning slaves*/
-		_SCD = Math.trunc((V.upperClass * (2 + _slaveDemandU)) + (V.topClass * (12 + _slaveDemandT)));
-		if (isNaN(_LSCD)) {
+		SCD = Math.trunc((V.upperClass * (2 + slaveDemandU)) + (V.topClass * (12 + slaveDemandT)));
+		if (isNaN(LSCD)) {
 			appendDiv(`<span class="red">LSCD is NaN, report this issue!</span>`);
-		} else if (isNaN(_SCD)) {
+		} else if (isNaN(SCD)) {
 			appendDiv(`<span class="red">SCD is NaN, report this issue!</span>`);
 		} else {
 			/* More slaves than they know what to do with*/
-			if (V.NPCSlaves > _SCD * 1.6) {
-				const _NPCSlavesSold = V.NPCSlaves - Math.trunc(_SCD * 1.6);
-				V.menialDemandFactor -= _NPCSlavesSold;
-				V.NPCSlaves = Math.trunc(_SCD * 1.6);
-				if (_NPCSlavesSold > 1) {
-					appendDiv(`<span class="red">${num(_NPCSlavesSold)}</span> slaves were sold by your inhabitants. They've got more than enough of them already.`);
-				} else if (_NPCSlavesSold > 0) {
+			if (V.NPCSlaves > SCD * 1.6) {
+				const NPCSlavesSold = V.NPCSlaves - Math.trunc(SCD * 1.6);
+				V.menialDemandFactor -= NPCSlavesSold;
+				V.NPCSlaves = Math.trunc(SCD * 1.6);
+				if (NPCSlavesSold > 1) {
+					appendDiv(`<span class="red">${num(NPCSlavesSold)}</span> slaves were sold by your inhabitants. They've got more than enough of them already.`);
+				} else if (NPCSlavesSold > 0) {
 					appendDiv(`<span class="red">One slave</span> was sold by your inhabitants. They've got more than enough of them already.`);
 				}
 				/* More slaves than there is work*/
-			} else if (V.NPCSlaves > (_LSCD / _slaveProductivity) - V.menials + _SCD) {
-				const _NPCSlavesSold = V.NPCSlaves - Math.trunc(_LSCD / _slaveProductivity - V.menials + _SCD);
-				V.menialDemandFactor -= _NPCSlavesSold;
-				V.NPCSlaves = Math.trunc(_LSCD / _slaveProductivity);
-				if (_NPCSlavesSold > 1) {
-					appendDiv(`<span class="red">${num(_NPCSlavesSold)}</span> slaves were sold by your inhabitants. There was so little work that they failed to earn their keep.`);
-				} else if (_NPCSlavesSold > 0) {
+			} else if (V.NPCSlaves > (LSCD / slaveProductivity) - V.menials + SCD) {
+				const NPCSlavesSold = V.NPCSlaves - Math.trunc(LSCD / slaveProductivity - V.menials + SCD);
+				V.menialDemandFactor -= NPCSlavesSold;
+				V.NPCSlaves = Math.trunc(LSCD / slaveProductivity);
+				if (NPCSlavesSold > 1) {
+					appendDiv(`<span class="red">${num(NPCSlavesSold)}</span> slaves were sold by your inhabitants. There was so little work that they failed to earn their keep.`);
+				} else if (NPCSlavesSold > 0) {
 					appendDiv(`<span class="red">One slave</span> was sold by your inhabitants. There was so little work that it failed to earn its keep.`);
 				}
 				/* Cutting back on slaves*/
-			} else if (V.NPCSlaves > _SCD * 1.4) {
+			} else if (V.NPCSlaves > SCD * 1.4) {
 				if (V.slaveCostFactor > 0.95) {
-					const _NPCSlavesSold = Math.trunc((V.NPCSlaves - _SCD) * 0.4);
-					V.menialDemandFactor -= _NPCSlavesSold;
-					V.NPCSlaves -= _NPCSlavesSold;
-					if (_NPCSlavesSold > 1) {
-						appendDiv(`<span class="red">${num(_NPCSlavesSold)}</span> slaves were sold by your inhabitants. They've got more than enough of them already.`);
-					} else if (_NPCSlavesSold > 0) {
+					const NPCSlavesSold = Math.trunc((V.NPCSlaves - SCD) * 0.4);
+					V.menialDemandFactor -= NPCSlavesSold;
+					V.NPCSlaves -= NPCSlavesSold;
+					if (NPCSlavesSold > 1) {
+						appendDiv(`<span class="red">${num(NPCSlavesSold)}</span> slaves were sold by your inhabitants. They've got more than enough of them already.`);
+					} else if (NPCSlavesSold > 0) {
 						appendDiv(`<span class="red">One slave</span> was sold by your inhabitants. They've got more than enough of them already.`);
 					}
 				}
 				/* Selling excess slaves for profit*/
-			} else if (V.NPCSlaves > _SCD * 1.2) {
+			} else if (V.NPCSlaves > SCD * 1.2) {
 				if (V.slaveCostFactor > 1.1) {
-					const _NPCSlavesSold = Math.trunc((V.NPCSlaves - _SCD) * 0.4);
-					V.menialDemandFactor -= _NPCSlavesSold;
-					V.NPCSlaves -= _NPCSlavesSold;
-					if (_NPCSlavesSold > 1) {
-						appendDiv(`<span class="red">${num(_NPCSlavesSold)}</span> were sold by your inhabitants. They saw an opportunity for profit.`);
-					} else if (_NPCSlavesSold > 0) {
+					const NPCSlavesSold = Math.trunc((V.NPCSlaves - SCD) * 0.4);
+					V.menialDemandFactor -= NPCSlavesSold;
+					V.NPCSlaves -= NPCSlavesSold;
+					if (NPCSlavesSold > 1) {
+						appendDiv(`<span class="red">${num(NPCSlavesSold)}</span> were sold by your inhabitants. They saw an opportunity for profit.`);
+					} else if (NPCSlavesSold > 0) {
 						appendDiv(`<span class="red">One slave</span> was sold by your inhabitants. They saw an opportunity for profit.`);
 					}
 				}
 			}
 			/* Buying slaves because they are really cheap*/
 			if (V.slaveCostFactor < 0.8) {
-				if (V.NPCSlaves < _SCD * 1.5) {
-					const _NPCSlavesBought = Math.trunc(_SCD * 0.05);
-					V.menialSupplyFactor -= _NPCSlavesBought;
-					V.NPCSlaves += _NPCSlavesBought;
-					if (_NPCSlavesBought > 1) {
-						appendDiv(`<span class="green">${num(_NPCSlavesBought)} slaves</span> were bought by your inhabitants. They were too cheap to pass up on.`);
+				if (V.NPCSlaves < SCD * 1.5) {
+					const NPCSlavesBought = Math.trunc(SCD * 0.05);
+					V.menialSupplyFactor -= NPCSlavesBought;
+					V.NPCSlaves += NPCSlavesBought;
+					if (NPCSlavesBought > 1) {
+						appendDiv(`<span class="green">${num(NPCSlavesBought)} slaves</span> were bought by your inhabitants. They were too cheap to pass up on.`);
 					} /* there's no way this ever ends up needing a 1 slave version*/
 				}
 			}
@@ -1612,14 +1612,14 @@ App.EndWeek.arcManagement = function() {
 
 		/* Lower Class Citizens*/
 		/* Work left for lower class citizens*/
-		_LCD = Math.trunc(((V.LSCBase * _econMult) + (V.arcologies[0].prosperity * 4) + _lowerClass + ((V.middleClass + V.visitors * 0.6) * 1.5) + ((V.upperClass + V.visitors * 0.2) * 3.5) + (V.topClass * 18) - (V.NPCSlaves + V.menials) * _slaveProductivity) * V.rentEffectL * _lowerClassP);
+		LCD = Math.trunc(((V.LSCBase * econMult) + (V.arcologies[0].prosperity * 4) + lowerClass + ((V.middleClass + V.visitors * 0.6) * 1.5) + ((V.upperClass + V.visitors * 0.2) * 3.5) + (V.topClass * 18) - (V.NPCSlaves + V.menials) * slaveProductivity) * V.rentEffectL * lowerClassP);
 		if (V.classSatisfied.lowerClass !== 0) {
-			_LCD *= 1 + V.classSatisfied.lowerClass * 0.06;
+			LCD *= 1 + V.classSatisfied.lowerClass * 0.06;
 		}
-		if (_LCD < 0) {
-			_LCD = 0;
+		if (LCD < 0) {
+			LCD = 0;
 		}
-		if (isNaN(_LCD)) {
+		if (isNaN(LCD)) {
 			appendDiv(`<span class="red">LCD is NaN, report this issue!</span>`);
 		} else { /* Changing population depending on work available*/
 			if (V.classSatisfied.lowerClass < 0) {
@@ -1628,48 +1628,48 @@ App.EndWeek.arcManagement = function() {
 				appendDiv(`Your lower class is <span class="green">sexually satiated</span> and their happiness attracts others.`);
 			}
 			r = [];
-			if (V.lowerClass < _LCD) {
-				let _LCImmigration = Math.trunc((_LCD - V.lowerClass) * (0.3 * _terrain)) + 1 + secExpImmigrationBonus.effect;
+			if (V.lowerClass < LCD) {
+				let LCImmigration = Math.trunc((LCD - V.lowerClass) * (0.3 * terrain)) + 1 + secExpImmigrationBonus.effect;
 				if (V.arcologies[0].FSIntellectualDependencyLaw === 1) { /* Enslaving the dumb lower class immigrants*/
-					const _intellectualDependencyEnslaved = Math.trunc(_LCImmigration * 0.25);
-					_LCImmigration -= _intellectualDependencyEnslaved;
-					_enslaved += _intellectualDependencyEnslaved;
-					r.push(`<span class="green">${num(_intellectualDependencyEnslaved)} dumb immigrants</span> were enslaved for their own good.`);
+					const intellectualDependencyEnslaved = Math.trunc(LCImmigration * 0.25);
+					LCImmigration -= intellectualDependencyEnslaved;
+					enslaved += intellectualDependencyEnslaved;
+					r.push(`<span class="green">${num(intellectualDependencyEnslaved)} dumb immigrants</span> were enslaved for their own good.`);
 				}
 
-				V.lowerClass += _LCImmigration;
-				if (_LCImmigration > 1) {
-					r.push(`<span class="green">${num(_LCImmigration)} lower class citizens</span> moved to your arcology.`);
-				} else if (_LCImmigration > 0) {
+				V.lowerClass += LCImmigration;
+				if (LCImmigration > 1) {
+					r.push(`<span class="green">${num(LCImmigration)} lower class citizens</span> moved to your arcology.`);
+				} else if (LCImmigration > 0) {
 					r.push(`<span class="green">One lower class citizen</span> moved to your arcology.`);
 				}
-			} else if (V.lowerClass > _LCD) {
-				const _LCEmigration = Math.trunc((V.lowerClass - _LCD) * 0.4);
+			} else if (V.lowerClass > LCD) {
+				const LCEmigration = Math.trunc((V.lowerClass - LCD) * 0.4);
 				const enslaveChance = 0.2;
-				const _enslavedEmigrants = Math.trunc(_LCEmigration * enslaveChance * (1.0 - getBanishRatio()));
-				V.lowerClass -= _LCEmigration;
-				_enslaved += _enslavedEmigrants;
-				if (_LCEmigration > 1) {
-					r.push(`<span class="red">${num(_LCEmigration)} lower class citizens</span> had no work and tried to leave your arcology.`);
-					if (_enslavedEmigrants > 1) {
-						r.push(`<span class="green">${num(_enslavedEmigrants)} of them were enslaved instead.</span>`);
-					} else if (_enslavedEmigrants > 0) {
+				const enslavedEmigrants = Math.trunc(LCEmigration * enslaveChance * (1.0 - getBanishRatio()));
+				V.lowerClass -= LCEmigration;
+				enslaved += enslavedEmigrants;
+				if (LCEmigration > 1) {
+					r.push(`<span class="red">${num(LCEmigration)} lower class citizens</span> had no work and tried to leave your arcology.`);
+					if (enslavedEmigrants > 1) {
+						r.push(`<span class="green">${num(enslavedEmigrants)} of them were enslaved instead.</span>`);
+					} else if (enslavedEmigrants > 0) {
 						r.push(`<span class="green">One of them was enslaved instead.</span>`);
 					}
-				} else if (_LCEmigration > 0) {
+				} else if (LCEmigration > 0) {
 					r.push(`<span class="red">One lower class citizen</span> left your arcology due to a lack of work.`);
 				}
 			}
 			App.Events.addNode(el, r, "div");
 			enslavement();
 			/* Need more slaves still*/
-			if (V.NPCSlaves < _SCD) {
-				const _NPCSlavesBought = Math.trunc((_SCD - V.NPCSlaves) * 0.75) + 1;
-				V.menialSupplyFactor -= _NPCSlavesBought;
-				V.NPCSlaves += _NPCSlavesBought;
-				if (_NPCSlavesBought > 1) {
-					appendDiv(`<span class="green">${num(_NPCSlavesBought)} slaves</span> were bought by your inhabitants. They did not have enough of them to satisfy their needs.`);
-				} else if (_NPCSlavesBought > 0) {
+			if (V.NPCSlaves < SCD) {
+				const NPCSlavesBought = Math.trunc((SCD - V.NPCSlaves) * 0.75) + 1;
+				V.menialSupplyFactor -= NPCSlavesBought;
+				V.NPCSlaves += NPCSlavesBought;
+				if (NPCSlavesBought > 1) {
+					appendDiv(`<span class="green">${num(NPCSlavesBought)} slaves</span> were bought by your inhabitants. They did not have enough of them to satisfy their needs.`);
+				} else if (NPCSlavesBought > 0) {
 					appendDiv(`<span class="green">One slave</span> was bought by your inhabitants. They did not quite have enough of them to satisfy their needs.`);
 				}
 			}
@@ -1677,14 +1677,14 @@ App.EndWeek.arcManagement = function() {
 
 		/* Middle Class Citizens*/
 		/* Demand for Middle Class*/
-		_MCD = Math.trunc(((V.MCBase * _econMult) + V.arcologies[0].prosperity + _middleClass + (V.NPCSlaves * 0.15) + (V.lowerClass * 0.1) + ((V.upperClass + V.visitors * 0.2) * 0.5) + (V.topClass * 2.5)) * V.rentEffectM * _middleClassP);
+		MCD = Math.trunc(((V.MCBase * econMult) + V.arcologies[0].prosperity + middleClass + (V.NPCSlaves * 0.15) + (V.lowerClass * 0.1) + ((V.upperClass + V.visitors * 0.2) * 0.5) + (V.topClass * 2.5)) * V.rentEffectM * middleClassP);
 		if (V.classSatisfied.middleClass !== 0) {
-			_MCD *= 1 + V.classSatisfied.middleClass * 0.06;
+			MCD *= 1 + V.classSatisfied.middleClass * 0.06;
 		}
-		if (_MCD < 200) {
-			_MCD = 200;
+		if (MCD < 200) {
+			MCD = 200;
 		}
-		if (isNaN(_MCD)) {
+		if (isNaN(MCD)) {
 			appendDiv(`<span class="red">MCD is NaN, report this issue!</span>`);
 		} else {
 			/* Middle Class Citizens immigrating*/
@@ -1693,21 +1693,21 @@ App.EndWeek.arcManagement = function() {
 			} else if (V.classSatisfied.middleClass > 0) {
 				appendDiv(`Your middle class is <span class="green">sexually satiated</span> and their happiness attracts others.`);
 			}
-			if (V.middleClass < _MCD) {
-				const _MCImmigration = Math.trunc((_MCD - V.middleClass) * (0.3 * _terrain)) + 1 + secExpImmigrationBonus.effect;
-				V.middleClass += _MCImmigration;
-				if (_MCImmigration > 1) {
-					appendDiv(`<span class="green">${num(_MCImmigration)} middle class citizens</span> moved to your arcology.`);
-				} else if (_MCImmigration > 0) {
+			if (V.middleClass < MCD) {
+				const MCImmigration = Math.trunc((MCD - V.middleClass) * (0.3 * terrain)) + 1 + secExpImmigrationBonus.effect;
+				V.middleClass += MCImmigration;
+				if (MCImmigration > 1) {
+					appendDiv(`<span class="green">${num(MCImmigration)} middle class citizens</span> moved to your arcology.`);
+				} else if (MCImmigration > 0) {
 					appendDiv(`<span class="green">One middle class citizen</span> moved to your arcology.`);
 				}
 				/* Middle Class Citizens emigrating*/
-			} else if (V.middleClass > _MCD) {
-				const _MCEmigration = Math.trunc((V.middleClass - _MCD) * 0.4);
-				V.middleClass -= _MCEmigration;
-				if (_MCEmigration > 1) {
-					appendDiv(`<span class="red">${num(_MCEmigration)} middle class citizens</span> left your arcology.`);
-				} else if (_MCEmigration > 0) {
+			} else if (V.middleClass > MCD) {
+				const MCEmigration = Math.trunc((V.middleClass - MCD) * 0.4);
+				V.middleClass -= MCEmigration;
+				if (MCEmigration > 1) {
+					appendDiv(`<span class="red">${num(MCEmigration)} middle class citizens</span> left your arcology.`);
+				} else if (MCEmigration > 0) {
 					appendDiv(`<span class="red">One middle class citizen</span> left your arcology.`);
 				}
 			}
@@ -1715,14 +1715,14 @@ App.EndWeek.arcManagement = function() {
 
 		/* Upper Class Citizens*/
 		/* Demand for Upper Class*/
-		_UCD = Math.trunc(((V.UCBase * _econMult) + (V.arcologies[0].prosperity * 0.2) + _upperClass + (V.NPCSlaves * 0.02) + (V.lowerClass * 0.025) + ((V.middleClass + V.visitors * 0.6) * 0.05) + (V.topClass * 0.3)) * V.rentEffectU * _upperClassP);
+		UCD = Math.trunc(((V.UCBase * econMult) + (V.arcologies[0].prosperity * 0.2) + upperClass + (V.NPCSlaves * 0.02) + (V.lowerClass * 0.025) + ((V.middleClass + V.visitors * 0.6) * 0.05) + (V.topClass * 0.3)) * V.rentEffectU * upperClassP);
 		if (V.classSatisfied.upperClass !== 0) {
-			_UCD *= 1 + V.classSatisfied.upperClass * 0.06;
+			UCD *= 1 + V.classSatisfied.upperClass * 0.06;
 		}
-		if (_UCD < 50) {
-			_UCD = 50;
+		if (UCD < 50) {
+			UCD = 50;
 		}
-		if (isNaN(_UCD)) {
+		if (isNaN(UCD)) {
 			appendDiv(`<span class="red">UCD is NaN, report this issue!</span>`);
 		} else {
 			/* Upper Class Citizens immigrating*/
@@ -1731,21 +1731,21 @@ App.EndWeek.arcManagement = function() {
 			} else if (V.classSatisfied.upperClass > 0) {
 				appendDiv(`Your upper class is <span class="green">sexually satiated</span> and their happiness attracts others.`);
 			}
-			if (V.upperClass < _UCD) {
-				const _UCImmigration = Math.trunc((_UCD - V.upperClass) * (0.3 * _terrain)) + 1 + secExpImmigrationBonus.effect;
-				V.upperClass += _UCImmigration;
-				if (_UCImmigration > 1) {
-					appendDiv(`<span class="green">${num(_UCImmigration)} upper class citizens</span> moved to your arcology.`);
-				} else if (_UCImmigration > 0) {
+			if (V.upperClass < UCD) {
+				const UCImmigration = Math.trunc((UCD - V.upperClass) * (0.3 * terrain)) + 1 + secExpImmigrationBonus.effect;
+				V.upperClass += UCImmigration;
+				if (UCImmigration > 1) {
+					appendDiv(`<span class="green">${num(UCImmigration)} upper class citizens</span> moved to your arcology.`);
+				} else if (UCImmigration > 0) {
 					appendDiv(`<span class="green">One upper class citizen</span> moved to your arcology.`);
 				}
 				/* Upper Class Citizens Emigrating*/
-			} else if (V.upperClass > _UCD) {
-				const _UCEmigration = Math.trunc((V.upperClass - _UCD) * 0.4);
-				V.upperClass -= _UCEmigration;
-				if (_UCEmigration > 1) {
-					appendDiv(`<span class="red">${num(_UCEmigration)} upper class citizens</span> left your arcology.`);
-				} else if (_UCEmigration > 0) {
+			} else if (V.upperClass > UCD) {
+				const UCEmigration = Math.trunc((V.upperClass - UCD) * 0.4);
+				V.upperClass -= UCEmigration;
+				if (UCEmigration > 1) {
+					appendDiv(`<span class="red">${num(UCEmigration)} upper class citizens</span> left your arcology.`);
+				} else if (UCEmigration > 0) {
 					appendDiv(`<span class="red">One upper class citizen</span> left your arcology.`);
 				}
 			}
@@ -1755,18 +1755,18 @@ App.EndWeek.arcManagement = function() {
 		/* Top Class Interest in living in your arcology*/
 		if (V.eliteFailTimer > 0) {
 			/* when you fail the eugenics Elite and they leave this triggers*/
-			_TCD = Math.trunc((V.GDP / 15 + _topClass) * V.rentEffectT * _topClassP + V.TCBase - (V.eliteFail / 15 * V.eliteFailTimer));
+			TCD = Math.trunc((V.GDP / 15 + topClass) * V.rentEffectT * topClassP + V.TCBase - (V.eliteFail / 15 * V.eliteFailTimer));
 			V.eliteFailTimer -= 1;
 		} else {
-			_TCD = Math.trunc((V.GDP / 15 + _topClass) * V.rentEffectT * _topClassP + V.TCBase);
+			TCD = Math.trunc((V.GDP / 15 + topClass) * V.rentEffectT * topClassP + V.TCBase);
 		}
 		if (V.classSatisfied.topClass !== 0) {
-			_TCD *= 1 + V.classSatisfied.topClass * 0.06;
+			TCD *= 1 + V.classSatisfied.topClass * 0.06;
 		}
-		if (_TCD < 15) {
-			_TCD = 15;
+		if (TCD < 15) {
+			TCD = 15;
 		}
-		if (isNaN(_TCD)) {
+		if (isNaN(TCD)) {
 			appendDiv(`<span class="red">TCD is NaN, report this issue!</span>`);
 		} else {
 			/* Top Class Citizens immigrating*/
@@ -1775,21 +1775,21 @@ App.EndWeek.arcManagement = function() {
 			} else if (V.classSatisfied.topClass > 0) {
 				appendDiv(`Your millionaires are <span class="green">sexually satiated</span> and their happiness attracts others.`);
 			}
-			if (V.topClass < _TCD) {
-				const _TCImmigration = Math.trunc((_TCD - V.topClass) * (0.3 * _terrain)) + 1 + secExpImmigrationBonus.effect;
-				V.topClass += _TCImmigration;
-				if (_TCImmigration > 1) {
-					appendDiv(`<span class="green">${num(_TCImmigration)} millionaires</span> moved to your arcology.`); /* Fat Cat? One-Percenter? */
-				} else if (_TCImmigration > 0) {
+			if (V.topClass < TCD) {
+				const TCImmigration = Math.trunc((TCD - V.topClass) * (0.3 * terrain)) + 1 + secExpImmigrationBonus.effect;
+				V.topClass += TCImmigration;
+				if (TCImmigration > 1) {
+					appendDiv(`<span class="green">${num(TCImmigration)} millionaires</span> moved to your arcology.`); /* Fat Cat? One-Percenter? */
+				} else if (TCImmigration > 0) {
 					appendDiv(`<span class="green">One millionaire</span> moved to your arcology.`);
 				}
 				/* Top Class Citizens emigrating*/
-			} else if (V.topClass > _TCD) {
-				const _TCEmigration = Math.trunc((V.topClass - _TCD) * 0.4) + 1;
-				V.topClass -= _TCEmigration;
-				if (_TCEmigration > 1) {
-					appendDiv(`<span class="red">${num(_TCEmigration)} millionaires</span> left your arcology.`);
-				} else if (_TCEmigration > 0) {
+			} else if (V.topClass > TCD) {
+				const TCEmigration = Math.trunc((V.topClass - TCD) * 0.4) + 1;
+				V.topClass -= TCEmigration;
+				if (TCEmigration > 1) {
+					appendDiv(`<span class="red">${num(TCEmigration)} millionaires</span> left your arcology.`);
+				} else if (TCEmigration > 0) {
 					appendDiv(`<span class="red">One millionaire</span> left your arcology.`);
 				}
 			}
@@ -1802,29 +1802,29 @@ App.EndWeek.arcManagement = function() {
 		const r = [];
 		/* Slave retirement trigger pulled (one time only)*/
 		if (V.citizenRetirementTrigger === 1) {
-			let _citizenRetirementImpact;
+			let citizenRetirementImpact;
 			if (V.customMenialRetirementAge >= 65) {
-				_citizenRetirementImpact = 0.475 - Math.clamp(V.customMenialRetirementAge / 200, 0.325, 0.475);
+				citizenRetirementImpact = 0.475 - Math.clamp(V.customMenialRetirementAge / 200, 0.325, 0.475);
 			} else {
-				_citizenRetirementImpact = 0.9 - Math.clamp(V.customMenialRetirementAge / 100, 0.2, 0.65);
+				citizenRetirementImpact = 0.9 - Math.clamp(V.customMenialRetirementAge / 100, 0.2, 0.65);
 			}
 			if (V.arcologies[0].FSSupremacistLawME + V.arcologies[0].FSSubjugationistLawME > 0) {
-				_citizenRetirementImpact *= 2 / 3;
+				citizenRetirementImpact *= 2 / 3;
 			}
-			V.lowerClass += Math.trunc((V.NPCSlaves + V.menials) * (0.05 + _citizenRetirementImpact));
-			const _menialsRetirement = Math.trunc(V.menials * (0.05 + _citizenRetirementImpact));
-			V.menials = Math.trunc(V.menials * (0.95 - _citizenRetirementImpact));
-			const _ASlavesRetirement = Math.trunc(V.NPCSlaves * (0.05 + _citizenRetirementImpact));
-			V.NPCSlaves = Math.trunc(V.NPCSlaves * (0.95 - _citizenRetirementImpact));
+			V.lowerClass += Math.trunc((V.NPCSlaves + V.menials) * (0.05 + citizenRetirementImpact));
+			const menialsRetirement = Math.trunc(V.menials * (0.05 + citizenRetirementImpact));
+			V.menials = Math.trunc(V.menials * (0.95 - citizenRetirementImpact));
+			const ASlavesRetirement = Math.trunc(V.NPCSlaves * (0.05 + citizenRetirementImpact));
+			V.NPCSlaves = Math.trunc(V.NPCSlaves * (0.95 - citizenRetirementImpact));
 			V.citizenRetirementTrigger = 2;
 			r.push(`You have enacted citizen retirement, the slaves of eligible age are granted freedom.`);
-			if (_menialsRetirement > 1) {
-				r.push(`<span class="red">${num(_menialsRetirement)} of your menial slaves</span> were retired.`);
-			} else if (_menialsRetirement > 0) {
+			if (menialsRetirement > 1) {
+				r.push(`<span class="red">${num(menialsRetirement)} of your menial slaves</span> were retired.`);
+			} else if (menialsRetirement > 0) {
 				r.push(`<span class="red">One of your menial slaves</span> was retired.`);
 			}
-			if (_ASlavesRetirement > 1) {
-				r.push(`<span class="red">${num(_ASlavesRetirement)} slaves</span> in your arcology were given a citizen retirement.`);
+			if (ASlavesRetirement > 1) {
+				r.push(`<span class="red">${num(ASlavesRetirement)} slaves</span> in your arcology were given a citizen retirement.`);
 			}
 			/* I could bother with a single slave retirement message, but that's never going to get used*/
 		}
@@ -1837,49 +1837,49 @@ App.EndWeek.arcManagement = function() {
 		const r = [];
 		/* Citizen expiration */
 		let z = [];
-		const _deathsLC = Math.trunc(V.lowerClass * _expirationLC);
-		const _deathsMC = Math.trunc(V.middleClass * _expirationMC);
-		const _deathsUC = Math.trunc(V.upperClass * _expirationUC);
-		const _deathsTC = Math.trunc(V.topClass * _expirationTC);
-		V.lowerClass -= _deathsLC;
-		V.middleClass -= _deathsMC;
-		V.upperClass -= _deathsUC;
-		V.lowerClass -= _deathsTC;
-		if (_deathsLC > 0) {
-			z.push(numberWithPluralOne(_deathsLC, "lower class citizen"));
-		}
-		if (_deathsMC > 0) {
-			z.push(numberWithPluralOne(_deathsMC, "middle class citizen"));
-		}
-		if (_deathsUC > 0) {
-			z.push(numberWithPluralOne(_deathsUC, "upper class citizen"));
-		}
-		if (_deathsTC > 0) {
-			z.push(numberWithPluralOne(_deathsTC, "millionaire"));
-		}
-		if (_deathsLC > 0 || _deathsMC > 0 || _deathsUC > 0 || _deathsTC > 0) {
+		const deathsLC = Math.trunc(V.lowerClass * expirationLC);
+		const deathsMC = Math.trunc(V.middleClass * expirationMC);
+		const deathsUC = Math.trunc(V.upperClass * expirationUC);
+		const deathsTC = Math.trunc(V.topClass * expirationTC);
+		V.lowerClass -= deathsLC;
+		V.middleClass -= deathsMC;
+		V.upperClass -= deathsUC;
+		V.lowerClass -= deathsTC;
+		if (deathsLC > 0) {
+			z.push(numberWithPluralOne(deathsLC, "lower class citizen"));
+		}
+		if (deathsMC > 0) {
+			z.push(numberWithPluralOne(deathsMC, "middle class citizen"));
+		}
+		if (deathsUC > 0) {
+			z.push(numberWithPluralOne(deathsUC, "upper class citizen"));
+		}
+		if (deathsTC > 0) {
+			z.push(numberWithPluralOne(deathsTC, "millionaire"));
+		}
+		if (deathsLC > 0 || deathsMC > 0 || deathsUC > 0 || deathsTC > 0) {
 			r.push(App.UI.DOM.makeElement("span", `${capFirstChar(toSentence(z))} passed away due to natural causes.`, "red"));
 		}
 
 		/* Slave expiration*/
-		const _expirationPC = Math.trunc(V.menials * _expirationFS);
-		const _expirationFD = Math.trunc(V.fuckdolls * _expirationFS);
-		const _expirationBR = Math.trunc(V.menialBioreactors * _expirationFS);
-		const _expirationNPC = Math.trunc(V.NPCSlaves * _expirationFS);
-		const _expiration = _expirationPC + _expirationNPC + _expirationFD + _expirationBR;
-		V.NPCSlaves -= _expirationNPC;
-		V.menials -= _expirationPC;
-		V.fuckdolls -= _expirationFD;
-		V.menialBioreactors -= _expirationBR;
-		if (_expiration > 0) {
-			if (_expirationFS <= 0.5) {
-				r.push(`<span class="red">${capFirstChar(numberWithPluralOne(_expiration, "slave"))} passed away</span> due to natural causes.`);
+		const expirationPC = Math.trunc(V.menials * expirationFS);
+		const expirationFD = Math.trunc(V.fuckdolls * expirationFS);
+		const expirationBR = Math.trunc(V.menialBioreactors * expirationFS);
+		const expirationNPC = Math.trunc(V.NPCSlaves * expirationFS);
+		const expiration = expirationPC + expirationNPC + expirationFD + expirationBR;
+		V.NPCSlaves -= expirationNPC;
+		V.menials -= expirationPC;
+		V.fuckdolls -= expirationFD;
+		V.menialBioreactors -= expirationBR;
+		if (expiration > 0) {
+			if (expirationFS <= 0.5) {
+				r.push(`<span class="red">${capFirstChar(numberWithPluralOne(expiration, "slave"))} passed away</span> due to natural causes.`);
 			} else {
-				r.push(`<span class="red">${capFirstChar(numberWithPluralOne(_expiration, "slave"))} died</span> due to the tough working conditions in your arcology.`);
+				r.push(`<span class="red">${capFirstChar(numberWithPluralOne(expiration, "slave"))} died</span> due to the tough working conditions in your arcology.`);
 			}
-			if (_expirationPC > 1) {
-				r.push(`Of which <span class="red">${num(_expirationPC)} were yours.</span>`);
-			} else if (_expirationPC > 0) {
+			if (expirationPC > 1) {
+				r.push(`Of which <span class="red">${num(expirationPC)} were yours.</span>`);
+			} else if (expirationPC > 0) {
 				r.push(`<span class="red">One of them was yours.</span>`);
 			}
 		}
@@ -1892,26 +1892,26 @@ App.EndWeek.arcManagement = function() {
 		/* increases lowerclass attraction based on number of dense apartments */
 		let el = new DocumentFragment();
 		let r = [];
-		let _count = 0;
+		let count = 0;
 		V.building.findCells(cell => !(cell instanceof App.Arcology.Cell.Penthouse))
 			.forEach(cell => {
 				if (cell instanceof App.Arcology.Cell.Apartment) {
 					if (cell.type === 3) {
-						_count += 1;
-						_lowerClass += 40;
+						count += 1;
+						lowerClass += 40;
 					}
 				}
 			});
-		if (_count > 9) {
+		if (count > 9) {
 			r.push(App.UI.DOM.makeElement("span", `A great amount of lower class citizens`, "green"));
 			r.push(`were attracted by the sectors filled with dense apartments.`);
-		} else if (_count > 5) {
+		} else if (count > 5) {
 			r.push(App.UI.DOM.makeElement("span", `A large amount of lower class citizens`, "green"));
 			r.push(`were attracted by your sprawling blocks of dense apartments.`);
-		} else if (_count > 2) {
+		} else if (count > 2) {
 			r.push(App.UI.DOM.makeElement("span", `A moderate amount of lower class citizens`, "green"));
 			r.push(`were attracted by your dense apartment complexes`);
-		} else if (_count > 0) {
+		} else if (count > 0) {
 			r.push(App.UI.DOM.makeElement("span", `A small amount of lower class citizens`, "green"));
 			r.push(`were attracted by your dense apartments.`);
 		}
@@ -1922,28 +1922,28 @@ App.EndWeek.arcManagement = function() {
 	function getBanishRatio() {
 		/* Some proportion of newly-enslaved citizens might instead be banished, if you don't keep old menials.
 		 * This should probably use an actuarial age distribution instead of this piecewise function. */
-		let _banishedRatio = 0.0;
+		let banishedRatio = 0.0;
 		if (V.policies.retirement.menial2Citizen === 1) {
 			if (V.customMenialRetirementAge >= 65) {
-				_banishedRatio = 0.475 - Math.clamp(V.customMenialRetirementAge / 200, 0.325, 0.475);
+				banishedRatio = 0.475 - Math.clamp(V.customMenialRetirementAge / 200, 0.325, 0.475);
 			} else {
-				_banishedRatio = 0.9 - Math.clamp(V.customMenialRetirementAge / 100, 0.2, 0.65);
+				banishedRatio = 0.9 - Math.clamp(V.customMenialRetirementAge / 100, 0.2, 0.65);
 			}
 			if (V.arcologies[0].FSSupremacistLawME + V.arcologies[0].FSSubjugationistLawME > 0) {
-				_banishedRatio *= 2 / 3;
+				banishedRatio *= 2 / 3;
 			}
-			_banishedRatio += 0.05; // not sure what the extra 5% is for...
+			banishedRatio += 0.05; // not sure what the extra 5% is for...
 		}
-		return _banishedRatio;
+		return banishedRatio;
 	}
 
 	function citizenToSlave() {
 		/* Citizens turning into slaves, or being banished because they can't be */
-		const _banished = Math.trunc((V.lowerClass * _welfareFS) * getBanishRatio());
-		_enslaved = Math.trunc(V.lowerClass * _welfareFS) - _banished;
-		V.lowerClass -= (_enslaved + _banished);
-		if (_banished > 0) {
-			appendDiv(`<span class="red">${_banished} citizens were banished</span> from your arcology; they committed enslavable offenses, but were too old to be enslaved.`);
+		const banished = Math.trunc((V.lowerClass * welfareFS) * getBanishRatio());
+		enslaved = Math.trunc(V.lowerClass * welfareFS) - banished;
+		V.lowerClass -= (enslaved + banished);
+		if (banished > 0) {
+			appendDiv(`<span class="red">${banished} citizens were banished</span> from your arcology; they committed enslavable offenses, but were too old to be enslaved.`);
 		}
 	}
 
diff --git a/src/endWeek/economics/corporationDevelopments.js b/src/endWeek/economics/corporationDevelopments.js
index 39916afcea47616c3078e697f7906710435c6ff0..6838a3b77c91b83dde123b062eb9b3a422d52bf2 100644
--- a/src/endWeek/economics/corporationDevelopments.js
+++ b/src/endWeek/economics/corporationDevelopments.js
@@ -9,52 +9,53 @@ App.EndWeek.corporationDevelopments = function() {
 	App.UI.DOM.appendNewElement("h1", el, "Corporation Management");
 	App.UI.DOM.appendNewElement("h2", el, "Operational Results");
 	/* Divisions doing their thing*/
-	const _weekLedger = App.Corporate.endWeek();
-	for (const i in _weekLedger.divisionLedgers) {
-		const _d = _weekLedger.divisionLedgers[i];
-		const _div = _d.division;
+	const weekLedger = App.Corporate.endWeek();
+	for (const i in weekLedger.divisionLedgers) {
+		const d = weekLedger.divisionLedgers[i];
+		const division = d.division;
 		let r;
 		/* Reporting on number of slaves being processed or completed processing */
-		App.Events.addNode(el, [`${_div.name}: The division ${_div.message_endWeek_Slaves(_d)}`], "div");
+		App.UI.DOM.appendNewElement("h3", el, division.name);
+		App.Events.addNode(el, [`The division ${division.message_endWeek_Slaves(d)}`], "div");
 
 		r = [];
-		if (_d.market.originalBuy != null) {
-			if (_d.market.buy === 0) {
-				r.push(`It couldn't purchase ${numberWithPlural(_d.market.originalBuy, "slave")} to replenish its stock from the market because it couldn't afford to purchase price.`);
+		if (d.market.originalBuy != null) {
+			if (d.market.buy === 0) {
+				r.push(`It couldn't purchase ${numberWithPlural(d.market.originalBuy, "slave")} to replenish its stock from the market because it couldn't afford to purchase price.`);
 			} else {
-				r.push(`It needed to replenish its slave stock of ${numberWithPlural(_d.market.originalBuy, "slave")}, but couldn't afford to buy all of them. It bought ${numberWithPlural(_d.market.buy, _div.nounSlaveFromMarket)} for ${cashFormatColor(_d.market.finalPurchase, true)}.`);
+				r.push(`It needed to replenish its slave stock of ${numberWithPlural(d.market.originalBuy, "slave")}, but couldn't afford to buy all of them. It bought ${numberWithPlural(d.market.buy, division.nounSlaveFromMarket)} for ${cashFormatColor(d.market.finalPurchase, true)}.`);
 			}
-		} else if (_d.market.buy > 0) {
-			r.push(`It replenished its slave stock and bought ${numberWithPlural(_d.market.buy, _div.nounSlaveFromMarket)} from the market for ${cashFormatColor(_d.market.finalPurchase, true)}.`);
+		} else if (d.market.buy > 0) {
+			r.push(`It replenished its slave stock and bought ${numberWithPlural(d.market.buy, division.nounSlaveFromMarket)} from the market for ${cashFormatColor(d.market.finalPurchase, true)}.`);
 		}
 		App.Events.addNode(el, r, "div");
 
-		if (_d.transfer.total > 0) {
-			for (const i in _d.transfer.divisions) {
-				const _nextDivLedger = _d.transfer.divisions[i];
-				const _nextDiv = _nextDivLedger.division;
-				const _slavesToNext = _nextDivLedger.fill;
-				App.Events.addNode(el, [`It moved ${numberWithPlural(_slavesToNext, "slave")} to the ${_nextDiv.name} Division.`], "div");
+		if (d.transfer.total > 0) {
+			for (const i in d.transfer.divisions) {
+				const nextDivLedger = d.transfer.divisions[i];
+				const nextDiv = nextDivLedger.division;
+				const slavesToNext = nextDivLedger.fill;
+				App.Events.addNode(el, [`It moved ${numberWithPlural(slavesToNext, "slave")} to the ${nextDiv.name} Division.`], "div");
 			}
 		}
-		if (_div.toMarket) {
+		if (division.toMarket) {
 			r = [];
-			if (_div.heldSlaves === 0) {
-				if (_d.market.sell > 0) {
-					r.push(`It immediately sold ${numberWithPlural(_d.market.sell, _div.nounFinishedSlave)} to the market and made ${cashFormatColor(_d.market.finalSale)}.`);
+			if (division.heldSlaves === 0) {
+				if (d.market.sell > 0) {
+					r.push(`It immediately sold ${numberWithPlural(d.market.sell, division.nounFinishedSlave)} to the market and made ${cashFormatColor(d.market.finalSale)}.`);
 				}
 			} else {
-				r.push(`It holds <span class="positive">${numberWithPlural(_div.heldSlaves, _div.nounFinishedSlave)}</span> at the end of the`);
-				if (_d.market.sell > 0) {
-					r.push(`week, but it ran out of storage space and had to sell <span class="red">${numberWithPlural(_d.market.sell, "slave")}</span> and made ${cashFormatColor(_d.market.finalSale)}.`);
+				r.push(`It holds <span class="positive">${numberWithPlural(division.heldSlaves, division.nounFinishedSlave)}</span> at the end of the`);
+				if (d.market.sell > 0) {
+					r.push(`week, but it ran out of storage space and had to sell <span class="red">${numberWithPlural(d.market.sell, "slave")}</span> and made ${cashFormatColor(d.market.finalSale)}.`);
 				} else {
 					r.push(`week.`);
 				}
 			}
 			App.Events.addNode(el, r, "div");
 		}
-		if (_d.revenue.value > 0) {
-			App.Events.addNode(el, [`It earned ${cashFormatColor(_d.revenue.value)} in revenue.`], "div");
+		if (d.revenue.value > 0) {
+			App.Events.addNode(el, [`It earned ${cashFormatColor(d.revenue.value)} in revenue.`], "div");
 		}
 	}
 
@@ -62,12 +63,12 @@ App.EndWeek.corporationDevelopments = function() {
 	el.append(App.Corporate.writeLedger(App.Corporate.ledger.current, V.week));
 
 	/* Division Expansion Tokens*/
-	if (_weekLedger.canExpandNow) {
+	if (weekLedger.canExpandNow) {
 		App.UI.DOM.appendNewElement("div", el, "Your corporation is ready to start an additional division!", "majorText");
 	}
 
 	/* Specializations tokens*/
-	if (_weekLedger.canSpecializeNow) {
+	if (weekLedger.canSpecializeNow) {
 		App.UI.DOM.appendNewElement("div", el, "Your corporation is ready to specialize its slaves further!", "majorText");
 	}
 
@@ -86,20 +87,20 @@ App.EndWeek.corporationDevelopments = function() {
 
 	if (App.Corporate.dividend > 0) {
 		r = [];
-		if (_weekLedger.hasDividend) {
-			r.push(`It reserved ${cashFormatColor(_weekLedger.dividend)} this week.`);
+		if (weekLedger.hasDividend) {
+			r.push(`It reserved ${cashFormatColor(weekLedger.dividend)} this week.`);
 		}
 		r.push(`A total of ${cashFormatColor(App.Corporate.dividend)} has been put aside for its shareholders.`);
 		App.Events.addNode(el, r, "div");
 	}
 
-	if (_weekLedger.hasPayout) {
-		App.Events.addNode(el, [`This week the dividends were paid out, you received ${cashFormatColor(_weekLedger.payout)}.`], "div");
+	if (weekLedger.hasPayout) {
+		App.Events.addNode(el, [`This week the dividends were paid out, you received ${cashFormatColor(weekLedger.payout)}.`], "div");
 	}
 
 	/* Bankrupted the Corporation*/
 	if (App.Corporate.value < 0) {
-		App.Corporation.Dissolve();
+		App.Corporate.dissolve();
 		App.UI.DOM.appendNewElement("div", el, "Your corporation went bankrupt.", "red");
 	}
 	/* This needs to be at the very end of the financials*/
diff --git a/src/endWeek/economics/neighborsDevelopment.js b/src/endWeek/economics/neighborsDevelopment.js
index 00da298345c76a57338c7bd02600d0abf81e9048..ea9b60c11841df8f52ea0e3f1aaf8c52160ce126 100644
--- a/src/endWeek/economics/neighborsDevelopment.js
+++ b/src/endWeek/economics/neighborsDevelopment.js
@@ -1718,15 +1718,15 @@ App.EndWeek.neighborsDevelopment = function() {
 								adoptRivalFS("FSPetiteAdmiration");
 								return;
 							case "Slimness Enthusiasm":
-								r.push(`${desc} loves boobs, the bigger, the better, leading the arcology to <span class="yellow">adopt Asset Expansionism.</span>`);
+								r.push(`${desc} obsessed with boobs, the bigger, the better, leading the arcology to <span class="yellow">adopt Asset Expansionism.</span>`);
 								adoptRivalFS("FSAssetExpansionist");
 								return;
 							case "Asset Expansionism":
-								r.push(`${desc} loves a slim slave with tight holes, leading the arcology to <span class="yellow">adopt Slimness Enthusiasm.</span>`);
+								r.push(`${desc} partial to a slim slave with tight holes, leading the arcology to <span class="yellow">adopt Slimness Enthusiasm.</span>`);
 								adoptRivalFS("FSSlimnessEnthusiast");
 								return;
 							case "Pastoralism":
-								r.push(`${desc} loves cum, leading the arcology to <span class="yellow">adopt Cummunism.</span>`);
+								r.push(`${desc} obsessed with cum, leading the arcology to <span class="yellow">adopt Cummunism.</span>`);
 								adoptRivalFS("FSCummunism");
 								return;
 							case "Cummunism":
@@ -1888,13 +1888,13 @@ App.EndWeek.neighborsDevelopment = function() {
 						}
 						if (V.arcologies[0].FSSlimnessEnthusiast > random(5, 60)) {
 							if (validFSes.includes("FSAssetExpansionist")) {
-								r.push(`${desc} loves boobs, the bigger, the better, leading the arcology to <span class="yellow">adopt Asset Expansionism.</span>`);
+								r.push(`${desc} obsessed with boobs, the bigger, the better, leading the arcology to <span class="yellow">adopt Asset Expansionism.</span>`);
 								arc.FSAssetExpansionist = 5;
 								return;
 							}
 						} else if (V.arcologies[0].FSAssetExpansionist > random(5, 60)) {
 							if (validFSes.includes("FSSlimnessEnthusiast")) {
-								r.push(`${desc} loves a slim slave with tight holes, leading the arcology to <span class="yellow">adopt Slimness Enthusiasm.</span>`);
+								r.push(`${desc} partial to a slim slave with tight holes, leading the arcology to <span class="yellow">adopt Slimness Enthusiasm.</span>`);
 								arc.FSSlimnessEnthusiast = 5;
 								return;
 							}
diff --git a/src/endWeek/economics/personalNotes.js b/src/endWeek/economics/personalNotes.js
index 08a9bea9f6a532bfd78b2f4a358d1e3768a84f4c..c6c90c2090955ae10183eeccc5bec6e6307c94ac 100644
--- a/src/endWeek/economics/personalNotes.js
+++ b/src/endWeek/economics/personalNotes.js
@@ -302,7 +302,7 @@ App.EndWeek.personalNotes = function() {
 				if (V.PC.pregAdaptation < 500) {
 					miscarriageChance = -10;
 					miscarriageChance += ((V.PC.bellyPreg / 1000) - V.PC.pregAdaptation);
-					r.push(` // this could use to not be linear`);
+					// this could use to not be linear
 					if (V.PC.inflation > 0) {
 						miscarriageChance += 10;
 					}
@@ -423,12 +423,12 @@ App.EndWeek.personalNotes = function() {
 				}
 				if (V.seeExtreme === 1) {
 					if (miscarriage !== 1 && V.PC.bellyPreg >= 100000 && V.PC.geneMods.rapidCellGrowth !== 1) {
-						r.push(` // If ${he} can't relieve the pressure that way, will ${he} hold?`);
+						// If he can't relieve the pressure that way, will he hold?
 						if (V.PC.bellyPreg >= 500000 || V.PC.wombImplant !== "restraint") {
 							if ((V.PC.belly > (V.PC.pregAdaptation * 3200)) || V.PC.bellyPreg >= 500000) {
 								burstChance = -80;
 								burstChance += ((V.PC.belly / 1000) - V.PC.pregAdaptation);
-								r.push(` // this could use to not be linear`);
+								// this could use to not be linear
 								if (V.PC.health.health < -20) {
 									burstChance -= (V.PC.health.health);
 								} else if (V.PC.health.health > 80) {
diff --git a/src/endWeek/economics/reputation.js b/src/endWeek/economics/reputation.js
index c1d2254ba2b12a865f0957668092498078968107..959245f7f432d31f0c6b53c327e3844d9fa030ed 100644
--- a/src/endWeek/economics/reputation.js
+++ b/src/endWeek/economics/reputation.js
@@ -4,7 +4,7 @@
 App.EndWeek.reputation = function() {
 	const el = document.createElement("p");
 	let r = [];
-	let _repLoss;
+	let repLoss;
 
 	if (V.useTabs === 0) {
 		App.UI.DOM.appendNewElement("h2", el, `Reputation`);
@@ -49,101 +49,101 @@ App.EndWeek.reputation = function() {
 		}
 	}
 
-	let _repDecay = 0.05;
-	let _enduringRep = V.enduringRep;
+	let repDecay = 0.05;
+	let enduringRep = V.enduringRep;
 	if (V.arcologies[0].FSChattelReligionistLaw === 1) {
-		_enduringRep = Math.min(_enduringRep + 2000, 12000);
+		enduringRep = Math.min(enduringRep + 2000, 12000);
 	}
 	if (V.arcologies[0].FSRestartDecoration === 100) {
-		_enduringRep = Math.min(_enduringRep + 2000, 13000);
+		enduringRep = Math.min(enduringRep + 2000, 13000);
 		/* that 13000 is not a typo, it allows for some stacking of FSRestart and FSChattel */
 	}
-	if (V.rep > _enduringRep) {
+	if (V.rep > enduringRep) {
 		if (V.arcologies[0].FSMaturityPreferentialistLaw === 1) {
 			if (V.PC.actualAge >= 65) {
 				r.push(`Since you're getting on in years and have an impressive list of accomplishments, and ${V.arcologies[0].name}'s society respects age, your reputation degrades quite slowly.`);
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay - 0.0125));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay - 0.0125));
 			} else if (V.PC.actualAge >= 50) {
 				r.push(`Since you're well into middle age and have an impressive list of accomplishments, and ${V.arcologies[0].name}'s society respects age, your reputation degrades quite slowly.`);
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay - 0.0125));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay - 0.0125));
 			} else if (V.PC.actualAge < 35) {
 				r.push(`Since you're unusually young for an arcology owner, and ${V.arcologies[0].name}'s society respects age, your reputation degrades quite quickly.`);
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay + 0.0125));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay + 0.0125));
 			} else {
 				r.push(`Since you're only entering middle age, and ${V.arcologies[0].name}'s society respects age, your reputation degrades fairly quickly.`);
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay));
 			}
 		} else if (V.arcologies[0].FSYouthPreferentialistLaw === 1) {
 			if (V.PC.actualAge >= 65) {
 				r.push(`Since you're getting on in years and have an impressive list of accomplishments, but ${V.arcologies[0].name}'s society is coming to prefer youth to experience, so your reputation degrades fairly quickly.`);
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay + 0.0125));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay + 0.0125));
 			} else if (V.PC.actualAge >= 50) {
 				r.push(`You're well into middle age and have an impressive list of accomplishments, but ${V.arcologies[0].name}'s society is coming to prefer youth to experience, so your reputation degrades fairly quickly.`);
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay + 0.0125));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay + 0.0125));
 			} else if (V.PC.actualAge < 35) {
 				r.push(`You're unusually young for an arcology owner, but ${V.arcologies[0].name}'s society doesn't mind.`);
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay));
 			} else {
 				r.push(`Since you're entering middle age, and ${V.arcologies[0].name}'s society respects youth, your reputation degrades fairly quickly.`);
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay + 0.0125));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay + 0.0125));
 			}
 		} else {
 			if (V.PC.actualAge >= 65) {
 				r.push(`Since you're getting on in years and have an impressive list of accomplishments, and ${V.arcologies[0].name}'s society respects age, your reputation degrades quite slowly.`);
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay - 0.0125));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay - 0.0125));
 			} else if (V.PC.actualAge >= 50) {
 				r.push(`Since you're well into middle age and have an impressive list of accomplishments, your reputation degrades fairly slowly.`);
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay - 0.0125));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay - 0.0125));
 			} else if (V.PC.actualAge < 35) {
 				r.push(`Since you're unusually young for an arcology owner, your reputation degrades fairly quickly.`);
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay + 0.0125));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay + 0.0125));
 			} else {
-				_repLoss = Math.trunc((V.rep - _enduringRep) * (_repDecay));
+				repLoss = Math.trunc((V.rep - enduringRep) * (repDecay));
 			}
 		}
 		if (V.arcologies[0].FSChattelReligionistLaw === 1) {
-			if (_repLoss > 100) {
-				_repLoss -= 100;
+			if (repLoss > 100) {
+				repLoss -= 100;
 				V.PC.degeneracy = 0;
 			} else {
-				_repLoss = 0;
+				repLoss = 0;
 				V.PC.degeneracy = 0;
 			}
 			r.push(`Since you are the Prophet, your reputation degrades less.`);
 		}
 		if (V.arcologies[0].FSRestartDecoration === 100) {
-			if (_repLoss > 100) {
-				_repLoss -= 100;
+			if (repLoss > 100) {
+				repLoss -= 100;
 				V.PC.degeneracy = 0;
 			} else {
-				_repLoss = 100;
+				repLoss = 100;
 				V.PC.degeneracy = 0;
 			}
 			r.push(`Since you are an established member of the Societal Elite, your public reputation degrades less.`);
 		}
-		if (_enduringRep > 8000) {
+		if (enduringRep > 8000) {
 			r.push(`However, you have been a figure of renown for so long that much of your reputation has become permanent.`);
-		} else if (_enduringRep > 5000) {
+		} else if (enduringRep > 5000) {
 			r.push(`However, you have been a figure of repute for enough time that part of your reputation has become permanent.`);
-		} else if (_enduringRep > 2000) {
+		} else if (enduringRep > 2000) {
 			r.push(`However, you have been a figure of regard for long enough that some of your reputation has become permanent.`);
 		}
-		if (_repLoss > 500 * (1 - (5 - V.baseDifficulty) / 10)) {
-			_repLoss = 500 * (1 - (5 - V.baseDifficulty) / 10);
-		} else if (_repLoss < 0) {
-			_repLoss = 0;
+		if (repLoss > 500 * (1 - (5 - V.baseDifficulty) / 10)) {
+			repLoss = 500 * (1 - (5 - V.baseDifficulty) / 10);
+		} else if (repLoss < 0) {
+			repLoss = 0;
 		}
-		V.enduringRep += Math.trunc(1 + Math.pow((10000 - V.enduringRep) / 5770, 2) * _repLoss * 0.1);
+		V.enduringRep += Math.trunc(1 + Math.pow((10000 - V.enduringRep) / 5770, 2) * repLoss * 0.1);
 	} else {
 		if (V.arcologies[0].FSChattelReligionistLaw === 1 || V.arcologies[0].FSRestartDecoration === 100) {
 			V.PC.degeneracy = 0;
 		}
-		_repLoss = 0;
-		if (_enduringRep > 8000) {
+		repLoss = 0;
+		if (enduringRep > 8000) {
 			r.push(`You have been a figure of renown for so long that your reputation does not decay past its present level.`);
-		} else if (_enduringRep > 5000) {
+		} else if (enduringRep > 5000) {
 			r.push(`You have been a figure of repute for enough time that your reputation does not decay past its present level.`);
-		} else if (_enduringRep > 2000) {
+		} else if (enduringRep > 2000) {
 			r.push(`You have been a figure of regard for long enough that your reputation does not decay past its present level.`);
 		}
 	}
@@ -153,7 +153,7 @@ App.EndWeek.reputation = function() {
 		V.rep += Math.abs(V.lastWeeksRepExpenses.overflow);
 		V.lastWeeksRepExpenses.overflow = 0;
 	}
-	repX(forceNeg(_repLoss), "multiplier");
+	repX(forceNeg(repLoss), "multiplier");
 
 	if (V.weatherAwareness === 0 && V.weatherCladding === 2) {
 		r.push(`The public <span class="green">is awestruck</span> by the beautiful weather hardening you have applied to the arcology's exterior, though they do not understand why you would waste so much money first ruining your arcology's appearance by doing this.`);
@@ -163,12 +163,12 @@ App.EndWeek.reputation = function() {
 		repX(-100, "architecture");
 	}
 
-	_enduringRep = V.enduringRep;
+	enduringRep = V.enduringRep;
 	if (V.arcologies[0].FSRestartDecoration === 100) {
 		r.push(`As a member of the Societal Elite, your appearance has no bearing on your reputation.`);
 	} else {
 		if (V.PC.dick === 0 && V.PC.boobs >= 300 && V.PC.title === 0) {
-			if (V.rep > 18000 - _enduringRep) {
+			if (V.rep > 18000 - enduringRep) {
 				r.push(`Your reputation is so well-established that society has accepted your notoriously feminine appearance despite how unusual it is for a prominent slaveowner to look like you do.`);
 				if (V.arcologies[0].FSGenderRadicalist > 30) {
 					r.push(`Indeed, society sees you as entirely male, since you are powerful, and <span class="green">strongly approves</span> of your nonconformity; this advances the redefinition of gender around power.`);
@@ -191,7 +191,7 @@ App.EndWeek.reputation = function() {
 				}
 			}
 		} else if ((V.PC.boobs >= 300) || V.PC.title === 0) {
-			if (V.rep > 15000 - _enduringRep) {
+			if (V.rep > 15000 - enduringRep) {
 				r.push(`Your reputation is so strong that society has accepted your feminine appearance despite how unusual it is for a prominent slaveowner to look like you do.`);
 				if (V.arcologies[0].FSGenderRadicalist > 30) {
 					r.push(`Indeed, society sees you as entirely male, since you are powerful, and <span class="green">strongly approves</span> of your nonconformity; this advances the redefinition of gender around power.`);
@@ -214,7 +214,7 @@ App.EndWeek.reputation = function() {
 				}
 			}
 		} else if ((V.PC.dick === 0) || (V.PC.vagina !== -1)) {
-			if (V.rep > 15000 - _enduringRep) {
+			if (V.rep > 15000 - enduringRep) {
 				r.push(`Your reputation is so strong that society has accepted your unorthodox arrangement downstairs, for an arcology owner.`);
 				if (V.arcologies[0].FSGenderRadicalist > 30) {
 					r.push(`Indeed, society sees you as entirely male, since you are powerful, and <span class="green">strongly approves</span> of your nonconformity; this advances the redefinition of gender around power.`);
@@ -245,7 +245,7 @@ App.EndWeek.reputation = function() {
 		/* already handled above */
 	} else if (V.arcologies[0].FSIntellectualDependency !== "unset") {
 		if (V.PC.intelligence + V.PC.intelligenceImplant < -10) {
-			if (V.rep > 18000 - _enduringRep) {
+			if (V.rep > 18000 - enduringRep) {
 				r.push(`You've somehow built such a reputation for yourself that your lack of a brain is no longer a societal concern.`);
 			} else {
 				repX(forceNeg(Math.min((V.rep * 0.025), 100)), "PCappearance");
@@ -254,7 +254,7 @@ App.EndWeek.reputation = function() {
 		}
 	} else if (V.arcologies[0].FSSlaveProfessionalism !== "unset") {
 		if (V.PC.intelligence + V.PC.intelligenceImplant < 100) {
-			if (V.rep > 18000 - _enduringRep) {
+			if (V.rep > 18000 - enduringRep) {
 				r.push(`You've built such a reputation for yourself that you not being a genius is no longer a societal concern.`);
 			} else {
 				repX(forceNeg(Math.min((V.rep * 0.05), 750)), "PCappearance");
@@ -263,14 +263,14 @@ App.EndWeek.reputation = function() {
 			}
 		}
 	} else if (V.PC.intelligence + V.PC.intelligenceImplant <= 10) {
-		if (V.rep > 18000 - _enduringRep) {
+		if (V.rep > 18000 - enduringRep) {
 			r.push(`You've managed to build such a reputation for yourself that your lack of intelligence is no longer a societal concern.`);
 		} else {
 			repX(forceNeg(Math.min((V.rep * 0.05), 750)), "PCappearance");
 			r.push(`Society <span class="red">is uncomfortable</span> being led by someone not smart. Your lack of intelligence brings your every action under scrutiny.`);
 		}
 	} else if (V.PC.intelligence + V.PC.intelligenceImplant <= 50) {
-		if (V.rep > 12000 - _enduringRep) {
+		if (V.rep > 12000 - enduringRep) {
 			r.push(`You've built such a reputation for yourself that your lack of intelligence is no longer a societal concern.`);
 		} else {
 			repX(forceNeg(Math.min((V.rep * 0.05), 500)), "PCappearance");
@@ -283,7 +283,7 @@ App.EndWeek.reputation = function() {
 			/* already handled above */
 		} else {
 			if (V.arcologies[0].FSGenderRadicalist !== "unset") {
-				if (V.rep > 18000 - _enduringRep) {
+				if (V.rep > 18000 - enduringRep) {
 					r.push(`You are so well regarded that society has acquiesced that getting penetrated is not a sure sign of femininity.`);
 				} else {
 					r.push(`Society views getting fucked as sign of femininity and is <span class="red">strongly against your sexual preferences.</span>`);
@@ -291,7 +291,7 @@ App.EndWeek.reputation = function() {
 					repX(-1000, "PCactions");
 				}
 			} else if (V.arcologies[0].FSGenderFundamentalist !== "unset" && V.PC.vagina !== -1 && V.PC.title === 0) {
-				if (V.rep > 10000 - _enduringRep) {
+				if (V.rep > 10000 - enduringRep) {
 					r.push(`Society has grown accustomed to your efforts enough to not care that you enjoy slave dick. In fact, it even <span class="green">strengthens</span> traditional gender roles, even though you insist on breaking them.`);
 					FutureSocieties.Change("Gender Fundamentalist", 1);
 				} else {
@@ -300,7 +300,7 @@ App.EndWeek.reputation = function() {
 					repX(-1000, "PCactions");
 				}
 			} else {
-				if (V.rep > 15000 - _enduringRep) {
+				if (V.rep > 15000 - enduringRep) {
 					r.push(`You are so well liked that society has accepted that you enjoy taking everything a slave has to offer.`);
 				} else {
 					r.push(`Society finds your penchant for taking slave dick <span class="red">very distasteful</span> for a slaveowner.`);
@@ -332,13 +332,13 @@ App.EndWeek.reputation = function() {
 		}
 		sfArray.push(`portion of ${V.SF.Lower} to <span class="green">undercover work, slightly boosts your reputation.</span>`);
 		App.Events.addNode(el, sfArray, "div");
-		let _value;
+		let value;
 		if (V.SF.UC.Assign === 1) {
-			_value = V.SF.ArmySize * 0.05;
+			value = V.SF.ArmySize * 0.05;
 		} else {
-			_value = V.SF.ArmySize * 0.25;
+			value = V.SF.ArmySize * 0.25;
 		}
-		repX(_value, "specialForces");
+		repX(value, "specialForces");
 	} else if (V.SF.FS.BadOutcome === "ISOLATION") {
 		r.push(App.UI.DOM.makeElement("div", `Your citizens are <span class="red">very displeased</span> that you are hosting a legion of heavily armed squatters in your basement.`));
 		repX(forceNeg(V.SF.ArmySize + App.SF.upgrades.total()), "specialForces");
@@ -351,7 +351,7 @@ App.EndWeek.reputation = function() {
 		}
 	} else if (V.arcologies[0].FSSubjugationist !== "unset") {
 		if (V.PC.race === V.arcologies[0].FSSubjugationistRace) {
-			if (V.rep > 15000 - _enduringRep) {
+			if (V.rep > 15000 - enduringRep) {
 				r.push(`Your reputation is so strong that society has accepted your ${V.PC.race}ness despite you being an inferior race.`);
 			} else {
 				r.push(`Society <span class="red">loathes;</span> being lead by an inferior ${V.PC.race}, believing that any other race would make a far better leader than you.`);
@@ -509,7 +509,7 @@ App.EndWeek.reputation = function() {
 				r.push(`penetration.`);
 			}
 			repX(10, "PCappearance");
-		} else if (V.rep < 20000 - _enduringRep) {
+		} else if (V.rep < 20000 - enduringRep) {
 			r.push(`You have carved out such a name for yourself that society has come to terms with being led by a woman with child.`);
 		} else {
 			r.push(`Most prominent female owners avoid being penetrated on`);
@@ -523,7 +523,7 @@ App.EndWeek.reputation = function() {
 		}
 	}
 
-	if ((V.PC.career === "escort" || V.PC.career === "prostitute") && V.rep < 16000 - _enduringRep) {
+	if ((V.PC.career === "escort" || V.PC.career === "prostitute") && V.rep < 16000 - enduringRep) {
 		r.push(`Society <span class="red">frowns</span> over being run by an ex-whore.`);
 		if (V.PC.career === "escort") {
 			r.push(`The presence of porn of you on the net doesn't aid your reputation either.`);
@@ -532,7 +532,7 @@ App.EndWeek.reputation = function() {
 	} else if (V.PC.career === "escort" || V.PC.career === "prostitute") {
 		r.push(`Your reputation is so strong that society has accepted your previous endeavors despite how unusual it is for a prominent slaveowner to have once nearly been a slave.`);
 	}
-	if (V.PC.career === "child prostitute" && V.rep < 22000 - _enduringRep) {
+	if (V.PC.career === "child prostitute" && V.rep < 22000 - enduringRep) {
 		r.push(`Society <span class="red">is mortified</span> over being run by a sex-addled child whore.`);
 		if (V.PC.visualAge < V.minimumSlaveAge) {
 			r.push(`The fact that you appear underage only makes the thought worse.`);
@@ -541,7 +541,7 @@ App.EndWeek.reputation = function() {
 	} else if (V.PC.career === "child prostitute") {
 		r.push(`Your reputation is so strong that society has finally accepted your previous life as a child whore.`);
 	}
-	if ((V.PC.career === "servant" || V.PC.career === "handmaiden" || V.PC.career === "child servant") && V.rep < 12000 - _enduringRep) {
+	if ((V.PC.career === "servant" || V.PC.career === "handmaiden" || V.PC.career === "child servant") && V.rep < 12000 - enduringRep) {
 		r.push(`Society <span class="red">frowns</span> over being run by an ex-`);
 		if (V.PC.title === 1) {
 			r.push(`butler,`);
@@ -553,22 +553,22 @@ App.EndWeek.reputation = function() {
 	} else if (V.PC.career === "servant" || V.PC.career === "handmaiden" || V.PC.career === "child servant") {
 		r.push(`Your reputation is so strong that society has accepted your previous vocation despite how unusual it is for a prominent slaveowner to have once been nothing more than a lowly servant.`);
 	}
-	if (V.PC.career === "gang" && V.rep < 15000 - _enduringRep) {
+	if (V.PC.career === "gang" && V.rep < 15000 - enduringRep) {
 		r.push(`Society <span class="red">frowns</span> over being run by an ex-gang leader, no matter how strong they might have been.`);
 		repX(forceNeg(Math.min((V.rep * 0.05), 500)), "PCactions");
-	} else if (V.PC.career === "hoodlum" && V.rep < 16000 - _enduringRep) {
+	} else if (V.PC.career === "hoodlum" && V.rep < 16000 - enduringRep) {
 		r.push(`Society <span class="red">dislikes</span> being run by some low-life thug, no matter how much "street cred" they may have once held.`);
 		repX(forceNeg(Math.min((V.rep * 0.05), 500)), "PCactions");
-	} else if (V.PC.career === "street urchin" && V.rep < 20000 - _enduringRep) {
+	} else if (V.PC.career === "street urchin" && V.rep < 20000 - enduringRep) {
 		r.push(`Society <span class="red">hates</span> being run by some homeless street rat; how you even managed to get this far baffles them.`);
 		repX(forceNeg(Math.min((V.rep * 0.06), 500)), "PCactions");
-	} else if (V.PC.career === "BlackHat" && V.rep < 15000 - _enduringRep) {
+	} else if (V.PC.career === "BlackHat" && V.rep < 15000 - enduringRep) {
 		r.push(`Society <span class="red">dislikes</span> being run by someone so capable of dredging up secrets, especially when they used to do it for the highest bidder.`);
 		repX(forceNeg(Math.min((V.rep * 0.05), 500)), "PCactions");
-	} else if (V.PC.career === "hacker" && V.rep < 16000 - _enduringRep) {
+	} else if (V.PC.career === "hacker" && V.rep < 16000 - enduringRep) {
 		r.push(`Society <span class="red">dislikes</span> being run by someone so capable of dredging up secrets, especially when they do it for fun.`);
 		repX(forceNeg(Math.min((V.rep * 0.05), 500)), "PCactions");
-	} else if (V.PC.career === "script kiddy" && V.rep < 18000 - _enduringRep) {
+	} else if (V.PC.career === "script kiddy" && V.rep < 18000 - enduringRep) {
 		r.push(`Society <span class="red">dislikes</span> being run by someone with such a reckless and disruptive idea of fun.`);
 		repX(forceNeg(Math.min((V.rep * 0.05), 500)), "PCactions");
 	} else if (V.PC.career === "gang" || V.PC.career === "hoodlum" || V.PC.career === "street urchin" || V.PC.career === "BlackHat" || V.PC.career === "hacker" || V.PC.career === "script kiddy") {
@@ -661,8 +661,8 @@ App.EndWeek.reputation = function() {
 			FutureSocieties.Change("Neo-Imperialist", 2);
 		}
 	} else if (V.arcologies[0].FSEgyptianRevivalist !== "unset") {
-		const _racialVarieties = new Set(V.slaves.map((s) => s.race));
-		if (_racialVarieties.size > 4) {
+		const racialVarieties = new Set(V.slaves.map((s) => s.race));
+		if (racialVarieties.size > 4) {
 			r.push(`Society <span class="green">strongly approves</span> of how you own a cornucopia of different races, which advances the ancient Egyptian ideal of cosmopolitan sex slavery.`);
 			FutureSocieties.Change("Egyptian Revivalist", 5);
 		}
@@ -671,8 +671,8 @@ App.EndWeek.reputation = function() {
 			FutureSocieties.Change("Egyptian Revivalist", -2);
 		}
 	} else if (V.arcologies[0].FSEdoRevivalist !== "unset") {
-		const _threshold = Math.trunc(V.rep / 2000);
-		if (V.slaves.filter(s => [Job.CLUB, Job.DJ, Job.PUBLIC].includes(s.assignment) || (s.assignment === Job.RECRUITER && V.recruiterTarget === "other arcologies" && V.arcologies[0].influenceTarget !== -1)).length <= _threshold) {
+		const threshold = Math.trunc(V.rep / 2000);
+		if (V.slaves.filter(s => [Job.CLUB, Job.DJ, Job.PUBLIC].includes(s.assignment) || (s.assignment === Job.RECRUITER && V.recruiterTarget === "other arcologies" && V.arcologies[0].influenceTarget !== -1)).length <= threshold) {
 			r.push(`Society <span class="red">disapproves</span> of your failure to provide for cultural development by offering public servants or club slaves in a number that befits your reputation.`);
 			FutureSocieties.Change("Edo Revivalist", -2);
 		} else {
@@ -723,25 +723,25 @@ App.EndWeek.reputation = function() {
 		}
 	}
 
-	let _noEugenics;
-	let _yesEugenics;
+	let noEugenics;
+	let yesEugenics;
 	if (V.arcologies[0].FSRepopulationFocus !== "unset") {
 		if (policies.countEugenicsSMRs() > 0) {
 			r.push(`Society <span class="red">disapproves</span> of your policies sterilizing potential mothers. Your insistence on eugenics hinders adoption of your new society.`);
-			_noEugenics = -1 * policies.countEugenicsSMRs();
-			FutureSocieties.Change("Repopulationist", _noEugenics);
+			noEugenics = -1 * policies.countEugenicsSMRs();
+			FutureSocieties.Change("Repopulationist", noEugenics);
 		}
 	} else if (V.arcologies[0].FSPaternalist !== "unset") {
 		if (policies.countEugenicsSMRs() > 0) {
 			r.push(`Society <span class="red">disapproves</span> of your policies forcefully sterilizing slaves, especially when they snuff out the life growing within them.`);
-			_noEugenics = -1 * policies.countEugenicsSMRs();
-			FutureSocieties.Change("Paternalist", _noEugenics);
+			noEugenics = -1 * policies.countEugenicsSMRs();
+			FutureSocieties.Change("Paternalist", noEugenics);
 		}
 	} else if ((V.arcologies[0].FSRestart !== "unset") && V.arcologies[0].FSPaternalist === "unset") {
 		if (policies.countEugenicsSMRs() > 0 && V.arcologies[0].FSRestartSMR !== 1) {
 			r.push(`Society <span class="green"> approves</span> of your slave eugenics policies, easing them into more thorough eugenics.`);
-			_yesEugenics = policies.countEugenicsSMRs();
-			FutureSocieties.Change("Eugenics", _yesEugenics);
+			yesEugenics = policies.countEugenicsSMRs();
+			FutureSocieties.Change("Eugenics", yesEugenics);
 			V.failedElite -= (1 * policies.countEugenicsSMRs());
 		} else if (V.arcologies[0].FSRestartSMR === 1) {
 			V.failedElite -= (2 * policies.countEugenicsSMRs());
@@ -817,20 +817,20 @@ App.EndWeek.reputation = function() {
 		r.push(`your support for marriage between citizens and slaves.`);
 	}
 
-	let _care;
+	let care;
 	if (V.citizenOrphanageTotal > 0) {
 		if (V.arcologies[0].FSPaternalist !== "unset") {
 			r.push(`The public <span class="green">approves</span> of the way you're providing for ${V.citizenOrphanageTotal} of your slaves' children to be raised as citizens.`);
 			FutureSocieties.Change("Paternalist", V.citizenOrphanageTotal);
 			if (V.privateOrphanageTotal > 0) {
 				r.push(`Raising ${num(V.privateOrphanageTotal)} of your slaves' children privately is considered even more <span class="green">impressive.</span>`);
-				_care = V.privateOrphanageTotal * 2;
-				FutureSocieties.Change("Paternalist", _care);
+				care = V.privateOrphanageTotal * 2;
+				FutureSocieties.Change("Paternalist", care);
 			}
 		} else if (V.arcologies[0].FSDegradationist !== "unset") {
 			r.push(`The public <span class="red">disapproves</span> of the way you're providing for ${V.citizenOrphanageTotal} of your slaves' children to be raised as citizens.`);
-			_care = -V.citizenOrphanageTotal;
-			FutureSocieties.Change("Degradationist", _care);
+			care = -V.citizenOrphanageTotal;
+			FutureSocieties.Change("Degradationist", care);
 			if (V.privateOrphanageTotal > 0) {
 				r.push(`Fortunately your raising slaves' children privately is not publicly known.`);
 			}
@@ -838,16 +838,16 @@ App.EndWeek.reputation = function() {
 	} else if (V.privateOrphanageTotal > 0) {
 		if (V.arcologies[0].FSPaternalist !== "unset") {
 			r.push(`Raising ${num(V.privateOrphanageTotal)} of your slaves' children privately is considered extremely <span class="green">impressive.</span>`);
-			_care = V.privateOrphanageTotal * 2;
-			FutureSocieties.Change("Paternalist", _care);
+			care = V.privateOrphanageTotal * 2;
+			FutureSocieties.Change("Paternalist", care);
 		} else if (V.arcologies[0].FSDegradationist !== "unset") {
 			r.push(`Fortunately your raising slaves' children privately is not publicly known.`);
 		}
 	}
 	if (V.breederOrphanageTotal > 0 && V.arcologies[0].FSRepopulationFocus !== "unset") {
 		r.push(`The public <span class="green">approves</span> of the way you've dedicated ${num(V.breederOrphanageTotal)} of your slaves' children to be raised into future breeders.`);
-		const _futureBreeders = Math.round(((V.breederOrphanageTotal / 100) + 1));
-		FutureSocieties.Change("Repopulationist", _futureBreeders);
+		const futureBreeders = Math.round(((V.breederOrphanageTotal / 100) + 1));
+		FutureSocieties.Change("Repopulationist", futureBreeders);
 	}
 
 	if (V.arcologies[0].FSNull !== "unset") {
@@ -911,11 +911,11 @@ App.EndWeek.reputation = function() {
 
 	App.Events.addParagraph(el, r);
 	r = [];
-	const _repGain = hashSum(V.lastWeeksRepIncome);
-	_repLoss = hashSum(V.lastWeeksRepExpenses);
-	if (_repGain > _repLoss) {
+	const repGain = hashSum(V.lastWeeksRepIncome);
+	repLoss = hashSum(V.lastWeeksRepExpenses);
+	if (repGain > repLoss) {
 		r.push(App.UI.DOM.makeElement("span", `Your reputation increased this week.`, "green"));
-	} else if (_repGain < _repLoss) {
+	} else if (repGain < repLoss) {
 		r.push(App.UI.DOM.makeElement("span", `Your reputation decreased this week.`, "red"));
 	}
 
diff --git a/src/endWeek/events/expire.js b/src/endWeek/events/expire.js
index 85cb09d24eb8241ed364ee10ab573d18ccfc1874..a1112621ee7c9538c470959abe9f353b20fbe4a3 100644
--- a/src/endWeek/events/expire.js
+++ b/src/endWeek/events/expire.js
@@ -11,13 +11,13 @@ App.Events.SEExpiration = class SEExpiration extends App.Events.BaseEvent {
 
 	execute(node) {
 		V.encyclopedia = "Indentured Servants";
-		const _this = this;
-		const artRenderer = V.seeImages && V.seeReportImages ? new App.Art.SlaveArtBatch(_this.actors, 0, 0) : null;
+		const that = this;
+		const artRenderer = V.seeImages && V.seeReportImages ? new App.Art.SlaveArtBatch(that.actors, 0, 0) : null;
 		if (artRenderer) {
 			node.append(artRenderer.writePreamble());
 		}
 
-		for (const id of _this.actors) {
+		for (const id of that.actors) {
 			const slave = getSlave(id);
 			if (slave) {
 				App.UI.DOM.appendNewElement("div", node, expire(slave));
@@ -25,7 +25,7 @@ App.Events.SEExpiration = class SEExpiration extends App.Events.BaseEvent {
 			}
 		}
 		V.passageSwitchHandler = () => {
-			for (const slaveID of _this.actors) {
+			for (const slaveID of that.actors) {
 				if (getSlave(slaveID)) {
 					removeSlave(getSlave(slaveID));
 				}
@@ -57,14 +57,14 @@ App.Events.SEExpiration = class SEExpiration extends App.Events.BaseEvent {
 			r.push(`${slave.slaveName}'s indentured servitude is ending this week, meaning that your arcology is gaining a citizen.`);
 			V.lowerClass += 1;
 
-			let _seed = 0;
-			for (let _seeXp = 0; _seeXp < V.slaves.length; _seeXp++) {
-				if (V.slaves[_seeXp].devotion <= 20) {
-					_seed = 1;
-					V.slaves[_seeXp].devotion -= 1;
+			let seed = 0;
+			for (let seeXp = 0; seeXp < V.slaves.length; seeXp++) {
+				if (V.slaves[seeXp].devotion <= 20) {
+					seed = 1;
+					V.slaves[seeXp].devotion -= 1;
 				}
 			}
-			if (_seed === 1) {
+			if (seed === 1) {
 				r.push(`Those of your slaves who are unhappy with their lives under you are <span class="mediumorchid">envious or angry</span> to see ${him} become free, according to their individual natures.`);
 			}
 
@@ -72,7 +72,7 @@ App.Events.SEExpiration = class SEExpiration extends App.Events.BaseEvent {
 			const result = App.UI.DOM.appendNewElement("div", el);
 
 			slave.indenture = 52;
-			let _slaveCost = slaveCost(slave);
+			let cost = slaveCost(slave);
 
 			if (slave.fetish === "mindbroken") {
 				r.push(`Since ${he} is mindbroken, there is precisely no chance that ${he} will be able to look after ${himself}. ${He}`);
@@ -154,8 +154,8 @@ App.Events.SEExpiration = class SEExpiration extends App.Events.BaseEvent {
 					App.UI.DOM.appendNewElement("div", result, `You cannot afford to do this`, "note");
 				}
 			} else if ((slave.devotion > 50) && (slave.trust > 50)) {
-				_slaveCost = Math.trunc((_slaveCost * 0.5) / 500) * 500;
-				_slaveCost = Math.clamp(_slaveCost, minimumSlaveCost(), 100000);
+				cost = Math.trunc((cost * 0.5) / 500) * 500;
+				cost = Math.clamp(cost, minimumSlaveCost(), 100000);
 
 				r.push(`${His} feelings on this are quite mixed, since ${he} has come to feel that ${he} has a place under you.`);
 				if (!hasAnyLegs(slave)) {
@@ -172,16 +172,16 @@ App.Events.SEExpiration = class SEExpiration extends App.Events.BaseEvent {
 					r.push(Spoken(slave, `"I don't mind being your slave. Could I — would you please give me another indenture? I'm, um, not too worried about the price."`));
 				}
 
-				if (V.cash > _slaveCost) {
+				if (V.cash > cost) {
 					App.UI.DOM.appendNewElement("div", result, App.UI.DOM.link(
 						`Offer ${him} a one year supplementary indenture`,
 						() => {
-							keepSlave(_slaveCost);
+							keepSlave(cost);
 							jQuery(result).empty().append(`${He} smiles almost shyly when you offer ${him} a one year supplementary indenture. The price is reasonable, but definitely favorable to you. ${He} accepts it anyway, and you transfer the money into an escrow account to be held for ${him} until ${his} new indenture is done. Your sex slave once again, ${he} awaits your pleasure without a hint of fear.`);
 						},
 						[],
 						"",
-						`This costs ${cashFormat(_slaveCost)}`
+						`This costs ${cashFormat(cost)}`
 					));
 				} else {
 					App.UI.DOM.appendNewElement("div", result, `You cannot afford to do this`, "note");
@@ -195,16 +195,16 @@ App.Events.SEExpiration = class SEExpiration extends App.Events.BaseEvent {
 				}
 				r.push(`at the moment of ${his} scheduled emancipation, ${he} seems willing to consider a short term continuation of service.`);
 
-				if (V.cash > _slaveCost) {
+				if (V.cash > cost) {
 					App.UI.DOM.appendNewElement("div", result, App.UI.DOM.link(
 						`Offer ${him} a one year supplementary indenture`,
 						() => {
-							keepSlave(_slaveCost);
+							keepSlave(cost);
 							jQuery(result).empty().append(`${He} looks pensive when you offer ${him} a one year supplementary indenture. The price reflects the market, and is a reasonable compensation for a year of sexual slavery. ${He} accepts it after some consideration, and you transfer the money into an escrow account to be held for ${him} until ${his} new indenture is done. Your sex slave once again, ${he} awaits orders with complacency.`);
 						},
 						[],
 						"",
-						`This costs ${cashFormat(_slaveCost)}`
+						`This costs ${cashFormat(cost)}`
 					));
 				} else {
 					App.UI.DOM.appendNewElement("div", result, `You cannot afford to do this`, "note");
@@ -230,7 +230,7 @@ App.Events.SEExpiration = class SEExpiration extends App.Events.BaseEvent {
 
 			function keepSlave(cost) {
 				cashX(forceNeg(cost), "slaveTransfer", slave);
-				_this.actors.delete(slave.ID);
+				that.actors.delete(slave.ID);
 				V.lowerClass -= 1;
 			}
 		}
diff --git a/src/endWeek/events/retire.js b/src/endWeek/events/retire.js
index 8448bf6549fd87cc08025217e0651584b1cc583f..c9330bd3d4dad84e1091fd95c7505f8c14d9e7e1 100644
--- a/src/endWeek/events/retire.js
+++ b/src/endWeek/events/retire.js
@@ -118,10 +118,10 @@ globalThis.retireScene = function(originalSlave, artRenderer) {
 				r.push(`${His} annuity means that ${he} doesn't have to work, but ${he}'s inclined to do so. ${His} skills command reasonable wages in the slave training field, and between those prospects and ${his} annuity, ${he} stands to become wealthy.`);
 			}
 		} else if (slave.porn.prestigeDesc && slave.porn.prestigeDesc.includes("is world famous for")) {
-			let _pornFame = slave.porn.prestigeDesc;
-			_pornFame = _pornFame.replace("$He is world famous for $his career in slave pornography. Millions are intimately familiar with", "enjoy");
-			_pornFame = _pornFame.replace(".", ",");
-			r.push(`In addition to ${his} annuity, you've laid the groundwork for ${him} to become wealthy by the way you publicized pornography of ${him}. Many thousands of people across the world are willing to pay to${_pornFame} and they enjoy it in part because ${he} doesn't mind it, either. ${He}'s in a position to make great money for doing on camera what ${he} would probably do anyway.`);
+			let pornFame = slave.porn.prestigeDesc;
+			pornFame = pornFame.replace("$He is world famous for $his career in slave pornography. Millions are intimately familiar with", "enjoy");
+			pornFame = pornFame.replace(".", ",");
+			r.push(`In addition to ${his} annuity, you've laid the groundwork for ${him} to become wealthy by the way you publicized pornography of ${him}. Many thousands of people across the world are willing to pay to ${pornFame} and they enjoy it in part because ${he} doesn't mind it, either. ${He}'s in a position to make great money for doing on camera what ${he} would probably do anyway.`);
 		} else if ((slave.intelligence + slave.intelligenceImplant >= -50) && (slave.muscles > 5) && (slave.skill.combat >= 1) && hasAllLimbs(slave) && (slave.face > 10)) {
 			r.push(`${He}'s pretty and deadly. If ${he} feels ${he} prefers wealth and danger to living on ${his} annuity, ${he}'ll have no trouble finding work. In fact, ${he}'ll likely have trouble sifting through all the mercenary organizations, businesses in need of attractive and competent guards for public spaces, and citizens looking for effective bodyguards willing to hire ${him}.`);
 		} else if ((slave.intelligence + slave.intelligenceImplant > 50) && (slave.intelligenceImplant >= 15)) {
diff --git a/src/endWeek/healthFunctions.js b/src/endWeek/healthFunctions.js
index cbd9f697a2c08e616ab405e8a6e0a606777becf9..e654b0044c79a6630cd8ac97d28136acc0692ffb 100644
--- a/src/endWeek/healthFunctions.js
+++ b/src/endWeek/healthFunctions.js
@@ -81,7 +81,7 @@ globalThis.illness = function(slave) {
 		assignBonus += 40;
 	} else if (slave.assignment === Job.SPA || slave.assignment === Job.REST) {
 		assignBonus += 20;
-	} else if ((slave.assignment === Job.MASTERSUITE || slave.assignment === Job.FUCKTOY) && V.PC.skill.medicine >= 40) {
+	} else if ((slave.assignment === Job.MASTERSUITE || slave.assignment === Job.FUCKTOY || slave.assignment === Job.CONCUBINE) && V.PC.skill.medicine >= 40) {
 		assignBonus += 10;
 	} else if (App.Data.Careers.Leader.nurse.includes(slave.career) || slave.skill.nurse > 120 || slave.intelligence + slave.intelligenceImplant > 95) { // Let slaves with experience or brains use it
 		assignBonus += 10;
diff --git a/src/endWeek/nextWeek/weather.js b/src/endWeek/nextWeek/weather.js
index 8acfa415c757467de9c11abf5b082e43fb5608e8..bd0660637517607e256259b4b051578b4cd88b75 100644
--- a/src/endWeek/nextWeek/weather.js
+++ b/src/endWeek/nextWeek/weather.js
@@ -36,10 +36,10 @@ App.EndWeek.weather = function() {
 		V.weatherLastWeek = 1;
 	}
 
-	const _seed = random(1, 10);
+	const seed = random(1, 10);
 	if (V.weatherType === 1) {
 		if (V.week < 25) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.hotNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -47,7 +47,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 1) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.hotNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -55,10 +55,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 2) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.hotNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.hotLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -66,7 +66,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 3) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.hotLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -74,7 +74,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 1) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.hotNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -82,10 +82,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 2) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.hotNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 3) {
+			} else if (seed > 3) {
 				V.weatherToday = App.Data.Weather.hotLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -93,7 +93,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 3) {
-			if (_seed > 5) {
+			if (seed > 5) {
 				V.weatherToday = App.Data.Weather.hotLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -101,7 +101,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 1) {
-			if (_seed > 8) {
+			if (seed > 8) {
 				V.weatherToday = App.Data.Weather.hotNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -109,10 +109,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 2) {
-			if (_seed > 7) {
+			if (seed > 7) {
 				V.weatherToday = App.Data.Weather.hotNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 5) {
+			} else if (seed > 5) {
 				V.weatherToday = App.Data.Weather.hotLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -120,10 +120,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 3) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.hotLight.random();
 				V.weatherLastWeek = 2;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.hotHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
@@ -131,7 +131,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 4;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 4) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.hotHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
@@ -141,7 +141,7 @@ App.EndWeek.weather = function() {
 		}
 	} else if (V.weatherType === 2) {
 		if (V.week < 25) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.windyNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -149,7 +149,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 1) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.windyNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -157,10 +157,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 2) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.windyNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.windyLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -168,7 +168,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 3) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.windyLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -176,7 +176,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 1) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.windyNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -184,10 +184,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 2) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.windyNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 3) {
+			} else if (seed > 3) {
 				V.weatherToday = App.Data.Weather.windyLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -195,7 +195,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 3) {
-			if (_seed > 5) {
+			if (seed > 5) {
 				V.weatherToday = App.Data.Weather.windyLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -203,7 +203,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 1) {
-			if (_seed > 8) {
+			if (seed > 8) {
 				V.weatherToday = App.Data.Weather.windyNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -211,10 +211,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 2) {
-			if (_seed > 7) {
+			if (seed > 7) {
 				V.weatherToday = App.Data.Weather.windyNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 5) {
+			} else if (seed > 5) {
 				V.weatherToday = App.Data.Weather.windyLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -222,10 +222,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 3) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.windyLight.random();
 				V.weatherLastWeek = 2;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.windyHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
@@ -233,7 +233,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 4;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 4) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.windyHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
@@ -243,7 +243,7 @@ App.EndWeek.weather = function() {
 		}
 	} else if (V.weatherType === 3) {
 		if (V.week < 25) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.smokyNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -251,7 +251,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 1) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.smokyNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -259,10 +259,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 2) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.smokyNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.smokyLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -270,7 +270,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 3) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.smokyLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -278,7 +278,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 1) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.smokyNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -286,10 +286,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 2) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.smokyNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 3) {
+			} else if (seed > 3) {
 				V.weatherToday = App.Data.Weather.smokyLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -297,7 +297,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 3) {
-			if (_seed > 5) {
+			if (seed > 5) {
 				V.weatherToday = App.Data.Weather.smokyLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -305,7 +305,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 1) {
-			if (_seed > 8) {
+			if (seed > 8) {
 				V.weatherToday = App.Data.Weather.smokyNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -313,10 +313,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 2) {
-			if (_seed > 7) {
+			if (seed > 7) {
 				V.weatherToday = App.Data.Weather.smokyNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 5) {
+			} else if (seed > 5) {
 				V.weatherToday = App.Data.Weather.smokyLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -324,10 +324,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 3) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.smokyLight.random();
 				V.weatherLastWeek = 2;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.smokyHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
@@ -335,7 +335,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 4;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 4) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.smokyHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
@@ -345,7 +345,7 @@ App.EndWeek.weather = function() {
 		}
 	} else if (V.weatherType === 4) {
 		if (V.week < 25) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.toxicNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -353,7 +353,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 1) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.toxicNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -361,10 +361,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 2) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.toxicNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.toxicLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -372,7 +372,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 3) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.toxicLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -380,7 +380,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 1) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.toxicNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -388,10 +388,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 2) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.toxicNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 3) {
+			} else if (seed > 3) {
 				V.weatherToday = App.Data.Weather.toxicLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -399,7 +399,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 3) {
-			if (_seed > 5) {
+			if (seed > 5) {
 				V.weatherToday = App.Data.Weather.toxicLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -407,7 +407,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 1) {
-			if (_seed > 8) {
+			if (seed > 8) {
 				V.weatherToday = App.Data.Weather.toxicNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -415,10 +415,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 2) {
-			if (_seed > 7) {
+			if (seed > 7) {
 				V.weatherToday = App.Data.Weather.toxicNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 5) {
+			} else if (seed > 5) {
 				V.weatherToday = App.Data.Weather.toxicLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -426,10 +426,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 3) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.toxicLight.random();
 				V.weatherLastWeek = 2;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.toxicHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
@@ -437,7 +437,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 4;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 4) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.toxicHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
@@ -447,7 +447,7 @@ App.EndWeek.weather = function() {
 		}
 	} else if (V.weatherType === 5) {
 		if (V.week < 25) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.coldNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -455,7 +455,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 1) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.coldNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -463,10 +463,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 2) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.coldNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.coldLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -474,7 +474,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 3) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.coldLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -482,7 +482,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 1) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.coldNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -490,10 +490,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 2) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.coldNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 3) {
+			} else if (seed > 3) {
 				V.weatherToday = App.Data.Weather.coldLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -501,7 +501,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 3) {
-			if (_seed > 5) {
+			if (seed > 5) {
 				V.weatherToday = App.Data.Weather.coldLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -509,7 +509,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 1) {
-			if (_seed > 8) {
+			if (seed > 8) {
 				V.weatherToday = App.Data.Weather.coldNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -517,10 +517,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 2) {
-			if (_seed > 7) {
+			if (seed > 7) {
 				V.weatherToday = App.Data.Weather.coldNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 5) {
+			} else if (seed > 5) {
 				V.weatherToday = App.Data.Weather.coldLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -528,10 +528,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 3) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.coldLight.random();
 				V.weatherLastWeek = 2;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.coldHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
@@ -539,7 +539,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 4;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 4) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.coldHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
@@ -549,7 +549,7 @@ App.EndWeek.weather = function() {
 		}
 	} else if (V.weatherType === 6) {
 		if (V.week < 25) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.tectonicNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -557,7 +557,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 1) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.tectonicNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -565,10 +565,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 2) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.tectonicNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.tectonicLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -576,7 +576,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 50 && V.weatherLastWeek === 3) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.tectonicLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -584,7 +584,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 1) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.tectonicNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -592,10 +592,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 2) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.tectonicNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 3) {
+			} else if (seed > 3) {
 				V.weatherToday = App.Data.Weather.tectonicLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -603,7 +603,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week < 75 && V.weatherLastWeek === 3) {
-			if (_seed > 5) {
+			if (seed > 5) {
 				V.weatherToday = App.Data.Weather.tectonicLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -611,7 +611,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 1) {
-			if (_seed > 8) {
+			if (seed > 8) {
 				V.weatherToday = App.Data.Weather.tectonicNice.random();
 				V.weatherLastWeek = 1;
 			} else {
@@ -619,10 +619,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 2;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 2) {
-			if (_seed > 7) {
+			if (seed > 7) {
 				V.weatherToday = App.Data.Weather.tectonicNice.random();
 				V.weatherLastWeek = 1;
-			} else if (_seed > 5) {
+			} else if (seed > 5) {
 				V.weatherToday = App.Data.Weather.tectonicLight.random();
 				V.weatherLastWeek = 2;
 			} else {
@@ -630,10 +630,10 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 3;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 3) {
-			if (_seed > 6) {
+			if (seed > 6) {
 				V.weatherToday = App.Data.Weather.tectonicLight.random();
 				V.weatherLastWeek = 2;
-			} else if (_seed > 2) {
+			} else if (seed > 2) {
 				V.weatherToday = App.Data.Weather.tectonicHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
@@ -641,7 +641,7 @@ App.EndWeek.weather = function() {
 				V.weatherLastWeek = 4;
 			}
 		} else if (V.week > 75 && V.weatherLastWeek === 4) {
-			if (_seed > 4) {
+			if (seed > 4) {
 				V.weatherToday = App.Data.Weather.tectonicHeavy.random();
 				V.weatherLastWeek = 3;
 			} else {
diff --git a/src/endWeek/reports/clinicReport.js b/src/endWeek/reports/clinicReport.js
index 5f40491bde30f3a759a3007e422173bf1d6e315a..797ebee9b36f9f8f0a999cb9bd0b53a21a472a53 100644
--- a/src/endWeek/reports/clinicReport.js
+++ b/src/endWeek/reports/clinicReport.js
@@ -230,9 +230,9 @@ App.EndWeek.clinicReport = function() {
 			}
 
 			if (slaves.length < V.clinic && !slaveResting(S.Nurse)) {
-				const _idlePay = jsRandom(1, 10) + ((V.clinic - slaves.length) * (jsRandom(150, 170) + (idleBonus * 10)));
-				cashX(_idlePay, "clinic", S.Nurse);
-				r.push(`<div class="indent">Since ${he} doesn't have enough patients to occupy all of ${his} time, ${V.clinicName} takes in citizens' slaves on a contract basis and ${he} helps them too, earning <span class="cash inc">${cashFormat(_idlePay)}.</span></div>`);
+				const idlePay = jsRandom(1, 10) + ((V.clinic - slaves.length) * (jsRandom(150, 170) + (idleBonus * 10)));
+				cashX(idlePay, "clinic", S.Nurse);
+				r.push(`<div class="indent">Since ${he} doesn't have enough patients to occupy all of ${his} time, ${V.clinicName} takes in citizens' slaves on a contract basis and ${he} helps them too, earning <span class="cash inc">${cashFormat(idlePay)}.</span></div>`);
 			}
 		}
 
diff --git a/src/endWeek/reports/incubatorReport.js b/src/endWeek/reports/incubatorReport.js
index 821f713570513b87c8e9b77a4bec9ed79fa7fdcd..6bb4ebbfd4b6e3a146bbc12abee540691f6c58be 100644
--- a/src/endWeek/reports/incubatorReport.js
+++ b/src/endWeek/reports/incubatorReport.js
@@ -164,8 +164,8 @@ App.EndWeek.incubatorReport = function() {
 			if (tank.geneMods.NCS === 1) {
 				/* NCS should block physical growth beyond that of a toddler, but some players might like
 				 * a little more or less. So using V.minimumSlaveAge or 8, whichever is lesser.	*/
-				const _limitAge = Math.min(8, V.minimumSlaveAge);
-				heightLimitAge = Height.forAge(tank.height, _limitAge, tank.genes);
+				const limitAge = Math.min(8, V.minimumSlaveAge);
+				heightLimitAge = Height.forAge(tank.height, limitAge, tank.genes);
 				heightLimit = heightLimitAge;
 			} else if (tank.geneticQuirks.neoteny === 2 && tank.actualAge > 12) {
 				heightLimitAge = Height.forAge(tank.height, 12, tank.genes);
@@ -758,16 +758,16 @@ App.EndWeek.incubatorReport = function() {
 		if (((V.incubator.setting.pregAdaptation === 1 && tank.genes === "XX") || (V.incubator.setting.pregAdaptation === 2 && tank.genes === "XY") || V.incubator.setting.pregAdaptation === 3) && tank.growTime > 0) {
 			r.push(`The incubator is working on adapting ${his} abdomen and reproductive organs for future pregnancies.`);
 
-			let _weekAdapt = tank.incubatorPregAdaptationInWeek * V.incubator.upgrade.speed;
-			if (isNaN(_weekAdapt)) {
+			let weekAdapt = tank.incubatorPregAdaptationInWeek * V.incubator.upgrade.speed;
+			if (isNaN(weekAdapt)) {
 				/* NaN check AFTER multiply operation, against it result is critical here. Need to be absolutely sure about this operation, not about just tank property itself. This give me two very unpleasant hours to catch this */
 				tank.incubatorPregAdaptationInWeek = (15000 / 2000 - tank.pregAdaptation) / tank.growTime;
 			}
-			_weekAdapt = tank.incubatorPregAdaptationInWeek * V.incubator.upgrade.speed;
+			weekAdapt = tank.incubatorPregAdaptationInWeek * V.incubator.upgrade.speed;
 			/* Now it should be fine */
-			_weekAdapt *= 1 + (V.incubator.setting.reproduction / 5);
-			_weekAdapt *= 1 + (tank.hormoneBalance / 1500);
-			tank.pregAdaptation += _weekAdapt;
+			weekAdapt *= 1 + (V.incubator.setting.reproduction / 5);
+			weekAdapt *= 1 + (tank.hormoneBalance / 1500);
+			tank.pregAdaptation += weekAdapt;
 			/* here goes side effect from intense and extreme settings: */
 			if (random(0, 100) <= (tank.incubatorPregAdaptationPower - 1) * (V.incubator.upgrade.speed / 2 + 1)) {
 				switch (random(1, 9)) { /* side effect selection*/
diff --git a/src/endWeek/reports/schoolroomReport.js b/src/endWeek/reports/schoolroomReport.js
index 2390b8ce1744ee5546eff0e9c096380639b58567..14b66df8f9889e2bf1816f2c8ca2aa118237f303 100644
--- a/src/endWeek/reports/schoolroomReport.js
+++ b/src/endWeek/reports/schoolroomReport.js
@@ -79,7 +79,7 @@ App.EndWeek.schoolroomReport = function() {
 				idleBonus++;
 			}
 			if (S.Schoolteacher.intelligenceImplant >= 15) {
-				r.push(`Since ${he}'s educated ${him}self, ${he} understands`);
+				r.push(`Since ${he}'s educated ${himself}, ${he} understands`);
 				if (V.schoolroomRemodelBimbo !== 0) {
 					r.push(`how best to apply the new lesson plan.`);
 				} else {
@@ -125,9 +125,9 @@ App.EndWeek.schoolroomReport = function() {
 			}
 
 			if (slaves.length < V.schoolroom && !slaveResting(S.Schoolteacher)) {
-				const _idlePay = jsRandom(1, 10) + ((V.schoolroom - slaves.length) * (jsRandom(150, 170) + (idleBonus * 10)));
-				cashX(_idlePay, "school", S.Schoolteacher);
-				r.push(`<div class="indent">Since ${he} doesn't have enough students to occupy all of ${his} time, ${V.schoolroomName} takes in citizens' slaves on a contract basis and ${he} teaches them too, earning <span class="yellowgreen">${cashFormat(_idlePay)}.</span></div>`);
+				const idlePay = jsRandom(1, 10) + ((V.schoolroom - slaves.length) * (jsRandom(150, 170) + (idleBonus * 10)));
+				cashX(idlePay, "school", S.Schoolteacher);
+				r.push(`<div class="indent">Since ${he} doesn't have enough students to occupy all of ${his} time, ${V.schoolroomName} takes in citizens' slaves on a contract basis and ${he} teaches them too, earning <span class="yellowgreen">${cashFormat(idlePay)}.</span></div>`);
 			}
 
 			return r.join(" ");
diff --git a/src/endWeek/saBeYourHeadGirl.js b/src/endWeek/saBeYourHeadGirl.js
index 4b8cd5bc40243a1063b1cc4d645348298b350b43..f2a42ea87c43270d231cc2475ba0ae6dec53860d 100644
--- a/src/endWeek/saBeYourHeadGirl.js
+++ b/src/endWeek/saBeYourHeadGirl.js
@@ -233,6 +233,7 @@ App.SlaveAssignment.beYourHeadGirl = (function() {
 		} else {
 			if (slave.fetish === "dom") {
 				r.push(`Having all the slaves look up to and obey ${him} clearly excites ${him}; <span class="lightcoral">${he}'s a natural dom!</span>`);
+				slave.fetishKnown = 1;
 			} else if (fetishChange > jsRandom(0, 100)) {
 				r.push(`Having all the slaves look up to and obey ${him} affects ${his} sexuality, turning ${him} into a <span class="lightcoral">bit of a dominatrix.</span>`);
 				slave.fetish = "dom";
diff --git a/src/endWeek/saChoosesOwnClothes.js b/src/endWeek/saChoosesOwnClothes.js
index 3b9855c85409f3762d8d970a198028bdc6fd8c54..feb00e02e41b645151712978d739fbbe219b2f41 100644
--- a/src/endWeek/saChoosesOwnClothes.js
+++ b/src/endWeek/saChoosesOwnClothes.js
@@ -972,7 +972,7 @@ App.SlaveAssignment.choosesOwnClothes = (function() {
 					}
 				}
 			}
-			/* Separated in three categories in case you want to, say, increase the probability of choosing _wardrobeAssignment to look more professional*/
+			/* Separated in three categories in case you want to, say, increase the probability of choosing wardrobeAssignment to look more professional*/
 			/* clothing = clothing.concat(wardrobeAssignment, wardrobeFS, wardrobeTastes); better version should the above never amount to anything*/
 			if (wardrobeAssignment.length > 0) {
 				for (let i = 0; i < wardrobeAssignment.length; i++) {
diff --git a/src/endWeek/saLiveWithHG.js b/src/endWeek/saLiveWithHG.js
index 27aea27bca1ea4ab3d6a7dd97618a5154ebb9e37..cb8b6a556b6c3401a3e6c09985f61581927218d9 100644
--- a/src/endWeek/saLiveWithHG.js
+++ b/src/endWeek/saLiveWithHG.js
@@ -738,7 +738,7 @@ App.SlaveAssignment.liveWithHG = (function() {
 				} else {
 					r.push(`giggling sex)`);
 				}
-				r.push(`that ${slave.slaveName}really starts to <span class="improvement">fetishize boys</span> too.`);
+				r.push(`that ${slave.slaveName} really starts to <span class="improvement">fetishize boys</span> too.`);
 				slave.attrXY += 2;
 				slave.attrKnown = 1;
 			}
@@ -1255,19 +1255,19 @@ App.SlaveAssignment.liveWithHG = (function() {
 			}
 
 			/* get eye colors, HG can be expected to have at least one working eye due to job requirements */
-			const _left = hasLeftEye(HG) ? getLeftEyeColor(HG) : getRightEyeColor(HG);
-			const _right = hasRightEye(HG) ? getRightEyeColor(HG) : _left;
+			const left = hasLeftEye(HG) ? getLeftEyeColor(HG) : getRightEyeColor(HG);
+			const right = hasRightEye(HG) ? getRightEyeColor(HG) : left;
 
 			/* make sure the slave has the same eye color as the HG */
-			if (getLeftEyeColor(slave) !== _left) {
-				setEyeColor(slave, _left, "left");
+			if (getLeftEyeColor(slave) !== left) {
+				setEyeColor(slave, left, "left");
 				r.push(`${HG.slaveName}`);
 				if (getLeftEyeType(slave) === 3) {
 					r.push(`changes`);
 				} else {
 					r.push(`gives`);
 				}
-				r.push(`${slave.slaveName} ${_left}`);
+				r.push(`${slave.slaveName} ${left}`);
 				if (getLeftEyeType(slave) === 3) {
 					r.push(`eye lenses,`);
 				} else if (getLeftEyeType(slave) === 2) {
@@ -1277,15 +1277,15 @@ App.SlaveAssignment.liveWithHG = (function() {
 				}
 				r.push(`to match ${his2} own left eye, since with nymphomania comes narcissism.`);
 			}
-			if (getRightEyeColor(slave) !== _right) {
-				setEyeColor(slave, _right, "right");
+			if (getRightEyeColor(slave) !== right) {
+				setEyeColor(slave, right, "right");
 				r.push(`${HG.slaveName}`);
 				if (getRightEyeType(slave) === 3) {
 					r.push(`changes`);
 				} else {
 					r.push(`gives`);
 				}
-				r.push(`${slave.slaveName} ${_right}`);
+				r.push(`${slave.slaveName} ${right}`);
 				if (getLeftEyeType(slave) === 3) {
 					r.push(`eye lenses,`);
 				} else if (getLeftEyeType(slave) === 2) {
diff --git a/src/endWeek/saLongTermMentalEffects.js b/src/endWeek/saLongTermMentalEffects.js
index 3a6dd3c03238e6a8200c7c7fb8b4c24bf6d25e0c..abdbd4002001649bb838180e17a41f6300c5593f 100644
--- a/src/endWeek/saLongTermMentalEffects.js
+++ b/src/endWeek/saLongTermMentalEffects.js
@@ -1020,7 +1020,7 @@ App.SlaveAssignment.longTermMentalEffects = (function() {
 					}
 				} else if (slave.behavioralFlaw === "hates men") {
 					if (slave.fetish === "pregnancy") {
-						r.push(`${He} dislikes the company of men, but fetishizes pregnancy; ${he} decides that men, those hunky impregnators, can't be //that// bad, and <span class="flaw break">gets over ${his} hatred.</span>`);
+						r.push(`${He} dislikes the company of men, but fetishizes pregnancy; ${he} decides that men, those hunky impregnators, can't be <i>that</i> bad, and <span class="flaw break">gets over ${his} hatred.</span>`);
 						slave.behavioralFlaw = "none";
 					} else if (slave.fetish === "boobs") {
 						r.push(`${He} dislikes the company of men and adores boobs; ${he} finds that ${he} doesn't mind ogling titties with the boys, and <span class="flaw break">gets over ${his} hatred.</span>`);
@@ -1034,10 +1034,10 @@ App.SlaveAssignment.longTermMentalEffects = (function() {
 					}
 				} else if (slave.behavioralFlaw === "hates women") {
 					if (slave.fetish === "pregnancy") {
-						r.push(`${He} dislikes the company of women, but fetishizes pregnancy; ${he} decides that women, with their motherly hips and fertile cunts, can't be //that// bad, and <span class="flaw break">gets over ${his} hatred.</span>`);
+						r.push(`${He} dislikes the company of women, but fetishizes pregnancy; ${he} decides that women, with their motherly hips and fertile cunts, can't be <i>that<i> bad, and <span class="flaw break">gets over ${his} hatred.</span>`);
 						slave.behavioralFlaw = "none";
 					} else if (slave.fetish === "cumslut") {
-						r.push(`${He} dislikes the company of women and has a real oral fixation; ${he} decides that women, with their soft, kissable lips can't be //that// bad, and <span class="flaw break">gets over ${his} hatred.</span>`);
+						r.push(`${He} dislikes the company of women and has a real oral fixation; ${he} decides that women, with their soft, kissable lips can't be <i>that<i> bad, and <span class="flaw break">gets over ${his} hatred.</span>`);
 						slave.behavioralFlaw = "none";
 					} else if (slave.attrXX > 85) {
 						r.push(`${He} dislikes the company of women but likes fucking them; ${he} gets used to putting up with girls to get into their pants, and <span class="flaw break">gets over ${his} hatred.</span>`);
diff --git a/src/endWeek/saLongTermPhysicalEffects.js b/src/endWeek/saLongTermPhysicalEffects.js
index 52c0e5c9eb22116fb063b4d00b2f7bc1d546c370..c4dee8e94501d586eaa731d6594635b00216dd0e 100644
--- a/src/endWeek/saLongTermPhysicalEffects.js
+++ b/src/endWeek/saLongTermPhysicalEffects.js
@@ -727,35 +727,35 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 		let youthening = 0;
 		const youtheningLevel = Math.round(Math.clamp(((slave.physicalAge - 8) / 4) + .25, 0, 10));
 		/*
-		**	r.push(`To prevent the NCS from firing on every attribute in one year, this variable counts the`);
-		**	r.push(`number of NCS affects that fire. Most affects will only trigger if one or two other`);
-		**	r.push(`have already fired, but won't fire beyond. There are two exceptions to that, first,`);
-		**	r.push(`massively oversized growth assets, which will fire always, e.g. boobs > 5000, dick > 10,`);
-		**	r.push(`etc. Second, Body structure, hips/shoulders may fire any time, (decreasing random).`);
+		**	To prevent the NCS from firing on every attribute in one year, this variable counts the
+		**	number of NCS affects that fire. Most affects will only trigger if one or two other
+		**	have already fired, but won't fire beyond. There are two exceptions to that, first,
+		**	massively oversized growth assets, which will fire always, e.g. boobs > 5000, dick > 10,
+		**	etc. Second, Body structure, hips/shoulders may fire any time, (decreasing random).
 		**
-		**	r.push(`Youthening (visual age year number reduction)`);
-		**	r.push(`Happens on a sliding scale, the older a slave is, the faster the de-aging goes.`);
-		**	r.push(`Consequently, it goes slower as the visual age approaches an 8 year old loli/shota body.`);
-		**	r.push(`Age 45+=> auto age reduction 1 year per 1 week.`);
-		**	r.push(`Age 41-44=> age reduction 1 year per 2 weeks.`);
-		**	r.push(`Age 37-40=> age reduction 1 year per 3 weeks.`);
-		**	r.push(`Age 33-36=> age reduction 1 year per 4 weeks.`);
-		**	r.push(`Age 29-32=> age reduction 1 year per 5 weeks.`);
-		**	r.push(`Age 25-28=> age reduction 1 year per 6 weeks.`);
-		**	r.push(`Age 21-24=> age reduction 1 year per 7 weeks.`);
-		**	r.push(`Age 17-20=> age reduction 1 year per 8 weeks.`);
-		**	r.push(`Age 13-16=> age reduction 1 year per 9 weeks.`);
-		**	r.push(`Age 9-12=> slowest age reduction 1 year per 10 weeks.`);
+		**	Youthening (visual age year number reduction)
+		**	Happens on a sliding scale, the older a slave is, the faster the de-aging goes.
+		**	Consequently, it goes slower as the visual age approaches an 8 year old loli/shota body.
+		**	Age 45+=> auto age reduction 1 year per 1 week.
+		**	Age 41-44=> age reduction 1 year per 2 weeks.
+		**	Age 37-40=> age reduction 1 year per 3 weeks.
+		**	Age 33-36=> age reduction 1 year per 4 weeks.
+		**	Age 29-32=> age reduction 1 year per 5 weeks.
+		**	Age 25-28=> age reduction 1 year per 6 weeks.
+		**	Age 21-24=> age reduction 1 year per 7 weeks.
+		**	Age 17-20=> age reduction 1 year per 8 weeks.
+		**	Age 13-16=> age reduction 1 year per 9 weeks.
+		**	Age 9-12=> slowest age reduction 1 year per 10 weeks.
 		**
-		**	r.push(`To track this, the ${slave.NCSyouthening} field counts the *charge* of youthening the slave`);
-		**	r.push(`currently has, and if it's over the youthening requirements, the slave will become younger.`);
+		**	To track this, the slave.NCSyouthening field counts the *charge* of youthening the slave
+		**	currently has, and if it's over the youthening requirements, the slave will become younger.
 		**
-		**	r.push(`Additionally while years fly off quickly in the beginning for older slaves, and oversized body parts`);
-		**	r.push(`shrink away, other secondary characteristics slowly but surely drop off, but based on the above`);
+		**	Additionally while years fly off quickly in the beginning for older slaves, and oversized body parts
+		**	shrink away, other secondary characteristics slowly but surely drop off, but based on the above
 		**	*charge* of youthening.
 		**
-		**	r.push(`Note that with this system a 45 year old slave given NCS would be indistinguishable from an 8 year`);
-		**	r.push(`old in a little over 4 years time.`);
+		**	Note that with this system a 45 year old slave given NCS would be indistinguishable from an 8 year
+		**	old in a little over 4 years time.
 		*/
 		slave.NCSyouthening++;
 		if (slave.visualAge > 8 && slave.NCSyouthening >= (11 - youtheningLevel)) {
@@ -768,11 +768,11 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 			youthening++;
 		}
 		/*
-		**	r.push(`height always fires if over 176 cm,`);
-		**	r.push(`also fires if the slave is tall for their visual age`);
-		**	r.push(`also if they are in * NCSyouthening 3-5 (reverse teen years) and`);
-		**	r.push(`over 126 cm`);
-		**	r.push(`or over height (30% chance)`);
+		**	height always fires if over 176 cm,
+		**	also fires if the slave is tall for their visual age
+		**	also if they are in * NCSyouthening 3-5 (reverse teen years) and
+		**	over 126 cm
+		**	or over height (30% chance)
 		*/
 		const heightDelta = slave.height - Height.mean(slave);
 		let shrinkage;
@@ -793,13 +793,13 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 			countNCS++;
 		}
 		/*
-		**	r.push(`Boobs, nipples and areolae.`);
-		**	r.push(`Boobs always fires for over 5000 cc,`);
-		**	r.push(`nipples/areolae shrinkage will fire for boobs under 5000,`);
-		**	r.push(`where nipples are tiny/cute at 30% chance.`);
-		**	r.push(`anything over 300 will fire if`);
-		**	r.push(`the slave's accumulated youthening is 6 or higher,`);
-		**	r.push(`or by a 50% chance.`);
+		**	Boobs, nipples and areolae.
+		**	Boobs always fires for over 5000 cc,
+		**	nipples/areolae shrinkage will fire for boobs under 5000,
+		**	where nipples are tiny/cute at 30% chance.
+		**	anything over 300 will fire if
+		**	the slave's accumulated youthening is 6 or higher,
+		**	or by a 50% chance.
 		*/
 		/** @type {FC.NippleShape} */
 		let nipplesString;
@@ -833,9 +833,9 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 			countNCS++;
 		}
 		/*
-		**	r.push(`Hips and Shoulders reshaping`);
-		**	r.push(`One or the other can happen per week as long as the hips and shoulders are bigger than the smallest`);
-		**	r.push(`level, though the chances get much more likely for the widest sizes.`);
+		**	Hips and Shoulders reshaping
+		**	One or the other can happen per week as long as the hips and shoulders are bigger than the smallest
+		**	level, though the chances get much more likely for the widest sizes.
 		*/
 		if (((slave.hips - Math.abs(slave.hipsImplant)) > -2) && (random(1, 100) < ((slave.hips + 3) * 18))) {
 			r.push(`${His} <span class="ncs">NCS</span> gets busy <span class="change negative"> reducing the size of ${his}`);
@@ -861,9 +861,9 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 			countNCS++;
 		}
 		/*
-		**	r.push(`Dick and clit shrinkage`);
-		**	r.push(`Massive 10+ Dicks or 5+ Clits always fire, and at double power.`);
-		**	r.push(`Below that by chance, (reducing chances by current size). In general clits shrink faster.`);
+		**	Dick and clit shrinkage
+		**	Massive 10+ Dicks or 5+ Clits always fire, and at double power.
+		**	Below that by chance, (reducing chances by current size). In general clits shrink faster.
 		*/
 		if (slave.dick >= 10) {
 			r.push(`${His} <span class="ncs">NCS</span> is actively <span class="change negative">reducing the size of ${his} giant dick.</span>`);
@@ -883,9 +883,9 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 			countNCS++;
 		}
 		/*
-		**	r.push(`Balls.`);
-		**	r.push(`Massive testicles (10+) drop by 2 levels,`);
-		**	r.push(`Others decrease by chance based on current size.`);
+		**	Balls.
+		**	Massive testicles (10+) drop by 2 levels,
+		**	Others decrease by chance based on current size.
 		*/
 		if (slave.balls >= 10) {
 			r.push(`${His} <span class="ncs">NCS</span> gets busy <span class="change negative">reducing the size of ${his} titanic balls.</span>`);
@@ -897,9 +897,9 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 			countNCS++;
 		}
 		/*
-		**	r.push(`Butt.`);
-		**	r.push(`Tremendous butts burn of by 2 points.`);
-		**	r.push(`Regular butts based on chances, decrease as the size does.`);
+		**	Butt.
+		**	Tremendous butts burn of by 2 points.
+		**	Regular butts based on chances, decrease as the size does.
 		*/
 		if (buttSize >= 10) {
 			r.push(`${His} <span class="ncs">NCS</span> applies and <span class="change negative">reduces the size of ${his} bulbous butt.</span>`);
@@ -911,10 +911,10 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 			countNCS++;
 		}
 		/*
-		**	r.push(`Scrotum and Labia`);
-		**	r.push(`One or the other can fire per week.`);
-		**	r.push(`Pendulous ballsacks or sagging labia will always fire.`);
-		**	r.push(`Otherwise by reducing chance based on current sizes, but labias are a little more likely.`);
+		**	Scrotum and Labia
+		**	One or the other can fire per week.
+		**	Pendulous ballsacks or sagging labia will always fire.
+		**	Otherwise by reducing chance based on current sizes, but labias are a little more likely.
 		*/
 		if (slave.geneMods.rapidCellGrowth !== 1) {
 			if (slave.scrotum >= 5) {
@@ -936,8 +936,8 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 			}
 		}
 		/*
-		**	r.push(`Voice.`);
-		**	r.push(`Small chance for any non-childlike voice.`);
+		**	Voice.
+		**	Small chance for any non-childlike voice.
 		*/
 		if ((countNCS < 3) && (slave.voice < 3) && slave.voice !== 0 && (random(1, 100) > (slave.voice * 15))) {
 			r.push(`${His} <span class="ncs">NCS</span> has <span class="change positive">raised the pitch of ${his} voice, ${he} now sounds more`);
@@ -950,7 +950,7 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 			countNCS++;
 		}
 		/*
-		**	r.push(`Pussy/Ass-Pussy rejuvenation.`);
+		**	Pussy/Ass-Pussy rejuvenation.
 		**	10% chance of either one rejuvenating per week. (The Child Whore's delight!)
 		*/
 		if (slave.geneMods.rapidCellGrowth !== 1) {
@@ -965,7 +965,7 @@ App.SlaveAssignment.longTermPhysicalEffects = (function() {
 			}
 		}
 		/*
-		**	r.push(`reset youthening for those that just got younger (see age above) or for already lolified slaves.`);
+		**	reset youthening for those that just got younger (see age above) or for already lolified slaves.
 		*/
 		if (youthening > 0 || slave.NCSyouthening > 9) {
 			slave.NCSyouthening = 0;
diff --git a/src/endWeek/saNanny.js b/src/endWeek/saNanny.js
index 9908fd1643332cf4955f0a4aa6ae2fe78f206167..6c1a49e9b6de216f05bbaacc3d9a95fe73d7724f 100644
--- a/src/endWeek/saNanny.js
+++ b/src/endWeek/saNanny.js
@@ -61,7 +61,7 @@ App.SlaveAssignment.nanny = function(slave) {
 		let t = '';
 
 		// TODO:
-		if (App.Data.Careers.Leader.servant.includes(slave.career)) {
+		if (App.Data.Careers.General.servant.includes(slave.career)) {
 			t += ` ${He} has experience with nannying from ${his} life before ${he} was a slave, making ${him} more effective.`;
 		} else if (slave.skill.servant >= V.masteredXP) {
 			t += ` ${He} has experience with nannying from working for you, making ${him} more effective.`;
diff --git a/src/endWeek/saRecruitGirls.js b/src/endWeek/saRecruitGirls.js
index 9141e651868e2e6ae963086a7ba4232e91c3fc4b..ff28caacd6fadd9ecf5994607b4a1810ed6361ad 100644
--- a/src/endWeek/saRecruitGirls.js
+++ b/src/endWeek/saRecruitGirls.js
@@ -812,7 +812,7 @@ App.SlaveAssignment.recruitGirls = (function() {
 			r.push(`${He} has experience in recruitment from working for you.`);
 			V.recruiterProgress += 2;
 		} else if (slave.skill.recruiter > 120) {
-			r.push(`${He} has enough experience in recruitment to beging applying it.`);
+			r.push(`${He} has enough experience in recruitment to begin applying it.`);
 			V.recruiterProgress += 1;
 		}
 		if (slave.skill.recruiter < V.masteredXP) {
diff --git a/src/endWeek/saRulesFunctions.js b/src/endWeek/saRulesFunctions.js
index 9a9f3ee306860f7a4a9d1d8f2f29907ce6812d8c..ab06cf112cce4a25d5f89d5f5739d8ba7567f982 100644
--- a/src/endWeek/saRulesFunctions.js
+++ b/src/endWeek/saRulesFunctions.js
@@ -618,11 +618,11 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 		His, He,
 		he, him, his
 	} = getPronouns(slave);
-	const _who = (slave.rules.release.slaves === 1) ? "other slaves" : `${his} family`;
+	const who = (slave.rules.release.slaves === 1) ? "other slaves" : `${his} family`;
 	/* should be the only two choices if we get here */
 	if (slave.fetishKnown === 1 && slave.fetishStrength > 60) {
 		if (slave.fetish === "submissive") {
-			el.append(`plead that ${_who} fuck ${him}. `);
+			el.append(`plead that ${who} fuck ${him}. `);
 			if (App.EndWeek.saVars.averageDick > 4) {
 				if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) {
 					if ((slave.anus * 40) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) {
@@ -654,7 +654,7 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 			el.append(`${he} fancies. `);
 			seX(slave, "oral", "slaves", "penetrative", random(5, 15));
 		} else if (slave.fetish === "humiliation") {
-			el.append(`demand that ${_who} let ${him} fuck them in public. `);
+			el.append(`demand that ${who} let ${him} fuck them in public. `);
 			if (!slave.rivalry) {
 				const rival = randomRapeRivalryTarget(slave, (s) => (s.devotion <= 20 && s.trust < -20));
 				if (rival) {
@@ -681,7 +681,7 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 				seX(slave, "penetrative", "slaves", "penetrative", random(1, 3));
 			}
 		} else if (slave.fetish === "buttslut" && canDoAnal(slave)) {
-			el.append(`demand that ${_who} penetrate ${his} anus. `);
+			el.append(`demand that ${who} penetrate ${his} anus. `);
 			if (App.EndWeek.saVars.averageDick > 4) {
 				if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) {
 					if ((slave.anus * 30) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) {
@@ -693,7 +693,7 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 			}
 			seX(slave, "anal", "slaves", "penetrative", random(5, 12));
 		} else if (slave.fetish === "boobs") {
-			el.append(`demand that ${_who} massage ${his} breasts. `);
+			el.append(`demand that ${who} massage ${his} breasts. `);
 			if (slave.lactation > 0) {
 				slave.lactationDuration = 2;
 				slave.boobs -= slave.boobsMilk;
@@ -711,10 +711,10 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 			}
 			el.append(`to let ${him} fuck them. `);
 			if (!slave.rivalry) {
-				const _rival = randomRapeRivalryTarget(slave, (s) => { return (s.devotion <= 50 && s.sexualFlaw !== "none"); });
-				if (_rival) {
-					el.append(`${He} focuses on ${SlaveFullName(_rival)} who has a sexual flaw ${slave.slaveName} can exploit. ${He} sadistically `);
-					if (_rival.sexualFlaw === "hates oral") {
+				const rival = randomRapeRivalryTarget(slave, (s) => { return (s.devotion <= 50 && s.sexualFlaw !== "none"); });
+				if (rival) {
+					el.append(`${He} focuses on ${SlaveFullName(rival)} who has a sexual flaw ${slave.slaveName} can exploit. ${He} sadistically `);
+					if (rival.sexualFlaw === "hates oral") {
 						el.append(`rapes the poor slave's face`);
 						if (!canAchieveErection(slave)) {
 							el.append(` with `);
@@ -724,8 +724,8 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 								el.append(`a strap-on`);
 							}
 						}
-						el.append(`. ${_rival.slaveName} hates oral`);
-					} else if (_rival.sexualFlaw === "hates penetration" && canDoVaginal(_rival)) {
+						el.append(`. ${rival.slaveName} hates oral`);
+					} else if (rival.sexualFlaw === "hates penetration" && canDoVaginal(rival)) {
 						el.append(`rapes the poor slave's pussy`);
 						if (!canAchieveErection(slave)) {
 							el.append(` with `);
@@ -735,8 +735,8 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 								el.append(`a strap-on`);
 							}
 						}
-						el.append(`. ${_rival.slaveName} hates penetration`);
-					} else if ((_rival.sexualFlaw === "hates anal" || _rival.sexualFlaw === "hates penetration") && canDoAnal(_rival)) {
+						el.append(`. ${rival.slaveName} hates penetration`);
+					} else if ((rival.sexualFlaw === "hates anal" || rival.sexualFlaw === "hates penetration") && canDoAnal(rival)) {
 						el.append(`rapes the poor slave's ass`);
 						if (!canAchieveErection(slave)) {
 							el.append(` with `);
@@ -746,12 +746,12 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 								el.append(`a strap-on`);
 							}
 						}
-						el.append(`. ${_rival.slaveName} hates anal`);
-					} else if (_rival.sexualFlaw === "shamefast") {
-						el.append(`rapes the poor slave in public. ${_rival.slaveName} is terribly shamefast`);
-					} else if (_rival.sexualFlaw === "idealistic") {
-						const {him2} = getPronouns(_rival).appendSuffix("2");
-						el.append(`rapes the poor slave every time ${he} catches ${him2} being romantic. ${_rival.slaveName} is still idealistic`);
+						el.append(`. ${rival.slaveName} hates anal`);
+					} else if (rival.sexualFlaw === "shamefast") {
+						el.append(`rapes the poor slave in public. ${rival.slaveName} is terribly shamefast`);
+					} else if (rival.sexualFlaw === "idealistic") {
+						const {him2} = getPronouns(rival).appendSuffix("2");
+						el.append(`rapes the poor slave every time ${he} catches ${him2} being romantic. ${rival.slaveName} is still idealistic`);
 					} else {
 						el.append(`rapes the poor slave every chance ${he} gets,`);
 					}
@@ -759,15 +759,15 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 					App.UI.DOM.appendNewElement("span", el, `starts a rivalry`, "lightsalmon");
 					el.append(` between them. `);
 					slave.rivalry = 1;
-					_rival.rivalry = 1;
-					slave.rivalryTarget = _rival.ID;
-					_rival.rivalryTarget = slave.ID;
-					SimpleSexAct.Slave(_rival, 4);
-					if (canPenetrate(_rival)) {
+					rival.rivalry = 1;
+					slave.rivalryTarget = rival.ID;
+					rival.rivalryTarget = slave.ID;
+					SimpleSexAct.Slave(rival, 4);
+					if (canPenetrate(rival)) {
 						seX(slave, "penetrative", "slaves", "penetrative", random(1, 3));
 					}
-					if (!App.Utils.sexAllowed(slave, _rival)) {
-						el.append(`As the rules do not permit ${slave.slaveName} and ${_rival.slaveName} to have sex, ${he} is `);
+					if (!App.Utils.sexAllowed(slave, rival)) {
+						el.append(`As the rules do not permit ${slave.slaveName} and ${rival.slaveName} to have sex, ${he} is `);
 						App.UI.DOM.appendNewElement("span", el, `severely punished.`, "yellow");
 						slave.trust -= 4;
 					}
@@ -778,7 +778,7 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 				seX(slave, "penetrative", "slaves", "penetrative", random(1, 3));
 			}
 		} else if (slave.fetish === "masochist") {
-			el.append(`demand that ${_who} hurt ${him}. `);
+			el.append(`demand that ${who} hurt ${him}. `);
 			if (App.EndWeek.saVars.averageDick > 4) {
 				if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) {
 					if ((slave.anus * 30) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) {
@@ -801,27 +801,27 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 			}
 			SimpleSexAct.Slave(slave, 12);
 		} else if (slave.fetish === "dom") {
-			el.append(`force ${_who} to submit to ${him}. `);
+			el.append(`force ${who} to submit to ${him}. `);
 			if (!slave.rivalry) {
-				const _rival = randomRapeRivalryTarget(slave, (s) => { return (s.devotion <= 20 && s.trust < -20); });
-				if (_rival) {
-					el.append(`${He} repeatedly rapes a reluctant ${SlaveFullName(_rival)} ${he} can't seem to keep ${his} hand`);
+				const rival = randomRapeRivalryTarget(slave, (s) => { return (s.devotion <= 20 && s.trust < -20); });
+				if (rival) {
+					el.append(`${He} repeatedly rapes a reluctant ${SlaveFullName(rival)} ${he} can't seem to keep ${his} hand`);
 					if (hasBothArms(slave) || !hasAnyArms(slave)) {
 						el.append(`s`);
 					}
 					if (!hasAnyArms(slave)) {
 						el.append(` (so to speak)`);
 					}
-					el.append(` off the poor slave, who can't avoid ${him}. Not surprisingly, ${_rival.slaveName} resents this, and ${slave.slaveName}'s ongoing sexual abuse `);
+					el.append(` off the poor slave, who can't avoid ${him}. Not surprisingly, ${rival.slaveName} resents this, and ${slave.slaveName}'s ongoing sexual abuse `);
 					App.UI.DOM.appendNewElement("span", el, `starts a rivalry`, "lightsalmon");
 					el.append(` between them. `);
 					slave.rivalry = 1;
-					_rival.rivalry = 1;
-					slave.rivalryTarget = _rival.ID;
-					_rival.rivalryTarget = slave.ID;
-					SimpleSexAct.Slave(_rival, 4);
-					if (!App.Utils.sexAllowed(slave, _rival)) {
-						el.append(`As the rules do not permit ${slave.slaveName} and ${_rival.slaveName} to have sex, ${he} is `);
+					rival.rivalry = 1;
+					slave.rivalryTarget = rival.ID;
+					rival.rivalryTarget = slave.ID;
+					SimpleSexAct.Slave(rival, 4);
+					if (!App.Utils.sexAllowed(slave, rival)) {
+						el.append(`As the rules do not permit ${slave.slaveName} and ${rival.slaveName} to have sex, ${he} is `);
 						App.UI.DOM.appendNewElement("span", el, `severely punished.`, "yellow");
 						slave.trust -= 4;
 					}
@@ -832,7 +832,7 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 				actX(slave, "penetrative", random(6, 9));
 			}
 		} else if (slave.fetish === "pregnancy") {
-			el.append(`demand that ${_who} indulge ${his} pregnancy fetish. `);
+			el.append(`demand that ${who} indulge ${his} pregnancy fetish. `);
 			if (App.EndWeek.saVars.averageDick > 5) {
 				if (slave.mpreg === 0) {
 					if (slave.vagina.isBetween(0, 3) && canDoVaginal(slave)) {
@@ -858,7 +858,7 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 				actX(slave, "penetrative", random(6, 9));
 			}
 		} else if (slave.energy > 95) {
-			el.append(`demand that ${_who} satisfy ${his} formidable appetites. `);
+			el.append(`demand that ${who} satisfy ${his} formidable appetites. `);
 			if (App.EndWeek.saVars.averageDick > 4) {
 				if (slave.anus.isBetween(0, 3) && canDoAnal(slave)) {
 					if ((slave.anus * 30) - (App.EndWeek.saVars.averageDick * 5) < random(1, 100)) {
@@ -884,14 +884,14 @@ App.EndWeek.Rules.rapeFetish = function(slave) {
 				actX(slave, "penetrative", random(3, 6));
 			}
 		} else {
-			el.append(`demand that ${_who} have sex with ${him}. `);
+			el.append(`demand that ${who} have sex with ${him}. `);
 			SimpleSexAct.Slave(slave, 7);
 			if (canPenetrate(slave)) {
 				seX(slave, "anal", "slaves", "penetrative", random(3, 6));
 			}
 		}
 	} else {
-		el.append(`demand that ${_who} have sex with ${him}. `);
+		el.append(`demand that ${who} have sex with ${him}. `);
 		SimpleSexAct.Slave(slave, 7);
 		if (canPenetrate(slave)) {
 			actX(slave, "penetrative", random(3, 6));
@@ -1246,7 +1246,7 @@ App.EndWeek.Rules.permissiveDrugEffects = function(slave) {
 		he, him, his
 	} = getPronouns(slave);
 
-	const _who = (slave.rules.release.slaves === 1) ? `other slaves` : `${his} family`;
+	const who = (slave.rules.release.slaves === 1) ? `other slaves` : `${his} family`;
 	/* should be the only two choices if we get here */
 	if (slave.balls > 0) {
 		if (slave.drugs === "testicle enhancement" || slave.drugs === "intensive testicle enhancement") {
@@ -1258,11 +1258,11 @@ App.EndWeek.Rules.permissiveDrugEffects = function(slave) {
 					} else {
 						el.append(`${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `);
 					}
-					el.append(`${He} is very reliant on ${_who} to help ${him}, which `);
+					el.append(`${He} is very reliant on ${who} to help ${him}, which `);
 					App.UI.DOM.appendNewElement("span", el, `habituates ${him}`, "mediumaquamarine");
 					el.append(` to slave sex. `);
 				} else {
-					el.append(`${His} terribly swollen balls force ${him} to rely on ${_who} for release several times a day, and jetting cum into and onto them `);
+					el.append(`${His} terribly swollen balls force ${him} to rely on ${who} for release several times a day, and jetting cum into and onto them `);
 					App.UI.DOM.appendNewElement("span", el, `habituates ${him}`, "mediumaquamarine");
 					el.append(` to slave sex. `);
 				}
@@ -1281,11 +1281,11 @@ App.EndWeek.Rules.permissiveDrugEffects = function(slave) {
 					} else {
 						el.append(`${his} cumhole produces slow, anemic ejaculations, no matter how backed up ${he} is. `);
 					}
-					el.append(`${He} is completely dependent on your ${_who} to help ${him}, which `);
+					el.append(`${He} is completely dependent on your ${who} to help ${him}, which `);
 					App.UI.DOM.appendNewElement("span", el, `habituates ${him}`, "mediumaquamarine");
 					el.append(` to slave sex. `);
 				} else {
-					el.append(`${His} grotesquely swollen balls force ${him} to rely on ${_who} for release throughout times a day, and swelling them with cum `);
+					el.append(`${His} grotesquely swollen balls force ${him} to rely on ${who} for release throughout times a day, and swelling them with cum `);
 					App.UI.DOM.appendNewElement("span", el, `habituates ${him}`, "mediumaquamarine");
 					el.append(` to slave sex, though you have to take precautions so ${he} doesn't knock up your entire stock. `);
 				}
@@ -1428,13 +1428,13 @@ App.EndWeek.Rules.partnerDrugEffects = function(slave) {
 	const {He, His,
 		he, him, his} = getPronouns(slave);
 
-	const _sr = getSlave(slave.relationshipTarget);
+	const sr = getSlave(slave.relationshipTarget);
 	let his2;
 	let him2;
-	if (_sr) {
+	if (sr) {
 		({
 			his2, him2
-		} = getPronouns(_sr).appendSuffix("2"));
+		} = getPronouns(sr).appendSuffix("2"));
 	}
 	if (slave.balls > 0) {
 		if (slave.drugs === "testicle enhancement" || slave.drugs === "intensive testicle enhancement") {
@@ -1475,7 +1475,7 @@ App.EndWeek.Rules.partnerDrugEffects = function(slave) {
 			}
 		}
 	}
-	if (slave.drugs === "super fertility drugs" && canImpreg(slave, _sr)) {
+	if (slave.drugs === "super fertility drugs" && canImpreg(slave, sr)) {
 		if ((slave.devotion > 20) || (slave.trust < -20)) {
 			el.append(`${His} reproductive system is in overdrive leading ${him} to come to find ${his} ${relationshipTerm(slave)} for insemination several times a day; ${he} `);
 			App.UI.DOM.appendNewElement("span", el, `desperately hopes`, "mediumaquamarine");
diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js
index c5e1fdd264caef2957baf1ccb5d933f8cbf411ee..ef1f299fcec6923e1dec4774a0f7d1283f5af966 100644
--- a/src/endWeek/saServant.js
+++ b/src/endWeek/saServant.js
@@ -18,7 +18,7 @@ App.SlaveAssignment.servant = (function() {
 	return saServant;
 
 	/**
-	 * @param {App.Entity.SlaveState} slave
+	 * @param {FC.ReportSlave} slave
 	 * @param {number} [bonus=0] - bonus from facility leader effects
 	 * @returns {string}
 	 */
@@ -149,7 +149,7 @@ App.SlaveAssignment.servant = (function() {
 			r.push(`${He} does ${his} very best to be the perfect house${wife}, making ${him} an outstanding servant.`);
 		}
 
-		if (App.Data.Careers.Leader.servant.includes(slave.career)) {
+		if (App.Data.Careers.General.servant.includes(slave.career)) {
 			r.push(`${He} has experience with house keeping from ${his} life before ${he} was a slave, making ${him} more effective.`);
 		} else if (slave.skill.servant >= V.masteredXP) {
 			r.push(`${He} has experience with house keeping from working for you, making ${him} more effective.`);
@@ -192,7 +192,7 @@ App.SlaveAssignment.servant = (function() {
 	}
 
 	/**
-	 * @param {App.Entity.SlaveState} slave
+	 * @param {FC.ReportSlave} slave
 	 *
 	 */
 	function physicalEffects(slave) {
diff --git a/src/endWeek/saTakeClasses.js b/src/endWeek/saTakeClasses.js
index 0ceaf6c4795f1e3eacdaca4bba2dfa0f283362ad..43e2302044369d493f82d34a845f2fb6bf6cc620 100644
--- a/src/endWeek/saTakeClasses.js
+++ b/src/endWeek/saTakeClasses.js
@@ -679,7 +679,7 @@ App.SlaveAssignment.takeClasses = (function() {
 						} else if (slave.skill.stewardess <= 120) {
 							r += ` The tutor has ${him} attend lectures on slave breaking and management, to prepare ${him} for running a facility. ${He} keeps working with the cleaning crews, but now takes command during outings.`;
 						} else if (slave.skill.stewardess <= 200) {
-							r += ` ${He} is familiar with every nook and cranny of your arcology. ${He} no longer accompanies your cleaning crews, instead ${he} organizes their deployments. ${He}is becoming an adept manager.`;
+							r += ` ${He} is familiar with every nook and cranny of your arcology. ${He} no longer accompanies your cleaning crews, instead ${he} organizes their deployments. ${He} is becoming an adept manager.`;
 						}
 						r += ` ${slaveSkillIncrease('stewardess', slave, skillIncrease)}`;
 					}
diff --git a/src/events/JE/jeSlaveDisputeBreedingDeal.js b/src/events/JE/jeSlaveDisputeBreedingDeal.js
index 1d747a96eb97770daa5063dac3bca02600aede9e..d15c3f741635c3f421b1357bcad9477d350ef99e 100644
--- a/src/events/JE/jeSlaveDisputeBreedingDeal.js
+++ b/src/events/JE/jeSlaveDisputeBreedingDeal.js
@@ -103,8 +103,8 @@ App.Events.JESlaveDisputeBreedingDeal = class JESlaveDisputeBreedingDeal extends
 			r.push(`You offer to buy out the deal, paying the breeder and taking the slave yourself, and passing the child off to the buyer. The citizen gets what he wants and speaks <span class="green">kindly</span> in public about how you helped smooth over a rather rough dispute. The breeder sends a <span class="green">positive note</span> around the industry to the effect that slavers trading with your arcology can expect to be aided in times of need; though the loss of a star mother always stings.`);
 			V.arcologies[0].prosperity += 3;
 			repX(300, "event");
-			frag.append(App.UI.newSlaveIntro(slave));
 			App.Events.addParagraph(frag, r);
+			frag.append(App.UI.newSlaveIntro(slave));
 			return frag;
 		}
 	}
diff --git a/src/events/JE/jeSlaveDisputeSlaveDeal.js b/src/events/JE/jeSlaveDisputeSlaveDeal.js
index f3e67f0af05fae7fd4353c5843de02952b05c40c..e6de4acf22256c03d69787f8250381bd7c04cbc0 100644
--- a/src/events/JE/jeSlaveDisputeSlaveDeal.js
+++ b/src/events/JE/jeSlaveDisputeSlaveDeal.js
@@ -88,8 +88,8 @@ App.Events.JESlaveDisputeSlaveDeal = class JESlaveDisputeSlaveDeal extends App.E
 			V.arcologies[0].prosperity += 5;
 			repX(2500, "event");
 			r.push(`You offer to simply buy out the contract, taking the slave for yourself, letting the slave trader out of her side of the deal, and providing for the daughter's medical care. The trader lets it be known amongst her peers that you will make things right no matter the cost to yourself, <span class="green">increasing prosperity.</span> The story of the mother willing to be enslaved gets around quickly, <span class="green">capturing the hearts</span> of more romantic citizens. The mother, meanwhile, presents ${himself} for enslavement, <span class="hotpink">very grateful</span> that you've saved ${his} daughter's life.`);
-			App.Events.addParagraph(frag, r);
 			frag.append(App.UI.newSlaveIntro(slave));
+			App.Events.addParagraph(frag, r);
 			return frag;
 		}
 	}
diff --git a/src/events/JE/jeSlaveDisputeSlaveTraining.js b/src/events/JE/jeSlaveDisputeSlaveTraining.js
index 348671b15ffac5d8fdeb5ae1c50735af07c11767..086a3959184f2510cce9baef4b32b9d4d5d4c6f9 100644
--- a/src/events/JE/jeSlaveDisputeSlaveTraining.js
+++ b/src/events/JE/jeSlaveDisputeSlaveTraining.js
@@ -106,8 +106,8 @@ App.Events.JESlaveDisputeSlaveTraining = class JESlaveDisputeSlaveTraining exten
 			r.push(`You offer to simply buy out the deal, paying the trainer and taking the slave yourself, and letting the buyer out of the payment. The trainer lets it be known that you support businessmen, who can trust you to ensure they don't come out second best, <span class="green">increasing prosperity.</span> The buyer lets you know privately that he recently had a business deal go bad, so he's in a tough cash situation right now; he's so grateful for your assistance in this embarrassing situation that he talks <span class="green">effusively</span> for days to anyone who will listen about your discreet administration of the arcology. The slave, meanwhile, arrives at your penthouse, <span class="hotpink">rather hopeful</span> that ${he}'s going to a good master.`);
 			V.arcologies[0].prosperity += 5;
 			repX(2500, "event");
-			frag.append(App.UI.newSlaveIntro(slave));
 			App.Events.addParagraph(frag, r);
+			frag.append(App.UI.newSlaveIntro(slave));
 			return frag;
 		}
 	}
diff --git a/src/events/JE/jeSlaveDisputeVirginityDeal.js b/src/events/JE/jeSlaveDisputeVirginityDeal.js
index 4adb0bc1f38784747db8b2458ca5d2f4e9392830..bd3d1cfba8bcb59c65fdceda9d93b9aec6adae41 100644
--- a/src/events/JE/jeSlaveDisputeVirginityDeal.js
+++ b/src/events/JE/jeSlaveDisputeVirginityDeal.js
@@ -83,8 +83,8 @@ App.Events.JESlaveVirginityDeal = class JESlaveVirginityDeal extends App.Events.
 			const frag = new DocumentFragment();
 			let r = [];
 			r.push(`You offer to simply buy out the contract, taking the slave for yourself. This lets the buyer out of buying ${him}, and the slaveowner gets his money; but it soon becomes apparent that what both of them were really looking for is an opportunity to put one over on the other. Neither is pleased to be denied a petty victory, but they both have the sense to keep their mouths shut. The poor slave, meanwhile, appears in the penthouse entryway, <span class="hotpink">hopeful</span> that ${he}'s been lucky enough to end up in a less abusive situation.`);
-			frag.append(App.UI.newSlaveIntro(slave));
 			App.Events.addParagraph(frag, r);
+			frag.append(App.UI.newSlaveIntro(slave));
 			return frag;
 		}
 	}
diff --git a/src/events/PE/peAssociatesPublicSlut.js b/src/events/PE/peAssociatesPublicSlut.js
index 691abcd4eeb759766f8cd164741c85f337d35144..6b0ce51003168bf7903c6855ede492b6b83c2a97 100644
--- a/src/events/PE/peAssociatesPublicSlut.js
+++ b/src/events/PE/peAssociatesPublicSlut.js
@@ -10,7 +10,7 @@ App.Events.PEAssociatesPublicSlut = class PEAssociatesPublicSlut extends App.Eve
 
 		V.nextButton = "Continue";
 		V.nextLink = "RIE Eligibility Check";
-		const _num = random(1, 99);
+		const num = random(1, 99);
 
 		App.Events.addParagraph(node, [
 			`The Promenade is especially vibrant today, humming with activity as the wealthier of`,
@@ -24,28 +24,28 @@ App.Events.PEAssociatesPublicSlut = class PEAssociatesPublicSlut extends App.Eve
 
 
 
-		if (_num < V.seeDicks) {
+		if (num < V.seeDicks) {
 			App.Events.addParagraph(node, [`His pink minidress is scrunched up around his waist, having been peeled back from his flat chest and hiked up to reveal his rather small genitals and his butt. He is bent over the railing at the waist, his hands and legs both shackled at either end of the rail, and a ring gag keeps him relatively quiet, while simultaneously keeping his mouth available for use.`]);
 		} else {
 			App.Events.addParagraph(node, [`Her pink minidress is scrunched up around her waist, having been peeled back from her buxom chest and hiked up to reveal her lewd pussy and ass. She is bent over the railing at the waist, her hands and legs both shackled at either end of the rail, while a ring gag keeps her relatively quiet, while simultaneously keeping her mouth available for use.`]);
 		}
 
-		if (_num < V.seeDicks) {
-			r.push(`The one restraining him is a business associate of yours. She's a beautiful woman who cuts a gorgeous figure in her expensive, tasteful business attire. You have some rapport with one another and she greets you cheerily and you make small talk as she finishes up shackling her newly minted slave. He was, she explains, her boyfriend, who had accrued significant debt due to his severe lack of business sense and tact. She had bought out his debt in order to save him from enslavement, only to find out not long after that he had been cheating on her with another free woman. Since she owned his debt, it took only a few formalities to turn him into her property as revenge. "Since he likes sluts so much, I'm going to turn him into one!" She giggles, while stroking the struggling traps luxurious bleach blonde hair. Her eyes light up as her gaze returns to you. You know what's coming, and are surprised it took this long for it to occur to her. She reaches around her slave and spreads his ass cheeks. "`);
+		if (num < V.seeDicks) {
+			r.push(`The one restraining him is a business associate of yours. She's a beautiful woman who cuts a gorgeous figure in her expensive, tasteful business attire. You have some rapport with one another and she greets you cheerily and you make small talk as she finishes up shackling her newly minted slave. He was, she explains, her boyfriend, who had accrued significant debt due to his severe lack of business sense and tact. She had bought out his debt in order to save him from enslavement, only to find out not long after that he had been cheating on her with another free woman. Since she owned his debt, it took only a few formalities to turn him into her property as revenge. "Since he likes sluts so much, I'm going to turn him into one!" She giggles, while stroking the struggling traps luxurious bleach blonde hair. Her eyes light up as her gaze returns to you. You know what's coming, and are surprised it took this long for it to occur to her. She reaches around her slave and spreads his ass cheeks.`);
 			if (V.PC.title === 1) {
-				r.push(`Sir,`);
+				r.push(`"Sir,`);
 			} else {
-				r.push(`Ma'am,`);
+				r.push(`"Ma'am,`);
 			}
 			r.push(`it would honor me if you fucked him!"`);
 
 			r.push(`You consider the slave's anus. Your associate has clearly spent all day customizing her new toy, it looks freshly bleached and is smooth and inviting. It effectively has been transformed into a sex organ.`);
 		} else {
-			r.push(`The one restraining her is a business associate of yours. He's a well built man who cuts a handsome figure in his expensive, tasteful business attire. You have some rapport with one another and he greets you cheerily and you make small talk as he finishes up shackling his newly minted slave. She was, he explains, his girlfriend, who had accrued significant debt due to her severe lack of business sense and tact. He had bought out her debt in order to save her from enslavement, only to find out not long after that she had been cheating on him with another free man. Since he owned her debt, it took only a few formalities to turn her into his property as revenge. "She was already a slut, I've simply made her look the part, and play it more honestly!" he chuckles, while fondling the struggling bimbo's ample ass. He favors you with a rueful smile as his gaze returns to you. You know what's coming, and are surprised it took this long for it to occur to him. He reaches around his slave and spreads her ass cheeks. "`);
+			r.push(`The one restraining her is a business associate of yours. He's a well built man who cuts a handsome figure in his expensive, tasteful business attire. You have some rapport with one another and he greets you cheerily and you make small talk as he finishes up shackling his newly minted slave. She was, he explains, his girlfriend, who had accrued significant debt due to her severe lack of business sense and tact. He had bought out her debt in order to save her from enslavement, only to find out not long after that she had been cheating on him with another free man. Since he owned her debt, it took only a few formalities to turn her into his property as revenge. "She was already a slut, I've simply made her look the part, and play it more honestly!" he chuckles, while fondling the struggling bimbo's ample ass. He favors you with a rueful smile as his gaze returns to you. You know what's coming, and are surprised it took this long for it to occur to him. He reaches around his slave and spreads her ass cheeks.`);
 			if (V.PC.title === 1) {
-				r.push(`Sir,`);
+				r.push(`"Sir,`);
 			} else {
-				r.push(`Ma'am,`);
+				r.push(`"Ma'am,`);
 			}
 			r.push(`it would honor me if you fucked her! I've had her hymen restored just a few hours ago, first time is all yours if you want it."`);
 
@@ -55,14 +55,14 @@ App.Events.PEAssociatesPublicSlut = class PEAssociatesPublicSlut extends App.Eve
 		App.Events.addParagraph(node, r);
 
 		App.Events.addResponses(node, [
-			new App.Events.Result(`Give ${(_num < V.seeDicks) ? "him his" : "her the"} first taste of slave life`, taste),
+			new App.Events.Result(`Give ${(num < V.seeDicks) ? "him his" : "her the"} first taste of slave life`, taste),
 			new App.Events.Result(`Decline, but suggest coffee in the café across the street`, decline),
 		]);
 
 		function taste() {
 			const frag = new DocumentFragment();
 			let r = [];
-			if (_num < V.seeDicks) {
+			if (num < V.seeDicks) {
 				r.push(`Taking a slave's anal virginity is hardly novel for you, yet somehow it never stops being fun. You grab the bottle of lubricant your associate has left out for use and begin to generously lubricate his asshole.`);
 				if (V.PC.dick === 0) {
 					r.push(`You also reach for one of the brand new strap-ons she has left out for ladies who wish to avail of her slut, tearing it eagerly from its box.`);
@@ -113,7 +113,7 @@ App.Events.PEAssociatesPublicSlut = class PEAssociatesPublicSlut extends App.Eve
 
 		function decline() {
 			let r = [];
-			if (_num < V.seeDicks) {
+			if (num < V.seeDicks) {
 				r.push(`You decline her offer, but instead offer to buy her coffee at the nearby café. You enjoy some especially delicious coffee together while admiring the view of her slave's ass being broken in by a trickle of curious parties, who also occasionally walk around to the other side of the helpless sissy to use his mouth.`);
 			} else {
 				r.push(`You decline his offer, but instead offer to buy him coffee at the nearby café. You enjoy some especially delicious coffee together while admiring the view of his slave's pussy being broken in by a trickle of curious parties, who also occasionally avail of her ass or walk around to the other side of the helpless slut to use her mouth.`);
diff --git a/src/events/PE/peHeadgirlConcubine.js b/src/events/PE/peHeadgirlConcubine.js
index ff53b7102d7cfa07169787e70a752d34d98216f0..d67e5a1be3689e971237a2f5c0cb71a2a536c9cd 100644
--- a/src/events/PE/peHeadgirlConcubine.js
+++ b/src/events/PE/peHeadgirlConcubine.js
@@ -475,7 +475,7 @@ App.Events.PEHeadgirlConcubine = class PEHeadgirlConcubine extends App.Events.Ba
 			if (S.HeadGirl.belly >= 10000) {
 				r.push(`into ${S.HeadGirl.slaveName}'s taut belly`);
 			}
-			r.push(`as you maneuver yourself into place${(V.PC.dick === 0) ? "and don a strap-on, since there isn't enough space for tribbing to work here" : ""}.`);
+			r.push(`as you maneuver yourself into place${(V.PC.dick === 0) ? " and don a strap-on, since there isn't enough space for tribbing to work here" : ""}.`);
 			if (canDo.vaginal.conc) {
 				/* this is up here to give the PC priority on pregnancy */
 				if (canImpreg(S.Concubine, V.PC)) {
diff --git a/src/events/PESS/pessWorriedHeadgirl.js b/src/events/PESS/pessWorriedHeadgirl.js
index f0f5caffdd13f94608c19b5d8d25405c132f0a68..37608a2675a7311e6011fd3ddf48175899409d45 100644
--- a/src/events/PESS/pessWorriedHeadgirl.js
+++ b/src/events/PESS/pessWorriedHeadgirl.js
@@ -16,7 +16,7 @@ App.Events.pessWorriedHeadgirl = class pessWorriedHeadgirl extends App.Events.Ba
 			He, His,
 			he, his, him, himself, girl, woman, hers
 		} = getPronouns(S.HeadGirl);
-		const {title:Master}= getEnunciation(S.HeadGirl);
+		const {title:Master} = getEnunciation(S.HeadGirl);
 
 		App.Events.drawEventArt(node, S.HeadGirl);
 
diff --git a/src/events/PETS/petsAggressiveWardeness.js b/src/events/PETS/petsAggressiveWardeness.js
index 022750b6bc0601619828b58fc58fa209dd4f7b94..2ecc7197a974ebf7c594e7f2e88e6375a6de729f 100644
--- a/src/events/PETS/petsAggressiveWardeness.js
+++ b/src/events/PETS/petsAggressiveWardeness.js
@@ -41,7 +41,7 @@ App.Events.petsAggressiveWardeness = class petsAggressiveWardeness extends App.E
 		]);
 
 		const choices = [];
-		choices.push(new App.Events.Result(`Encourage the schoolteacher to abuse poor students`, encourage));
+		choices.push(new App.Events.Result(`Encourage the use of sleep deprivation as a breaking tool`, encourage));
 		choices.push(new App.Events.Result(`Have a quiet word with the Wardeness about prisoners' health`, quiet));
 		if (subSlave.anus > 0 && canDoAnal(subSlave)) {
 			choices.push(new App.Events.Result(`The prisoner will take it up the butt, too, if ${he2} wants sleep`, upButt));
diff --git a/src/events/RE/reAnalPunishment.js b/src/events/RE/reAnalPunishment.js
index 880ce08998ba9762d695d9617fe2efb368e8e5f8..630aa04de6f2c714a1f682d1f753408d626f24f7 100644
--- a/src/events/RE/reAnalPunishment.js
+++ b/src/events/RE/reAnalPunishment.js
@@ -108,7 +108,7 @@ App.Events.REAnalPunishment = class REAnalPunishment extends App.Events.BaseEven
 		function takePart() {
 			const frag = new DocumentFragment();
 			let r = [];
-			r.push(`You explain ${slave.slaveName}'s double crime to ${him}, and tell ${S.HeadGirl.slaveName} to get started. Your Head Girl orders the weeping slave to present ${his} anus. The ${(slave.physicalAge > 30) ? woman : girl} does not resist, but nor does ${he} comply. ${S.HeadGirl.slaveName} jabs a thumb into ${slave.slaveName}'s side, right above ${his} kidney, driving the wind out of the slave with a pained grunt. ${He} arches ${his} back involuntarily and ${his} grip on you loosens, so${S.HeadGirl.slaveName} drags ${him} off you, telling ${slave.slaveName} that it'll hurt less if ${he} cooperates and assumes the proper position. ${He} doesn't, so ${S.HeadGirl.slaveName}`);
+			r.push(`You explain ${slave.slaveName}'s double crime to ${him}, and tell ${S.HeadGirl.slaveName} to get started. Your Head Girl orders the weeping slave to present ${his} anus. The ${(slave.physicalAge > 30) ? woman : girl} does not resist, but nor does ${he} comply. ${S.HeadGirl.slaveName} jabs a thumb into ${slave.slaveName}'s side, right above ${his} kidney, driving the wind out of the slave with a pained grunt. ${He} arches ${his} back involuntarily and ${his} grip on you loosens, so ${S.HeadGirl.slaveName} drags ${him} off you, telling ${slave.slaveName} that it'll hurt less if ${he} cooperates and assumes the proper position. ${He} doesn't, so ${S.HeadGirl.slaveName}`);
 			if (slave.belly < 1500) {
 				r.push(`assfucks ${him} lying flat on the floor,`);
 			} else {
diff --git a/src/events/RE/reCitizenHookup.js b/src/events/RE/reCitizenHookup.js
index d1703137715fb472b9cc35ee0d03a84fe6b0694b..31e19b9f697e8f5288ef84e04d1036828d89b113 100644
--- a/src/events/RE/reCitizenHookup.js
+++ b/src/events/RE/reCitizenHookup.js
@@ -404,7 +404,7 @@ App.Events.RECitizenHookup = class RECitizenHookup extends App.Events.BaseEvent
 				default:
 					r.push(`a hot young body.`);
 			}
-			r.push(`Citizens like her often appreciate a good hard fuck, since regular submission to a pounding from sex slaves would be a scandal. There's little opprobrium waiting for you if it's known you had her, though, and she's deliciously eager as you press her down onto the bed${(V.PC.dick === 0) ? "and pull on your usual harness" : ""}. She ruts herself hard back against you as you thrust into her, moaning, and after a short while she begs for it even harder, so you flip her over and mount her like a bitch, making her scream.`);
+			r.push(`Citizens like her often appreciate a good hard fuck, since regular submission to a pounding from sex slaves would be a scandal. There's little opprobrium waiting for you if it's known you had her, though, and she's deliciously eager as you press her down onto the bed${(V.PC.dick === 0) ? " and pull on your usual harness" : ""}. She ruts herself hard back against you as you thrust into her, moaning, and after a short while she begs for it even harder, so you flip her over and mount her like a bitch, making her scream.`);
 			if (S.Concubine) {
 				const {
 					his, him
diff --git a/src/events/RE/reDevotees.js b/src/events/RE/reDevotees.js
index 6a5312b8082a4317aa6305bc887b766234dccaec..745413a04576ea1b340f28fe083c34ad6fefa3cb 100644
--- a/src/events/RE/reDevotees.js
+++ b/src/events/RE/reDevotees.js
@@ -53,9 +53,9 @@ App.Events.REDevotees = class REDevotees extends App.Events.BaseEvent {
 		function casino() {
 			let t = [];
 			t.push(`The croupiers, bouncers and regulars down at the nearest casino hardly know what to think when you appear with a chit full of cash and twice as many partners as you have arms. You live the night big, starting at the poker table with so many tits and asses on display behind you that, <span class="cash inc">baby, you make a killing.</span> ${slaveList} quickly catch the rhythm of the place: slaves can get away with a little more in the smoky, whiskey soaked, money tinted atmosphere, and they <span class="devotion inc">enjoy themselves immensely.</span> They flirt, flash, giggle, kiss each other, and generally destroy the concentration of everyone within twenty ${V.showInches === 2 ? "yards" : "meters"} — except you. Ring-a-ding-ding.`);
-			const _cashX = random(30, 100)*3;
+			const inc = random(30, 100)*3;
 			for (const s of devotees) {
-				cashX(_cashX, "event", s);
+				cashX(inc, "event", s);
 				s.devotion += 4;
 			}
 			return t;
diff --git a/src/events/RE/reFullBed.js b/src/events/RE/reFullBed.js
index d2f0abe51158c02d0b86b7a2262750c13a9c9f64..80ad6bc5df101a07c2294254dfecf75fa054e3b2 100644
--- a/src/events/RE/reFullBed.js
+++ b/src/events/RE/reFullBed.js
@@ -120,7 +120,7 @@ App.Events.REFullBed = class REFullBed extends App.Events.BaseEvent {
 				actX(bedSlaves[1], "penetrative");
 			} else {
 				t.push(`They stiffen as your hands get more adventurous, but immediately relax and begin to work you harder. They orgasm one after the other from your manipulations, before eagerly cleaning`);
-				/** @type {FC.SlaveActs}*/
+				/** @type {FC.SlaveActs} */
 				let hole;
 				bedSlaves.forEach(s => {
 					if (canDoVaginal(s)) {
diff --git a/src/events/RE/reMaleCitizenHookup.js b/src/events/RE/reMaleCitizenHookup.js
index 1dd730f6e1bf87ee5a95da8e679288a35a06d769..6c85e7e3b0fe6366c89d519a31249911d05272b1 100644
--- a/src/events/RE/reMaleCitizenHookup.js
+++ b/src/events/RE/reMaleCitizenHookup.js
@@ -16,7 +16,7 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 		V.nextLink = "RIE Eligibility Check";
 
 		const FSArray = FutureSocieties.activeFSes(V.arcologies[0]);
-		const _FS = (FSArray.length > 0) ? FSArray.random() : "none";
+		const FS = (FSArray.length > 0) ? FSArray.random() : "none";
 
 		let r = [];
 		r.push(`At night, the best living areas in the arcology offer a constant mélange of selective entertainments. There's a perpetual social scrum of who is to be invited to what going on, and you occupy a preeminent place atop it, mostly aloof from the struggles of your citizens for recognition and influence. You're invited to almost everything, since everyone who lives here knows the value of being in favor with the owner of the arcology. Invitations to your parties, of course, are some of the most valuable social currency in the arcology and one of ${V.assistant.name}'s most important duties is to help you manage them without wasting your valuable time. It's not actually necessary for you to attend your own parties, since almost everyone will be glad to be seen in the entertainment area of the penthouse whether or not the`);
@@ -37,7 +37,7 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 			r.push(`alcohol`);
 		}
 		r.push(`and eating your food, though of course they helped pay for it through their rent. They're performing a complex dance of social dominance, and it all radiates around you, with complex unspoken rules of collective approval governing which citizens cycle past you for a word, and for how long. During a low point in the ebb and flow,`);
-		switch (_FS) {
+		switch (FS) {
 			case "FSSubjugationist":
 			case "FSSupremacist":
 				r.push(`a handsome, racially pure young man`);
@@ -133,20 +133,20 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 				r.push(`a cute young man`);
 		}
 		r.push(`sidles up to you.`);
-		if (_FS !== "FSGenderRadicalist") {
+		if (FS !== "FSGenderRadicalist") {
 			r.push(`He begins to introduce himself, but one of the advantages of your connection to the arcology is that you always know who everyone is, and you greet him by name, which people have never learned not to be impressed by.`);
 		} else {
 			r.push(`She begins to introduce herself and, not to your surprise, she is in fact a he.`);
 		}
 		r.push(`He gushes about some of your recent`);
-		if (_FS !== "none") {
-			r.push(FutureSocieties.displayAdj(_FS));
+		if (FS !== "none") {
+			r.push(FutureSocieties.displayAdj(FS));
 		}
 		r.push(`actions, displaying an unusual grasp of what you've been planning. Despite his sincere interest, he's obviously got something else on his mind.`);
 		App.Events.addParagraph(node, r);
 		r = [];
 		r.push(`He's yours for the taking, if you want him, and if his praise and proximity weren't enough to make that clear, he manages to`);
-		switch (_FS) {
+		switch (FS) {
 			case "FSSubjugationist":
 			case "FSSupremacist":
 				r.push(`flash you a view straight down his pants at his ethnically superior dick.`);
@@ -228,7 +228,7 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 			new App.Events.Result("To them that hath, it shall be given", given),
 		];
 
-		if (_FS !== "none") {
+		if (FS !== "none") {
 			responses.push(new App.Events.Result("Emphasize his societal style with exhibitionism", exhibitionism));
 		}
 
@@ -247,9 +247,9 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 			const frag = new DocumentFragment();
 			let r = [];
 			r.push(`You're not exactly starved for casual sex, but you've never thought there was any such thing as too much of a good thing.`);
-			if (_FS === "FSPhysicalIdealist" || _FS === "FSStatuesqueGlorification") {
+			if (FS === "FSPhysicalIdealist" || FS === "FSStatuesqueGlorification") {
 				r.push(`You nudge him in the ribs and motion to the door.`);
-			} else if (_FS === "FSPetiteAdmiration") {
+			} else if (FS === "FSPetiteAdmiration") {
 				r.push(`You place your hand on the nap of his neck and begin to lead him away.`);
 			} else {
 				r.push(`You pull his arm around your waist.`);
@@ -284,7 +284,7 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 				}
 			}
 			r.push(`Your guest restrains his eager praise now that you're in private, but his wide-eyed appreciation of your domain is compliment enough. Once in your suite, you undress him, revealing`);
-			switch (_FS) {
+			switch (FS) {
 				case "FSSubjugationist":
 				case "FSSupremacist":
 					r.push(`his fresh, pure body, and gently push him back onto your bed. You tease him as you remove your evening dress, crawl over him and impale yourself on his eager shaft, fully taking its length, before beginning to ride him. Even a female arcology owner like yourself appreciates a good hard fuck, since regular submission to a pounding from sex slaves would be a scandal. There's little opprobrium waiting for you if it's known he had you, though, and he is eagerly thrusting into your pussy. You shift into a slightly more comfortable position`);
@@ -590,11 +590,11 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 					}
 					r.push(`and ride him to orgasm. You follow shortly after, feeling the heat of his seed in the depths of your pussy as it clamps down around his dick. Thankfully, he isn't spent yet and begins anew, quickly carrying your climax to a second orgasm and drawing an adorable moan out of you.`);
 			}
-			if (_FS === "FSAssetExpansionist") {
+			if (FS === "FSAssetExpansionist") {
 				if (S.Concubine && canMove(S.Concubine) && S.Concubine.fetish !== "mindbroken") {
 					r.push(`${S.Concubine.slaveName} eagerly joins the two of you to help clean the massive cumshot up.`);
 				}
-			} else if (_FS !== "FSYouthPreferentialist") {
+			} else if (FS !== "FSYouthPreferentialist") {
 				if (S.Concubine && canMove(S.Concubine) && S.Concubine.fetish !== "mindbroken") {
 					const {he} = getPronouns(S.Concubine);
 					r.push(`The`);
@@ -609,7 +609,7 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 				}
 			}
 			r.push(`Sometimes society overlooks that you are a woman and have certain needs, but your lover tonight knows exactly how to treat you. When your guest`);
-			if (_FS !== "FSYouthPreferentialist") {
+			if (FS !== "FSYouthPreferentialist") {
 				r.push(`is finally spent,`);
 			} else {
 				r.push(`wakes up from against your body,`);
@@ -617,7 +617,7 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 			r.push(`he showers, dresses, and leaves discreetly, offering you a proper thank you. This is the kind of thing that <span class="green">builds a lasting reputation</span> in the Free Cities.`);
 			repX(5000, "event");
 			if (canGetPregnant(V.PC)) {
-				switch (_FS) {
+				switch (FS) {
 					case "FSAssetExpansionist":
 					case "FSRepopulationFocus":
 					case "FSSlaveProfessionalism":
@@ -635,8 +635,8 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 						r.push(knockMeUp(V.PC, 40, 0, -2));
 				}
 			}
-			if (_FS !== "none") {
-				const desc = "a tasteful morning-after message, complete with number, from a handsome " + FutureSocieties.displayAdj(_FS) + " citizen";
+			if (FS !== "none") {
+				const desc = "a tasteful morning-after message, complete with number, from a handsome " + FutureSocieties.displayAdj(FS) + " citizen";
 				V.trinkets.push(desc);
 			} else {
 				V.trinkets.push("a tasteful morning-after message, complete with number, from a handsome citizen");
@@ -649,7 +649,7 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 			const frag = new DocumentFragment();
 			let r = [];
 			r.push(`You turn to face him straight on, and something about the look in your eye fills him with mixed apprehension and anticipation. You agree with his banter and praise him for being so forward-thinking, before transitioning to more direct praise of his style and then his body. You're speaking in a tone that cuts through the room, and by the time you kiss your willing conquest, there's not a person in the room who isn't paying attention. They all understand the message: this gathering is turning into something else, now. Those few who aren't willing to fuck in public withdraw, and everyone who didn't come with a sexual partner sends urgent messages to have appropriate slaves brought from their apartments. You make out with him for a while, letting everyone make arrangements, and then pull his clothes off, making sure his`);
-			switch (_FS) {
+			switch (FS) {
 				case "FSSubjugationist":
 				case "FSSupremacist":
 					r.push(`superior body`);
@@ -741,8 +741,8 @@ App.Events.REMaleCitizenHookup = class REMaleCitizenHookup extends App.Events.Ba
 				default:
 					r.push(`hot young body`);
 			}
-			V.arcologies[0][_FS] += 5;
-			r.push(`is obvious to everyone. The message is clear, and your guest of honor is the center of attention as you take him there in view of the arcology's leading citizens. Naturally, the story percolates, making it clear that there's nothing you won't do to <span class="green">further acceptance of ${_FS} principles.</span>`);
+			V.arcologies[0][FS] += 5;
+			r.push(`is obvious to everyone. The message is clear, and your guest of honor is the center of attention as you take him there in view of the arcology's leading citizens. Naturally, the story percolates, making it clear that there's nothing you won't do to <span class="green">further acceptance of ${FS} principles.</span>`);
 			if (canGetPregnant(V.PC)) {
 				r.push(knockMeUp(V.PC, 40, 0, -2));
 			}
diff --git a/src/events/RE/reMalefactor.js b/src/events/RE/reMalefactor.js
index 00c508accaddd9aa27257fa4e4172c107ac2a42f..319e8d55fa69ffb04b9f9792468ee9d1ff380f9f 100644
--- a/src/events/RE/reMalefactor.js
+++ b/src/events/RE/reMalefactor.js
@@ -242,7 +242,7 @@ App.Events.REMalefactor = class REMalefactor extends App.Events.BaseEvent {
 					break;
 				case "orphanloli":
 					r.push(`You declare ${his} holes fair game for the entire arcology, so that all free citizens can own ${him} for a moment, if they wish. ${He} spends a torturous day in the stocks before being hauled in for enslavement, <span class="health dec">completely broken</span> due to ${his} ordeal, bruises all over ${his} body, cum leaking from ${his} <span class="lime">loosened</span> anus${(slave.vagina > -1) ? ' and <span class="lime">fucked-out</span> pussy' : ""}. The public <span class="reputation inc">enjoys the fun.</span>`);
-					applyMindbroken(slave);
+					applyMindbroken(slave, slave.intelligence);
 					break;
 				case "anchorBaby":
 					r.push(`You declare ${his} holes fair game for the entire arcology; since ${he} wants to produce future slaves, your arcology might as well have the privilege of fathering them. ${He} spends a torturous day in the stocks after ${his} children are taken to a slave orphanage before being hauled in for enslavement, somewhat <span class="health.dec">the worse for wear</span> and <span class="red">acting oddly</span> due to ${his} ordeal, bruises all over ${his} body, cum leaking from ${his} <span class="lime">loosened</span> anus${(slave.vagina > -1) ? ' and <span class="lime">fucked-out</span> pussy' : ""}. The public <span class="reputation inc">enjoys the fun.</span>`);
diff --git a/src/events/RE/reNickname.js b/src/events/RE/reNickname.js
index 9b012646d09e03d9865212abc6b34d2df7da7d64..ab82233622984764a1370bdb116cd37616967afc 100644
--- a/src/events/RE/reNickname.js
+++ b/src/events/RE/reNickname.js
@@ -37,281 +37,281 @@ App.Events.RENickname = class RENickname extends App.Events.BaseEvent {
 
 	/** @param {App.Entity.SlaveState} slave */
 	getQualifiedNicknames(slave) {
-		const _qualifiedNicknames = new Set();
+		const qualifiedNicknames = new Set();
 
 		if (slave.nationality) {
-			_qualifiedNicknames.add("nationality");
+			qualifiedNicknames.add("nationality");
 		}
 
 		if (V.seeRace === 1) {
 			switch (slave.race) {
 				case "amerindian":
-					_qualifiedNicknames.add("amerindian");
+					qualifiedNicknames.add("amerindian");
 					break;
 				case "asian":
-					_qualifiedNicknames.add("asian");
+					qualifiedNicknames.add("asian");
 					break;
 				case "black":
-					_qualifiedNicknames.add("black");
+					qualifiedNicknames.add("black");
 					break;
 				case "indo-aryan":
-					_qualifiedNicknames.add("indo-aryan");
+					qualifiedNicknames.add("indo-aryan");
 					break;
 				case "latina":
-					_qualifiedNicknames.add("latina");
+					qualifiedNicknames.add("latina");
 					break;
 				case "malay":
-					_qualifiedNicknames.add("malay");
+					qualifiedNicknames.add("malay");
 					break;
 				case "middle eastern":
-					_qualifiedNicknames.add("middle eastern");
+					qualifiedNicknames.add("middle eastern");
 					break;
 				case "mixed race":
-					_qualifiedNicknames.add("mixed race");
+					qualifiedNicknames.add("mixed race");
 					break;
 				case "pacific islander":
-					_qualifiedNicknames.add("pacific islander");
+					qualifiedNicknames.add("pacific islander");
 					break;
 				case "catgirl":
-					_qualifiedNicknames.add("catgirl");
+					qualifiedNicknames.add("catgirl");
 					break;
 				case "semitic":
-					_qualifiedNicknames.add("semitic");
+					qualifiedNicknames.add("semitic");
 					break;
 				case "southern european":
-					_qualifiedNicknames.add("southern european");
+					qualifiedNicknames.add("southern european");
 					break;
 				case "white":
-					_qualifiedNicknames.add("white");
+					qualifiedNicknames.add("white");
 					break;
 			}
 		}
 
 		if (slave.boobs < 500 && slave.butt < 3 && slave.weight <= 10) {
-			_qualifiedNicknames.add("girlish");
+			qualifiedNicknames.add("girlish");
 		}
 		if (slave.boobs <= 300) {
-			_qualifiedNicknames.add("flat");
+			qualifiedNicknames.add("flat");
 		}
 		if (slave.anus > 2 || slave.vagina > 2) {
-			_qualifiedNicknames.add("loose");
+			qualifiedNicknames.add("loose");
 		}
 		if (slave.boobs < 500 && slave.butt < 3 && slave.dick > 0) {
-			_qualifiedNicknames.add("trap");
+			qualifiedNicknames.add("trap");
 		}
 		if (slave.boobs > 500 && slave.butt > 3 && slave.dick > 0) {
-			_qualifiedNicknames.add("trans");
+			qualifiedNicknames.add("trans");
 		}
 		if (slave.weight > 30) {
-			_qualifiedNicknames.add("chubby");
+			qualifiedNicknames.add("chubby");
 		}
 		if (slave.weight > 100) {
-			_qualifiedNicknames.add("fat");
+			qualifiedNicknames.add("fat");
 		}
 		if (slave.muscles > 30) {
-			_qualifiedNicknames.add("muscles");
+			qualifiedNicknames.add("muscles");
 		}
 		if (slave.energy > 95) {
 			if (slave.anus > 1) {
-				_qualifiedNicknames.add("buttslut");
+				qualifiedNicknames.add("buttslut");
 			}
-			_qualifiedNicknames.add("cumslut");
-			_qualifiedNicknames.add("humiliation");
-			_qualifiedNicknames.add("submissive");
+			qualifiedNicknames.add("cumslut");
+			qualifiedNicknames.add("humiliation");
+			qualifiedNicknames.add("submissive");
 		}
 		if (slave.fetishKnown === 1 && slave.fetishStrength > 60) {
 			switch (slave.fetish) {
 				case "buttslut":
 					if (slave.anus > 0) {
-						_qualifiedNicknames.add("buttslut");
+						qualifiedNicknames.add("buttslut");
 					} else {
-						_qualifiedNicknames.add("butt toy");
+						qualifiedNicknames.add("butt toy");
 					}
 					break;
 				case "cumslut":
-					_qualifiedNicknames.add("cumslut");
+					qualifiedNicknames.add("cumslut");
 					break;
 				case "humiliation":
-					_qualifiedNicknames.add("humiliation");
+					qualifiedNicknames.add("humiliation");
 					break;
 				case "submissive":
-					_qualifiedNicknames.add("submissive");
+					qualifiedNicknames.add("submissive");
 			}
 		}
 		if (slave.counter.oral + slave.counter.vaginal + slave.counter.anal > 500) {
-			_qualifiedNicknames.add("veteran");
+			qualifiedNicknames.add("veteran");
 		}
 		if ((slave.boobs * slave.lactation) > 1000) {
-			_qualifiedNicknames.add("cow");
+			qualifiedNicknames.add("cow");
 		}
 		if (slave.skill.oral <= 30 && slave.skill.anal <= 30) {
-			_qualifiedNicknames.add("novice");
+			qualifiedNicknames.add("novice");
 		}
 		if (slave.ID === V.HeadGirlID) {
-			_qualifiedNicknames.add("Head Girl");
+			qualifiedNicknames.add("Head Girl");
 		}
 		if (slave.ID === V.BodyguardID) {
-			_qualifiedNicknames.add("Bodyguard");
+			qualifiedNicknames.add("Bodyguard");
 		}
 		if (slave.ID === V.ConcubineID) {
-			_qualifiedNicknames.add("Concubine");
+			qualifiedNicknames.add("Concubine");
 		}
 		if (slave.ID === V.AttendantID) {
-			_qualifiedNicknames.add("Attendant");
+			qualifiedNicknames.add("Attendant");
 		}
 		if (slave.ID === V.MatronID) {
-			_qualifiedNicknames.add("Matron");
+			qualifiedNicknames.add("Matron");
 		}
 		if (slave.ID === V.MadamID) {
-			_qualifiedNicknames.add("Madam");
+			qualifiedNicknames.add("Madam");
 		}
 		if (slave.ID === V.djID) {
-			_qualifiedNicknames.add("DJ");
+			qualifiedNicknames.add("DJ");
 		}
 		if (slave.ID === V.RecruiterID) {
-			_qualifiedNicknames.add("Recruiter");
+			qualifiedNicknames.add("Recruiter");
 		}
 		if (slave.ID === V.WardenessID) {
-			_qualifiedNicknames.add("Wardeness");
+			qualifiedNicknames.add("Wardeness");
 		}
 		if (slave.ID === V.MilkmaidID) {
-			_qualifiedNicknames.add("Milkmaid");
+			qualifiedNicknames.add("Milkmaid");
 		}
 		if (slave.ID === V.FarmerID) {
-			_qualifiedNicknames.add("Farmer");
+			qualifiedNicknames.add("Farmer");
 		}
 		if (slave.ID === V.MilkmaidID && slave.dick > 5 && canPenetrate(slave) && cumSlaves().length > 3) {
-			_qualifiedNicknames.add("Collectrix");
+			qualifiedNicknames.add("Collectrix");
 		}
 		if (slave.ID === V.StewardessID) {
-			_qualifiedNicknames.add("Stewardess");
+			qualifiedNicknames.add("Stewardess");
 		}
 		if (slave.ID === V.SchoolteacherID) {
-			_qualifiedNicknames.add("Schoolteacher");
+			qualifiedNicknames.add("Schoolteacher");
 		}
 		if (slave.ID === V.NurseID) {
-			_qualifiedNicknames.add("Nurse");
+			qualifiedNicknames.add("Nurse");
 		}
 		if (slave.ID === V.LurcherID) {
-			_qualifiedNicknames.add("Lurcher");
+			qualifiedNicknames.add("Lurcher");
 		}
 		if (slave.assignment === "be a subordinate slave") {
-			_qualifiedNicknames.add("server");
+			qualifiedNicknames.add("server");
 		}
 		if (slave.nipples === "huge" || slave.nipples === "puffy") {
-			_qualifiedNicknames.add("nipples");
+			qualifiedNicknames.add("nipples");
 		} else if (slave.nipples === "fuckable") {
-			_qualifiedNicknames.add("nippleCunts");
+			qualifiedNicknames.add("nippleCunts");
 		}
 		if (slave.areolae > 2) {
-			_qualifiedNicknames.add("areolae");
+			qualifiedNicknames.add("areolae");
 		}
 		if (slave.lips > 40) {
-			_qualifiedNicknames.add("lips");
+			qualifiedNicknames.add("lips");
 		}
 		if (slave.labia > 1 && slave.vagina > -1) {
-			_qualifiedNicknames.add("labia");
+			qualifiedNicknames.add("labia");
 		}
 		if (slave.physicalAge < 18) {
-			_qualifiedNicknames.add("young");
+			qualifiedNicknames.add("young");
 		}
 		if (slave.physicalAge > 35) {
-			_qualifiedNicknames.add("old");
+			qualifiedNicknames.add("old");
 		}
 		if (slave.physicalAge > 59) {
-			_qualifiedNicknames.add("reallyold");
+			qualifiedNicknames.add("reallyold");
 		}
 		if (isAmputee(slave)) {
-			_qualifiedNicknames.add("amp");
+			qualifiedNicknames.add("amp");
 		}
 		if ((slave.boobsImplant / slave.boobs) >= .60 || (slave.buttImplant / slave.butt) > .60) {
-			_qualifiedNicknames.add("implants");
+			qualifiedNicknames.add("implants");
 		}
 		if ((slave.boobsImplant >= 750) && (slave.boobsImplant / slave.boobs) >= .60 && (slave.buttImplant >= 2) && (slave.buttImplant / slave.butt) > .60 && (slave.lipsImplant >= 10) && (slave.lipsImplant / slave.lips) > .30 && (slave.intelligence + slave.intelligenceImplant < -15)) {
-			_qualifiedNicknames.add("bimbo");
+			qualifiedNicknames.add("bimbo");
 		}
 		if (slave.intelligence + slave.intelligenceImplant < -50) {
-			_qualifiedNicknames.add("stupid");
+			qualifiedNicknames.add("stupid");
 		}
 		if (slave.intelligence + slave.intelligenceImplant > 50) {
-			_qualifiedNicknames.add("smart");
+			qualifiedNicknames.add("smart");
 		}
 		if (getBestVision(slave) === 0) {
-			_qualifiedNicknames.add("blind");
+			qualifiedNicknames.add("blind");
 		}
 		if (slave.hears <= -2) {
-			_qualifiedNicknames.add("deaf");
+			qualifiedNicknames.add("deaf");
 		}
 		if (slave.voice === 0) {
-			_qualifiedNicknames.add("mute");
+			qualifiedNicknames.add("mute");
 		}
 		if (slave.breedingMark === 1 && V.propOutcome === 1 && V.arcologies[0].FSRestart !== "unset") {
-			_qualifiedNicknames.add("mark");
+			qualifiedNicknames.add("mark");
 		}
 		if (slave.broodmother > 1 && slave.preg >= 37) {
-			_qualifiedNicknames.add("hyperbroodmother");
+			qualifiedNicknames.add("hyperbroodmother");
 		}
 		if (slave.broodmother === 1 && slave.preg >= 37) {
-			_qualifiedNicknames.add("broodmother");
+			qualifiedNicknames.add("broodmother");
 		}
 		if (slave.bellyPreg >= 300000) {
-			_qualifiedNicknames.add("hyperpreg");
+			qualifiedNicknames.add("hyperpreg");
 		}
 		if (slave.bellyPreg >= 30000 && slave.boobs >= 5000 && slave.butt > 5 && slave.hips >= 2 && slave.weight < 100) {
-			_qualifiedNicknames.add("fertilityGoddess");
+			qualifiedNicknames.add("fertilityGoddess");
 		}
 		if (slave.dick > 5 && slave.balls > 5 && slave.counter.slavesKnockedUp > 4) {
-			_qualifiedNicknames.add("babymaker");
+			qualifiedNicknames.add("babymaker");
 		}
 		if (slave.prostate > 2 && slave.dick === 0 && slave.vagina > -1) {
-			_qualifiedNicknames.add("superSquirter");
+			qualifiedNicknames.add("superSquirter");
 		}
 		if (slave.bellyPreg >= 100 && slave.pregKnown === 1) {
-			_qualifiedNicknames.add("preg");
+			qualifiedNicknames.add("preg");
 			if ((slave.ovaries === 1 && slave.vagina === 0) || (slave.mpreg === 1 && slave.anus === 0)) {
-				_qualifiedNicknames.add("virgin preg");
+				qualifiedNicknames.add("virgin preg");
 			}
 		}
 		if (slave.dick > 4) {
-			_qualifiedNicknames.add("hung");
+			qualifiedNicknames.add("hung");
 		}
 		if (slave.dick > 0 && slave.balls === 0) {
-			_qualifiedNicknames.add("gelding");
+			qualifiedNicknames.add("gelding");
 		}
 		if (slave.dick === 1) {
-			_qualifiedNicknames.add("micropenis");
+			qualifiedNicknames.add("micropenis");
 		}
 		if (slave.boobs >= 800) {
-			_qualifiedNicknames.add("boobs");
+			qualifiedNicknames.add("boobs");
 		}
 		if (slave.butt > 5) {
-			_qualifiedNicknames.add("butt");
+			qualifiedNicknames.add("butt");
 		}
 		if (slave.vagina === 0) {
-			_qualifiedNicknames.add("virgin");
+			qualifiedNicknames.add("virgin");
 		}
 		if (slave.height >= 185) {
-			_qualifiedNicknames.add("tall");
+			qualifiedNicknames.add("tall");
 		}
 		if (slave.height < 150) {
-			_qualifiedNicknames.add("short");
+			qualifiedNicknames.add("short");
 		}
 		if (slave.vagina === 1 && slave.skill.vaginal <= 10) {
-			_qualifiedNicknames.add("vaginalWhiner");
+			qualifiedNicknames.add("vaginalWhiner");
 		}
 		if (slave.anus === 1 && slave.skill.anal <= 10) {
-			_qualifiedNicknames.add("analWhiner");
+			qualifiedNicknames.add("analWhiner");
 		}
 		if (slave.vagina === -1 && slave.dick === 0 && slave.balls === 0) {
-			_qualifiedNicknames.add("null");
+			qualifiedNicknames.add("null");
 		}
-		return _qualifiedNicknames;
+		return qualifiedNicknames;
 	}
 
 	execute(node) {
 		const [slave] = this.actors.map(a => getSlave(a));
 		const {He, he, him} = getPronouns(slave);
-		const _this = this; // fuck javascript's half-assed classes
+		const that = this; // fuck javascript's half-assed classes
 
 		if (this.params.type === "RIE") {
 			V.nextLink = "Next Week";
@@ -333,7 +333,7 @@ App.Events.RENickname = class RENickname extends App.Events.BaseEvent {
 		function introPassage() {
 			const el = new DocumentFragment();
 			const r = [];
-			const {nicknameArray, situationDesc, applyDesc, notApplyDesc} = _this.data(slave, seed);
+			const {nicknameArray, situationDesc, applyDesc, notApplyDesc} = that.data(slave, seed);
 			let nickname = either(...nicknameArray);
 			const catEl = App.UI.DOM.makeElement("div", selectCategory(V.debugMode > 0 && V.debugModeEventSelection > 0));
 			r.push(catEl);
diff --git a/src/events/RE/rePregInventorFCTV.js b/src/events/RE/rePregInventorFCTV.js
index 48106e16cafa15b66c4c9ab510b9a4cf871fd26a..a514dd9b13829816bb42480971aeb708b55786ce 100644
--- a/src/events/RE/rePregInventorFCTV.js
+++ b/src/events/RE/rePregInventorFCTV.js
@@ -47,7 +47,7 @@ App.Events.rePregInventorFCTV = class rePregInventorFCTV extends App.Events.Base
 			} else {
 				r.push(`a bit of a reputation already,`);
 			}
-			r.push(`you could significantly improve ${his} chances to impress on the show with a little bit of extra investment in commercial spots${(V.PC.skill.hacking >= 100) ? `or a tweaking of FCTV algorithms` : ``}.`);
+			r.push(`you could significantly improve ${his} chances to impress on the show with a little bit of extra investment in commercial spots${(V.PC.skill.hacking >= 100) ? ` or a tweaking of FCTV algorithms` : ``}.`);
 		}
 		App.Events.addParagraph(node, r);
 
diff --git a/src/events/RE/reRelativeRecruiter.js b/src/events/RE/reRelativeRecruiter.js
index 6f00848962063507a40da4f1120c8e0efed593e2..bce07bb02b52159c2af0a68a69252dc5e7a68248 100644
--- a/src/events/RE/reRelativeRecruiter.js
+++ b/src/events/RE/reRelativeRecruiter.js
@@ -170,7 +170,7 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 		// pick a random background for the selected relative
 		this.params.background = this._getRelativeBackgrounds(this.params.relative).random();
 
-		let _this = this; // fuck javascript's half-assed classes
+		let that = this; // fuck javascript's half-assed classes
 		let cost = 0; // will be filled out later
 
 		let cheatDiv = App.UI.DOM.makeElement("div", (V.debugMode > 0 && V.debugModeEventSelection > 0) ? cheatModeSelectors() : '');
@@ -198,14 +198,14 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 				t.push("with desperate gestures");
 			}
 			t.push(`that`);
-			switch (_this.params.relative) {
+			switch (that.params.relative) {
 				case "daughter":
 				case "son":
 					t.push(`${he} had a ${daughter2}, who was sent to the slave orphanages. ${He}'s heard a rumor through other slaves that ${his} ${daughter2} will go up for sale soon.`);
 					break;
 				case "mother":
 				case "father":
-					t.push(`${his} ${_this.params.relative} might be getting sold soon. ${He2} has been a slave for some time. ${He}'s heard a rumor through other slaves that ${his} ${_this.params.relative} will go up for sale soon.`);
+					t.push(`${his} ${that.params.relative} might be getting sold soon. ${He2} has been a slave for some time. ${He}'s heard a rumor through other slaves that ${his} ${that.params.relative} will go up for sale soon.`);
 					break;
 				case "older sister":
 				case "older brother":
@@ -219,7 +219,7 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 					t.push(`${he} has a twin ${sister2}, who was still free the last ${eventSlave.slaveName} knew of ${him2}. ${He}'s heard a rumor through other slaves that ${his} twin has finally been enslaved, and will soon go up for sale.`);
 					break;
 				default:
-					throw Error(`Unknown relative type: ${_this.params.relative}`);
+					throw Error(`Unknown relative type: ${that.params.relative}`);
 			}
 
 			if (!canTalk(eventSlave)) {
@@ -298,8 +298,8 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 			App.Events.addParagraph(frag, t);
 
 			t = [];
-			t.push(`You look up the ${_this.params.relative}. ${He2} costs ${cashFormat(cost)}, a bargain, but you won't be able to inspect ${him2} beyond ${his2} likely resemblance to ${eventSlave.slaveName}.`);
-			t.push(_this._getBackgroundDescription(newSlave, _this.params.background));
+			t.push(`You look up the ${that.params.relative}. ${He2} costs ${cashFormat(cost)}, a bargain, but you won't be able to inspect ${him2} beyond ${his2} likely resemblance to ${eventSlave.slaveName}.`);
+			t.push(that._getBackgroundDescription(newSlave, that.params.background));
 			App.Events.addParagraph(frag, t);
 
 			App.Events.addResponses(frag, [
@@ -315,18 +315,18 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 		function cheatModeSelectors() {
 			const refreshCallback = (effect) => { effect(); $(cheatDiv).empty().append(cheatModeSelectors); $(eventTextDiv).empty().append(eventText); };
 
-			let relativeTypeLinks = _.uniq(_this._getTargetRelativeChoices(getSlave(_this.actors[0]))).map((choice) =>
-				App.UI.DOM.link(choice, refreshCallback, [() => { _this.params.relative = choice; _this.params.background = _this._getRelativeBackgrounds(choice).random(); }])
+			let relativeTypeLinks = _.uniq(that._getTargetRelativeChoices(getSlave(that.actors[0]))).map((choice) =>
+				App.UI.DOM.link(choice, refreshCallback, [() => { that.params.relative = choice; that.params.background = that._getRelativeBackgrounds(choice).random(); }])
 			);
-			let backgroundTypeLinks = _.uniq(_this._getRelativeBackgrounds(_this.params.relative)).map((choice) =>
-				App.UI.DOM.link(choice, refreshCallback, [() => { _this.params.background = choice; }])
+			let backgroundTypeLinks = _.uniq(that._getRelativeBackgrounds(that.params.relative)).map((choice) =>
+				App.UI.DOM.link(choice, refreshCallback, [() => { that.params.background = choice; }])
 			);
 
 			let frag = document.createDocumentFragment();
 			$(frag).append(
-				`Relative Type: <strong>${_this.params.relative}</strong> `, App.UI.DOM.generateLinksStrip(relativeTypeLinks),
+				`Relative Type: <strong>${that.params.relative}</strong> `, App.UI.DOM.generateLinksStrip(relativeTypeLinks),
 				"<br>",
-				`Background: <strong>${_this.params.background}</strong> `, App.UI.DOM.generateLinksStrip(backgroundTypeLinks)
+				`Background: <strong>${that.params.background}</strong> `, App.UI.DOM.generateLinksStrip(backgroundTypeLinks)
 			);
 			return frag;
 		}
@@ -381,7 +381,7 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 			}
 
 			function relativeOrigin() {
-				switch (_this.params.relative) {
+				switch (that.params.relative) {
 					case "mother":
 					case "father":
 						return "$He was recruited into your service by $his child.";
@@ -397,7 +397,7 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 					case "twin":
 						return "$He was recruited into your service by $his twin.";
 				}
-				throw Error(`Unknown relative type: ${_this.params.relative}`);
+				throw Error(`Unknown relative type: ${that.params.relative}`);
 			}
 
 			/** @param {App.Entity.SlaveState} slave */
@@ -564,7 +564,7 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 					"bimbo toy": applyBimboToy,
 					"twin": applyTwin
 				};
-				backgroundDispatch[_this.params.background]();
+				backgroundDispatch[that.params.background]();
 			}
 
 			/** @param {App.Entity.SlaveState} slave */
@@ -597,16 +597,16 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 			}
 
 			const origSlave = BaseSlave();
-			const genepoolRec = V.genePool.find(s => s.ID === _this.actors[0]);
+			const genepoolRec = V.genePool.find(s => s.ID === that.actors[0]);
 			App.Entity.Utils.GenePoolRecordCleanup(genepoolRec);
 			Object.assign(origSlave, genepoolRec);
 			updateGPRecordAgeFromEventSlave(origSlave);
 
-			const newSlave = generateRelatedSlave(origSlave, _this.params.relative);
+			const newSlave = generateRelatedSlave(origSlave, that.params.relative);
 			clearMods(newSlave);
 			newSlave.origin = relativeOrigin();
 			applyBackground(newSlave);
-			if (_this.params.relative === "mother") {
+			if (that.params.relative === "mother") {
 				newSlave.counter.birthsTotal += V.slaves.reduce((acc, cur) => acc + (sameDad(eventSlave, cur) ? 1 : 0), 0);
 			}
 			applyCommon(newSlave);
@@ -641,7 +641,7 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 			$(cheatDiv).empty();
 
 			// the new slave is already set up to be related to the existing slave, but we're responsible for making sure the existing slave (and any others in our stable) gets *their* relatives set correctly
-			switch (_this.params.relative) {
+			switch (that.params.relative) {
 				case "mother": {
 					setUnknownParents(eventSlave, {mother: newSlave.ID} );
 					for (const slave of V.slaves) {
@@ -699,7 +699,7 @@ App.Events.RERelativeRecruiter = class RERelativeRecruiter extends App.Events.Ba
 			const {he: he2} = getPronouns(newSlave);
 
 			let elements = [];
-			elements.push(`You complete the legalities and biometric scanning quickly and without fuss. ${newSlave.slaveName} arrives shortly. The two slaves remember each other only dimly — they parted a long time ago — but they embrace. The devoted ${SlaveTitle(eventSlave)} explains the situation and encourages ${his} ${_this.params.relative} to be a good slave to you. ${newSlave.slaveName} looks a little fearful but clearly realizes that ${he2}'s lucky to be here.`);
+			elements.push(`You complete the legalities and biometric scanning quickly and without fuss. ${newSlave.slaveName} arrives shortly. The two slaves remember each other only dimly — they parted a long time ago — but they embrace. The devoted ${SlaveTitle(eventSlave)} explains the situation and encourages ${his} ${that.params.relative} to be a good slave to you. ${newSlave.slaveName} looks a little fearful but clearly realizes that ${he2}'s lucky to be here.`);
 
 			elements.push(App.UI.newSlaveIntro(newSlave, eventSlave));
 
diff --git a/src/events/RE/reShelterInspection.js b/src/events/RE/reShelterInspection.js
index a991d7f3450eb27c74c3be4bccbe69cb1717dc11..07a0675eab01dbb1dac8fab874349dc9d1f583f7 100644
--- a/src/events/RE/reShelterInspection.js
+++ b/src/events/RE/reShelterInspection.js
@@ -259,7 +259,7 @@ App.Events.REShelterInspection = class REShelterInspection extends App.Events.Ba
 			r.push(`You have ${him2} ushered up to your office, and order ${inspectee.slaveName} brought in.`);
 
 			/*
-			let _inspectionContinues = 1;
+			let inspectionContinues = 1;
 			if (isAmputee(inspectee) && !isAmputee(originSlave)) {
 				r.push(`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.`);
 				V.shelterAbuse += 10;
@@ -294,10 +294,10 @@ App.Events.REShelterInspection = class REShelterInspection extends App.Events.Ba
 					r.push(`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.`);
 					V.shelterAbuse += 5;
 				}
-				_inspectionContinues = 0;
+				inspectionContinues = 0;
 			}
 
-			if (_inspectionContinues === 1) {
+			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.":
 						r.push(`The inspector asks some cursory questions and is shocked when ${he} responds. "`);
@@ -307,7 +307,7 @@ App.Events.REShelterInspection = class REShelterInspection extends App.Events.Ba
 						r.push(`${He2} carries on while writing notes on ${his2} tablet,`);
 						r.push(Spoken(inspector, `"You're more than welcome to adopt slaves from our shelter."`));
 						r.push(`You swear ${he2} seems in much better spirits as ${he2} leaves your penthouse.`);
-						_inspectionContinues = 0;
+						inspectionContinues = 0;
 						V.shelterAbuse -= 5;
 						break;
 					case "You got $him at the Slave Shelter. It's not clear why $his previous owner cut $his arms and legs off.":
@@ -315,7 +315,7 @@ App.Events.REShelterInspection = class REShelterInspection extends App.Events.Ba
 							r.push(`Unsurprisingly, the poor ${girl} still lacks arms and legs, so the inspector just carries on.`);
 						} else {
 							r.push(`The inspector stares, dumbfounded, at the pair of limbs now supporting ${inspectee.slaveName}. "Most owners wouldn't go through the trouble... I think I've seen enough to know you're welcome to come back and take in another slave any time." ${He2} leaves your penthouse in much better spirits than ${he2} arrived in.`);
-							_inspectionContinues = 0;
+							inspectionContinues = 0;
 							V.shelterAbuse -= 3;
 						}
 						break;
@@ -343,7 +343,7 @@ App.Events.REShelterInspection = class REShelterInspection extends App.Events.Ba
 							r.push(`${He2} turns to you and says`);
 							r.push(Spoken(inspector, `"You're more than welcome to adopt slaves from our shelter."`));
 							r.push(`You swear ${he2} seems in much better spirits as ${he2} leaves your penthouse.`);
-							_inspectionContinues = 0;
+							inspectionContinues = 0;
 							V.shelterAbuse--;
 						} else {
 							r.push(`Unable to hear ${him2}, ${he} does not respond.`);
@@ -365,7 +365,7 @@ App.Events.REShelterInspection = class REShelterInspection extends App.Events.Ba
 							r.push(`A tear comes to ${his2} weary eye as ${he2} writes out notes on ${his2} tablet.`);
 							r.push(Spoken(inspector, `"You're more than welcome to adopt slaves from our shelter."`));
 							r.push(`You swear ${he2} seems in much better spirits as ${he2} leaves your penthouse.`);
-							_inspectionContinues = 0;
+							inspectionContinues = 0;
 							V.shelterAbuse--;
 						}
 						break;
@@ -377,7 +377,7 @@ App.Events.REShelterInspection = class REShelterInspection extends App.Events.Ba
 						r.push(`${He2} carries on while writing notes on ${his2} tablet,`);
 						r.push(Spoken(inspector, `"You're more than welcome to adopt slaves from our shelter."`));
 						r.push(`You swear ${he2} seems in much better spirits as ${he2} leaves your penthouse, even though ${he2} forgot to check ${his} pussy.`);
-						_inspectionContinues = 0;
+						inspectionContinues = 0;
 						V.shelterAbuse -= 5;
 						break;
 					case "You got $him at the Slave Shelter. $His previous owner forced $him to cut off $his dick and balls and cook them.":
@@ -557,7 +557,7 @@ App.Events.REShelterInspection = class REShelterInspection extends App.Events.Ba
 						r.push(`The inspector frowns.`);
 						r.push(Spoken(inspector, `"A buttplug shouldn't do that!"`));
 						r.push(`The slave looks worried and replies,`);
-						r.push(Spoken(inspector, `"It's kinda big? And I wear it all the time. B-but I like it! It d-doen't hurt. Well, anymore."`));
+						r.push(Spoken(inspector, `"It's kinda big? And I wear it all the time. B-but I like it! It d-doesn't hurt. Well, anymore."`));
 						r.push(`The inspector is not amused. ${He2} offers you a few choice words, makes notes on ${his2} tablet, and storms out.`);
 					} else if ((inspectee.assignment === "whore") || (inspectee.assignment === "work in the brothel") || (inspectee.assignment === "serve the public") || (inspectee.assignment === "serve in the club")) {
 						r.push(Spoken(inspectee, `"W-well,"`));
@@ -714,7 +714,7 @@ App.Events.REShelterInspection = class REShelterInspection extends App.Events.Ba
 						break;
 					default:
 						r.push(`${inspectee.slaveName} ${say}s flatly,`);
-						r.push(Spoken(inspectee, `"Whatever my beloved ${properMaster} requires I have a good life now, and I would appreciate it if you would support me by doing everything you can for ${himP}."`));
+						r.push(Spoken(inspectee, `"Whatever my beloved ${properMaster()} requires. I have a good life now, and I would appreciate it if you would support me by doing everything you can for ${himP}."`));
 						r.push(`Taken aback, the inspector ${say2}s ${he2}'ll put out a <span class="reputation inc">good word</span> about you.`);
 						repX(500, "event", inspectee);
 						V.shelterAbuse -= 1;
diff --git a/src/events/RE/reSlaveMarriage.js b/src/events/RE/reSlaveMarriage.js
index ad6f841054b7fa57202ed110d696a29155193b4b..e70f8d5da0175f9a53b094b5b48e2bb0953792c6 100644
--- a/src/events/RE/reSlaveMarriage.js
+++ b/src/events/RE/reSlaveMarriage.js
@@ -77,7 +77,7 @@ App.Events.RESlaveMarriage = class RESlaveMarriage extends App.Events.BaseEvent
 			} else {
 				r.push(`${groomSlave.slaveName} is an experienced sex slave, so ${he}'s wearing light pink`);
 			}
-			r.push(`against ${his}${groomSlave.skin} skin.`);
+			r.push(`against ${his} ${groomSlave.skin} skin.`);
 			if (groomSlave.chastityPenis) {
 				r.push(`${He} has a little bow on ${his} chastity cage.`);
 			} else if (canAchieveErection(groomSlave)) {
diff --git a/src/events/RE/reSnatchAndGrabFollowup.js b/src/events/RE/reSnatchAndGrabFollowup.js
index 96aca4c1b6aee482e5bd7072247898e3f63ff81f..94eb42c3222e3731585085d1d44e465f9f8a5a8c 100644
--- a/src/events/RE/reSnatchAndGrabFollowup.js
+++ b/src/events/RE/reSnatchAndGrabFollowup.js
@@ -154,7 +154,7 @@ App.Events.RESnatchAndGrabFollowup = class RESnatchAndGrabFollowup extends App.E
 					snatched.sexualFlaw = "none";
 				}
 				snatched.sexualQuirk = "perverted";
-				App.Events.addParagraph(frag, [`Over the next few weeks, you also begin to notice some significant changes in behavior. Although _slave.slaveName has always been remarkably horny, ${he} has become much more <span class="flaw break">perverted.</span>`]);
+				App.Events.addParagraph(frag, [`Over the next few weeks, you also begin to notice some significant changes in behavior. Although ${snatched.slaveName} has always been remarkably horny, ${he} has become much more <span class="flaw break">perverted.</span>`]);
 			}
 
 			App.Events.addParagraph(frag, r);
diff --git a/src/events/REFI/reSadist.js b/src/events/REFI/reSadist.js
index b2ef365e4c030ff0da9c00da1672fbb4170dd3e5..71cb132064790aaaaa6c0c0d6472262b63ddbd19 100644
--- a/src/events/REFI/reSadist.js
+++ b/src/events/REFI/reSadist.js
@@ -91,7 +91,7 @@ App.Events.REFISadist = class REFISadist extends App.Events.BaseEvent {
 		}
 		t.push(`It seems ${he} passed by while`);
 		t.push(contextualIntro(eventSlave, subSlave));
-		t.push(`was beating the${girlU} and found the`);
+		t.push(`was beating the ${girlU} and found the`);
 		if (canSee(eventSlave)) {
 			t.push(`sight`);
 		} else {
diff --git a/src/events/REFS/refsWarhound.js b/src/events/REFS/refsWarhound.js
index 4e843ca72aacba30f2a6d45ed4fbf563020e04a4..9f2c443473e949e3fa3fa3254fda7b285b0e7573 100644
--- a/src/events/REFS/refsWarhound.js
+++ b/src/events/REFS/refsWarhound.js
@@ -16,7 +16,7 @@ App.Events.refsWarhound = class refsWarhound extends App.Events.BaseEvent {
 			slave.weight -= 100;
 			slave.waist = random(-10, 50);
 		}
-		applyMindbroken(slave);
+		applyMindbroken(slave, -100);
 		configureLimbs(slave, "all", 6);
 		slave.teeth = "pointy";
 		slave.earT = "inu";
diff --git a/src/events/REM/remMerger.js b/src/events/REM/remMerger.js
index e49ad5c1277769753f7e4ea7bf680a6fed7f24f5..b1347bdb2bb2077dc4e19beaf3096f79997f6237 100644
--- a/src/events/REM/remMerger.js
+++ b/src/events/REM/remMerger.js
@@ -17,7 +17,7 @@ App.Events.REMMerger = class REMMerger extends App.Events.BaseEvent {
 		const numCompanies = random(1, maxCompanies);
 
 		const companies = [];
-		for (let _index = 0; _index < numCompanies; ++_index) {
+		for (let index = 0; index < numCompanies; ++index) {
 			companies.push(slaveCompany.pluck());
 		}
 		const assistant = V.assistant.market ? "your market assistant" : V.assistant.name;
diff --git a/src/events/RESS/assFitting.js b/src/events/RESS/assFitting.js
index 299bb57e90bf5adc4468657ca443ded752f8c506..ed16023ca1b06132d74be689d68e1ab306973e58 100644
--- a/src/events/RESS/assFitting.js
+++ b/src/events/RESS/assFitting.js
@@ -21,7 +21,7 @@ App.Events.RESSAssFitting = class RESSAssFitting extends App.Events.BaseEvent {
 		/** @type {Array<App.Entity.SlaveState>} */
 		let [eventSlave] = this.actors.map(a => getSlave(a));
 		const {
-			He, he, His, his, him, hers
+			He, he, His, his, him, himself, hers
 		} = getPronouns(eventSlave);
 		const {title: Master} = getEnunciation(eventSlave);
 
@@ -227,7 +227,7 @@ App.Events.RESSAssFitting = class RESSAssFitting extends App.Events.BaseEvent {
 		} else if (eventSlave.trust > 20) {
 			t.push(`trustingly. ${He}'s thoroughly accustomed to the idea of your eyes on ${his} big bare butt, so ${he} goes back to ${his} efforts, which bounce ${his} behind deliciously.`);
 		} else {
-			t.push(`fearfully. ${He} doesn't want to make a fool of ${him}self, or damage anything by hurrying, and ${he} blushes dreadfully as ${he} keeps working at it.`);
+			t.push(`fearfully. ${He} doesn't want to make a fool of ${himself}, or damage anything by hurrying, and ${he} blushes dreadfully as ${he} keeps working at it.`);
 		}
 		App.Events.addParagraph(node, t);
 		App.Events.addResponses(node, [
@@ -259,13 +259,13 @@ App.Events.RESSAssFitting = class RESSAssFitting extends App.Events.BaseEvent {
 				t.push(V.PC.title === 1 ? "strong" : "feminine");
 				t.push(`hands without surprise or resentment, and relaxes trustingly as you manipulate ${his} bottom. Realizing that you're helping ${him}, ${he} quickly slides the offending item down ${his}`);
 				t.push(hasBothLegs(eventSlave) ? "thighs" : "thigh");
-				t.push(`and off ${him}self, and then thanks you properly. ${He} smiles at you as ${he} puts on the next size up, clearly pleased that you'd <span class="mediumaquamarine">assist ${him} with a trivial thing</span> outside of ${his} direct duties as a sex slave.`);
+				t.push(`and off ${himself}, and then thanks you properly. ${He} smiles at you as ${he} puts on the next size up, clearly pleased that you'd <span class="mediumaquamarine">assist ${him} with a trivial thing</span> outside of ${his} direct duties as a sex slave.`);
 			} else {
 				t.push(`${He} stiffens at the feeling of your hands on ${his} bottom, not sure whether you're about to ram`);
 				t.push(V.PC.dick !== 0 ? "your dick" : "something");
 				t.push(`up ${his} defenseless asshole. You feel the muscles down there tense a little through the softness of the lower part of ${his} buttocks. That's not what you're planning, though, and eventually ${he} realizes that you mean to help. ${He} thanks you hesitantly before bending to slide the offending clothing down ${his}`);
 				t.push(hasBothLegs(eventSlave) ? "thighs." : "thigh.");
-				t.push(`Nervously, ${he} thanks you again after ${he}'s free, unsure of ${him}self but <span class="mediumaquamarine">impressed that you'd help ${him} with a little thing like that.</span>`);
+				t.push(`Nervously, ${he} thanks you again after ${he}'s free, unsure of ${himself} but <span class="mediumaquamarine">impressed that you'd help ${him} with a little thing like that.</span>`);
 			}
 			eventSlave.trust += 5;
 			return t;
diff --git a/src/events/RESS/comfortableSeat.js b/src/events/RESS/comfortableSeat.js
index 1f1b76e69be852ae064684c5a2f0818613a66867..cf800368ec1da80fbdba66361b1a000924ae69e6 100644
--- a/src/events/RESS/comfortableSeat.js
+++ b/src/events/RESS/comfortableSeat.js
@@ -27,7 +27,7 @@ App.Events.RESSComfortableSeat = class RESSComfortableSeat extends App.Events.Ba
 		const {
 			He, he, His, his, him, himself, girl
 		} = getPronouns(eventSlave);
-		const {s, say, title: Master} = getEnunciation(eventSlave);
+		const {say, title: Master} = getEnunciation(eventSlave);
 		const desc = SlaveTitle(eventSlave);
 		const belly = bellyAdjective(eventSlave);
 		const dickSize = eventSlave.dick > 4 ? "big" : (eventSlave.dick > 2 ? "" : "tiny");
@@ -162,7 +162,16 @@ App.Events.RESSComfortableSeat = class RESSComfortableSeat extends App.Events.Ba
 						t.push(`${He}'s not used to being on top, but ${he} uses ${himself} to service you as submissively as ${he} can. ${He} pays ${his} own pleasure no attention at all,`);
 						break;
 					case "cumslut":
-						t.push(`squats down, coming face to face with ${PC.dick !== 0 ? "your cock" : "the phallus"}. ${canTalk(eventSlave) ? `"${Master}, I changed my mind about ${s}itting," ${he} ${say}s` : `${He} gestures that ${he} changed ${his} mind about sitting`}, and licks ${his} lips sluttily. Then ${he} gives ${PC.dick !== 0 ? "you" : "the phallus"} a lusty blowjob, humming and licking happily. ${He} ${PC.dick !== 0 ? "swallows your load hungrily" : "helps you out of the harness with your permission and eats you out too"},`);
+						t.push(`squats down, coming face to face with ${PC.dick !== 0 ? "your cock" : "the phallus"}.`);
+						if (canTalk(eventSlave)) {
+							t.push(
+								Spoken(eventSlave, `"${Master}, I changed my mind about sitting,"`),
+								`${he} ${say}s,`
+							);
+						} else {
+							t.push(`${He} gestures that ${he} changed ${his} mind about sitting,`);
+						}
+						t.push(`and licks ${his} lips sluttily. Then ${he} gives ${PC.dick !== 0 ? "you" : "the phallus"} a lusty blowjob, humming and licking happily. ${He} ${PC.dick !== 0 ? "swallows your load hungrily" : "helps you out of the harness with your permission and eats you out too"},`);
 						seX(eventSlave, "oral", PC, "penetrative");
 						break;
 					case "humiliation":
@@ -197,7 +206,15 @@ App.Events.RESSComfortableSeat = class RESSComfortableSeat extends App.Events.Ba
 						} else {
 							t.push(`against one of ${his} nipples.`);
 						}
-						t.push(`${canTalk(eventSlave) ? `"${Master}, I changed my mind about ${s}itting," ${he} ${say}s` : `${He} gestures that ${he} changed ${his} mind about sitting`}, and starts giving you a boob job. ${He} enjoys the breast play,`);
+						if (canTalk(eventSlave)) {
+							t.push(
+								Spoken(eventSlave, `"${Master}, I changed my mind about sitting,"`),
+								`${he} ${say}s,`
+							);
+						} else {
+							t.push(`${He} gestures that ${he} changed ${his} mind about sitting,`);
+						}
+						t.push(`and starts giving you a boob job. ${He} enjoys the breast play,`);
 
 						seX(eventSlave, "mammary", PC, "penetrative");
 						break;
@@ -352,7 +369,17 @@ App.Events.RESSComfortableSeat = class RESSComfortableSeat extends App.Events.Ba
 			} else {
 				t.push("cute little rear end.");
 			}
-			t.push(`${He}'s expecting something sexy, and ${he}'s wrong. You give ${his} right asscheek a stinging, open-handed slap. It's so unexpected that ${he} jumps with surprise, takes a step forward, and instantly bursts into tears. Knowing that ${he} has to accept whatever you think ${he} deserves, ${he} takes a step back towards you to come back within range. ${canTalk(eventSlave) ? `${Master}, I'm ${s}-${s}orry," ${he} sobs. "I d-don't under${s}tand. What did I d-do?"` : `${He} shakily gestures a question, begging to know what ${he} did.`} You tell ${him} not to disturb you when you're working, tanning ${his} ass viciously, first one buttock and then the other. ${He} stands there and takes ${his} beating, weeping, more from the <span class="gold">bitter disappointment that ${he}'s not allowed to approach you</span> like that.`);
+			t.push(`${He}'s expecting something sexy, and ${he}'s wrong. You give ${his} right asscheek a stinging, open-handed slap. It's so unexpected that ${he} jumps with surprise, takes a step forward, and instantly bursts into tears. Knowing that ${he} has to accept whatever you think ${he} deserves, ${he} takes a step back towards you to come back within range.`);
+			if (canTalk(eventSlave)) {
+				t.push(
+					`${Master}, I'm s-sorry,"`,
+					`${he} sobs.`,
+					`"I d-don't understand. What did I d-do?"`
+				);
+			} else {
+				t.push(`${He} shakily gestures a question, begging to know what ${he} did.`);
+			}
+			t.push(`You tell ${him} not to disturb you when you're working, tanning ${his} ass viciously, first one buttock and then the other. ${He} stands there and takes ${his} beating, weeping, more from the <span class="gold">bitter disappointment that ${he}'s not allowed to approach you</span> like that.`);
 
 			eventSlave.trust -= 5;
 			return t;
diff --git a/src/events/RESS/coolerLockin.js b/src/events/RESS/coolerLockin.js
index beb3ad3eebf5868a9878a4b547898462e3d49f88..69c954ada68a61aa202bf22f8289774a410ebf67 100644
--- a/src/events/RESS/coolerLockin.js
+++ b/src/events/RESS/coolerLockin.js
@@ -70,10 +70,10 @@ App.Events.RESSCoolerLockin = class RESSCoolerLockin extends App.Events.BaseEven
 		function yourself() {
 			r = [];
 			r.push(`You're not close to the penthouse kitchen area, so it takes you some time to make your way there. By the time you get there, the poor ${girl} is pounding weakly against the refrigerator door to try to get someone's attention. ${capFirstChar(V.assistant.name)} was right, ${he} must be too cold to think straight; if ${he} weren't ${he} might notice the prominent release button right next to where ${he}'s striking the door. ${His} desperate ${eventSlave.skin} face is visible in the window. You hit the exterior release and the door swings open quickly, dumping ${him} into your arms.`);
-			if (s.devotion < -50) {
+			if (eventSlave.devotion < -50) {
 				r.push(`Despite hating you, <span class="devotion inc">${he} clings to you like a long lost love,</span> ${his}`);
 				eventSlave.devotion += 6;
-			} else if (s.devotion <= 20) {
+			} else if (eventSlave.devotion <= 20) {
 				r.push(`Despite not being devoted to you, <span class="devotion inc">${he} clings to you like a long lost love,</span> ${his}`);
 				eventSlave.devotion += 4;
 			} else {
diff --git a/src/events/RESS/devotedVirgin.js b/src/events/RESS/devotedVirgin.js
index 6ec0f48633d40e0f598eadacecc5801923d861ba..b92d97be79d5420e1007f8dc5db95d66d851901e 100644
--- a/src/events/RESS/devotedVirgin.js
+++ b/src/events/RESS/devotedVirgin.js
@@ -23,7 +23,7 @@ App.Events.RESSDevotedVirgin = class RESSDevotedVirgin extends App.Events.BaseEv
 		const {
 			He, he, his, him, himself
 		} = getPronouns(eventSlave);
-		const {s, say, title: Master} = getEnunciation(eventSlave);
+		const {say, title: Master} = getEnunciation(eventSlave);
 
 		/** @type {App.Entity.PlayerState} */
 		let PC = V.PC;
@@ -89,7 +89,10 @@ App.Events.RESSDevotedVirgin = class RESSDevotedVirgin extends App.Events.BaseEv
 			}
 			t.push(`body for a long time. Every so often you move your hands over ${his} pussylips, making ${him} shiver and press ${himself} against you, but you only make it the center of attention once the poor over-aroused slave`);
 			if (canTalk(eventSlave)) {
-				t.push(`begs, "I can't take it any more, ${Master}! Fuck me, plea${s}e. Plea${s}e!"`);
+				t.push(
+					`begs,`,
+					Spoken(eventSlave, `"I can't take it any more, ${Master}! Fuck me, please. Please!"`)
+				);
 			} else {
 				t.push(`begins to reach for your ${PC.dick === 0 ? "strap-on" : "cock"} to pull it towards ${himself}.`);
 			}
diff --git a/src/events/RESS/forbiddenMasturbation.js b/src/events/RESS/forbiddenMasturbation.js
index b3fe4bee54e4fd6605f2200feadfcea9c7bc2a1d..b30891060234c18315f917552283167e054eed88 100644
--- a/src/events/RESS/forbiddenMasturbation.js
+++ b/src/events/RESS/forbiddenMasturbation.js
@@ -67,7 +67,7 @@ App.Events.RESSForbiddenMasturbation = class RESSForbiddenMasturbation extends A
 					r.push(`stares at the scene, blushing, while a hand caresses ${hisA} large belly.`);
 					break;
 				case "angel":
-					r.push(`is covering ${hisA} face, occasionally peeping through _hisA fingers.`);
+					r.push(`is covering ${hisA} face, occasionally peeping through ${hisA} fingers.`);
 					break;
 				case "cherub":
 					r.push(`is trying ${hisA} hardest to look away, but keeps glancing back at the scene.`);
diff --git a/src/events/RESS/frighteningDick.js b/src/events/RESS/frighteningDick.js
index bd3bcfed353d5197995e8f4d9ca3700f288d6858..82ce8ef51b0db669b4b6514f616d1b9d2cd56550 100644
--- a/src/events/RESS/frighteningDick.js
+++ b/src/events/RESS/frighteningDick.js
@@ -27,7 +27,7 @@ App.Events.RESSFrighteningDick = class RESSFrighteningDick extends App.Events.Ba
 		const {
 			He, he, His, his, him, himself
 		} = getPronouns(eventSlave);
-		const {s, say, title: Master} = getEnunciation(eventSlave);
+		const {say, title: Master} = getEnunciation(eventSlave);
 		const desc = SlaveTitle(eventSlave);
 		const belly = bellyAdjective(eventSlave);
 
@@ -58,7 +58,11 @@ App.Events.RESSFrighteningDick = class RESSFrighteningDick extends App.Events.Ba
 		} else {
 			t.push("cute butt");
 		}
-		t.push(`hitting the floor with an audible whack. The light cloth ${he} was using to polish with went flying, and flutters to the ground accusingly. After scrabbling back a short distance, looking up at you hesitantly, and visibly recollecting ${himself}, ${he} swallows twice and then ${say}s, "I'm ${s}orry, ${Master}," in a tone of voice with a great deal of effort applied to keep it even. A frantic, embarrassed search for ${his} cloth ensues. Finding it at last, ${he} returns to ${his} original, low position, and crouch-walks back to the place ${he} was polishing, doing ${his} absolute best to look diligent and industrious and not at all aware that your cock is pointing at ${him} like a gun barrel.`);
+		t.push(
+			`hitting the floor with an audible whack. The light cloth ${he} was using to polish with went flying, and flutters to the ground accusingly. After scrabbling back a short distance, looking up at you hesitantly, and visibly recollecting ${himself}, ${he} swallows twice and then ${say}s,`,
+			Spoken(eventSlave, `"I'm sorry, ${Master},"`),
+			`in a tone of voice with a great deal of effort applied to keep it even. A frantic, embarrassed search for ${his} cloth ensues. Finding it at last, ${he} returns to ${his} original, low position, and crouch-walks back to the place ${he} was polishing, doing ${his} absolute best to look diligent and industrious and not at all aware that your cock is pointing at ${him} like a gun barrel.`
+		);
 		App.Events.addParagraph(node, t);
 		t = [];
 
diff --git a/src/events/RESS/hotPC.js b/src/events/RESS/hotPC.js
index 99fa49a67dac71ff32ff6017cc9919073d844835..73d6c0191ff3b576d365a5b453d277ff38dadc8c 100644
--- a/src/events/RESS/hotPC.js
+++ b/src/events/RESS/hotPC.js
@@ -85,7 +85,7 @@ App.Events.RESSHotPC = class RESSHotPC extends App.Events.BaseEvent {
 			}
 		} else {
 			if (PC.title === 0) {
-				t.push(`abdominal muscles and flat chest with almost painful intensity. You can't really blame ${him}; they're pretty cut, and your sports bra's soaked in your sweat${PC.lactation > 0 ? "and breast milk" : ""} and your nipples are clearly visible as bumps in the tight material.`);
+				t.push(`abdominal muscles and flat chest with almost painful intensity. You can't really blame ${him}; they're pretty cut, and your sports bra's soaked in your sweat${PC.lactation > 0 ? " and breast milk" : ""} and your nipples are clearly visible as bumps in the tight material.`);
 			} else {
 				t.push(`abdominal muscles with almost painful intensity. You can't really blame ${him}; they're pretty cut, and your bare chest is coated in a light sheen of glistening sweat.`);
 			}
diff --git a/src/events/RESS/impregnationPlease.js b/src/events/RESS/impregnationPlease.js
index 91be8ae34be6e883b08dc54595c96101403d43f6..9bf05cfb93c966bcfca353ec62e560e61b43e81d 100644
--- a/src/events/RESS/impregnationPlease.js
+++ b/src/events/RESS/impregnationPlease.js
@@ -41,7 +41,6 @@ App.Events.RESSImpregnationPlease = class RESSImpregnationPlease extends App.Eve
 		let r = [];
 		r.push(`Taken by a mood,`);
 		r.push(contextualIntro(V.PC, eventSlave, "DOM"));
-		r.push(App.UI.DOM.slaveDescriptionDialog(eventSlave)); // TODO: Integrate contextualIntro somewhere
 		if (isPregnantAndSuperfetation) {
 			if (eventSlave.belly >= 750000) {
 				r.push(`barely makes into your office before turning and leaning against ${his} ${belly} belly. Once ${he} manages to get comfortable against the strained mass, ${he} wiggles ${his} exposed`);
@@ -219,9 +218,10 @@ App.Events.RESSImpregnationPlease = class RESSImpregnationPlease extends App.Eve
 			r.push(`${He} faces you with the look of a child begging for candy,`);
 		}
 		r.push(`desperately awaiting your answer.`);
+		App.Events.addParagraph(node, r);
 
 		let responses = [new App.Events.Result(`Put a slave in ${him}`, impregnate)];
-		if 	(eventSlave.mpreg === 0) {
+		if (eventSlave.mpreg === 0) {
 			responses.push(new App.Events.Result(`Use ${his} ass but give ${him} what ${he} wants`, impregnateAss));
 			responses.push(new App.Events.Result(`Sneak it into ${his} ass instead`, sneak));
 		} else {
@@ -230,7 +230,6 @@ App.Events.RESSImpregnationPlease = class RESSImpregnationPlease extends App.Eve
 		if (cumSlaves().length >= 5) {
 			responses.push(new App.Events.Result(`Use the Dairy cockmilk to impregnate ${him}`, dairy));
 		}
-		App.Events.addParagraph(node, r);
 		App.Events.addResponses(node, responses);
 
 		function impregnate() {
diff --git a/src/events/RESS/lazyEvening.js b/src/events/RESS/lazyEvening.js
index 03b04077e176177bf99bf61f0a563234d3e92d17..28447068fcb9117c58cc90153c4ff57ca89fe65b 100644
--- a/src/events/RESS/lazyEvening.js
+++ b/src/events/RESS/lazyEvening.js
@@ -21,7 +21,7 @@ App.Events.RESSLazyEvening = class RESSLazyEvening extends App.Events.BaseEvent
 		const {
 			He, he, His, his, hers, him, himself, girl, woman
 		} = getPronouns(eventSlave);
-		const {s, title} = getEnunciation(eventSlave);
+		const {title} = getEnunciation(eventSlave);
 
 		V.nextLink = "Next Week";
 
@@ -62,9 +62,15 @@ App.Events.RESSLazyEvening = class RESSLazyEvening extends App.Events.BaseEvent
 		if (!canTalk(eventSlave)) {
 			t.push(`asks with a gesture that carries just the right mixture of submission and exaggerated casualness if you'd like to 'hang out.'`);
 		} else if (SlaveStatsChecker.checkForLisp(eventSlave)) {
-			t.push(`lisps with exaggerated casualness, "Let'${s} hang out, ${title}?"`);
+			t.push(
+				`lisps with exaggerated casualness,`,
+				Spoken(eventSlave, `"Let's hang out, ${title}?"`)
+			);
 		} else {
-			t.push(`asks with exaggerated casualness, "Want to hang out, ${title}?"`);
+			t.push(
+				`asks with exaggerated casualness,`,
+				Spoken(eventSlave, `"Want to hang out, ${title}?"`)
+			);
 		}
 		App.Events.addParagraph(node, t);
 
diff --git a/src/events/RESS/moistPussy.js b/src/events/RESS/moistPussy.js
index a2564d00f1381acaea56fa4fc050ae31d100e27b..ecc16fc3a889387d5ccbc6d7578102c015ac8ddd 100644
--- a/src/events/RESS/moistPussy.js
+++ b/src/events/RESS/moistPussy.js
@@ -19,7 +19,7 @@ App.Events.RESSMoistPussy = class RESSMoistPussy extends App.Events.BaseEvent {
 		/** @type {Array<App.Entity.SlaveState>} */
 		let [eventSlave] = this.actors.map(a => getSlave(a));
 		const {
-			He, he, His, his, him, hers
+			He, he, His, his, him, himself, hers
 		} = getPronouns(eventSlave);
 		const belly = bellyAdjective(eventSlave);
 
@@ -124,7 +124,7 @@ App.Events.RESSMoistPussy = class RESSMoistPussy extends App.Events.BaseEvent {
 			} else {
 				t.push(`cup ${his} cute little`);
 			}
-			t.push(`buttocks. ${He} ${eventSlave.voice > 0 ? "coos" : "hums mutely"} at the feeling of your ${V.PC.title === 1 ? "strong" : "feminine"} hands on ${his} bottom, and presses ${him}self against you as you rotate the two of you until you can set ${his} butt on the edge of your desk and ${V.PC.dick !== 0 ? `slide your big dick into ${his} well-lubricated cunt.` : `assertively press your own pussy against ${his} wet cunt.`}`);
+			t.push(`buttocks. ${He} ${eventSlave.voice > 0 ? "coos" : "hums mutely"} at the feeling of your ${V.PC.title === 1 ? "strong" : "feminine"} hands on ${his} bottom, and presses ${himself} against you as you rotate the two of you until you can set ${his} butt on the edge of your desk and ${V.PC.dick !== 0 ? `slide your big dick into ${his} well-lubricated cunt.` : `assertively press your own pussy against ${his} wet cunt.`}`);
 			App.Events.addParagraph(container, t);
 
 			t = [];
@@ -151,7 +151,7 @@ App.Events.RESSMoistPussy = class RESSMoistPussy extends App.Events.BaseEvent {
 			t.push(`${He} clings to you, accepting the closeness to ${his} ${getWrittenTitle(eventSlave)} and enjoying the loving attention, even as the extreme wetness of ${his} cunt and your ${V.PC.dick !== 0 ? "powerful thrusting" : "hungry grinding"} begin to produce lewd noises from between you.`);
 			t.push(`${His} generous natural lubrication lessens the friction and sensation a little, and you go for a long time before you both climax.`);
 			t.push(`You lead ${him} into your office shower, since you're both coated in ${his} pussyjuice${V.PC.dick !== 0 ? ` and ${he}'s carrying a big load of your cum` : ", and your own"}.`);
-			t.push(`Under the hot water, you don't even have to pull ${him} close; <span class="hotpink">${he} presses ${him}self into your arms on ${his} own.</span>`);
+			t.push(`Under the hot water, you don't even have to pull ${him} close; <span class="hotpink">${he} presses ${himself} into your arms on ${his} own.</span>`);
 			if (eventSlave.sexualQuirk === "romantic") {
 				t.push(`For an incorrigible romantic like ${him}, this encounter was perfect, and ${he} <span class="hotpink">loves you all the more for it.</span>`);
 				eventSlave.devotion += 3;
@@ -212,7 +212,7 @@ App.Events.RESSMoistPussy = class RESSMoistPussy extends App.Events.BaseEvent {
 						t.push(`since ${he}'s fully confirmed in ${his} status as a sub, ${he} <span class="hotpink">glows with devotion</span>`);
 						eventSlave.devotion += 3;
 					}
-					t.push(`as ${he} washes ${him}self in the shower with you.`);
+					t.push(`as ${he} washes ${himself} in the shower with you.`);
 				} else {
 					t.push(`${He} seems utterly dissipated by the fucking ${he} just got, and may have just had the best sex of ${his} life. <span class="lightsalmon">${He}'s a submissive!</span>`);
 					eventSlave.fetishKnown = 1;
diff --git a/src/events/RESS/nightVisit.js b/src/events/RESS/nightVisit.js
index 4bd794ee47e194d7357020ab56b154934e28e9fc..9fc1c7a7e36fa1526c5bb09eb7d83fd32e859d09 100644
--- a/src/events/RESS/nightVisit.js
+++ b/src/events/RESS/nightVisit.js
@@ -56,7 +56,7 @@ App.Events.RESSNightVisit = class RESSNightVisit extends App.Events.BaseEvent {
 		} else {
 			if (eventSlave.lips > 70) {
 				r.push(`${he} says meekly through ${his} massive dick-sucking lips,`);
-			} else if ((eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2)) {
+			} else if (eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2) {
 				r.push(`${he} says meekly through ${his} inconvenient oral piercings,`);
 			} else {
 				r.push(`${he} says meekly,`);
diff --git a/src/events/RESS/review/aGift.js b/src/events/RESS/review/aGift.js
index 9bade098fc0fb8239a3d28466efece8979bdb40d..f5249269acd6757b875e34eb1fdc232cb0224210 100644
--- a/src/events/RESS/review/aGift.js
+++ b/src/events/RESS/review/aGift.js
@@ -214,8 +214,7 @@ App.Events.RESSAGift = class RESSAGift extends App.Events.BaseEvent {
 					if (V.PC.vagina !== -1) {
 						r.push(`eat you out`);
 					}
-					r.push(r.pop() + ",");
-					r.push(`${Master}?", ${He}`);
+					r.push(r.pop() + `, ${Master}?" ${He}`);
 					if (eventSlave.belly >= 300000) {
 						r.push(`leans onto ${his} ${belly} middle`);
 					} else if (eventSlave.belly >= 10000) {
diff --git a/src/events/RESS/review/ampDevoted.js b/src/events/RESS/review/ampDevoted.js
index c4ec8a34c1ce446a06b0dbb33a2110e4694e093f..bdec7dde4e98351e3638a43697af62e1ea24bb2f 100644
--- a/src/events/RESS/review/ampDevoted.js
+++ b/src/events/RESS/review/ampDevoted.js
@@ -51,7 +51,7 @@ App.Events.RESSAmpDevoted = class RESSAmpDevoted extends App.Events.BaseEvent {
 		r.push(`that ${he} is. You've been busy and haven't used ${him} for a while, and since ${he}'s accepted ${his} place as a helpless living fucktoy, ${he}'s gotten quite aroused with nothing to do but lie there and watch ${his} ${getWrittenTitle(eventSlave)} work. It's not like ${he} can touch ${himself} any more.`);
 		if (eventSlave.chastityPenis === 1) {
 			r.push(`${His} caged cock reduces ${him} to a set of holes in a limbless torso.`);
-		} else if ((eventSlave.dick > 0) && !canAchieveErection(eventSlave)) {
+		} else if (eventSlave.dick > 0 && !canAchieveErection(eventSlave)) {
 			r.push(`${His} penis hangs limp and useless from ${his} limbless torso.`);
 		} else if (eventSlave.dick >= 5) {
 			r.push(`${His} huge erection pokes out from ${his} limbless torso, ${his} only remaining appendage.`);
diff --git a/src/events/RESS/review/cageRelief.js b/src/events/RESS/review/cageRelief.js
new file mode 100644
index 0000000000000000000000000000000000000000..2a4fcb077c0675dea4b0335e8c8135312dd3fb05
--- /dev/null
+++ b/src/events/RESS/review/cageRelief.js
@@ -0,0 +1,372 @@
+App.Events.RESSCageRelief = class RESSCageRelief extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return []; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				s => s.balls > 0,
+				s => s.scrotum > 0,
+				s => s.chastityPenis === 1,
+				s => s.energy > 50,
+				s => s.energy < 95,
+				s => s.devotion <= 95,
+				s => s.devotion >= -20 || s.trust < -20
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			His, He, he, his, him, himself, hers
+		} = getPronouns(eventSlave);
+		const {title: Master, say} = getEnunciation(eventSlave);
+		const belly = bellyAdjective(eventSlave);
+		const PC = V.PC;
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave);
+
+		let r = [];
+		r.push(
+			`You come face to face with`,
+			contextualIntro(PC, eventSlave, "DOM"),
+			`in a hallway of your penthouse, entirely by happenstance.`
+		);
+		if (canSee(eventSlave)) {
+			r.push(`${His} ${App.Desc.eyesColor(eventSlave)} lock with yours, and ${he} stares at you dumbly for a long moment.`);
+		} else {
+			r.push(`Once ${he} regains ${his} footing after bumping into you, ${he} gazes towards you dumbly for a long moment.`);
+		}
+		r.push(`Then ${he} squares ${his}`);
+		if (eventSlave.shoulders > 0) {
+			r.push(`broad`);
+		} else if (eventSlave.shoulders < 0) {
+			r.push(`pretty`);
+		} else {
+			r.push(`feminine`);
+		}
+		r.push(`shoulders and bites ${his} lower lip, obviously doing ${his} best to think quickly. Right when you're about to reprimand ${him} for not greeting you properly, ${he} surprises you by throwing ${himself} abjectly on the ground in front of you`);
+		if (eventSlave.belly >= 10000) {
+			r.push(r.pop() + `, ${his} rear forced into the air by ${his} ${belly}`);
+			if (eventSlave.bellyPreg >= 3000) {
+				r.push(`pregnant`);
+			} else {
+				r.push(`distended`);
+			}
+			r.push(`belly`);
+		}
+		r.push(r.pop() + `.`);
+		App.Events.addParagraph(node, r);
+
+		r = [];
+		if (!canTalk(eventSlave)) {
+			r.push(`${He} uses gestures to apologize for ${his} rudeness, and then gets to ${his}`);
+			if (hasBothLegs(eventSlave)) {
+				r.push(`knees`);
+			} else {
+				r.push(`knee`);
+			}
+			r.push(`so ${he} can use ${his} hand`);
+			if (hasBothArms(eventSlave)) {
+				r.push(`hands`);
+			} else {
+				r.push(`hand`);
+			}
+			r.push(`to gesture more clearly. ${His}`);
+			if (hasBothArms(eventSlave)) {
+				r.push(`hands are`);
+			} else {
+				r.push(`hand is`);
+			}
+			r.push(`shaky as ${he} begs, making two false starts before unmistakably gesturing to ask you to cut ${his} balls off. Once ${he}`);
+			if (canSee(eventSlave)) {
+				r.push(`sees`);
+			} else {
+				r.push(`figures`);
+			}
+			r.push(`that you understand, ${he} begins to cry openly. ${He} gestures that ${he} can barely get off wearing ${his} chastity cage, that it hurts when ${he} does, and that ${he}'s constantly oppressed by the need for release. ${He} thinks that it would be easier to be soft all the time, so ${he} could climax without discomfort. ${He} begs hard, and promises to be a good little bitch.`);
+		} else {
+			r.push(
+				Spoken(eventSlave, `"Please, ${Master},"`),
+				`the prostrate slave ${say}s shakily, sounding like ${he}'s on the verge of tears.`,
+				Spoken(eventSlave, `"P-please cut my balls off."`)
+			);
+			if (canHear(eventSlave)) {
+				r.push(`Hearing ${himself} ${say} it, ${he}`);
+			} else {
+				r.push(`${He}`);
+			}
+			r.push(
+				`begins to cry openly.`,
+				Spoken(eventSlave, `"I c-can't t-take it anymore. I can b-barely get off wearing this cage on my dick, and when I d-do, it h-hurts,"`),
+				`${he} sobs.`,
+				Spoken(eventSlave, `"I need to g-g-get off s-so bad. Please, please, if I were soft all the time, I wouldn't get hard, so I could come wh-whenever."`),
+				He
+			);
+			if (canSee(eventSlave)) {
+				r.push(`looks up at`);
+			} else {
+				r.push(`angles ${his} head towards you`);
+			}
+			r.push(
+				`you in supplication, tears streaking ${his} face.`,
+				Spoken(eventSlave, `"Please, ${Master}! I'll be s-such a good little bitch, I promise!"`)
+			);
+		}
+
+		App.Events.addParagraph(node, r);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Help ${him} get off`, help),
+			new App.Events.Result(`Cut ${his} balls off`, cut, eventSlave.anus === 0 && canDoAnal(eventSlave) ? `This option will take ${his} anal virginity` : null),
+			canDoAnal(eventSlave)
+				? new App.Events.Result(`Use ${his} cage to torture ${him}`, torture, (eventSlave.anus === 0) ? `This option will take ${his} anal virginity` : null)
+				: new App.Events.Result(),
+			((((eventSlave.fetish === "pregnancy" && PC.belly >= 5000)
+					|| (eventSlave.fetish === "cumslut" && PC.balls >= 14)
+					|| (eventSlave.fetish === "boobs" && PC.boobs >= 1400))
+				&& eventSlave.fetishKnown === 1)
+			|| (((eventSlave.attrXX > 70 && eventSlave.attrXY < 50 && PC.title === 0 && PC.vagina !== -1 && PC.dick === 0)
+					|| (eventSlave.attrXY > 70 && eventSlave.attrXX < 50 && PC.title === 1 && PC.vagina === 0 && PC.dick !== 0))
+				&& eventSlave.attrKnown === 1)
+			)
+				? new App.Events.Result(`Use your body to make ${his} cage feel even tighter`, tighter, (eventSlave.anus === 0) ? `This option will take ${his} anal virginity` : null)
+				: new App.Events.Result()
+		]);
+
+		function help() {
+			const frag = document.createDocumentFragment();
+			r = [];
+			r.push(`You take ${him} by the hand and pull ${him} to ${his} feet, and then kiss ${him}. ${He} knows that this means no, but melts into you anyway, accepting the comforting gesture for what it is. ${He}'s surprised when you do not break the kiss, but continues to make out with you compliantly. You take ${him} by the hands, intertwining your fingers with ${hers} and holding them down at your sides for a while before wrapping ${his} arms around you at your`);
+			if (PC.belly >= 10000) {
+				r.push(`heavily pregnant`);
+			} else if (PC.belly >= 5000) {
+				r.push(`gravid`);
+			} else if (PC.belly >= 1500) {
+				r.push(`swollen`);
+			} else if (V.arcologies[0].FSPhysicalIdealist !== "unset") {
+				r.push(`muscular`);
+			} else if (PC.title === 0) {
+				r.push(`feminine`);
+			} else {
+				r.push(`masculine`);
+			}
+			r.push(`waist. Your hands, thus freed to grope ${him}, tenderly hold ${his} head and neck instead, cupping ${his}`);
+			if (eventSlave.face > 95) {
+				r.push(`gorgeous`);
+			} else if (eventSlave.face >= -10) {
+				r.push(`pretty`);
+			} else {
+				r.push(`homely`);
+			}
+			r.push(`jawline and making ${him} moan at the intimacy.`);
+			App.Events.addParagraph(frag, r);
+
+			r = [];
+			r.push(`${He}'s completely forgotten ${his} troubles, and you see that it stays that way. You consider yourself something of an expert on human stimulation at this point, and you manage ${hers} expertly. (Admittedly, you're also cheating, using discreet scanning of ${his} vital signs to check on ${his} state of arousal.) Whenever ${he}'s in danger of achieving an erection, which would remind ${him} of ${his} chastity cage with a twinge of discomfort, you cool your makeout session off slightly, massaging ${him} capably instead of kissing ${him} deeply. After some time, ${he} shudders, to ${his} own complete surprise and to your unsurprised satisfaction. ${He}'s just done what in a normal sexual encounter would be considered premature ejaculation, since you wrought ${him} to such a subtle state of arousal that ${he} got off without really getting hard. ${He} can muster no coherent response, but <span class="trust inc">hugs you convulsively,</span> sobbing into your`);
+			if (PC.boobs >= 1400) {
+				r.push(`enormous`);
+				if (PC.boobsImplant !== 0) {
+					r.push(`fake`);
+				}
+				r.push(`breasts`);
+			} else if (PC.boobs >= 1200) {
+				r.push(`huge`);
+				if (PC.boobsImplant !== 0) {
+					r.push(`fake`);
+				}
+				r.push(`breasts`);
+			} else if (PC.boobs >= 1000) {
+				r.push(`big`);
+				if (PC.boobsImplant !== 0) {
+					r.push(`firm`);
+				}
+				r.push(`breasts`);
+			} else if (PC.boobs >= 300) {
+				r.push(`boobs`);
+			} else if (V.arcologies[0].FSPhysicalIdealist !== "unset") {
+				r.push(`strong shoulder`);
+			} else if (PC.title === 0) {
+				r.push(`feminine shoulder`);
+			} else {
+				r.push(`masculine shoulder`);
+			}
+			r.push(`with gratitude and release.`);
+			App.Events.addParagraph(frag, r);
+
+			r = [];
+			r.push(`The scans suggest ${his} discomfort will return in less than half an hour.`);
+			eventSlave.trust += 4;
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function cut() {
+			r = [];
+			r.push(`You agree, on the condition that ${he} be a good little bitch like ${he} promised. ${He} thanks you frantically, following you with mixed relief, gratitude, and deep terror as you lead ${him} to the surgery. It's a medically simple procedure, but ${he}'s <span class="health dec">retained for recovery</span> for some time, a common precaution in your penthouse where the surgery affects an area that might be reinjured by sexual use without a short break for the curatives to take effect. When the medical equipment verifies that ${he} can be fucked without pain or danger to ${his} health, you order ${him} to come back up to your office. ${He} is a <span class="devotion inc">very good little bitch,</span>`);
+			if (canDoAnal(eventSlave)) {
+				r.push(`taking`);
+				if (PC.dick !== 0) {
+					r.push(`a hard buttfuck`);
+				} else {
+					r.push(`a hard anal fingerfuck`);
+				}
+				r.push(`with apparent enthusiasm and a strong orgasm, though of course ${his} continued use of a chastity cage conceals almost all the effects.`);
+				r.push(VCheck.Anal(eventSlave, 1));
+			} else {
+				r.push(`enduring all of your teasing without the slightest hint of an erection. Even though ${his} chastity blocks the use of ${his} ass, you still focus most of your attention on ${his} rear for the day the belt comes off.`);
+			}
+			r.push(`When ${he} goes to the bathroom afterward, however, you see ${him}`);
+			if (canSee(eventSlave)) {
+				r.push(`glance at ${himself} in the mirror, just once, and then <span class="trust dec">glance away again,</span>`);
+			} else {
+				r.push(`run ${his} hand under ${his} cock, just once, and then <span class="trust dec">quickly removing ${his} hand,</span>`);
+			}
+			r.push(`a tear leaking down ${his} cheek.`);
+			eventSlave.balls = 0;
+			eventSlave.scrotum = 0;
+			eventSlave.trust -= 4;
+			eventSlave.devotion += 4;
+			surgeryDamage(eventSlave, 5);
+			App.Events.refreshEventArt(eventSlave);
+			return r;
+		}
+
+		function torture() {
+			const frag = document.createDocumentFragment();
+			r = [];
+			r.push(`You make no reply at all, but walk around to stand behind the slave. ${He} knows ${he}'s fucked, and starts to shake with fear. You put a foot on ${his} ass and shove ${him} down`);
+			if (eventSlave.belly >= 5000) {
+				r.push(`so ${his} rear is pointed into the air again,`);
+			} else {
+				r.push(`to lie flat on the floor,`);
+			}
+			r.push(`and then straddle ${him}, shoving`);
+			if (PC.dick !== 0) {
+				r.push(`your`);
+				if (PC.vagina !== -1) {
+					r.push(`futa`);
+				}
+				r.push(`cock up ${his} butt.`);
+			} else {
+				r.push(`one more finger than ${he} can comfortably take up ${his} butt.`);
+			}
+			r.push(`${He} tries to beg some more, but you give ${him} a warning slap, and ${he} shuts up. Despite your roughness, ${he}'s so horny that ${he} starts to get hard. You can't see or feel this directly, of course, but it's easy to tell from ${his} desperate sobbing and involuntary writhing, and the lovely spasming of ${his} anal sphincter. ${His} tears dry up as ${he} builds towards a climax; orgasm might be an uncomfortable experience for ${him}, but it will buy ${him} a few minutes free of discomfort.`);
+			App.Events.addParagraph(frag, r);
+
+			r = [];
+			r.push(`But ${he}'s to be disappointed. You`);
+			if (PC.dick !== 0) {
+				r.push(`worm a hand down between ${his} ass and your stomach, and shove a finger up inside ${him}, alongside your dick`);
+				if (PC.vagina !== -1) {
+					r.push(r.pop() + `, dexterously using the thumb of that hand to stroke your own pussy`);
+				}
+			} else {
+				r.push(`use the hand that isn't fucking ${him} to pull one of ${his} arms around behind ${him} into a painful joint lock`);
+			}
+			r.push(r.pop() + `. The pain ruins ${his} building orgasm, and ${he} cries with frustration and <span class="trust dec">despair</span> as ${he} realizes that ${he} won't be getting off today. You force ${him} to experience this horrible near-release twice more, bringing ${him} to a terribly uncomfortable state of arousal and then using sudden pain to destroy any chance ${he} has of getting relief. All the wriggling and jerking around is good for you, though.`);
+			eventSlave.trust -= 4;
+			r.push(VCheck.Anal(eventSlave, 1));
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function tighter() {
+			const hands = hasBothArms(eventSlave) ? "hands" : "hand";
+			r = [];
+			r.push(`You order ${him} to pay close attention`);
+			if (canSee(eventSlave)) {
+				r.push(`and not look away`);
+			}
+			r.push(r.pop() + `.`);
+			if (eventSlave.fetish === "pregnancy" && PC.belly >= 5000) {
+				if (canSee(eventSlave)) {
+					r.push(`${He} questions what you mean until you begin sensually swaying your`);
+					if (PC.belly >= 100000) {
+						r.push(`massive pregnancy`);
+					} else if (PC.belly >= 60000) {
+						r.push(`giant pregnancy`);
+					} else if (PC.belly >= 15000) {
+						r.push(`advanced pregnancy`);
+					} else if (PC.belly >= 10000) {
+						r.push(`big, pregnant belly`);
+					} else {
+						r.push(`pregnant belly`);
+					}
+					r.push(`and slowly stripping down. ${He} groans at the sight, ${his} dick rapidly hardening at the view of your motherly body. You make sure to play off ${his} pregnancy fetish in every way possible until the aroused slave is in tears from the pressure on ${his} cock.`);
+				} else {
+					r.push(`${He} questions what you mean until you grab ${his} head and push ${his} face against your`);
+					if (PC.belly >= 100000) {
+						r.push(`massive pregnancy.`);
+					} else if (PC.belly >= 60000) {
+						r.push(`giant pregnancy.`);
+					} else if (PC.belly >= 15000) {
+						r.push(`advanced pregnancy.`);
+					} else if (PC.belly >= 10000) {
+						r.push(`big, pregnant belly.`);
+					} else {
+						r.push(`pregnant belly.`);
+					}
+					r.push(`${He} tries to recoil, bringing a hand to your middle. You catch it and run it along your motherly curve to your popped navel. You trace ${his} hand around it as ${he} groans at the sensation, ${his} dick rapidly hardening at the feel of your motherly body. You make sure to play off ${his} pregnancy fetish in every way possible until the aroused slave is in tears from the pressure on ${his} cock.`);
+				}
+			} else if (eventSlave.fetish === "cumslut" && PC.balls >= 14) {
+				if (canSee(eventSlave)) {
+					r.push(`${He} questions what you mean until you begin sensually caressing your massive balls and slowly stripping down. You quickly bring yourself erect and start to jack off. ${He} groans at the sight, licking ${his} lips a the thought of your coming load as ${his} dick rapidly hardens. You tease yourself and hype up just how big and messy your orgasm will be, making ${him} quiver with painful arousal. You moan as you feel the distinct sensation of your coming ejaculation, the sheer amount of sperm moving through you takes some time to release. You hug your nuts, thrusting repeatedly until the wave of cum forces its way out of your throbbing dick. You sigh with relief, just to rub it in ${his} face.`);
+				} else {
+					r.push(`${He} questions what you mean until you strip down and pull ${his} face directly into your massive balls. ${He} tries to recoil, bringing ${his} ${hands} to the immense spheres. You catch them and use one to massage your nuts and encourage a nice big load for ${him} and the other the help jack you off. You can feel ${him} shaking from the pressure on ${his} dick. Not only do you paint ${him} with seed, but you sigh loudly with relief, just to rub it in.`);
+				}
+			} else if (eventSlave.fetish === "boobs" && PC.boobs >= 1400) {
+				if (canSee(eventSlave)) {
+					r.push(`${He} questions what you mean until you pull your arms back, forcing your enormous`);
+					if (PC.boobsImplant !== 0) {
+						r.push(`fake`);
+					}
+					r.push(`breasts to pop free of your top. ${He} groans at the sight, ${his} dick rapidly hardening at the view of your impressive rack. You make sure to play off ${his} tit fetish in every way possible until the aroused slave is in tears from the pressure on ${his} cock.`);
+				} else {
+					r.push(`${He} questions what you mean until you grab ${his} head and push ${his} face against your enormous`);
+					if (PC.boobsImplant !== 0) {
+						r.push(`fake`);
+					}
+					r.push(`breasts. ${He} tries to recoil, bringing ${his} ${hands} to your breasts. You continue burying ${his} face in your rack as ${he} begins to grope you. ${He} groans at the sensation, ${his} dick rapidly hardening at the feel of your lovely tits. You make sure to play off ${his} boob fetish in every way possible until the aroused slave is in tears from the pressure on ${his} cock.`);
+				}
+			} else if (eventSlave.attrXX > 70 && eventSlave.attrXY < 50 && PC.title === 0 && PC.vagina !== -1 && PC.dick === 0) {
+				if (canSee(eventSlave)) {
+					r.push(`${He} questions what you mean until you begin your strip tease. ${He} groans at the sight, ${his} dick rapidly hardening at the view of your tits and pussy. You know just how arousing ${he} finds the female form, and you play off that until the aroused slave is in tears from the pressure on ${his} cock.`);
+				} else {
+					r.push(`${He} questions what you mean until you grab ${his} head and push ${his} face into your pussy. ${He} tries to recoil, bringing ${his} ${hands} to your rear. You continue rubbing yourself against ${his} face as begins to grope you, enjoying your feminine features. ${He} groans as ${his} dick rapidly hardens at the feel of your curves and the`);
+					if (canSmell(eventSlave)) {
+						r.push(`scent of`);
+					} else {
+						r.push(`warmth from`);
+					}
+					r.push(`your arousal. You know just how arousing ${he} finds the female form, and you play off that until the aroused slave is in tears from the pressure on ${his} cock.`);
+				}
+			} else {
+				if (canSee(eventSlave)) {
+					r.push(`${He} questions what you mean until you begin your strip tease. ${He} groans at the sight, ${his} dick rapidly hardening at the view of your erection. You know just how arousing ${he} finds the male form, and you play off that until the aroused slave is in tears from the pressure on ${his} cock.`);
+				} else {
+					r.push(`${He} questions what you mean until you grab ${his} head and push ${his} face against your dick. ${He} tries to recoil, bringing ${his} ${hands} to your balls. You continue rubbing yourself against ${his} face as begins to fondle you, enjoying your masculine features. ${He} groans as ${his} dick rapidly hardens at the feel of your penis against your face and the`);
+					if (canSmell(eventSlave)) {
+						r.push(`scent of`);
+					} else {
+						r.push(`warmth from`);
+					}
+					r.push(`your arousal and precum. You know just how arousing ${he} finds the male form, and you play off that until the aroused slave is in tears from the pressure on ${his} cock.`);
+				}
+			}
+			r.push(`You leave ${him} in a <span class="trust dec">worse state than ${he} started in,</span> as ${he}'s hornier than ever and still lacks any satisfying release. But that's ${his} problem, not yours.`);
+			if (PC.belly >= 10000) {
+				r.push(`Even when so heavily pregnant, it feels good to know you can still bring a dick to full attention.`);
+			}
+			eventSlave.trust -= 4;
+			return r;
+		}
+	}
+};
diff --git a/src/events/RESS/review/desperatelyHorny.js b/src/events/RESS/review/desperatelyHorny.js
index e2a745f229e01c975a3b9599651ba4564b5629bb..b30fa66a59b325b84019ed90725ba71de4cc3652 100644
--- a/src/events/RESS/review/desperatelyHorny.js
+++ b/src/events/RESS/review/desperatelyHorny.js
@@ -825,9 +825,9 @@ App.Events.RESSDesperatelyHorny = class RESSDesperatelyHorny extends App.Events.
 				}
 				r.push(`into ${his} spasming vagina. You are not gentle, and despite the stimulation ${he} does not orgasm by the time you`);
 				if (PC.dick === 0) {
-					r.push(`climax to the vibrations of the strap-on, and the pleasure of buttfucking a bitch.`);
+					r.push(`climax to the vibrations of the strap-on, and the pleasure of fucking a bitch.`);
 				} else {
-					r.push(`blow your load in ${his} ass.`);
+					r.push(`blow your load in ${his} cunt.`);
 				}
 				r.push(`${He}'s so eager to get off ${he} doesn't bother to move, and just`);
 				if (eventSlave.belly >= 1500) {
diff --git a/src/events/RESS/review/devotedOld.js b/src/events/RESS/review/devotedOld.js
index 61c8ec02fd5dd1481afba1d81374ea0acc7ed8b6..0ba3de2c1addb8d49b0ef903c9b7006101d0c819 100644
--- a/src/events/RESS/review/devotedOld.js
+++ b/src/events/RESS/review/devotedOld.js
@@ -41,7 +41,7 @@ App.Events.RESSDevotedOld = class RESSDevotedOld extends App.Events.BaseEvent {
 		r.push(Spoken(eventSlave, `"${Master}, I'm so sorry you noticed,"`));
 		if (eventSlave.lips > 70) {
 			r.push(`${he} lisps through ${his} dick-sucking lips.`);
-		} else if ((eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2)) {
+		} else if (eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2) {
 			r.push(`${he} lisps through ${his} ridiculous piercings.`);
 		} else {
 			r.push(`${he} ${say}s penitently.`);
diff --git a/src/events/RESS/review/fearfulHumiliation.js b/src/events/RESS/review/fearfulHumiliation.js
new file mode 100644
index 0000000000000000000000000000000000000000..b7b4aacce18838836308e22dbe2ffaf9ada3253f
--- /dev/null
+++ b/src/events/RESS/review/fearfulHumiliation.js
@@ -0,0 +1,129 @@
+App.Events.RESSFearfulHumiliation = class RESSFearfulHumiliation extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return []; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				canTalk,
+				s => s.fetish === "humiliation" || s.energy > 95,
+				s => s.devotion <= 50,
+				s => s.devotion >= -20,
+				s => canDoAnal(s) || canDoVaginal(s),
+				s => s.anus !== 0,
+				s => s.vagina !== 0,
+				s => s.fetishKnown === 1,
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			He, he, his, him
+		} = getPronouns(eventSlave);
+		const {title: Master} = getEnunciation(eventSlave);
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave);
+
+		App.Events.addParagraph(node, [
+			`Even if ${he} isn't yet a truly devoted sex slave,`,
+			contextualIntro(V.PC, eventSlave, "DOM"),
+			`generally obeys orders. ${He} blushes furiously when given any sexual command, but ${his} true feelings about humiliation become clear when ${he} is ordered to serve in front of others, even other slaves. It sometimes seems the number of people watching ${him} get fondled, used, or fucked directly reduces the distance between ${him} and ${his} next blushing or even sobbing orgasm.`
+		]);
+
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Publicly prove the depths of ${his} humiliation to ${him}`, prove),
+			new App.Events.Result(`Use a bait and switch tactic on ${him}, before public use`, tactic),
+		]);
+
+		function prove() {
+			let r = [];
+			r.push(`You drag a fearful, embarrassed,`);
+			if (eventSlave.belly >= 1500) {
+				if (eventSlave.bellyPreg >= 0) {
+					r.push(`pregnant`);
+				} else {
+					r.push(`swollen`);
+				}
+			}
+			r.push(`and totally naked ${eventSlave.slaveName} out into a public hall. A small knot of passersby gather around grinning, enjoying the sight of ${his} nakedness and anticipating a show. To ${his} surprise, you order ${him} to take a few minutes to recount ${his} life story. ${He}'s hesitant at first, but obeys, only realizing as ${he} nears the present day what an abject story of degradation and humiliation ${his} life truly is. ${He} continues shakily, describing in brief ${his} current life, crying a little and trembling with arousal. At a whispered command from you, ${he} concludes`);
+			if (!canTalk(eventSlave)) {
+				r.push(`in embarrassed gestures, "and now my ${getWrittenTitle(eventSlave)} is going to fuck my worthless body in public."`); // not spoken!
+			} else {
+				r.push(Spoken(eventSlave, `"and now my ${Master} is going to fuck my worthless body in public."`));
+			}
+			r.push(`You take ${him} standing there, as ${he} cries with mixed shame and sexual pleasure.`);
+			if (!canDoVaginal(eventSlave)) {
+				r.push(`${He}`);
+				if (eventSlave.dick > 0) {
+					r.push(`cums even though ${he}'s soft`);
+				} else {
+					r.push(`climaxes even though ${he}'s filled`);
+				}
+				r.push(`with the shame,`);
+				if (V.PC.dick === 0) {
+					r.push(`${his} anus clenching around the strap-on you're pumping in and out of it.`);
+				} else {
+					r.push(`adding a sad little dribble to the load dripping out of ${his} asshole.`);
+				}
+			} else {
+				if (V.PC.dick === 0) {
+					r.push(`You make ${him} clean ${his} pussyjuice off your strap-on with ${his} bitch mouth before you take it off.`);
+				} else {
+					r.push(`As you pull out of ${his} clenching pussy, cum runs down ${his} quavering thighs.`);
+				}
+			}
+			r.push(`<span class="devotion inc">${He} has become more submissive to you,</span> and <span class="reputation inc">your reputation has increased.</span>`);
+			eventSlave.devotion += 4;
+			repX(500, "event", eventSlave);
+			if (canDoVaginal(eventSlave)) {
+				r.push(VCheck.Vaginal(eventSlave, 1));
+			} else {
+				r.push(VCheck.Anal(eventSlave, 1));
+			}
+			return r;
+		}
+
+		function tactic() {
+			let r = []; // TODO: redo art with "nicest clothing"
+			r.push(`You instruct ${him} to get cleaned up and get dressed in ${his} nicest clothing. ${He} obeys, mystified, and is further puzzled to find that you're taking ${him} out for a nice evening at a small bar. You share a tasty meal and listen to good music played on the little stage by an older slave. As the set concludes, you lean over and give ${eventSlave.slaveName} ${his} real orders for the evening. ${He} freezes in terror but eventually makes ${his} way up to the stage, strips in front of all the patrons, and says`);
+			if (!canTalk(eventSlave)) {
+				r.push(
+					`in embarrassed gestures,`,
+					Spoken(eventSlave, `"Please use me, I'm cheap."`)
+				);
+			} else {
+				r.push(Spoken(eventSlave, `"One credit per fuck, if you'll do my worthless body on stage."`));
+			}
+			r.push(`By the end of the night, ${he}'s been fucked by almost everyone in the bar, and ${his} itch for humiliation has been well and truly scratched. As you collect ${his} earnings from the thoroughly pleased bartender, ${he} lies quiescent in a puddle of cum and exhaustion. <span class="yellowgreen">You've collected a decent fee,</span> and <span class="green">your reputation has increased.</span>`);
+			repX(500, "event", eventSlave);
+			cashX(100, "event", eventSlave);
+			if (canDoVaginal(eventSlave) && canDoAnal(eventSlave)) {
+				seX(eventSlave, "vaginal", "public", "penetrative", 10);
+				seX(eventSlave, "anal", "public", "penetrative", 10);
+				if (eventSlave.eggType === "human" && canGetPregnant(eventSlave)) {
+					r.push(knockMeUp(eventSlave, 25, 2, -2));
+				}
+			} else if (canDoVaginal(eventSlave)) {
+				seX(eventSlave, "vaginal", "public", "penetrative", 20);
+				if (eventSlave.eggType === "human" && canGetPregnant(eventSlave)) {
+					r.push(knockMeUp(eventSlave, 50, 0, -2));
+				}
+			} else {
+				seX(eventSlave, "anal", "public", "penetrative", 20);
+				if (eventSlave.eggType === "human" && canGetPregnant(eventSlave)) {
+					r.push(knockMeUp(eventSlave, 50, 1, -2));
+				}
+			}
+			return r;
+		}
+	}
+};
diff --git a/src/events/RESS/review/firstPeriod.js b/src/events/RESS/review/firstPeriod.js
new file mode 100644
index 0000000000000000000000000000000000000000..8948e66902cfec0f89fc76dd94301687194d016b
--- /dev/null
+++ b/src/events/RESS/review/firstPeriod.js
@@ -0,0 +1,183 @@
+App.Events.RESSFirstPeriod = class RESSFirstPeriod extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return [
+			() => V.seeAge === 1,
+		];
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				(s) => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				(s) => s.actualAge < 18,
+				(s) => s.devotion > 20,
+				(s) => s.ovaries === 1,
+				(s) => s.pubertyXX === 0,
+				(s) => s.preg === 0,
+				(s) => s.physicalAge + s.birthWeek / 52 >= s.pubertyAgeXX - 0.5,
+			]
+		];
+	}
+
+	get weight() {
+		return 10;
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [slave] = this.actors.map(a => getSlave(a));
+		const {His, He, he, his, him, himself, girl} = getPronouns(slave);
+		let r = [];
+		const {title: Master} = getEnunciation(slave);
+		const {say} = getEnunciation(slave);
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, slave);
+
+		r.push(
+			App.UI.DOM.slaveDescriptionDialog(slave),
+			`appears in the door of your office, uncertain if ${he} should disturb you. ${He} stumbles through the doorway, hands on ${his}`
+		);
+		if (slave.weight >= 95) {
+			r.push(`fat belly,`);
+		} else if (slave.belly >= 2000) {
+			r.push(`bloated belly,`);
+		} else if (slave.weight >= 30) {
+			r.push(`chubby belly,`);
+		} else {
+			r.push(`flat belly,`);
+		}
+		r.push(`before stepping forward to stand in front of your desk. ${His} chest is rising and falling with panicked hyperventilation. The poor ${girl} is terrified for some reason.`);
+		App.Events.addParagraph(node, r);
+		r = [];
+		r.push(`You press ${him} on why ${he} is acting this way.`);
+		if (canTalk(slave)) {
+			r.push(
+				Spoken(slave, `"My belly, ${Master},"`),
+				`${he} ${say}s apologetically.`,
+				Spoken(slave, `"It hurts and I don't know why. It just started recently."`)
+			);
+		} else {
+			r.push(`${He} uses gestures to point to ${his} stomach, and explains that ${he} is feeling an unusual pain.`);
+		}
+		r.push(`You check ${his} records and discover ${he} has very likely just become a woman.`);
+		slave.pubertyXX = 1;
+		App.Events.addParagraph(node, r);
+
+		const choices = [];
+		choices.push(new App.Events.Result(`Explain ${he}'s just becoming a woman`, justWoman));
+		if (V.PC.dick !== 0 && slave.eggType === "human") {
+			choices.push(new App.Events.Result(`Demonstrate what this means`, demonstrate, (slave.vagina === 0) ? `This option will take ${his} virginity` : null));
+		}
+		choices.push(new App.Events.Result(`Tell ${him} ${he}'ll just be taking it up the ass more`, ass, (slave.anus === 0) ? `This option will take ${his} anal virginity` : null));
+
+		App.Events.addResponses(node, choices);
+
+
+		function justWoman() {
+			const frag = new DocumentFragment();
+			let r = [];
+			r.push(`You tell ${him} that ${he} is just undergoing ${his} first period, and that the pain ${he} is feeling is perfectly natural.`);
+			if (canTalk(slave)) {
+				r.push(
+					Spoken(slave, `"I-I'm a woman now? ${Master}, that m-means, I can get pregnant now."`),
+					`${He} trails off.`
+				);
+			} else {
+				r.push(`${He} brings ${his} hands back to ${his} stomach, an elated look on ${his} face. ${He} makes a gesture resembling a rounded belly.`);
+			}
+			r.push(`Whether or not ${he} gets pregnant is for you to decide, but for now you tell ${him} what ${he} should expect to change, both in and to ${his} body. ${slave.slaveName} <span class="trust inc">appreciates</span> you taking the time to explain ${his} developing body.`);
+			slave.trust += 5;
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function demonstrate() {
+			const frag = new DocumentFragment();
+			let r = [];
+			r.push(`You tell ${him} that ${he} is just becoming a woman, and to celebrate, you are going to put a child in ${him}.`);
+			if (!canTalk(slave)) {
+				r.push(`${He} gasps and rubs a hand across ${his} stomach.`);
+			} else {
+				r.push(Spoken(slave, `"But I'm still a child myself, ${Master}, I can't get pregnant yet!"`));
+			}
+			r.push(`You tell ${him} that prior to this week, that would have been true. However, now that ${he} has become fertile, it's time that ${he} learned what ${his} body was made for. You guide ${him} to the couch and tell ${him} to lie on ${his} back so that you may take ${him}. ${He} breaks down when ${he} feels your cock enter ${his}`);
+			if (slave.vagina === 0) {
+				r.push(`delightfully tight, virgin`);
+			} else if (slave.vagina === 1) {
+				r.push(`deliciously tight`);
+			} else if (slave.vagina === 2) {
+				r.push(`well experienced`);
+			} else {
+				r.push(`fucked-out`);
+			}
+			r.push(`cunt. ${His} new urges cause ${him} to reach up to hug ${himself} close to you,`);
+			if (slave.boobs < 600) {
+				r.push(`${his} modest breasts let ${him} snuggle close to you, face-to-face, as you take ${him}.`);
+			} else if (slave.boobs < 10000) {
+				r.push(`${his} big tits form a soft cushion between you as you take ${him}.`);
+			} else {
+				r.push(`${his} massive tits stop ${him} from bringing ${himself} too close to you as you take ${him}.`);
+			}
+			r.push(`${He} enjoys ${himself} immensely, but ${he} loses it again when ${he} feels your seed in ${him}, realizing that ${he} will find ${himself} swelling with your child over the coming months. ${He} has become <span class="devotion inc">more submissive</span> to your will now that ${his} very first egg has been fertilized by ${his} ${getWrittenTitle(slave)}.`);
+			slave.devotion += 5;
+			slave.preg = 1;
+			slave.pregWeek = 1;
+			slave.pregKnown = 1;
+			slave.pregSource = -1;
+			slave.pregType = setPregType(slave);
+			WombImpregnate(slave, slave.pregType, -1, 1);
+			r.push(VCheck.Vaginal(slave, 1));
+
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function ass() {
+			const frag = new DocumentFragment();
+			let r = [];
+			r.push(`In one swift motion, you pull out a chastity belt and lock it onto ${him}. ${He} gasps as ${he} feels it hug close to ${his} pussy. You explain that ${he} has just become a woman, and thus, will be taking it up the ass until you decide it's time for ${him} to become pregnant.`);
+			if (!canTalk(slave)) {
+				r.push(`${He} rubs a hand across ${his} stomach.`);
+			} else {
+				r.push(Spoken(slave, `"You don't want me to get pregnant, ${Master}?"`));
+			}
+			r.push(`You bring ${him} over to the couch, set ${him} on your lap, and teasingly call ${him} a buttslut. Every so often you graze a finger around ${his} chastity belt, noting how much ${his} body wants you in ${him}, but you only make it the center of attention once the poor over-aroused slave`);
+			if (!canTalk(slave)) {
+				r.push(`begins to use piteous gestures to beg you abjectly to penetrate ${him}.`);
+			} else {
+				r.push(
+					`${say}s,`,
+					Spoken(slave, `"I can't take it any more, ${Master}! Please fuck me pregnant!"`)
+				);
+			}
+			r.push(`You snicker, but remind ${him} that no matter how much ${he} wants to be knocked up, ${his} belt will direct all the dicks ${he} takes into ${his} rear. You line up and insert your`);
+			if (V.PC.dick === 0) {
+				r.push(`strap-on`);
+			} else {
+				r.push(`cock`);
+			}
+			r.push(`with ${his} ass and begin fucking ${him}, all the while reminding ${him} that ${he} will not be getting pregnant. When ${he} finally orgasms,`);
+			if (V.PC.dick === 0) {
+				r.push(`${his} unabashed enjoyment`);
+			} else {
+				r.push(`the strength of ${his} spasming sphincter`);
+			}
+			r.push(`sends you over as well. ${He}'s left in a confused haze; ${his} body tells ${him} to get pregnant, but you tell ${him} to take it anally. ${He} <span class="devotion inc">sides with your decision</span> and vows to be an anal whore for you.`);
+			if (slave.fetish === "none") { // TODO: text and the original "coral" color suggests fetish loss here, perhaps pregnancy.
+				r.push(`<span class="fetish loss">Overcoming ${his} urges to become a mother via anal causes ${him} to become a buttslut.</span>`);
+				slave.fetish = "buttslut";
+				slave.fetishStrength = 10;
+			}
+			slave.devotion += 5;
+			slave.chastityVagina = 1;
+			r.push(VCheck.Anal(slave, 1));
+
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+	}
+};
diff --git a/src/events/RESS/review/heavyPiercing.js b/src/events/RESS/review/heavyPiercing.js
new file mode 100644
index 0000000000000000000000000000000000000000..551bcfec8481c880e5ab2d25f58742dd7dacf44f
--- /dev/null
+++ b/src/events/RESS/review/heavyPiercing.js
@@ -0,0 +1,137 @@
+App.Events.RESSHeavyPiercing = class RESSHeavyPiercing extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return []; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				s => s.vaginaPiercing > 1,
+				s => s.nipplesPiercing > 1,
+				s => s.clitPiercing > 1,
+				s => s.devotion > 20 || s.trust < -20,
+				s => s.devotion <= 50,
+				s => canDoAnal(s) || canDoVaginal(s)
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			He, he, his, him
+		} = getPronouns(eventSlave);
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave, "no clothing");
+
+		let r = [];
+		r.push(
+			`The intimate areas of`,
+			contextualIntro(V.PC, eventSlave, "DOM"),
+			`are heavily pierced. This is great; it draws attention to ${his} holes and makes ${him} look like the sex slave ${he} is. However, it does necessitate some extra maintenance. It's the end of the day, and ${eventSlave.slaveName} is in a bathroom`
+		);
+		if (canSee(eventSlave)) {
+			r.push(`carefully checking each of ${his} piercings.`);
+		} else {
+			r.push(`meticulously cleaning each of ${his} piercings.`);
+		}
+		r.push(`Many of them come in contact with fluids on a regular basis, so ${he} cleans them conscientiously.`);
+		App.Events.addParagraph(node, r);
+		App.Events.addParagraph(node, [`As you watch ${him}, it occurs to you that since ${eventSlave.slaveName} isn't fully devoted to you yet, there's all manner of inventive ways you could have a little fun and increase ${his} submission to you at the same time.`]);
+
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Weight ${his} piercings and fuck ${him} so they swing`, weigh, ((eventSlave.anus === 0 && canDoAnal(eventSlave)) || (eventSlave.vagina === 0 && canDoVaginal(eventSlave))) ? `This option will take ${his} virginity` : null),
+			new App.Events.Result(`Secure ${him} by ${his} piercings for public use`, secure, ((eventSlave.anus === 0 && canDoAnal(eventSlave)) || (eventSlave.vagina === 0 && canDoVaginal(eventSlave))) ? `This option will take ${his} virginity` : null),
+		]);
+
+		function weigh() {
+			r = [];
+			r.push(`You order ${him} to make sure all of ${his} piercings have rings in them, and then come join you when ${he}'s done. ${He} enters your office with a mixture of fear and curiosity on ${his} face. You put ${him} down on`);
+			if (hasAllLimbs(eventSlave)) {
+				r.push(`all fours`);
+			} else {
+				r.push(`the ground`);
+			}
+			if (hasBothLegs(eventSlave)) {
+				r.push(`with ${his} legs spread,`);
+			}
+			if (eventSlave.belly >= 50000) {
+				r.push(`, belly brushing the floor,`);
+			}
+			if (canSee(eventSlave)) {
+				r.push(`blindfold ${him},`);
+			}
+			r.push(`and then start clipping little metal weights on short chains to each of ${his} piercings. Before long, ${his} nipples are painfully stretched under the tugging,`);
+			if (eventSlave.dick > 0) {
+				r.push(`and the weights up and down ${his} cock are causing ${his} considerable discomfort.`);
+			} else if (eventSlave.vagina === -1) {
+				r.push(`and though ${he} lacks any external genitalia to weight, you make sure ${his} ass feels the burn.`);
+			} else {
+				r.push(`${his} pussylips are being pulled downward, and even ${his} clit is agonizingly tortured.`);
+			}
+			r.push(`You fuck ${him} thoroughly, pounding ${him} so the weights swing. ${He} sobs and begs. <span class="devotion inc">${He} has become more submissive to you.</span>`);
+			eventSlave.devotion += 4;
+			if (canDoVaginal(eventSlave)) {
+				r.push(VCheck.Vaginal(eventSlave, 1));
+			} else {
+				r.push(VCheck.Anal(eventSlave, 1));
+			}
+			return r;
+		}
+
+		function secure() {
+			r = [];
+			r.push(`You order ${him} to make sure all of ${his} piercings have rings in them, and then come to you when ${he}'s done. ${He} enters your office with a mixture of fear and curiosity on ${his} face. You lead ${him} outside and secure ${him} in a side hall so that ${his} ass is presented to anyone who takes interest. ${He}'s forced to maintain this exact posture by a light chain between`);
+			if (eventSlave.belly > 10000) {
+				r.push(`${his} popped navel and a ring on the ground.`);
+			} else if (eventSlave.dick > 0) {
+				r.push(`${his} dickhead and a ring on the ground.`);
+			} else if (eventSlave.vagina === -1) {
+				r.push(`${his} nipples and a ring on the ground.`);
+			} else {
+				r.push(`${his} pussy and a ring on the ground.`);
+			}
+			r.push(`You fuck ${his} ass to check the bondage; it's good. The chain is out of the way, and ${he} jerks and struggles amusingly to keep it from tugging ${him} painfully. You pull out to leave ${his} fucked butt with cum dribbling out of it, and leave ${him} to the tender mercies of the growing crowd. <span class="reputation inc">The sadists among the public are duly grateful.</span>`);
+			if (canDoAnal(eventSlave) && canDoVaginal(eventSlave)) {
+				if (eventSlave.vagina === 0 && eventSlave.anus === 0) {
+					r.push(`They take pleasure in claiming <span class="virginity loss">both ${his} virginity and anal cherry.</span>`);
+				} else if (eventSlave.vagina === 0) {
+					r.push(`They take pleasure in claiming <span class="virginity loss">${his} virginity.</span>`);
+				} else if (eventSlave.anus === 0) {
+					r.push(`They take pleasure in claiming <span class="virginity loss">${his} anal cherry.</span>`);
+				}
+				eventSlave.vagina++;
+				eventSlave.anus++;
+				seX(eventSlave, "anal", "public", "penetrative", 5);
+				seX(eventSlave, "vaginal", "public", "penetrative", 5);
+				if (eventSlave.eggType === "human" && canGetPregnant(eventSlave)) {
+					r.push(knockMeUp(eventSlave, 10, 2, -2));
+				}
+			} else if (canDoAnal(eventSlave)) {
+				if (eventSlave.anus === 0) {
+					r.push(`They take pleasure in claiming <span class="virginity loss">${his} anal cherry.</span>`);
+				}
+				eventSlave.anus++;
+				seX(eventSlave, "anal", "public", "penetrative", 10);
+				if (eventSlave.eggType === "human" && canGetPregnant(eventSlave)) {
+					r.push(knockMeUp(eventSlave, 25, 1, -2));
+				}
+			} else {
+				if (eventSlave.vagina === 0) {
+					r.push(`They take pleasure in claiming <span class="virginity loss">${his} virginity.</span>`);
+				}
+				eventSlave.vagina++;
+				seX(eventSlave, "vaginal", "public", "penetrative", 5);
+				if (eventSlave.eggType === "human" && canGetPregnant(eventSlave)) {
+					r.push(knockMeUp(eventSlave, 25, 0, -2));
+				}
+			}
+			repX(2500, "event", eventSlave);
+			return r;
+		}
+	}
+};
diff --git a/src/events/RESS/review/hugeTits.js b/src/events/RESS/review/hugeTits.js
new file mode 100644
index 0000000000000000000000000000000000000000..79bd764a79f71ef0b9c6dd11d4f70d3fa6ff575c
--- /dev/null
+++ b/src/events/RESS/review/hugeTits.js
@@ -0,0 +1,160 @@
+App.Events.RESSHugeTits = class RESSHugeTits extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return [
+			() => V.boobAccessibility !== 1,
+			() => V.ballsAccessibility !== 1,
+			() => V.pregAccessibility !== 1,
+			() => V.slaves.length > 2,
+		]; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				canTalk,
+				s => s.boobs > 10000,
+				s => s.devotion >= -20,
+				s => (canDoAnal(s) || canDoVaginal(s))
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			His, He, he, his, him
+		} = getPronouns(eventSlave);
+		const {title: Master} = getEnunciation(eventSlave);
+		const belly = bellyAdjective(eventSlave);
+
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave, "no clothing");
+
+		let r = [];
+		r.push(
+			`There is a horrible crash from the shower. You rush in to see`,
+			contextualIntro(V.PC, eventSlave, "DOM"),
+			`face-down and covered in soap. ${He}'s uninjured, but ${his} tits are so huge that, soapy as ${he} is, ${he} can't seem to stand again. ${His} udders have ${him} pinned to the ground with ${his} legs sticking out of the shower. ${He} pleads`
+		);
+		if (eventSlave.lips > 70) {
+			r.push(`through ${his} huge lips,`);
+		} else if ((eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2)) {
+			r.push(`through ${his} piercings,`);
+		} else {
+			r.push(`piteously,`);
+		}
+		r.push(Spoken(eventSlave, `"Help me, ${Master}!"`));
+
+		App.Events.addParagraph(node, r);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Join ${him} in the shower`, join, virginityWarning()),
+			new App.Events.Result(`Fuck ${his} immobilized body`, immobilized, ((eventSlave.anus === 0) || (eventSlave.vagina === 0)) ? `This option will take ${his} virginity` : null),
+			new App.Events.Result(`Let ${him} figure it out`, figure),
+		]);
+
+		function virginityWarning() {
+			if ((eventSlave.vagina === 0) && canDoVaginal(eventSlave)) {
+				return `This option will take ${his} virginity`;
+			} else if ((eventSlave.vagina === -1) && (eventSlave.anus === 0) && canDoAnal(eventSlave)) {
+				return `This option will take ${his} anal virginity`;
+			}
+		}
+
+		function join() {
+			r = [];
+			r.push(`You step into the running water and help ${him} to ${his} feet with exaggerated gallantry. ${He} seems surprised`);
+			if (canSee(eventSlave)) {
+				r.push(`and stares at`);
+			} else {
+				r.push(`faces`);
+			}
+			r.push(`you through the steam for a moment before looking away with a blush. Before long you have ${his} back against the shower wall, ${his} titanic udders`);
+			if (eventSlave.belly >= 5000) {
+				r.push(`and ${belly}`);
+				if (eventSlave.bellyPreg >= 3000) {
+					r.push(`pregnant`);
+				}
+				r.push(`belly`);
+			}
+			r.push(`offering an amusing challenge as they slide soapily between you as you fuck. ${He} comes in no time at all, and a brief massage of ${his} huge soapy nipples produces a whimpering aftershock orgasm.`);
+			if (canSee(eventSlave)) {
+				r.push(`${His} ${App.Desc.eyesColor(eventSlave)} stare straight into yours`);
+			} else {
+				r.push(`You stare into ${his} ${App.Desc.eyesColor(eventSlave)}`);
+			}
+			r.push(`as ${he} writhes with overstimulation, <span class="devotion inc">${his} trust in your stewardship of ${his} pleasure total.</span>`);
+			if (canDoVaginal(eventSlave)) {
+				r.push(VCheck.Vaginal(eventSlave, 1));
+			} else if (canDoAnal(eventSlave)) {
+				r.push(VCheck.Anal(eventSlave, 1));
+			}
+			eventSlave.devotion += 4;
+			return r;
+		}
+
+		function immobilized() {
+			let didAnal = false;
+			let didVaginal = false;
+			r = [];
+			r.push(`You make no answer, groping ${his} soapy`);
+			if (V.seeRace === 1) {
+				r.push(eventSlave.race);
+			}
+			r.push(`buttocks.`);
+			if ((eventSlave.anus > 2) && canDoAnal(eventSlave)) {
+				r.push(`${His} rectum is so fucked out and loose that your groping hand almost slides up it.`);
+			} else if ((eventSlave.vagina > 2) && canDoVaginal(eventSlave)) {
+				r.push(`${His} pussy is so fucked out and loose that your groping hand almost slides up it.`);
+			} else {
+				r.push(`You fingerfuck ${him} for a while, the sting of the soap on ${his} sensitive insides making ${him} gasp.`);
+			}
+			r.push(`It's not like you can't tie ${him} up and fuck ${him} whenever you like, but sliding back and forth on ${his} soapy body is kind of nice.`);
+			if (V.PC.dick === 0) {
+				r.push(`You ride yourself against ${him} until you orgasm`);
+			} else {
+				r.push(`You leave a load of cum in`);
+				if (canDoAnal(eventSlave) && canDoVaginal(eventSlave)) {
+					r.push(`each of ${his} holes`);
+					didVaginal = true;
+					didAnal = true;
+				} else if (canDoAnal(eventSlave)) {
+					r.push(`${his} loosened butthole`);
+					didAnal = true;
+				} else {
+					r.push(`${his} loosened vagina`);
+					didVaginal = true;
+				}
+				if (V.PC.vagina !== -1) {
+					r.push(`and make ${him} eat your pussy for a quick aftershock,`);
+				}
+			}
+			r.push(`and only then do you help ${him} back to ${his} feet. ${He} drips soap, water, and`);
+			if (V.PC.dick === 0) {
+				r.push(`your juices.`);
+			} else {
+				r.push(`ejaculate.`);
+			}
+			r.push(`<span class="devotion inc">${He} has become more submissive.</span>`);
+			if (didVaginal && didAnal) {
+				r.push(VCheck.Both(eventSlave, 1));
+			} else if (didVaginal) {
+				r.push(VCheck.Vaginal(eventSlave, 1));
+			} else if (didAnal) {
+				r.push(VCheck.Anal(eventSlave, 1));
+			}
+			eventSlave.devotion += 4;
+			return r;
+		}
+
+		function figure() {
+			eventSlave.devotion -= 5;
+			return `${He} flounders around for a while until you get bored and leave ${him} to it. Eventually ${his} whining brings another slave in, who helps ${him}. This interdependence between slaves <span class="devotion dec">reduces ${his} devotion.</span>`;
+		}
+	}
+};
diff --git a/src/events/RESS/review/ignorantHorny.js b/src/events/RESS/review/ignorantHorny.js
new file mode 100644
index 0000000000000000000000000000000000000000..7065723251087f820b95556a612d91b8081d65a5
--- /dev/null
+++ b/src/events/RESS/review/ignorantHorny.js
@@ -0,0 +1,550 @@
+App.Events.RESSIgnorantHorny = class RESSIgnorantHorny extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return []; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				canTalk,
+				s => s.assignment !== Job.QUARTER,
+				s => s.devotion <= 50,
+				s => s.devotion >= -20,
+				s => s.weekAcquired > 0,
+				s => V.week - s.weekAcquired < 10,
+				s => s.energy > 20,
+				s => s.anus !== 0,
+				s => s.vagina !== 0,
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			His, He, he, his, him, himself, girl
+		} = getPronouns(eventSlave);
+		const {title: Master, say} = getEnunciation(eventSlave);
+		const belly = bellyAdjective(eventSlave);
+		const PC = V.PC;
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave, "no clothing");
+
+		let r = [];
+		r.push(
+			`First on the inspection schedule is`,
+			App.UI.DOM.combineNodes(contextualIntro(PC, eventSlave, "DOM"), ","),
+			`and as you watch ${him} enter your office, you note several good signs about ${his} progress towards becoming a good sex slave. ${He} enters obediently, without pretending to be thrilled to be here, but also without hesitation. Best of all,`
+		);
+		if (eventSlave.chastityPenis && canAchieveErection(eventSlave)) {
+			r.push(`${he}'s squirming with discomfort over the lack of room in ${his} chastity.`);
+		} else if (eventSlave.dick > 4 && canAchieveErection(eventSlave)) {
+			r.push(`${he}'s sporting a massive half-erection which slaps lewdly against ${his} thighs as ${he} walks.`);
+		} else if (eventSlave.dick > 2 && canAchieveErection(eventSlave)) {
+			r.push(`${his} dick is half-erect, bobbing lewdly as ${he} walks.`);
+		} else if (eventSlave.dick > 0 && canAchieveErection(eventSlave)) {
+			r.push(`${his} pathetic little bitch dick is half-erect.`);
+		} else if (eventSlave.dick > 6) {
+			r.push(`${his} enormous dick is slightly engorged and dripping precum.`);
+		} else if (eventSlave.dick > 0) {
+			r.push(`${his} soft bitch dick is dripping precum.`);
+		} else if (eventSlave.labia > 1) {
+			r.push(`${his} lovely pussylips are flushed and wet.`);
+		} else if (eventSlave.clit > 1) {
+			r.push(`${his} glorious bitch button is stiffly erect.`);
+		} else if (eventSlave.vagina === -1) {
+			r.push(`${he}'s unconsciously sticking ${his} ass out. Getting fucked there is ${his} main sexual outlet, now that ${he} lacks genitals.`);
+		} else {
+			r.push(`${his} pussy is flushed and moist.`);
+		}
+		App.Events.addParagraph(node, r);
+
+		r = [];
+		if (eventSlave.aphrodisiacs > 0 || eventSlave.inflationType === "aphrodisiac") {
+			r.push(`The aphrodisiacs racing through ${his} system have ${him} desperate to get off, right now.`);
+		} else if (eventSlave.clitPiercing === 3 && eventSlave.clitSetting !== "none") {
+			r.push(His);
+			if (eventSlave.vagina > -1) {
+				r.push(`clit`);
+			} else {
+				r.push(`frenulum`);
+			}
+			r.push(`piercing is keeping ${his} arousal exquisitely balanced for ${his} inspection.`);
+		} else {
+			r.push(`The mild aphrodisiacs in the slave food have clearly built up some arousal that ${he} hasn't been able to address recently.`);
+		}
+		r.push(`${He} hasn't been with you long; it's been a mere ${V.week-eventSlave.weekAcquired > 1 ? `${V.week-eventSlave.weekAcquired} weeks` : `week`} since ${he} became your slave. ${He} may not be fully cognizant of how ${his} libido is being altered. New slaves aren't informed of the true extent of your abilities to force sexual need. It can be useful for a new ${girl} to wonder if some of the horniness ${he} feels is natural, and suspect that ${he}'s nothing but a dirty slut who deserves to be a sex slave.`);
+
+		App.Events.addParagraph(node, r);
+
+		let choices = [new App.Events.Result(`Tell ${him} the truth`, truth)];
+		if (eventSlave.fetish !== "cumslut" || eventSlave.fetishKnown !== 1) {
+			choices.push(new App.Events.Result(`Trade some oral for release`, trade));
+		}
+		if (eventSlave.fetish !== "buttslut" || eventSlave.fetishKnown !== 1) {
+			if (eventSlave.vagina === -1 && eventSlave.attrXY <= 65) {
+				choices.push(new App.Events.Result(`Make ${him} cum like a girl`, cum));
+			} else if (eventSlave.vagina > -1) {
+				choices.push(new App.Events.Result(`Work on broadening ${his} sexual horizons`, broaden));
+			}
+		}
+		App.Events.addResponses(node, choices);
+
+		function truth() {
+			let frag = document.createDocumentFragment();
+			r = [];
+			r.push(`You explain the effects of the`);
+			if (eventSlave.aphrodisiacs > 0 || eventSlave.inflationType === "aphrodisiac") {
+				r.push(`sex drugs`);
+			} else if (eventSlave.clitPiercing === 3 && eventSlave.clitSetting !== "none") {
+				r.push(`advanced`);
+				if (eventSlave.vagina > -1) {
+					r.push(`clit`);
+				} else {
+					r.push(`frenulum`);
+				}
+				r.push(`piercing`);
+			} else {
+				r.push(`slave food`);
+			}
+			r.push(`briefly. Comprehension dawns across ${his}`);
+			if (eventSlave.faceShape !== "normal") {
+				r.push(eventSlave.faceShape);
+			}
+			r.push(
+				`face.`,
+				Spoken(eventSlave, `"Yes ${Master},"`),
+				`${he} ${say}s quietly, more to buy time to formulate a response than anything else.`,
+				Spoken(eventSlave, `"Um. I still really, really want to cum, though. W-would you please fuck me? Please, please, ${Master}, please fuck`)
+			);
+			if (eventSlave.vagina > 0 && eventSlave.preg > eventSlave.pregData.normalBirth/4 && canDoVaginal(eventSlave)) {
+				r.push(Spoken(eventSlave, `my pregnant pussy."`));
+			} else if (eventSlave.vagina > 0 && canDoVaginal(eventSlave)) {
+				r.push(`me."`);
+			} else if (canDoAnal(eventSlave)) {
+				r.push(`my butt."`);
+			} else {
+				if (eventSlave.vagina > 0 && eventSlave.preg > eventSlave.pregData.normalBirth/4) {
+					r.push(Spoken(eventSlave, `my pregnant pussy.`));
+				} else if (eventSlave.vagina > 0) {
+					r.push(`me.`);
+				} else {
+					r.push(`my butt.`);
+				}
+				r.push(Spoken(eventSlave, `I need it so bad right now, please rip off my chastity and fuck me senseless."`));
+			}
+			r.push(`A vague hint of embarrassment at begging for`);
+			if (PC.dick !== 0) {
+				r.push(`a hard`);
+				if (PC.vagina !== -1) {
+					r.push(`futa`);
+				}
+				r.push(`dicking`);
+			} else {
+				r.push(`your strap-on`);
+			}
+			r.push(`flickers across ${his} face, but hope for sexual release extinguishes it quickly.`);
+			App.Events.addParagraph(frag, r);
+
+			r = [];
+			if (canDoAnal(eventSlave) || canDoVaginal(eventSlave)) {
+				r.push(`${He} groans with relief as your`);
+				if (PC.dick !== 0) {
+					r.push(`cock`);
+				} else {
+					r.push(`phallus`);
+				}
+				r.push(
+					`enters ${him}. ${He} does not orgasm immediately, but ${he} knows sweet release is coming. You have ${him} atop your desk, on ${his} back, and ${he}'s participating in ${his} own sexual degradation by holding ${his} legs spread wide apart for you. "Ohh," ${he} moans as you fuck ${him},`,
+					Spoken(eventSlave, `"thank you for telling me why I feel this way, ${Master}. I guess this is how I, oh, am now? Oh, oh, it feels so g-good! Yes! AHH!"`)
+				);
+				if (PC.dick !== 0) {
+					r.push(His);
+					if (eventSlave.vagina > 0 && canDoVaginal(eventSlave)) {
+						r.push(`cunt`);
+					} else {
+						r.push(`asshole`);
+					}
+					r.push(`tightens around your shaft delightfully as ${he} climaxes.`);
+				} else {
+					r.push(`${He} shudders with climax.`);
+				}
+				r.push(`${He} smiles <span class="trust inc">trustingly</span> up at you in the afterglow,`);
+				if (eventSlave.balls > 0) {
+					r.push(`${his} ejaculate`);
+					if (eventSlave.chastityPenis === 1) {
+						r.push(`seeping from ${his} chastity cage,`);
+					} else {
+						r.push(`glistening on ${his}`);
+						if (eventSlave.belly > 1500) {
+							r.push(belly);
+							if (eventSlave.bellyPreg >= 1500) {
+								r.push(`gravid`);
+							}
+						}
+						r.push(`belly,`);
+					}
+				}
+				r.push(`touched that you would tell ${him} something like that so honestly.`);
+				if (eventSlave.vagina > 0 && canDoVaginal(eventSlave)) {
+					r.push(VCheck.Both(eventSlave, 1));
+				} else {
+					r.push(VCheck.Anal(eventSlave, 1));
+				}
+			} else {
+				r.push(`${He} groans with lust as pull ${him} onto your lap to make out. "Ohh," ${he} moans as you run your hands across ${his}`);
+				if (eventSlave.boobsImplant >= 1000 && (eventSlave.boobsImplant/eventSlave.boobs) >= .60) {
+					r.push(`bimbo`);
+				} else if (eventSlave.boobs >= 1000 && eventSlave.butt > 5 && eventSlave.hips > 0) {
+					r.push(`fecund`);
+				} else if (eventSlave.boobs >= 1000 && eventSlave.butt > 5) {
+					r.push(`voluptuous`);
+				} else if (eventSlave.weight > 190) {
+					r.push(`voluminous`);
+				} else if (eventSlave.belly >= 5000) {
+					if (eventSlave.bellyPreg >= 3000) {
+						r.push(`gravid`);
+					} else if (eventSlave.bellyImplant >= 3000) {
+						r.push(`rounded`);
+					} else {
+						r.push(`swollen`);
+					}
+				} else if (eventSlave.weight > 30) {
+					r.push(`soft`);
+				} else if (eventSlave.muscles > 30) {
+					r.push(`ripped`);
+				} else if (eventSlave.muscles > 5) {
+					r.push(`toned`);
+				} else if (eventSlave.boobs >= 500) {
+					r.push(`sultry`);
+				} else {
+					r.push(`needy`);
+				}
+				r.push(
+					`body,`,
+					Spoken(eventSlave, `"thank you for telling me why I feel this way, ${Master}. I guess this is how I, oh, am now?"`),
+					`You reward ${him} for the realization by`
+				);
+				switch (eventSlave.nipples) {
+					case "huge":
+						r.push(`stroking ${his} lewdly erect nipples.`);
+						break;
+					case "flat":
+						r.push(`tweaking ${his} revealed nipples.`);
+						break;
+					case "puffy":
+						r.push(`cupping and fondling ${his} puffy nipples.`);
+						break;
+					case "partially inverted":
+						r.push(`teasing ${his} fully exposed nipples.`);
+						break;
+					case "inverted":
+						r.push(`squeezing ${his} puffy areolae until ${his} inverted nipples pop out for you to tease.`);
+						break;
+					case "fuckable":
+						r.push(`sticking your fingers deep into ${his} nipples.`);
+						break;
+					default:
+						r.push(`tweaking ${his} ${eventSlave.nipples} nipples.`);
+				}
+				r.push(`The pent-up ${girl} is so desperate for release, you can feel ${him} trembling with ecstasy from the nipple stimulation alone.`);
+				r.push(Spoken(eventSlave, `"Oh, oh, it feels so g-good! Yes! AHH!"`));
+				r.push(`${He} shudders with climax, smiling <span class="trust inc">trustingly</span> up at you in the afterglow,`);
+				if (eventSlave.balls > 0) {
+					r.push(`${his} ejaculate`);
+					if (eventSlave.chastityPenis === 1) {
+						r.push(`seeping from ${his} chastity cage,`);
+					} else {
+						r.push(`glistening on ${his}`);
+						if (eventSlave.belly > 1500) {
+							r.push(belly);
+							if (eventSlave.bellyPreg >= 1500) {
+								r.push(`gravid`);
+							}
+						}
+						r.push(`belly,`);
+					}
+				}
+				r.push(`touched that you would tell ${him} something like that so honestly.`);
+				seX(eventSlave, "mammary", PC, "penetrative");
+			}
+			eventSlave.trust += 4;
+			App.Events.addParagraph(frag, r);
+			return r;
+		}
+
+		function trade() {
+			const hands = (hasBothArms(eventSlave)) ? `hands` : `hand`;
+			let frag = document.createDocumentFragment();
+			r = [];
+			r.push(`You observe, noncommittally, that ${he} seems ready to get off.`);
+			r.push(
+				Spoken(eventSlave, `"Yes ${Master}!"`),
+				`${he} squeals, too`
+			);
+			if (eventSlave.intelligence+eventSlave.intelligenceImplant >= -50) {
+				r.push(`horny`);
+			} else {
+				r.push(`stupid`);
+			}
+			r.push(`to notice the sarcasm. Sighing inwardly, you slide yourself back from your desk and glance downward significantly, indicating your`);
+			if (PC.dick !== 0) {
+				r.push(`dick`);
+				if (PC.vagina !== -1) {
+					r.push(`and pussy`);
+				}
+			} else {
+				r.push(`girl parts`);
+			}
+			r.push(r.pop() + `. ${He} hurries over, almost throwing ${himself} at your feet in ${his} eagerness. "Touch yourself", you say, making it an imperious command rather than kind permission. ${He} moans into your`); // TODO: review talking PC
+			if (PC.dick !== 0) {
+				r.push(`cock`);
+			} else {
+				r.push(`cunt`);
+			}
+			r.push(`with gratitude as ${he}`);
+			if (canDoVaginal(eventSlave)) {
+				if (eventSlave.dick > 0 && !(eventSlave.chastityPenis)) {
+					r.push(`wraps one hand around ${his} dick and slips the other into ${his} pussy.`);
+				} else {
+					r.push(`dives for ${his} pussy with`);
+					if (hasBothArms(eventSlave)) {
+						r.push(`both hands.`);
+					} else {
+						r.push(`${his} hand.`);
+					}
+				}
+			} else if (eventSlave.dick > 0 && !(eventSlave.chastityPenis)) {
+				if (canAchieveErection(eventSlave)) {
+					if (eventSlave.dick > 4) {
+						r.push(`wraps ${his} ${hands} around ${his} huge erection.`);
+					} else if (canDoAnal(eventSlave) && eventSlave.prostate > 0) {
+						r.push(`wraps a hand around ${his} throbbing erection and reaches around to finger ${his} butt and stimulate ${his} prostate.${his}`);
+					} else {
+						r.push(`wraps a hand around ${his} throbbing erection.`);
+					}
+				} else {
+					if (eventSlave.dick > 4) {
+						r.push(`dives for ${his} huge, soft cock with`);
+						if (hasBothArms(eventSlave)) {
+							r.push(`both hands.`);
+						} else {
+							r.push(`${his} hand.`);
+						}
+					} else {
+						r.push(`reaches down to fondle ${his} limp dick.`);
+					}
+				}
+			} else if (canDoAnal(eventSlave)) {
+				if (eventSlave.dick === 0) {
+					r.push(`reaches down and around to rub ${his}`);
+					if (canDoAnal(eventSlave)) {
+						r.push(`anus and`);
+					}
+					r.push(`perineum.`);
+				} else {
+					if (eventSlave.vagina === -1) {
+						r.push(`reaches around to finger ${his} butt, since that's ${his} only hole.`);
+					} else if (eventSlave.chastityVagina === 1) {
+						r.push(`reaches around to finger ${his} butt, since ${his} pussy's in chastity.`);
+					} else {
+						r.push(`dives for ${his} pussy with`);
+						if (hasBothArms(eventSlave)) {
+							r.push(`both hands.`);
+						} else {
+							r.push(`${his} hand.`);
+						}
+					}
+				}
+			} else if (eventSlave.vagina === -1 && eventSlave.dick === 0) {
+				if (eventSlave.balls > 4) {
+					r.push(`cups ${his} desperate balls, massaging them and encouraging them to release their pent-up cum.`);
+				} else {
+					r.push(`reaches down and around to rub ${his}`);
+					if (canDoAnal(eventSlave)) {
+						r.push(`anus and`);
+					}
+					r.push(`perineum.`);
+				}
+			} else {
+				r.push(`brings ${his} ${hands} to ${his} breasts to`);
+				if (eventSlave.nipples !== "fuckable") {
+					r.push(`tease ${his} erect`);
+				} else {
+					r.push(`finger ${his} swollen`);
+				}
+				r.push(`nipples.`);
+			}
+			App.Events.addParagraph(frag, r);
+
+			r = [];
+			r.push(`${He}'s extremely pent up, and orgasms twice with`);
+			if (PC.dick !== 0) {
+				r.push(`your dick in ${his} mouth`);
+				if (PC.vagina !== -1) {
+					r.push(`first and ${his} tongue quivering along your pussylips second`);
+				}
+			} else {
+				r.push(`${his} mouth on your cunt`);
+			}
+			r.push(r.pop() + `. The mental effects of this formative little experience are impossible to control with precision. Over the next few days, you notice that whenever`);
+			if (canSee(eventSlave)) {
+				r.push(`${he} sees you,`);
+			} else {
+				r.push(`you see ${him},`);
+			}
+			if (random(0, 1) === 1) {
+				r.push(`${he} licks ${his} lips unconsciously. ${He} seems to be developing the beginnings of a lovely <span class="fetish gain">oral fixation.</span>`);
+				eventSlave.fetish = "cumslut";
+				eventSlave.fetishKnown = 1;
+				eventSlave.fetishStrength = 10;
+			} else {
+				r.push(`${he} betrays mixed feelings. The shocking intimacy of reaching sexual release as ${he} used ${his} mouth to pleasure you seems to be <span class="devotion inc">affecting ${him}.</span>`);
+				eventSlave.devotion += 4;
+			}
+			seX(eventSlave, "oral", PC, "penetrative");
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function cum() {
+			let frag = document.createDocumentFragment();
+			r = [];
+			r.push(`You order ${him} to get ${his} ass up on your desk. ${He} obeys, though not without a flicker of trepidation. ${He} points ${his} butt at you like a sex slave should, and doesn't crane around to`);
+			if (canSee(eventSlave)) {
+				r.push(`see`);
+			} else {
+				r.push(`feel`);
+			}
+			r.push(`what you're doing behind ${him}, but ${he}'s stiff with the awareness that`);
+			if (PC.dick !== 0) {
+				r.push(`there's almost certainly a hard`);
+				if (PC.vagina !== -1) {
+					r.push(`futa`);
+				}
+				r.push(`dick about`);
+			} else {
+				r.push(`you're almost certainly donning a strap-on`);
+			}
+			r.push(`to slide inside ${his} girly asspussy. ${He}'s not wrong, and ${he} lets out a little moan as`);
+			if (PC.dick !== 0) {
+				r.push(`your cockhead,`);
+				if (PC.vagina !== -1) {
+					r.push(`which you kindly lubed with a bit of your pussyjuice,`);
+				}
+			} else {
+				r.push(`its broad tip`);
+			}
+			if (eventSlave.anus > 2) {
+				r.push(`slides easily inside ${his} whorish anus.`);
+			} else if (eventSlave.anus === 2) {
+				r.push(`slides up ${his} experienced butthole.`);
+			} else {
+				r.push(`forces its way inside ${his} tight sphincter.`);
+			}
+			App.Events.addParagraph(frag, r);
+			r = [];
+			r.push(`As you fuck ${him}, you pull ${his} torso up so you can play with ${his}`);
+			if (eventSlave.boobs > 2000) {
+				r.push(`udders`);
+			} else if (eventSlave.boobs > 800) {
+				r.push(`tits`);
+			} else {
+				r.push(`nipples`);
+			}
+			r.push(`and whisper manipulation into ${his} ear. You tell ${him} ${he}'s about to cum like a girl. ${He} says nothing, but ${his} body language communicates incomprehension. Girls, you tell ${him}, cum when they get fucked. They cum when`);
+			if (PC.title === 1) {
+				r.push(`guys`);
+			} else {
+				r.push(`their betters`);
+			}
+			r.push(`stick dick inside them. ${He} bursts into tears, sobbing with shame and degradation even as ${he} shakes and`);
+			if (eventSlave.balls > 0) {
+				r.push(`squirts cum.`);
+			} else {
+				r.push(`dribbles ejaculate.`);
+			}
+			r.push(`The next time ${he} sees you,`);
+			if (random(0, 1) === 1) {
+				r.push(`${he} visibly gathers ${his} courage, and flirtatiously <span class="fetish gain">offers you ${his} ass.</span>`);
+				eventSlave.fetish = "buttslut";
+				eventSlave.fetishKnown = 1;
+				eventSlave.fetishStrength = 10;
+			} else {
+				r.push(`${he} manages to stop ${himself} from breaking down, and seems to be <span class="devotion inc">working hard</span> to convince ${himself} that ${he}'s a girl.`);
+				eventSlave.devotion += 4;
+			}
+			r.push(VCheck.Anal(eventSlave, 1));
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function broaden() {
+			let frag = document.createDocumentFragment();
+			r = [];
+			r.push(`${He} seems a little too focused on ${his} hot cunt. You order ${him} to get up on your desk, and ${he} obeys eagerly, ${his}`);
+			if (canSee(eventSlave)) {
+				App.Desc.eyesColor(eventSlave);
+				r.push(`shining`);
+			} else {
+				r.push(`facial expression filled`);
+			}
+			r.push(`with lust.`);
+			if (canSee(eventSlave)) {
+				r.push(`They focus`);
+			} else {
+				r.push(`${He} focuses`);
+			}
+			r.push(`on`);
+			if (PC.dick !== 0) {
+				r.push(`your cock as you bring it to bear,`);
+				if (PC.vagina !== -1) {
+					r.push(`not to mention the pussy at its base,`);
+				}
+			} else {
+				r.push(`your strap-on as you step into it,`);
+			}
+			r.push(`and ${he}'s about to express ${his} gratitude when you push the slave, who is sitting on the edge of your desk with ${his} legs spread to provide you access to ${his} pussy, over onto ${his} back. ${He} barely has time to reorient ${himself} when ${he} feels`);
+			if (eventSlave.anus > 2) {
+				r.push(`a sudden fullness in ${his} loose ass.`);
+			} else if (eventSlave.anus === 2) {
+				r.push(`a presence inside ${his} experienced ass.`);
+			} else {
+				r.push(`something starting to push its way up ${his} poor little bottom.`);
+			}
+			App.Events.addParagraph(frag, r);
+
+			r = [];
+			r.push(`${He} cannot hide ${his} disappointment, but has the presence of mind not to protest as you assfuck ${him} hard enough that ${his}`);
+			if (eventSlave.boobs > 2000) {
+				r.push(`ridiculous tits almost hit ${him} in the face with each stroke`);
+			} else if (eventSlave.boobs > 800) {
+				r.push(`big boobs bounce all over the place`);
+			} else {
+				r.push(`boobs bounce`);
+			}
+			if (eventSlave.belly >= 10000) {
+				r.push(`and taut belly is forced back`);
+			}
+			r.push(r.pop() + `. ${His} orgasm sneaks up on ${him}, and comes by surprise, forcing a squeal out of ${him} as ${his} sphincter tightens down involuntarily. ${He} gets up gingerly, clearly feeling sore,`);
+			if (random(0, 1) === 1) {
+				r.push(`and looks preoccupied. ${He} reaches idly around and massages ${his} well-fucked backdoor meditatively, biting ${his} lower lip as ${he} investigates. Maybe, ${he} seems to be thinking, <span class="fetish gain">anal is fun?</span>`);
+				eventSlave.fetish = "buttslut";
+				eventSlave.fetishKnown = 1;
+				eventSlave.fetishStrength = 10;
+			} else {
+				r.push(`but <span class="devotion inc">does ${his} honest best</span> to look grateful. ${He} knows ${he}'s a sex slave and can't afford to be particular about little things like getting buttfucked.`);
+				eventSlave.devotion += 4;
+			}
+			r.push(VCheck.Anal(eventSlave, 1));
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+	}
+};
diff --git a/src/events/RESS/review/looseButtslut.js b/src/events/RESS/review/looseButtslut.js
index 73c2eb28f7c44db6ed9529247349cac0bf77b049..9b013382bb957034b42c5fa964935275d0ca26fa 100644
--- a/src/events/RESS/review/looseButtslut.js
+++ b/src/events/RESS/review/looseButtslut.js
@@ -267,11 +267,11 @@ App.Events.RESSLooseButtslut = class RESSLooseButtslut extends App.Events.BaseEv
 					r.push(`fingering`);
 				}
 				r.push(`the moaning slave's nipples.`);
-			} else if ((S.HeadGirl.dick > 0) && (S.HeadGirl.hormoneBalance >= 100)) {
+			} else if (S.HeadGirl.dick > 0 && S.HeadGirl.hormoneBalance >= 100) {
 				r.push(`Since your poor Head Girl can't get hard due to ${his2} hormone therapy, ${he2} dons a strap-on over ${his2} flaccid penis and shoves it up ${eventSlave.slaveName}'s already-filled butt without further ado.`);
-			} else if ((S.HeadGirl.dick > 0) && (S.HeadGirl.balls > 0) && (S.HeadGirl.ballType === "sterile")) {
+			} else if (S.HeadGirl.dick > 0 && S.HeadGirl.balls > 0 && S.HeadGirl.ballType === "sterile") {
 				r.push(`Since your poor Head Girl can't get hard due to ${his2} chemical castration, ${he2} dons a strap-on over ${his2} flaccid penis and shoves it up ${eventSlave.slaveName}'s already-filled butt without further ado`);
-			} else if ((S.HeadGirl.dick > 0) && (S.HeadGirl.balls === 0)) {
+			} else if (S.HeadGirl.dick > 0 && S.HeadGirl.balls === 0) {
 				r.push(`Since your poor Head Girl can't get hard due to ${his2} orchiectomy, ${he2} dons a strap-on over ${his2} flaccid penis and shoves it up ${eventSlave.slaveName}'s already-filled butt without further ado.`);
 			} else if (!canAchieveErection(S.HeadGirl) && S.HeadGirl.dick > 6) {
 				r.push(`Since your poor Head Girl is far too big to get hard, much to ${eventSlave.slaveName}'s disappointment, ${he2} dons a strap-on over ${his2} flaccid penis and shoves it up ${eventSlave.slaveName}'s already-filled butt without further ado.`);
diff --git a/src/events/RESS/review/modsPlease.js b/src/events/RESS/review/modsPlease.js
new file mode 100644
index 0000000000000000000000000000000000000000..547e83829bb31e52150093ebe97ac568197ad1ab
--- /dev/null
+++ b/src/events/RESS/review/modsPlease.js
@@ -0,0 +1,388 @@
+App.Events.RESSModsPlease = class RESSModsPlease extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return [
+			() => V.modRequestsAllowed > 0,
+		]; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				canTalk,
+				s => s.assignment !== Job.QUARTER,
+				s => s.trust > 50,
+				s => s.devotion > 20,
+				s => s.dick !== 0 || s.vagina !== -1,
+				s => s.nipples !== "fuckable",
+				s => s.rules.speech === "permissive",
+				s => s.corsetPiercing === 0,
+				s => s.tonguePiercing === 0,
+				s => s.anusPiercing === 0,
+				s => s.nipplesPiercing === 0,
+				s => s.dickPiercing === 0,
+				s => s.vaginaPiercing === 0,
+				s => s.lipsTat === 0 || s.lipsTat === "none",
+				s => s.vaginaTat === 0 || s.vaginaTat === "none",
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			He, he, his, him, himself, girl
+		} = getPronouns(eventSlave);
+		const {title: Master} = getEnunciation(eventSlave);
+		const belly = bellyAdjective(eventSlave);
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave, "no clothing");
+
+		let r = [];
+		r.push(
+			App.UI.DOM.slaveDescriptionDialog(eventSlave),
+			`is such a good ${SlaveTitle(eventSlave)} that ${he} enjoys being inspected, even if the inspection doesn't immediately transition into sex. At the moment, ${he}'s luxuriating under your gaze, eagerly offering the sight of every`
+		);
+		if (V.showInches === 2) {
+			r.push(`inch`);
+		} else {
+			r.push(`centimeter`);
+		}
+		r.push(`of ${his} nude body with you. ${He} is confident in ${his} appearance, and more than happy to share it.`);
+		App.Events.addParagraph(node, r);
+
+		r = [];
+		if (canSee(eventSlave)) {
+			r.push(`Seeing`);
+		} else {
+			r.push(`Feeling`);
+		}
+		r.push(`your intent gaze, ${he}`);
+		if (SlaveStatsChecker.checkForLisp(eventSlave)) {
+			r.push(`lisps,`);
+		} else {
+			r.push(`asks,`);
+		}
+		r.push(Spoken(eventSlave, `"${Master}, may I please ask you for something?"`));
+
+		r.push(`At your`);
+		if (canSee(eventSlave)) {
+			r.push(`nod,`);
+		} else {
+			r.push(`acknowledgment,`);
+		}
+		r.push(he);
+		if (eventSlave.fetishKnown === 1) {
+			if (eventSlave.fetish === "submissive") {
+				r.push(
+					`gives a submissive shudder, and turns to show you ${his} bare back.`,
+					Spoken(eventSlave, `"${Master}, may I have a corset piercing? I would love to feel more, um, bound. Tied up. Please?"`)
+				);
+				r.push(`${He} awaits your answer coquettishly,`);
+				if (canSee(eventSlave)) {
+					r.push(`${his} ${App.Desc.eyesColor(eventSlave)} huge.`);
+				} else {
+					r.push(`a look of begging on ${his} face.`);
+				}
+			} else if (eventSlave.fetish === "cumslut") {
+				r.push(
+					`blows you a wet kiss.`,
+					Spoken(eventSlave, `"${Master}, may I have a tongue piercing? It would take my dicksucking to the next level. Please?"`)
+				);
+				r.push(`${He} sticks out ${his} tongue helpfully, leaving ${his} favorite fuckhole wide open so you can see down ${his} hungry throat.`);
+			} else if (eventSlave.fetish === "humiliation") {
+				r.push(`blushes with humiliation.`,
+					Spoken(eventSlave, `"${Master}, may I have a t-tattoo? L-like, on my face. A mean one. Please?"`)
+				);
+				r.push(`${He} hangs ${his} head.`);
+			} else if (eventSlave.fetish === "buttslut") {
+				r.push(`spins around to show off ${his} favorite fuckhole, bending over`);
+				if (eventSlave.belly >= 5000) {
+					r.push(`as far as ${he} can with ${his} ${belly}`);
+					if (eventSlave.bellyPreg >= 3000) {
+						r.push(`pregnant`);
+					}
+					r.push(`belly in the way`);
+				} else {
+					r.push(`farther than usual`);
+				}
+				r.push(`to indicate the area between it and`);
+				if (eventSlave.vagina > -1) {
+					r.push(`${his} cunt.`);
+				} else if (eventSlave.balls > 0 && eventSlave.scrotum > 0) {
+					r.push(`${his} ballsack.`);
+				} else if (eventSlave.dick === 0) {
+					r.push(`${his} featurelessly smooth groin and its little cumhole.`);
+				} else {
+					r.push(`the base of ${his} soft bitchclit.`);
+				}
+				r.push(Spoken(eventSlave, `"${Master}, may I have a piercing right here? Right below my butthole? It would keep me so ready for a buttfuck. I mean, more than I already am. Please?"`));
+				r.push(`The shameless buttslut begins to wink ${his} asshole meaningfully.`);
+			} else if (eventSlave.fetish === "boobs") {
+				r.push(`wiggles ${his} shoulders to give ${his} boobs some motion.`,
+					Spoken(eventSlave, `"${Master}, may I have some nipple piercings? It would be like having someone playing with my nipples, but, like, all the time. Please?"`)
+				);
+				r.push(`${He} starts to bounce flirtily.`);
+			} else if (eventSlave.fetish === "pregnancy") {
+				r.push(`blushes suddenly and hangs ${his} head.`);
+				if (eventSlave.belly >= 10001) {
+					r.push(Spoken(eventSlave, `"${Master}, may I have a piercing? Right here? A big one?" ${He} indicates ${his} popped navel. "I feel it like it would get my belly more attention, plus I'd hate to not take advantage of my new outie. Please?`));
+				} else {
+					r.push(Spoken(eventSlave, `"${Master}, may I have a tattoo? Right here?"`),
+						`${He} indicates ${his}`);
+					if (eventSlave.belly > 1500) {
+						r.push(`rounded belly.`);
+					} else {
+						r.push(`abdomen.`);
+					}
+					r.push(Spoken(eventSlave, `"I would love an advertisement that I want to be, um, filled up.`));
+					if (eventSlave.pregKnown === 1) {
+						r.push(Spoken(eventSlave, `Well, when I'm empty again.`));
+					}
+					r.push(Spoken(eventSlave, `Please?"`));
+				}
+				r.push(`${He}`);
+				if (canSee(eventSlave)) {
+					r.push(`looks`);
+				} else {
+					r.push(`gazes`);
+				}
+				r.push(`at you hopefully.`);
+			} else if (eventSlave.fetish === "dom") {
+				r.push(`tosses ${his} head, a`);
+				if (canSee(eventSlave)) {
+					r.push(`gleam in ${his} eye`);
+				} else {
+					r.push(`devious look on ${his} face`);
+				}
+				r.push(
+					Spoken(eventSlave, `"${Master}, may I have a tattoo? Right here?"`),
+					`${He} indicates ${his} eyebrow, temple, and cheek.`,
+					Spoken(eventSlave, `"It would be cool if other girls saw me and were all, 'I'm about to get fucked.' Please?"`)
+				);
+				r.push(`${He} smiles at you hopefully.`);
+			} else if (eventSlave.fetish === "sadist") {
+				r.push(`tosses ${his} head, a`);
+				if (canSee(eventSlave)) {
+					r.push(`gleam in ${his} eye.`);
+				} else {
+					r.push(`malicious look on ${his} face.`);
+				}
+				if (canAchieveErection(eventSlave)) {
+					r.push(Spoken(eventSlave, `"${Master}, may I have a shaft piercing? If I get to stick it in another girl, I'd love to`));
+					if (canSee(eventSlave)) {
+						r.push(Spoken(eventSlave, `see her face`));
+					} else {
+						r.push(`feel her shudder`);
+					}
+					r.push(Spoken(eventSlave, `when that extra little bit of metal slides inside ${him}. Please?"`));
+				} else if (eventSlave.dick > 0) {
+					r.push(Spoken(eventSlave, `"${Master}, may I have a tongue piercing? If I get to eat another girl out, I'd love to listen to her squeal when that little bit of metal scrapes against her. Please? Please?"`));
+				} else {
+					r.push(Spoken(eventSlave, `"${Master}, may I have a labia piercing? If I get to trib another girl, I'd love to`));
+					if (canSee(eventSlave)) {
+						r.push(Spoken(eventSlave, `see her face`));
+					} else {
+						r.push(Spoken(eventSlave, `feel her shudder`));
+					}
+					r.push(Spoken(eventSlave, `when that little bit of metal grinds against her. Please?"`));
+				}
+				r.push(`${He} shudders at the thought,`);
+				if (canSee(eventSlave)) {
+					r.push(`looking`);
+				} else {
+					r.push(`gazing`);
+				}
+				r.push(`at you hopefully.`);
+			} else if (eventSlave.fetish === "masochist") {
+				r.push(`bites ${his} lower lip, looking aroused.`);
+				if (eventSlave.dick > 0) {
+					r.push(Spoken(eventSlave, `"${Master}, may I have a dick piercing? Right th-through my cock. Oh f-fuck it would hurt. Please?"`));
+				} else {
+					r.push(Spoken(eventSlave, `"${Master}, may I have a pussy piercing? Right th-through me. Oh f-fuck it would hurt. Please?"`));
+				}
+				r.push(`${He} shivers at the thought,`);
+				if (canSee(eventSlave)) {
+					r.push(`looking`);
+				} else {
+					r.push(`gazing`);
+				}
+				r.push(`at you hopefully.`);
+			}
+		} else {
+			r.push(`bats ${his} eyes at you, and turns halfway to display ${his} boobs in profile.`,
+				Spoken(eventSlave, `"${Master}, may I have my nipples pierced? It's silly and girly, but I guess— I guess I'd like something silly and girly. Please?"`));
+			r.push(`${He} blushes prettily and`);
+			if (canSee(eventSlave)) {
+				r.push(`looks`);
+			} else {
+				r.push(`gazes`);
+			}
+			r.push(`at you hopefully.`);
+		}
+
+		App.Events.addParagraph(node, r);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Perform it yourself`, perform),
+			new App.Events.Result(`${He}'s beautiful just the way ${he} is`, beautiful),
+			new App.Events.Result(`No, and slaves should not make requests of this kind`, no),
+		]);
+
+		function perform() {
+			const frag = document.createDocumentFragment();
+			r = [];
+			r.push(`You stand up from behind your desk and head towards the body modification studio,`);
+			if (canSee(eventSlave)) {
+				r.push(`crooking a finger at`);
+			} else {
+				r.push(`calling`);
+			}
+			r.push(`${him} as you as you go. ${He} follows bouncily, thanking you profusely, and then thanking you again when it becomes apparent to ${him} that you intend to do the body art yourself. ${He} snuggles into the chair, relaxing as the restraints bind ${him} in. They're not really necessary to modify a willing ${girl}, never mind one this enthusiastic, but they could possibly prevent ${him} from flinching, and it's not like ${he} resents being bound at this point.`);
+			App.Events.addParagraph(frag, r);
+			r = [];
+			r.push(`Manipulating the machine, you`);
+			if (eventSlave.fetishKnown === 1) {
+				if (eventSlave.fetish === "submissive") {
+					r.push(`place the first piercing, eliciting a hum of mild pain and abject submission from ${eventSlave.slaveName}. The piercing session goes on and on, with the slave sinking into a boneless, mindless state in which ${his} being is completely in your hands. ${He}'s almost sleepy when you finally release ${him}, but ${he} rises and`);
+					if (canSee(eventSlave)) {
+						r.push(`turns, craning around to see in the mirror.`);
+					} else {
+						r.push(`gingerly feeling around ${his} new piercings.`);
+					}
+					r.push(`${He} <span class="devotion inc">smiles devotedly,</span> and asks you when ${he}'ll be healed enough that ${he} can be laced up.`);
+					eventSlave.corsetPiercing = 1;
+				} else if (eventSlave.fetish === "cumslut") {
+					r.push(`hold ${his} mouth agape and place the first piercing. ${He} can't make much of a facial expression with ${his} mouth that wide, but there is a lewd`);
+					if (canSee(eventSlave)) {
+						r.push(`glint in ${his} eye`);
+					} else {
+						r.push(`look on ${his} face`);
+					}
+					r.push(`when ${he} realizes ${he}'s getting more than one. When you're done, ${he}'s sore enough that ${he} gestures ${his} thanks, <span class="devotion inc">smiling devotedly,</span> and begs you to try ${him} out when ${he}'s healed up.`);
+					eventSlave.tonguePiercing = 2;
+				} else if (eventSlave.fetish === "humiliation") {
+					r.push(`activate the ink gun, its low buzzing drawing a moan of anticipation out of ${eventSlave.slaveName}. Working at a touchscreen, you exercise your artistic talents, inscribing the slave's status as a sex object on ${his} forehead. The pain is intense, but ${he} tolerates it, the tears running fast out of the corners of ${his} eyes and low groans rising out of ${his} throat. When ${he}'s finally allowed to rise`);
+					if (canSee(eventSlave)) {
+						r.push(`and sees ${himself} in a mirror,`);
+					} else if (canHear(eventSlave)) {
+						r.push(`and listens intently on your descriptions of ${his} new face,`);
+					}
+					r.push(`${he} blushes furiously and cries harder, knowing that ${his} status as a humiliation slut is now permanent. This culmination of ${his} deeply perverse sense of self <span class="devotion inc">draws ${him} closer to you.</span>`);
+					eventSlave.lipsTat = "degradation";
+				} else if (eventSlave.fetish === "buttslut") {
+					r.push(`place a spreader to keep ${his} legs and cheeks apart and start piercing. ${He} whines with the pain, and then gasps when ${he} realizes that the piercing is going on much longer than ${he} expected. You give ${him} a couple of huge piercings below ${his} anus, big enough that ${he}'ll never be free of them rubbing against ${his} slutty butthole. Not done yet, you put some small, smooth studs around it, just to make sure nobody can possibly misunderstand where to fuck this bitch. ${He} gets up gingerly, but <span class="devotion inc">smiling sluttily.</span>`);
+					eventSlave.anusPiercing = 2;
+				} else if (eventSlave.fetish === "boobs") {
+					if (eventSlave.nipples.includes("inverted")) {
+						r.push(`use a couple of its actuators to stimulate ${his} nipples until they're almost all the way protruded, and then direct them to pull them out all the way. ${He} screams wholeheartedly at the pain, yelling on and on until ${he}'s out of breath and relaxes against the restraints, gasping and crying.`);
+					} else {
+						r.push(`use its actuators to pull ${his} nipples out as far as they will go, forcing a gasp of pain out of ${him}.`);
+					}
+					r.push(`${He} expects a simple nipple piercing, one for each boob; what ${he} gets is a set of heavy rings in each nipple. ${He}'s no masochist, so the pleasure will come later, but ${he} moans as ${he} feels the gradual addition of weight to ${his} nipples. ${He} rises very carefully, trying to keep ${his} boobs still, and <span class="devotion inc">smiles devotedly</span> at you. Soon enough, ${he}'ll be able to orgasm by walking.`);
+					eventSlave.nipplesPiercing = 2;
+				} else if (eventSlave.fetish === "pregnancy") {
+					if (eventSlave.belly >= 10001) {
+						r.push(`hold ${his} ${belly} stomach steady and pierce ${his} navel with the largest, heaviest ring available. There is a lewd`);
+						if (canSee(eventSlave)) {
+							r.push(`glint in ${his} eye`);
+						} else {
+							r.push(`look on ${his} face`);
+						}
+						r.push(`as ${he} feels the new weight settle against ${his} middle. ${He} rises very carefully, trying to keep ${his} new piercing from moving, and <span class="devotion inc">smiles devotedly</span> at you. Soon enough, all eyes will be on ${his} belly as ${he} waddles by.`);
+						eventSlave.navelPiercing = 2;
+					} else {
+						r.push(`activate the ink gun, its low buzzing drawing a moan of anticipation out of ${eventSlave.slaveName}. Working at a touchscreen, you exercise your artistic talents, beautifying ${his}`);
+						if (eventSlave.belly >= 150) {
+							r.push(`${belly} stomach`);
+						} else {
+							r.push(`abdomen`);
+						}
+						r.push(`with an inducement to fuck ${him}.`);
+						if (canSee(eventSlave)) {
+							if (eventSlave.belly >= 5000) {
+								r.push(`${He} can't see what you are inking into the underside of ${his} belly, but ${he} tries anyway.`);
+							} else {
+								r.push(`${He}'s just able to crane ${his} head enough to see the work, and eagerly watches.`);
+							}
+							r.push(`When you're done, ${he} stares at ${himself} for a long time,`);
+						} else {
+							r.push(`Once you finish ${his} new tattoo, you describe it to ${him} in detail. ${He} pauses for a moment,`);
+						}
+						r.push(`a curiously mixed expression on ${his} face. This is ${his} life now; it's permanently a part of ${him}, and <span class="devotion inc">${he} knows it.</span>`);
+						eventSlave.vaginaTat = "lewd crest";
+					}
+				} else if (eventSlave.fetish === "dom") {
+					r.push(`activate the ink gun, its low buzzing drawing a moan of anticipation out of ${eventSlave.slaveName}. Working at a touchscreen, you exercise your artistic talents, making the side of ${his} face fierce with tribal patterns. Tattooing over such thin and sensitive skin is intensely painful, but ${he} tolerates it, permitting nothing but a low and continuing growl to escape. ${He}'s obviously tired out by the pain when ${he}'s finally allowed to rise, but ${he}`);
+					if (canSee(eventSlave)) {
+						r.push(`looks at ${himself} in the mirror`);
+					} else if (canHear(eventSlave)) {
+						r.push(`listens to your description`);
+					} else {
+						r.push(`traces the design with ${his} fingertips`);
+					}
+					r.push(`with <span class="devotion inc">obvious approval.</span>`);
+					eventSlave.lipsTat = "tribal patterns";
+				} else if (eventSlave.fetish === "sadist") {
+					if (canAchieveErection(eventSlave)) {
+						r.push(`take hold of ${his} most intimate parts and put a set of massive piercings straight through ${his} shaft. ${He} shrieks with agony, the noise going on and on before diminishing into breathless sobbing. Much later, when ${he} gets gingerly up from the chair, ${he} doesn't look eager to stick ${his} cock in anything, but ${he}'s <span class="devotion inc">thankful enough.</span>`);
+						eventSlave.dickPiercing = 2;
+					} else if (eventSlave.dick > 0) {
+						r.push(`hold ${his} mouth agape and place the first piercing. ${He} can't make much of a facial expression with ${his} mouth that wide, but there is a lewd`);
+						if (canSee(eventSlave)) {
+							r.push(`glint in ${his} eye`);
+						} else {
+							r.push(`look on ${his} face`);
+						}
+						r.push(`when ${he} realizes ${he}'s getting more than one. When you're done, ${he}'s sore enough that ${he} gestures ${his} thanks, <span class="devotion inc">smiling devotedly;</span> ${he} looks eager to try out ${his} new piercing on a fresh pussy.`);
+						eventSlave.tonguePiercing = 2;
+					} else {
+						r.push(`take hold of ${his} most intimate parts and put a set of massive piercings straight through ${his} pussylips. ${He} shrieks with agony, the noise going on and on before diminishing into breathless sobbing. Much later, when ${he} gets gingerly up from the chair, ${he} doesn't look eager to trib anything, but ${he}'s <span class="devotion inc">thankful enough.</span>`);
+						eventSlave.vaginaPiercing = 2;
+					}
+				} else if (eventSlave.fetish === "masochist") {
+					r.push(`take hold of ${his} most intimate parts and put a series of massive piercing straight through ${his}`);
+					if (eventSlave.dick > 0) {
+						r.push(`shaft.`);
+						eventSlave.dickPiercing = 2;
+					} else {
+						r.push(`pussylips.`);
+						eventSlave.vaginaPiercing = 2;
+					}
+					r.push(`${He} shrieks with agony and then orgasms as strongly as you've ever seen a slave climax, ${his} every fiber tensing against the restraints. For a long, long time ${he} has to work to breathe, the overstimulation clearing slowly. When you finally let ${him} up, ${he} hasn't remembered how to talk yet, but ${his} gaze says it for ${him}. It looks like ${he}'s just had <span class="devotion inc">the best sex of ${his} life.</span>`);
+				}
+			} else {
+				if (eventSlave.nipples.includes("inverted")) {
+					r.push(`use a couple of its actuators to stimulate ${his} nipples until they're almost all the way protruded, and then direct them to pull them out all the way. ${He} screams wholeheartedly at the pain, yelling on and on until ${he}'s out of breath and relaxes against the restraints, gasping and crying.`);
+				} else {
+					r.push(`use its actuators to pull ${his} nipples out as far as they will go, forcing a gasp of pain out of ${him}.`);
+				}
+				r.push(`This done, you give ${him} a simple pair of barbell nipple piercings. The machine makes this take less time than it takes to describe it, and after a shocked squeal of pain ${he}'s released. ${He} rises carefully, trying to keep ${his} boobs still, and <span class="devotion inc">smiles thankfully</span> at you. ${He}`);
+				if (canSee(eventSlave)) {
+					r.push(`glances at ${himself} in the mirror,`);
+				} else {
+					r.push(`listens to your description of ${him},`);
+				}
+				r.push(`looking pleased.`);
+				eventSlave.nipplesPiercing = 1;
+			}
+			eventSlave.devotion += 5; // TODO: consider surgeryDamage
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function beautiful() {
+			eventSlave.trust += 4;
+			return `You tell ${him} firmly that ${he}'s beautiful just the way ${he} is. ${He} blushes and giggles at the absurdly trite statement. You conclude the inspection, and ${he} continues on to the next item in ${his} life as a sex slave, <span class="trust inc">pleased and reassured</span> that you have a plan for what ${he} should look like.`;
+		}
+
+		function no(){
+			V.modRequestsAllowed = 0;
+			return `You tell ${him} firmly that you don't intend to apply body modifications to ${him}, your tone communicating that further requests on this subject are not permitted. ${He} understands clearly and looks a little crushed, but trusts that ${he} won't be punished for violating a rule you hadn't promulgated. You repair the oversight immediately, directing your personal assistant to spread notice that decisions about body modifications are yours alone.`;
+		}
+	}
+};
diff --git a/src/events/RESS/review/notMyName.js b/src/events/RESS/review/notMyName.js
index b1f120a24fd039d5de2a3d35bd5dce69e4637495..89aa4de530b83db9b9a22a13e4b37d4a1d5d4620 100644
--- a/src/events/RESS/review/notMyName.js
+++ b/src/events/RESS/review/notMyName.js
@@ -42,7 +42,7 @@ App.Events.RESSNotMyName = class RESSNotMyName extends App.Events.BaseEvent {
 		r.push(`is not yet broken to your will. With your experience with slaves, you've been expecting ${him} to take some opportunity of exercising ${his} remaining independence. You don't have long to wait. One day, you give ${him} inconsequential orders, naturally addressing ${him} by ${his} slave name, ${eventSlave.slaveName}. ${He} replies`);
 		if (eventSlave.lips > 70) {
 			r.push(`waspishly through ${his} dick-sucking lips,`);
-		} else if ((eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2)) {
+		} else if (eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2) {
 			r.push(`waspishly through ${his} heavily-pierced lips,`);
 		} else {
 			r.push(`waspishly,`);
@@ -87,7 +87,7 @@ App.Events.RESSNotMyName = class RESSNotMyName extends App.Events.BaseEvent {
 			r.push(`into ${his}`);
 			if (eventSlave.anus === 1) {
 				r.push(`poor little anus,`);
-			} else if ((eventSlave.anus === 2)) {
+			} else if (eventSlave.anus === 2) {
 				r.push(`whore's butt,`);
 			} else {
 				r.push(`gaping rear end,`);
@@ -140,11 +140,11 @@ App.Events.RESSNotMyName = class RESSNotMyName extends App.Events.BaseEvent {
 			r.push(`${eventSlave.slaveName} screams and begs when ${he} realizes what ${his} punishment is, but you are obdurate.`);
 			if (eventSlave.muscles > 30) {
 				r.push(`${His} powerful form has to be sedated for immurement in the arcade.`);
-			} else if ((eventSlave.weight >= 190)) {
+			} else if (eventSlave.weight >= 190) {
 				r.push(`${He} is so massively fat that immuring ${him} in the arcade is a struggle, even when ${he} isn't trying to.`);
 			} else if (eventSlave.belly >= 120000) {
 				r.push(`${He} is so enormously gravid that immuring ${him} in the arcade is a hassle, even though ${his} ${belly} middle limits ${his} ability to struggle.`);
-			} else if ((eventSlave.weight >= -10)) {
+			} else if (eventSlave.weight >= -10) {
 				r.push(`${His} desperate struggles make immuring ${him} in the arcade difficult.`);
 			} else if (eventSlave.belly >= 1500) {
 				r.push(`${His}`);
diff --git a/src/events/RESS/review/resistantAnalVirgin.js b/src/events/RESS/review/resistantAnalVirgin.js
new file mode 100644
index 0000000000000000000000000000000000000000..6f8cde7fe1df5765d37c3fd03476fa8d5bf8ed2a
--- /dev/null
+++ b/src/events/RESS/review/resistantAnalVirgin.js
@@ -0,0 +1,200 @@
+App.Events.RESSResistantAnalVirgin = class RESSResistantAnalVirgin extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return []; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				s => s.devotion < -20,
+				s => s.trust >= -20,
+				s => s.anus === 0,
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			His, He, he, his, him, himself
+		} = getPronouns(eventSlave);
+		const {title: Master} = getEnunciation(eventSlave);
+		const PC = V.PC;
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave);
+
+		let r = [];
+		r.push(
+			App.UI.DOM.slaveDescriptionDialog(eventSlave),
+			`has never had anything significant up ${his} ass. Living in ${V.arcologies[0].name}, ${he} can't have missed that anal sex is a part of most slaves' lives. ${He}`
+		);
+		if (canSee(eventSlave)) {
+			r.push(`witnesses`);
+		} else if (canHear(eventSlave)) {
+			r.push(`hears`);
+		} else {
+			r.push(`thinks about`);
+		}
+		r.push(`sodomy several times a day, at least.`);
+		App.Events.addParagraph(node, r);
+
+		r = [];
+		r.push(`Lately, you've noticed that ${he} reacts to these`);
+		if (canSee(eventSlave)) {
+			r.push(`sights`);
+		} else if (canHear(eventSlave)) {
+			r.push(`sounds`);
+		} else {
+			r.push(`thoughts`);
+		}
+		r.push(`with a well-concealed flash of apprehension. It seems ${he}'s figured out that ${he} will probably be required to take it up ${his} little`);
+		if (V.seeRace === 1) {
+			r.push(eventSlave.race);
+		}
+		r.push(`butt someday, and isn't enthusiastic about the prospect. You could probably exploit this.`);
+
+		App.Events.addParagraph(node, r);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Let ${him} earn continued anal virginity`, earn),
+			hasAnyLegs(eventSlave)
+				? new App.Events.Result(`Force ${him} to degrade ${himself}`, force, `This option will take ${his} anal virginity`)
+				: new App.Events.Result(),
+			eventSlave.vagina === 0
+				? new App.Events.Result(`Make ${him} choose between ${his} virginities`, choose, `This option will take one of ${his} virginities`)
+				: new App.Events.Result()
+		]);
+
+		function earn() {
+			r = [];
+			r.push(`You tell ${him} ${he}'s a sex slave, and that ${he} needs to learn how to take a dick up the ass.`);
+			if (!canTalk(eventSlave) && hasAnyArms(eventSlave)) {
+				r.push(`${He} frantically begs with gestures, pleading`);
+				if (hasBothLegs(eventSlave)) {
+					r.push(`on ${his} knees.`);
+				} else {
+					r.push(`desperately.`);
+				}
+			} else if (!canTalk(eventSlave)) {
+				r.push(`${He} frantically mouths pleas that you leave ${his} butt alone.`);
+			} else {
+				r.push(
+					`${He} begs,`,
+					Spoken(eventSlave, `"Please no, ${Master}, please don't rape me in my ass, ${Master}!"`)
+				);
+			}
+			r.push(`You make a show of considering, and then tell ${him} that if ${he}'s extra obedient, you might let ${him} keep ${his} butt — for now. You tell ${him} to`);
+			if (PC.dick !== 0) {
+				r.push(`blow you`);
+				if (PC.vagina !== -1) {
+					r.push(`and`);
+				}
+			}
+			if (PC.vagina !== -1) {
+				r.push(`lick your pussy`);
+			}
+			r.push(r.pop() + `, and ${he} does with unusual obedience. When ${he}'s done, you bend down and whisper in ${his} ear that if ${he} shows any sign of rebelliousness, you'll ruin ${his} little asshole. <span class="trust dec">${He}'s terrified.</span>`);
+			eventSlave.trust -= 5;
+			seX(eventSlave, "oral", PC, "penetrative");
+			return r;
+		}
+
+		function force() {
+			r = [];
+			r.push(`Suction cup dildos are terribly useful. You place a moderate-sized one on a low table in your office,`);
+			if (eventSlave.chastityAnus) {
+				r.push(`unlock ${his} chastity belt,`);
+			}
+			r.push(`and order ${him} to squat down on it and fuck ${his} own asshole. ${He} hesitates, incredulous, and finds ${himself} bound to the couch and thoroughly whipped. It isn't a sexual whipping, either, but a methodical and scientific administration of pain right up to the border of damage. When ${he}'s been reduced to a state of abject, sobbing surrender, you free ${him} and repeat your orders as though nothing had happened. Still crying, ${he} hobbles over and up onto the table,`);
+			if (eventSlave.belly >= 300000 || eventSlave.weight > 190) {
+				r.push(`struggles to line ${himself} up, and finds it slammed into ${his} asshole when the table gives out under ${his}`);
+				if (eventSlave.belly >= 300000) {
+					r.push(`gravid`);
+				}
+				r.push(`weight. You leave ${him} there to struggle with the dildo wedged in ${his} rear until ${he} finally manages to pop it free from the table fragment stuck under mass and roll over. You haul ${him} onto`);
+			} else {
+				if (eventSlave.belly > 20) {
+					r.push(`gingerly lowers ${his}`);
+					if (eventSlave.bellyPreg >= 3000) {
+						r.push(`pregnant`);
+					}
+					r.push(`bulk onto it,`);
+				}
+				r.push(`and fucks ${his} little ass open on the dildo. You keep ${him} up there until ${his} legs give out`);
+				if (eventSlave.belly >= 10000 || eventSlave.weight > 190) {
+					r.push(`and ${his}`);
+					if (eventSlave.bellyPreg >= 3000) {
+						r.push(`gravid`);
+					}
+					r.push(`weight pins ${him} on the toy;`);
+				} else {
+					r.push(r.pop() + `, and`);
+				}
+				r.push(`then let ${him} lie down on`);
+			}
+			r.push(`the couch, telling ${him} to keep working the dildo with ${his} ${hasBothArms(eventSlave) ? "hands" : "hand"} or suffer another whipping. After ${he}'s had ${his} ass filled for a good while, ${he} has no trouble taking a`);
+			if (PC.dick === 0) {
+				r.push(`strap-on`);
+			} else {
+				r.push(`real dick`);
+			}
+			r.push(`for the first time, and is by this point too exhausted to do anything but lie there and be a good little anal slave. <span class="gold">${He} fears you,</span> and <span class="lime">${his} butthole has been broken in.</span>`);
+			eventSlave.trust -= 5;
+			eventSlave.anus = 1;
+			r.push(VCheck.Anal(eventSlave, 1));
+			return r;
+		}
+
+		function choose() {
+			r = [];
+			r.push(`You tell ${him} ${he}'s a sex slave, and that ${he} needs to learn how to take a dick up the ass.`);
+			if (!canTalk(eventSlave) && hasAnyArms(eventSlave)) {
+				r.push(`${He} frantically begs with gestures, pleading`);
+				if (hasBothLegs(eventSlave)) {
+					r.push(`on ${his} knees.`);
+				} else {
+					r.push(`desperately.`);
+				}
+			} else if (!canTalk(eventSlave)) {
+				r.push(`${He} frantically mouths pleas that you leave ${his} butt alone.`);
+			} else {
+				r.push(
+					`${He} begs,`,
+					Spoken(eventSlave, `"Please no, ${Master}, please don't rape me in my ass, ${Master}!"`)
+				);
+			}
+			r.push(`You make a show of considering, and then tell ${him} you know a way ${he} can continue being an anal virgin — for now. You want a new hole to play with, and ${he} has two untouched holes. ${He} gasps when ${he} realizes what you want. ${He} hesitates to answer, uncertain of which ${he} values more, and finds ${himself} bound to the couch`);
+			if (eventSlave.chastityAnus) {
+				r.push(r.pop() + `, stripped of ${his} chastity,`);
+			}
+			r.push(`and thoroughly whipped. It isn't a sexual whipping, either, but a methodical and scientific administration of pain right up to the border of damage. When ${he}'s been reduced to a state of abject, sobbing surrender, you free ${him} and repeat your orders as though nothing had happened. Still crying, ${he} prostrates ${himself} and`);
+			if (eventSlave.trust < 20) {
+				r.push(`spreads ${his} butt for you.`);
+			} else {
+				r.push(`${his} pussylips for you.`);
+			}
+			r.push(`You callously ram a dildo into ${his} fresh hole and tell ${him} to keep working ${himself} with it or suffer another whipping. After ${he}'s fucked ${himself} for a good while, ${he} has no trouble taking a`);
+			if (PC.dick === 0) {
+				r.push(`strap-on`);
+			} else {
+				r.push(`real dick`);
+			}
+			r.push(`for the first time, and is by this point too exhausted to do anything but lie there and take it a good little slave. <span class="trust dec">${He} fears you</span> but <span class="devotion inc">loses ${himself} to your rule.</span>`);
+			if (eventSlave.trust < 20) {
+				r.push(`<span class="virginity loss">${His} butthole has been broken in.</span>`);
+				eventSlave.anus = 1;
+				r.push(VCheck.Anal(eventSlave, 1));
+			} else {
+				r.push(`<span class="virginity loss">${His} pussy has been broken in.</span>`);
+				eventSlave.vagina = 1;
+				r.push(VCheck.Vaginal(eventSlave, 1));
+			}
+			eventSlave.trust -= 5;
+			eventSlave.devotion += 3;
+			return r;
+		}
+	}
+};
diff --git a/src/events/RESS/review/resistantShower.js b/src/events/RESS/review/resistantShower.js
index 71e987ebe7f21684cee966b45ad83f7d02591eb2..39d6ce96b798b277f447e194819a964040c3c136 100644
--- a/src/events/RESS/review/resistantShower.js
+++ b/src/events/RESS/review/resistantShower.js
@@ -140,7 +140,7 @@ App.Events.RESSResistantShower = class RESSResistantShower extends App.Events.Ba
 				r.push(Spoken(eventSlave, `"Sorry, ${Master}. I just h-hate cocks. I don't want to see another one, ever again."`));
 			} else if ((eventSlave.sexualFlaw === "idealistic") && (eventSlave.counter.oral + eventSlave.counter.anal + eventSlave.counter.vaginal + eventSlave.counter.mammary > 0)) {
 				r.push(Spoken(eventSlave, `"I feel like I'm going crazy, ${Master}. No one here seems to know that rape is wrong. Th-they just r-rape me."`));
-			} else if ((eventSlave.sexualFlaw === "shamefast")) {
+			} else if (eventSlave.sexualFlaw === "shamefast") {
 				r.push(Spoken(eventSlave, `"I want to cover myself so badly, ${Master}. I'm so embarrassed all the time. I'm so tired of being embarrassed."`));
 			} else if ((eventSlave.sexualFlaw === "repressed") && (eventSlave.counter.oral + eventSlave.counter.anal + eventSlave.counter.vaginal + eventSlave.counter.mammary > 0)) {
 				r.push(Spoken(eventSlave, `"I'm filthy, ${Master}. I've been used, and I can't ever be clean again. I'm a d-dirty, sinful whore."`));
diff --git a/src/events/RESS/review/restrictedProfession.js b/src/events/RESS/review/restrictedProfession.js
new file mode 100644
index 0000000000000000000000000000000000000000..4fe3ab81606827086436afaf968347d44e4a51f8
--- /dev/null
+++ b/src/events/RESS/review/restrictedProfession.js
@@ -0,0 +1,182 @@
+App.Events.RESSRestrictedProfession = class RESSRestrictedProfession extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return []; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				canTalk,
+				s => s.assignment !== Job.QUARTER,
+				s => s.rules.speech === "restrictive",
+				s => s.devotion > 60,
+				s => s.trust >= -20,
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			His, He, he, his, him, himself
+		} = getPronouns(eventSlave);
+		const {title: Master} = getEnunciation(eventSlave);
+		const belly = bellyAdjective(eventSlave);
+		const PC = V.PC;
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave, "no clothing");
+
+		let r = [];
+		r.push(
+			App.UI.DOM.slaveDescriptionDialog(eventSlave),
+			`is`
+		);
+		if (!hasAnyLegs(eventSlave)) {
+			r.push(`sitting`);
+			if (hasAnyArms(eventSlave)) {
+				r.push(`helplessly`);
+			} else {
+				r.push(`limblessly`);
+			}
+		} else if (!canWalk(eventSlave)) {
+			r.push(`kneeling`);
+		} else {
+			r.push(`standing`);
+		}
+		r.push(`before your desk for ${his} regular inspection. ${He} is studiously observing the letter of the rule against speaking, and is doing ${his} best to make your inspection as efficient as possible. ${His} desire to please radiates off ${him} in almost palpable waves. ${He} obviously wants to communicate something to you, but can't do it without breaking the rules.`);
+
+		App.Events.addParagraph(node, r);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Let ${him} speak briefly if ${he}'s very quiet`, briefly),
+			new App.Events.Result(`Make ${him} say it in public`, make),
+			new App.Events.Result(`Keep ${him} quiet but spend some time with ${him}`, quiet),
+		]);
+
+		function briefly() {
+			r = [];
+			r.push(`You stand up from your desk and approach ${him} very closely without touching ${him}. Looking straight`);
+			if (hasAnyEyes(eventSlave)) {
+				r.push(`into ${his} ${hasBothEyes(eventSlave) ? "eyes" : "eye"},`);
+				r.push(`which are`);
+				if (canSee(eventSlave)) {
+					r.push(`fixed helplessly on you,`);
+				} else {
+					r.push(`gazing in your general direction,`);
+				}
+			} else {
+				r.push(`at ${him},`);
+			}
+			r.push(`you tell ${him} that you'll let ${him} say whatever it is ${he} needs to say to you, but only if ${he}'s very quiet. ${He}`);
+			if (canSee(eventSlave)) {
+				r.push(`looks at you with huge eyes but`);
+			}
+			r.push(`nods vigorously. ${He} waits until you lean into ${him}, making ${him} shiver at your proximity, before putting ${his}`);
+			if (eventSlave.lips > 70) {
+				r.push(`ridiculous`);
+			} else if (eventSlave.lips > 40) {
+				r.push(`enormous`);
+			} else if (eventSlave.lips > 20) {
+				r.push(`pillowlike`);
+			} else {
+				r.push(`girlish`);
+			}
+			r.push(`lips next to your ear and whispering nervously, "I love you, ${Master}." ${He} recoils a little as if burned by the audacity of ${his} words, but only manages to back off a little before you gather ${his}`);
+			if (isAmputee(eventSlave)) {
+				r.push(`limbless`);
+			} else if (eventSlave.bellyPreg >= 1500) {
+				r.push(`gravid`);
+			} else if (eventSlave.belly >= 1500) {
+				r.push(belly);
+			} else {
+				r.push(`rocking`);
+			}
+			r.push(`torso into your arms, holding the back of ${his} head with one hand and rubbing ${his} quivering back with the other. Eventually, ${he} relaxes into`);
+			if (PC.boobs >= 300) {
+				if (PC.boobsImplant !== 0) {
+					r.push(`your fake breasts,`);
+				} else {
+					r.push(`your soft chest,`);
+				}
+			} else {
+				r.push(`you,`);
+			}
+			r.push(`knowing that ${his} ${getWrittenTitle(eventSlave)} can never and will never reciprocate, but <span class="devotion inc">accepting</span> that the loving physical contact is a tremendously kind gesture for a master to make.`);
+			eventSlave.devotion += 4;
+			return r;
+		}
+
+		function make() {
+			r = [];
+			r.push(`Since you suspect you know what it is ${he} wants to say, you`);
+			if (!hasAnyLegs(eventSlave)) {
+				r.push(`carry ${him} out`);
+			} else if (hasAnyArms(eventSlave)) {
+				r.push(`lead ${him} by the hand`);
+			} else {
+				r.push(`have ${him} follow you`);
+			}
+			r.push(`onto the club, busy with citizens. You tell ${him} quietly that ${he}'s to shout whatever it is ${he} wanted to say, if it's something everyone should hear; otherwise ${he}'s to keep it to ${himself}. ${He}`);
+			if (canSee(eventSlave)) {
+				r.push(`looks around`);
+			} else if (canHear(eventSlave)) {
+				r.push(`listens`);
+			} else {
+				r.push(`opens ${his} mouth`);
+			}
+			r.push(`nervously, ${his} ${eventSlave.skin} skin betraying a growing blush, before clearing ${his} throat twice, licking ${his} lips, and howling "I LOVE MY ${Master.toUpperCase()}" at the tops of ${his} lungs. When this is out of ${him} ${he} collapses a little, as though the pressure of holding it inside were propping ${him} up. This attracted a considerable amount of attention, almost all of it <span class="reputation inc">positive,</span> with many passersby laughing at the fun, and your fellow slaveowners giving you discreet winks and quiet congratulations.`);
+			repX(750, "event", eventSlave);
+			return r;
+		}
+
+		function quiet() {
+			r = [];
+			r.push(`You announce that you're finished with business for the day, and feel like some quiet time. ${He} cannot keep`);
+			if (canSee(eventSlave)) {
+				r.push(`a gleam of humor out of ${his} eye`);
+			} else {
+				r.push(`the corners of ${his} lips from rising slightly`);
+			}
+			r.push(`at`);
+			if (canHear(eventSlave)) {
+				r.push(`hearing`);
+			} else {
+				r.push(`the phrase`);
+			}
+			r.push(`'quiet time,' and ${he}`);
+			if (!hasAnyLegs(eventSlave)) {
+				r.push(`presents ${himself} to be carried`);
+			} else {
+				r.push(`follows you`);
+			}
+			r.push(`happily enough. When ${he}`);
+			if (canSee(eventSlave)) {
+				r.push(`sees`);
+			} else {
+				r.push(`realizes`);
+			}
+			r.push(`you're headed to your bedroom ${he} begins to anticipate ${his} ${getWrittenTitle(eventSlave)}'s`);
+			if (PC.dick === 0) {
+				r.push(`strap-on,`);
+			} else {
+				r.push(`cock,`);
+			}
+			r.push(`but is surprised to find that instead of using ${him} you simply`);
+			if (isAmputee(eventSlave)) {
+				r.push(`place ${him} in bed and curl up around ${his} limbless torso.`);
+			} else if (eventSlave.bellyPreg >= 5000) {
+				r.push(`help ${him} into bed and curl up with ${him}, your arms encircling ${his} prominent baby bump.`);
+			} else if (eventSlave.belly >= 5000) {
+				r.push(`help ${him} into bed and curl up with ${him}, your arms encircling ${his} ${belly} dome of a middle.`);
+			} else {
+				r.push(`climb into bed and pull ${him} under the sheets with you.`);
+			}
+			r.push(`${He}'s almost disappointed, but after looking into your resting face for a while, nestles ${his} head onto your broad chest and goes to sleep with a <span class="devotion inc">look of contentment</span> on ${his} face. When the two of you wake from your brief nap, you ask ${him} if ${he} has anything else to communicate to you. ${He} smiles sleepily and shakes ${his} head no.`);
+			eventSlave.devotion += 4;
+			return r;
+		}
+	}
+};
diff --git a/src/events/RESS/review/servantMaid.js b/src/events/RESS/review/servantMaid.js
index 30905cc0f19c77becf9872278e63a7b983905346..482d2cb3cec9e80af8fb382216266142551ec6e0 100644
--- a/src/events/RESS/review/servantMaid.js
+++ b/src/events/RESS/review/servantMaid.js
@@ -63,7 +63,7 @@ App.Events.RESSServantMaid = class RESSServantMaid extends App.Events.BaseEvent
 					r.push(`${His} pussy is visibly soaked, ironically staining the flimsy skirt of ${his} uniform as ${he} cleans your office.`);
 				}
 			}
-		} else if ((eventSlave.clothes === "a nice maid outfit")) {
+		} else if (eventSlave.clothes === "a nice maid outfit") {
 			r.push(`${His} maid uniform is fairly demure for a sex slave and makes some effort to conceal ${his} form from prying eyes, even whilst presenting an image of servitude and obedience that a classic maids' ensemble embodies so well. ${His} dress is fairly conservative, enveloping ${his} breasts in intricate lace and cloth. Likewise, ${his} apron is more than ornamental, ${eventSlave.slaveName} having stuffed it with cleaning materials and tools.`);
 			if (getLimbCount(eventSlave, 102) > 2) {
 				r.push(`Although ${his} movements rarely stray from a slight flick of ${his} wrist as ${he} dusts some surface or a gyration of ${his} body as ${he} scrubs the floor clean, ${his} P-Limbs nonetheless produce a steady stream of minute machine noises. They give ${him} the coordination ${he} needs to purge even the smallest of stains, but the multitude of gyros, servos, and other mechanical pieces constantly working to maintain it ensure that the process is far from silent.`);
diff --git a/src/events/RESS/review/soreAss.js b/src/events/RESS/review/soreAss.js
index 471ef7f471a691384e7193fbddef147acf9d7cfe..3f3932a1be7407ad514bfc96af7a3f4307ca94e5 100644
--- a/src/events/RESS/review/soreAss.js
+++ b/src/events/RESS/review/soreAss.js
@@ -34,9 +34,9 @@ App.Events.RESSSoreAss = class RESSSoreAss extends App.Events.BaseEvent {
 
 		if (!hasAnyLegs(eventSlave)) {
 			r.push(`scooting ${himself} from side to side uncomfortably,`);
-		} else if ((eventSlave.heels === 1 && shoeHeelCategory(eventSlave) === 0)) {
+		} else if (eventSlave.heels === 1 && shoeHeelCategory(eventSlave) === 0) {
 			r.push(`crawling gingerly,`);
-		} else if ((shoeHeelCategory(eventSlave) > 1)) {
+		} else if (shoeHeelCategory(eventSlave) > 1) {
 			r.push(`tottering along painfully,`);
 		} else {
 			r.push(`walking a little funny,`);
diff --git a/src/events/RESS/review/trustingHG.js b/src/events/RESS/review/trustingHG.js
new file mode 100644
index 0000000000000000000000000000000000000000..f21b3148bce8e0dad01ec0775706aa9d7d6b6f4f
--- /dev/null
+++ b/src/events/RESS/review/trustingHG.js
@@ -0,0 +1,356 @@
+App.Events.RESSTrustingHG = class RESSTrustingHG extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return []; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				canTalk,
+				s => s.trust > 50,
+				s => s.assignment === Job.HEADGIRL, // removed condition V.HeadgirlID !== 0 and eventSlave.ID === V.HeadgirlID during conversion
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			His, He, he, his, him, himself, girl, hers
+		} = getPronouns(eventSlave);
+		const {title: Master} = getEnunciation(eventSlave);
+		const belly = bellyAdjective(eventSlave);
+		const PC = V.PC;
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave, "no clothing");
+
+		let r = [];
+		r.push(
+			App.UI.DOM.slaveDescriptionDialog(eventSlave),
+			`is a busy ${girl}. Your Head Girl is heading for bed, but ${he}'s not done with the day's work just yet. ${He} walks into your office with a pensive look on ${his} face, using a tablet to fiddle with slaves' schedules for tomorrow. Since ${he} was about to retire, ${he}'s nude: you can't help but notice, in the dimmed light of nighttime in your penthouse, the way the low glow of the tablet`
+		);
+		if (eventSlave.boobs > 5000) {
+			r.push(`falls across the tops of ${his} absurd boobs, since ${he}'s forced to hold it on top of them to use it.`);
+		} else if (eventSlave.belly >= 10000) {
+			r.push(`falls across the top of ${his} ${belly}, tautly `);
+			if (eventSlave.belly >= 3000) {
+				r.push(`pregnant`);
+			} else {
+				r.push(`swollen`);
+			}
+			r.push(` belly.`);
+		} else if (!(eventSlave.chastityPenis) && canAchieveErection(eventSlave)) {
+			if (eventSlave.dick > 4) {
+				r.push(`makes ${his} perpetual, formidable erection cast a shadow.`);
+			} else if (eventSlave.dick > 2) {
+				r.push(`catches the head of ${his} stiffly erect dick.`);
+			} else {
+				r.push(`highlights ${his} stiff little girldick.`);
+			}
+		} else if (eventSlave.nipples === "huge") {
+			r.push(`throws a shadow off each of ${his} massive nipples and down the lower halves of ${his} boobs.`);
+		} else if (eventSlave.belly >= 1500) {
+			r.push(`makes ${his} rounded middle cast a shadow.`);
+		} else if (eventSlave.muscles > 95) {
+			r.push(`gives extra definition to ${his} glorious muscles.`);
+		} else if (eventSlave.weight > 95) {
+			r.push(`highlights ${his} soft belly.`);
+		} else if (eventSlave.dick > 0) {
+			r.push(`rests on the base of ${his} soft cock.`);
+		} else if (eventSlave.weight > 10) {
+			r.push(`flatters ${his} soft body.`);
+		} else {
+			r.push(`flatters ${him}.`);
+		}
+		App.Events.addParagraph(node, r);
+
+		r = [];
+		r.push(
+			`${He} did not expect to find you here, and is so preoccupied that ${he} doesn't notice you right away. When ${he} does, ${he} smiles.`,
+			Spoken(eventSlave, `"Good evening,`)
+		);
+		if (V.HGFormality === 1) {
+			r.push(Spoken(eventSlave, `${Master},"`));
+			r.push(`${he} murmurs properly, and keeps working. Only a slight blush, barely detectable in the low light, betrays ${his} consternation at not greeting you immediately.`);
+		} else if (eventSlave.trust > 95) {
+			if (PC.customTitle) {
+				if (SlaveStatsChecker.checkForLisp(eventSlave)) {
+					r.push(`${PC.customTitleLisp},"`);
+				} else {
+					r.push(`${PC.customTitle},"`);
+				}
+			} else if (PC.title !== 0) {
+				r.push(Spoken(eventSlave, `Sir,"`));
+			} else {
+				r.push(Spoken(eventSlave, `Ma'am,"`));
+			}
+			r.push(`${he} murmurs. Even in the dim light, you perceive a slight blush of pleasure from ${him} as ${he} savors the status of being allowed to call you that. ${He} goes back to working with a little smile still playing across ${his} lips.`);
+		} else {
+			r.push(`um,`);
+			if (PC.customTitle) {
+				if (SlaveStatsChecker.checkForLisp(eventSlave)) {
+					r.push(`${PC.customTitleLisp},"`);
+				} else {
+					r.push(`${PC.customTitle},"`);
+				}
+			} else if (PC.title !== 0) {
+				r.push(Spoken(eventSlave, `S-sir,"`));
+			} else {
+				r.push(`M-ma'am,"`);
+			}
+			r.push(`${he} stammers hesitantly. ${He} isn't comfortable with your permission to be less formal in private, and blushes furiously at ${his} awkwardness. ${He} takes refuge in ${his} tablet.`);
+		}
+
+		App.Events.addParagraph(node, r);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Commend ${his} service`, commend),
+			new App.Events.Result(`Share some refreshments with ${him}`, share),
+		]);
+
+		function commend() {
+			let frag = document.createDocumentFragment();
+			r = [];
+			r.push(`You clear your throat and compliment ${him}, commending ${his} work ethic, trustworthiness, and loyalty. ${He} blushes much harder as ${he} understands. "Thank you,`);
+			if (V.HGFormality === 1) {
+				r.push(`${Master}!"`);
+			} else {
+				if (PC.customTitle) {
+					if (SlaveStatsChecker.checkForLisp(eventSlave)) {
+						r.push(`${PC.customTitleLisp}!"`);
+					} else {
+						r.push(`${PC.customTitle}!"`);
+					}
+				} else if (PC.title !== 0) {
+					r.push(Spoken(eventSlave, `Sir!"`));
+				} else {
+					r.push(Spoken(eventSlave, `Ma'am!"`));
+				}
+			}
+			r.push(
+				`${he} says fervently, and gestures at the tablet.`,
+				Spoken(eventSlave, `"I've noticed a couple of the slaves working better together recently, so I'm making some minor adjustments to give them more shifts together."`)
+			);
+			App.Events.addParagraph(frag, r);
+
+			r = [];
+			r.push(`You're sure ${he}'ll do ${his} best, and you tell ${him} so. ${He} thanks you again, and you both go back to your work. Though your Head Girl continues manipulating ${his} tablet diligently, ${he} can't seem to stop ${himself} from <span class="hotpink">stealing the occasional glance at you.</span> ${His} ${App.Desc.eyesColor(eventSlave)}, dark in the dimness of the office, seem to have an unaccountable sheen.`);
+			if (V.assistant.personality !== 0) {
+				const {
+					heA, hisA, girlA, himselfA, loliA
+				} = getPronouns(assistant.pronouns().main).appendSuffix("A");
+				r.push(`${capFirstChar(V.assistant.name)}'s ${V.assistant.appearance} avatar appears on your desktop, glowing brightly, and ruins the moment. "${eventSlave.slaveName} loooves ${his} `);
+				if (PC.customTitle) {
+					r.push(`${PC.customTitle},`);
+				} else if (PC.title !== 0) {
+					r.push(`Maaaster,`);
+				} else {
+					r.push(`Miiistress,`);
+				}
+				r.push(`"${heA} taunts,`);
+				switch (V.assistant.appearance) {
+					case "monstergirl":
+						r.push(`${hisA} hair forming a heart shape.`);
+						break;
+					case "shemale":
+						r.push(`using ${hisA} hands to make a heart shape over ${hisA} balls.`);
+						break;
+					case "amazon":
+						r.push(`grinning far more sweetly than ${hisA} muscular form should be able to manage.`);
+						break;
+					case "businesswoman":
+						r.push(`though ${heA}'s blushing ${himselfA}.`);
+						break;
+					case "cherub":
+					case "fairy":
+					case "pregnant fairy":
+						r.push(`flitting around and giggling excitedly.`);
+						break;
+					case "goddess":
+						r.push(`massaging ${hisA} pregnant belly meaningfully.`);
+						break;
+					case "hypergoddess":
+						r.push(`massaging ${hisA} squirming pregnant belly meaningfully.`);
+						break;
+					case "loli":
+						r.push(`giggling playfully.`);
+						break;
+					case "preggololi":
+						r.push(`giggling playfully, though ${hisA} hands have wandered to ${hisA} crotch.`);
+						break;
+					case "angel":
+						r.push(`using ${hisA} hands to make a heart shape.`);
+						break;
+					case "incubus":
+						r.push(`using ${hisA} hands to make a heart shape around ${hisA} erection as ${heA} thrusts.`);
+						break;
+					case "succubus":
+						if (PC.dick !== 0) {
+							r.push(`forms an "O" with ${hisA} lips and makes exaggerated head bobbing motions.`);
+						} else {
+							r.push(`forms a "V" with ${hisA} fingers and wiggles ${hisA} tongue in it.`);
+						}
+						break;
+					case "imp":
+						r.push(`flapping around and cackling manically.`);
+						break;
+					case "witch":
+						r.push(`while holding out a mostly empty vial of love potion.`);
+						break;
+					case "ERROR_1606_APPEARANCE_FILE_CORRUPT":
+						r.push(`forming half of ${himselfA} into an enormous pussy, the other into a giant dick, and introducing the two to each other.`);
+						break;
+					case "schoolgirl":
+						r.push(`the very picture of a malicious school${girlA}.`);
+						break;
+					default:
+						r.push(`turning ${hisA} avatar a throbbing pink.`);
+				}
+				App.Events.addParagraph(frag, r);
+				r = [];
+				r.push(
+					`Your Head Girl turns a darker shade of red.`,
+					Spoken(eventSlave, `"Oh, shut up, you little`)
+				);
+				switch (V.assistant.appearance) {
+					case "monstergirl":
+						r.push(Spoken(eventSlave, `monster,"`));
+						break;
+					case "shemale":
+						r.push(Spoken(eventSlave, `cockmonster,"`));
+						break;
+					case "amazon":
+						r.push(Spoken(eventSlave, `dyke,"`));
+						break;
+					case "businesswoman":
+						r.push(Spoken(eventSlave, `witch,"`));
+						break;
+					case "fairy":
+					case "pregnant fairy":
+						r.push(Spoken(eventSlave, `mosquito,"`));
+						break;
+					case "goddess":
+					case "hypergoddess":
+						r.push(Spoken(eventSlave, `cow,"`));
+						break;
+					case "loli":
+						r.push(Spoken(eventSlave, `midget,"`));
+						break;
+					case "preggololi":
+						r.push(Spoken(eventSlave, `slut ${loliA},"`));
+						break;
+					case "angel":
+						r.push(Spoken(eventSlave, `turkey,"`));
+						break;
+					case "cherub":
+						r.push(Spoken(eventSlave, `dove,"`));
+						break;
+					case "incubus":
+						r.push(Spoken(eventSlave, `dick,"`));
+						break;
+					case "succubus":
+						r.push(Spoken(eventSlave, `cunt,"`));
+						break;
+					case "imp":
+						r.push(Spoken(eventSlave, `bat,"`));
+						break;
+					case "witch":
+						r.push(Spoken(eventSlave, `blunderer,"`));
+						break;
+					case "ERROR_1606_APPEARANCE_FILE_CORRUPT":
+						r.push(Spoken(eventSlave, `shapeshifter,"`));
+						break;
+					case "schoolgirl":
+						r.push(Spoken(eventSlave, `slut,"`));
+						break;
+					default:
+						r.push(Spoken(eventSlave, `toaster,"`));
+				}
+				r.push(`${he} says cattily, but ${he} smiles as well.`);
+			}
+			eventSlave.devotion += 4;
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function share() {
+			let frag = document.createDocumentFragment();
+			r = [];
+			r.push(`You reach into the back of your desk, where your private reserves are, and wordlessly offer ${him} a`);
+			if (PC.refreshmentType === 0) { // TODO: consider making this a global function since it's used in multiple events
+				r.push(`${PC.refreshment}.`);
+			} else if (PC.refreshmentType === 1) {
+				r.push(`glass of ${PC.refreshment}.`);
+			} else if (PC.refreshmentType === 2) {
+				r.push(`plate of ${PC.refreshment}.`);
+			} else if (PC.refreshmentType === 3) {
+				r.push(`line of ${PC.refreshment}.`);
+			} else if (PC.refreshmentType === 4) {
+				r.push(`syringe of ${PC.refreshment}.`);
+			} else if (PC.refreshmentType === 5) {
+				r.push(`pill of ${PC.refreshment}.`);
+			} else if (PC.refreshmentType === 6) {
+				r.push(`tab of ${PC.refreshment}.`);
+			}
+			r.push(`${He} stares at you disbelievingly for a moment before stammering ${his} thanks and accepting it with both hands. ${He} holds it uncertainly, watching you get one yourself.`);
+			App.Events.addParagraph(frag, r);
+			r = [];
+			r.push(`${He} is first among your slaves, but ${he} is still very much a slave. ${He} neither receives nor expects`);
+			if (PC.refreshmentType === 0) {
+				r.push(`indulgences like tobacco and other smokables. Carcinogens are sometimes the necessary side effects of slave body modification, not an acceptable downside of luxury.`);
+			} else if (PC.refreshmentType === 1) {
+				r.push(`drink other than what the slave feeding systems provide ${him}. ${He} might be your Head Girl, but the liquid food keeps ${his} libido charged, ${his} body healthy, and ${his} asshole invitingly clean, just like any other slave.`);
+			} else if (PC.refreshmentType === 2) {
+				r.push(`food other than what the slave feeding systems provide ${him}. ${He} might be your Head Girl, but the liquid food keeps ${his} libido charged, ${his} body healthy, and ${his} asshole invitingly clean, just like any other slave.`);
+			} else {
+				r.push(`drugs other than what the drug dispensers provide ${him}. Addictive drugs are rarely provided to slaves, replaced instead with slightly healthier, but no less addictive, aphrodisiacs.`);
+			}
+			r.push(`But it'll do no harm, just this once, and you tell ${him} so. ${He} nods, not wanting to spoil the moment by speaking.`);
+			App.Events.addParagraph(frag, r);
+			r = [];
+			if (PC.refreshmentType === 0) {
+				r.push(`After you light ${his} ${PC.refreshment} for ${him}, ${he} holds the `);
+				if (canTaste(eventSlave)) {
+					r.push(`first taste`);
+				} else {
+					r.push(`feeling`);
+				}
+				r.push(` of its smoke in ${his} mouth for a long, sensual moment before letting it trickle back out through ${his} lips.`);
+			} else if (PC.refreshmentType === 1 || PC.refreshmentType === 2) {
+				r.push(`${He} holds the `);
+				if (canTaste(eventSlave)) {
+					r.push(`first taste`);
+				} else {
+					r.push(`feeling`);
+				}
+				r.push(` of it in ${his} mouth for a long, sensual moment before swallowing reverently.`);
+			} else {
+				r.push(`${He} savors the thrill of using ${PC.refreshment} for a moment, before turning to you, an almost desperate need on ${his} face.`);
+			}
+			r.push(`You return to work, and ${he} follows your example, though ${he}'s rather distracted. When ${he} finishes ${hers}, ${he} sets ${his} tablet down for a moment and comes over to you, doing ${his} best to show ${his} naked body to its best advantage as ${he} comes. ${He} gives you a deep kiss,`);
+			if (PC.refreshmentType === 0 || PC.refreshmentType === 1 || PC.refreshmentType === 2) {
+				r.push(`which tastes of fine ${PC.refreshment}, with a hint of ${eventSlave.slaveName},`);
+			} else {
+				r.push(`with plenty of tongue,`);
+			}
+			r.push(`and then goes back to work, <span class="mediumaquamarine">smiling unconsciously</span> as ${he} savors the lingering `);
+			if (PC.refreshmentType === 3 || PC.refreshmentType === 4 || PC.refreshmentType === 5 || PC.refreshmentType === 6) {
+				r.push(`rush.`);
+			} else {
+				if (canTaste(eventSlave)) {
+					r.push(`flavor.`);
+				} else {
+					r.push(`sensation.`);
+				}
+			}
+			eventSlave.trust += 4;
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+	}
+};
diff --git a/src/events/RESS/review/usedWhore.js b/src/events/RESS/review/usedWhore.js
new file mode 100644
index 0000000000000000000000000000000000000000..8b1e4879304f5e198c8f2a016ec6204e01fdfafe
--- /dev/null
+++ b/src/events/RESS/review/usedWhore.js
@@ -0,0 +1,520 @@
+App.Events.RESSUsedWhore = class RESSUsedWhore extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return []; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				s => [Job.PUBLIC, Job.WHORE].includes(s.assignment),
+				s => s.vagina !== 0,
+				s => s.anus !== 0,
+				canDoAnal,
+				s => s.devotion <= 50,
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			His, He, he, his, him, himself, girl
+		} = getPronouns(eventSlave);
+		const {title: Master, say} = getEnunciation(eventSlave);
+		const belly = bellyAdjective(eventSlave);
+		const PC = V.PC;
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave, "no clothing");
+
+		let r = [];
+		r.push(
+			`At the end of a long day, you take a moment to watch the comings and goings of your arcology to decompress. While doing so, you notice someone who's clearly had a longer day than you.`,
+			contextualIntro(PC, eventSlave, "DOM"),
+			`is`
+		);
+		if (eventSlave.belly >= 5000) {
+			r.push(`slowly waddling, one hand under ${his} ${belly}`);
+			if (eventSlave.bellyPreg >= 3000) {
+				r.push(`pregnant`);
+			}
+			r.push(`belly and the other on the small of ${his} back,`);
+		} else {
+			r.push(`making`);
+		}
+		r.push(`${his} tired way back to the kitchen for a meal and then bed after a long day of sex work. ${He}'s stripped off ${his} soiled clothes already, and is clearly too tired to care about nudity at all.`);
+		App.Events.addParagraph(node, r);
+
+		r = [];
+		r.push(`${He} comes around the corner and`);
+		if (PC.belly >= 100000) {
+			r.push(`slams into your massively distended belly, nearly knocking you over.`);
+		} else if (PC.belly >= 10000) {
+			r.push(`bumps into your heavily gravid middle.`);
+		} else if (PC.belly >= 5000) {
+			r.push(`bumps into your rounded middle.`);
+		} else if (PC.balls >= 14) {
+			r.push(`nearly knees your prominent testicles.`);
+		} else if (PC.boobs >= 800) {
+			r.push(`runs into your prominent rack.`);
+		} else {
+			r.push(`almost runs into you.`);
+		}
+		r.push(`${He} stops and`);
+		if (canSee(eventSlave)) {
+			r.push(`stares,`);
+		} else {
+			r.push(`faces you,`);
+		}
+		r.push(`struggling to find the appropriate thing to say or do, but too exhausted to manage it. Even though ${he}'s been obediently cleaning ${himself} between fucks, ${he} looks used up. ${His} ${eventSlave.skin} skin is reddened here and there.`);
+		if (eventSlave.belly >= 750000) {
+			r.push(`${His} ${belly} belly is heavily bruised, the super-stretched skin nearly at its limit from the weight put on it and the forces pushing against it.`);
+		} else if (eventSlave.belly >= 600000) {
+			r.push(`${His} ${belly} belly is deep red and heavily bruised; it's clear that at least one client roughly fucked ${him} over it.`);
+		} else if (eventSlave.belly >= 450000) {
+			r.push(`${His} ${belly} belly looks extremely painful, it's obvious ${he} got fucked over it.`);
+		} else if (eventSlave.belly >= 300000) {
+			r.push(`${His} ${belly} belly is black and blue, it's obvious ${he} got fucked over it.`);
+		} else if (eventSlave.belly >= 150000) {
+			r.push(`${His} ${belly} belly is heavily chafed from rubbing the floor as ${he} struggled to keep ${his} weight off it.`);
+		} else if (eventSlave.belly >= 100000) {
+			r.push(`${His} ${belly} belly is heavily chafed from rubbing against the floor.`);
+		} else if (eventSlave.belly >= 10000) {
+			r.push(`The tip of ${his} huge belly is chafed from rubbing against the floor.`);
+		}
+		if (canDoVaginal(eventSlave)) {
+			r.push(`${His}`);
+			if (eventSlave.labia > 1) {
+				r.push(`generous`);
+			} else {
+				r.push(`poor`);
+			}
+			r.push(`pussylips are puffy, and you have no doubt ${his} vagina is quite sore.`);
+		}
+		if (canDoAnal(eventSlave)) {
+			r.push(`The awkward way ${he}'s standing suggests that ${his}`);
+			if (eventSlave.anus > 2) {
+				r.push(`gaping`);
+			} else if (eventSlave.anus > 1) {
+				r.push(`big`);
+			} else {
+				r.push(`tight`);
+			}
+			r.push(`asshole has had more than one dick up it recently.`);
+		}
+		if (eventSlave.nipples !== "fuckable") {
+			r.push(`Even ${his} nipples are pinker than usual, having been cruelly pinched`);
+			if (eventSlave.lactation > 0) {
+				r.push(`and milked`);
+			}
+			r.push(r.pop() + `.`);
+			if (eventSlave.lactation > 0) {
+				eventSlave.lactationDuration = 2;
+				eventSlave.boobs -= eventSlave.boobsMilk;
+				eventSlave.boobsMilk = 0;
+			} else {
+				r.push(induceLactation(eventSlave, 2));
+			}
+		} else {
+			r.push(`Even ${his} nipples show signs of wear, having prolapsed slightly from heavy use.`);
+		}
+
+		App.Events.addParagraph(node, r);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Use ${him} anyway`, anyway),
+			new App.Events.Result(`Manipulate ${him} into asking to suck you off`, manipulate),
+			new App.Events.Result(`Just talk with ${him}`, talk),
+		]);
+
+		function anyway() {
+			r = [];
+			r.push(`You reach out, grab ${his} shoulder, and shove ${him} against the wall.`);
+			if (!canTalk(eventSlave)) {
+				r.push(`${He} manages to use a gesture to beg you not to,`);
+			} else {
+				r.push(
+					`${He} manages to beg,`,
+					Spoken(eventSlave, `"Please no, ${Master}—"`)
+				);
+			}
+			r.push(`before you give ${him} a hard warning slap on the ass to shut ${him} up. ${He}'s quiet, but starts to sob a little when ${he} feels`);
+			if (PC.dick === 0) {
+				r.push(`the head of a strap-on`);
+			} else {
+				r.push(`your cock`);
+			}
+			r.push(`against ${his}`);
+			if (canDoAnal(eventSlave)) {
+				r.push(`anus.`);
+				if (eventSlave.anus > 2) {
+					r.push(`It's gaped before you even touch it, but it's clearly sore enough that ${he} dreads anal anyway.`);
+				} else if (eventSlave.anus > 1) {
+					r.push(`It's been fucked loose, but it's clearly sore enough that ${he} dreads anal anyway.`);
+				} else {
+					r.push(`It's somehow not gaped yet, and ${he} dreads having it stretched yet again.`);
+				}
+				if (eventSlave.height >= 185) {
+					r.push(`${He}'s tall enough that the angle isn't that uncomfortable for ${him}.`);
+				} else if (eventSlave.anus > 0) {
+					r.push(`${He} hikes ${himself} desperately up on ${his} tiptoes to make the angle less uncomfortable for ${him}.`);
+				} else {
+					r.push(`${He} hikes ${himself} desperately up on ${his} tiptoes, but ${he}'s so short the angle is desperately uncomfortable for ${him}.`);
+				}
+				r.push(`${He} decides to try begging one last time, and`);
+				if (canDoVaginal(eventSlave)) {
+					if (!canTalk(eventSlave)) {
+						r.push(`signs to ask you to use ${his} pussy instead`);
+					} else {
+						r.push(
+							`whines,`,
+							Spoken(eventSlave, `"Just use my pussy, please!"`)
+						);
+					}
+				} else {
+					if (!canTalk(eventSlave)) {
+						r.push(`signs to ask you to let ${him} suck you off instead`);
+					} else {
+						r.push(
+							`whines,`,
+							Spoken(eventSlave, `"Let me suck you off, please!"`)
+						);
+					}
+				}
+				r.push(`as you shove`);
+				if (PC.dick === 0) {
+					r.push(`the strap-on`);
+				} else {
+					r.push(`yourself`);
+				}
+				r.push(`up ${his} butt. ${He} reflexively tries to get away into the wall,`);
+				if (eventSlave.belly > 100000) {
+					r.push(`${his} ${belly} belly squashing out to either side.`);
+				} else if (eventSlave.boobs > 2000) {
+					r.push(`${his} enormous boobs squashing out to either side.`);
+				} else if (eventSlave.boobs > 1000) {
+					r.push(`${his} big boobs squashing out to either side.`);
+				} else if (eventSlave.boobs > 300) {
+					r.push(`${his} boobs crashing into it.`);
+				} else {
+					r.push(`${his} sore nipples giving ${him} a jerk as ${he} does.`);
+				}
+				r.push(`After some continued whining through ${his} tears, ${he} gives up and just <span class="trust dec">lets you</span> rape ${his} sore ass.`);
+				r.push(VCheck.Anal(eventSlave, 1));
+			} else {
+				r.push(`pussy lips.`);
+				if (eventSlave.vagina > 2) {
+					r.push(`It's gaped before you even touch it, but it's clearly sore enough that ${he} dreads penetration anyway.`);
+				} else if (eventSlave.vagina > 1) {
+					r.push(`It's been fucked loose, but it's clearly been used enough that ${he} dreads penetration anyway.`);
+				} else {
+					r.push(`It's somehow not loose yet, and ${he} dreads having it stretched yet again.`);
+				}
+				if (eventSlave.height >= 185) {
+					r.push(`${He}'s tall enough that the angle isn't that uncomfortable for ${him}.`);
+				} else if (eventSlave.anus > 0) {
+					r.push(`${He} hikes ${himself} desperately up on ${his} tiptoes to make the angle less uncomfortable for ${him}.`);
+				} else {
+					r.push(`${He} hikes ${himself} desperately up on ${his} tiptoes, but ${he}'s so short the angle is desperately uncomfortable for ${him}.`);
+				}
+				r.push(`${He} decides to try begging one last time, and`);
+				if (!canTalk(eventSlave)) {
+					r.push(`signs to ask you to let ${him} suck you off instead`);
+				} else {
+					r.push(
+						`whines,`,
+						Spoken(eventSlave, `"Let me suck you off, please!"`)
+					);
+				}
+				r.push(`as you shove`);
+				if (PC.dick === 0) {
+					r.push(`the strap-on`);
+				} else {
+					r.push(`yourself`);
+				}
+				r.push(`up ${his} cunt. ${He} reflexively tries to get away into the wall,`);
+				if (eventSlave.belly > 100000) {
+					r.push(`${his} ${belly} belly squashing out to either side.`);
+				} else if (eventSlave.boobs > 2000) {
+					r.push(`${his} enormous boobs squashing out to either side.`);
+				} else if (eventSlave.boobs > 1000) {
+					r.push(`${his} big boobs squashing out to either side.`);
+				} else if (eventSlave.boobs > 300) {
+					r.push(`${his} boobs crashing into it.`);
+				} else {
+					r.push(`${his} sore nipples giving ${him} a jerk as ${he} does.`);
+				}
+				r.push(`After some continued whining through ${his} tears, ${he} gives up and just <span class="trust dec">lets you</span> rape ${his} sore vagina.`);
+				r.push(VCheck.Vaginal(eventSlave, 1));
+			}
+			r.push(`When you finally`);
+			if (PC.dick !== 0) {
+				r.push(`fill ${his}`);
+				if (canDoAnal(eventSlave)) {
+					r.push(`butt`);
+				} else {
+					r.push(`pussy`);
+				}
+				r.push(`with your ejaculate and pull out,`);
+				if (PC.vagina !== -1) {
+					r.push(`the motion releasing a waft of the combined cum and pussyjuice smell of a satisfied futa,`);
+				}
+			} else {
+				r.push(`shudder with orgasm and withdraw your strap-on,`);
+			}
+			r.push(`${he} slumps and turns to go, looking a bit sad for some reason.`);
+			eventSlave.trust += 4;
+			return r;
+		}
+
+		function manipulate() {
+			r = [];
+			r.push(`You reach out, grab ${his} shoulder, and shove ${him} against the wall.`);
+			if (!canTalk(eventSlave)) {
+				r.push(`${He} manages to use a gesture to beg you not to,`);
+			} else {
+				r.push(
+					`${He} manages to beg,`,
+					Spoken(eventSlave, `"Please no, ${Master}—"`)
+				);
+			}
+			r.push(`before you give ${him} a hard warning slap on the ass to shut ${him} up. ${He}'s quiet, but starts to sob a little when ${he} feels`);
+			if (PC.dick === 0) {
+				r.push(`the head of a strap-on`);
+			} else {
+				r.push(`an invading`);
+				if (PC.vagina !== -1) {
+					r.push(`futa`);
+				}
+				r.push(`cockhead`);
+			}
+			r.push(`against ${his}`);
+			if (canDoAnal(eventSlave)) {
+				r.push(`anus.`);
+				if (eventSlave.anus > 2) {
+					r.push(`It's gaped before you even touch it, but it's clearly sore enough that ${he} dreads anal anyway.`);
+				} else if (eventSlave.anus > 1) {
+					r.push(`It's been fucked loose, but it's clearly sore enough that ${he} dreads anal anyway.`);
+				} else {
+					r.push(`It's somehow not gaped yet, and ${he} dreads having it stretched yet again.`);
+				}
+			} else {
+				r.push(`pussy lips.`);
+				if (eventSlave.vagina > 2) {
+					r.push(`It's gaped before you even touch it, but it's clearly sore enough that ${he} dreads penetration anyway.`);
+				} else if (eventSlave.vagina > 1) {
+					r.push(`It's been fucked loose, but it's clearly been used enough that ${he} dreads penetration anyway.`);
+				} else {
+					r.push(`It's somehow not loose yet, and ${he} dreads having it stretched yet again.`);
+				}
+			}
+			r.push(`${He}`);
+			if (!canTalk(eventSlave)) {
+				r.push(`signs let ${him} suck you off instead.`);
+			} else {
+				r.push(
+					`whines,`,
+					Spoken(eventSlave, `"Let me suck you off, please!"`)
+				);
+			}
+			r.push(`Having gotten ${him} to beg for what you wanted all along, you spin ${him} so ${his}`);
+			if (eventSlave.weight > 160) {
+				r.push(`rippling`);
+			} else if (eventSlave.weight > 95) {
+				r.push(`fat`);
+			} else if (eventSlave.muscles > 95) {
+				r.push(`powerful`);
+			} else if (eventSlave.muscles > 30) {
+				r.push(`strong`);
+			} else if (eventSlave.muscles > 5) {
+				r.push(`toned`);
+			} else {
+				r.push(`feminine`);
+			}
+			r.push(`back hits the wall with a smack and shove ${him} down it until ${his}`);
+			if (eventSlave.lips > 70) {
+				r.push(`massive`);
+			} else if (eventSlave.lips > 40) {
+				r.push(`pillowlike`);
+			} else if (eventSlave.lips > 20) {
+				r.push(`girlish`);
+			} else if (eventSlave.lips > 10) {
+				r.push(`average`);
+			} else {
+				r.push(`minuscule`);
+			}
+			r.push(`lips are level with your`);
+			if (PC.dick === 0) {
+				r.push(`fake dick,`);
+			} else {
+				r.push(`dick,`);
+			}
+			if (eventSlave.belly >= 100000) {
+				r.push(`straddle ${his} ${belly} belly,`);
+			}
+			r.push(`and push it into ${his} mouth without waiting for ${him} to get ready. ${He} gags, but does ${his} best to work ${his} tired mouth. When you're finally satisfied and you let ${him} up, you aim another slap at ${his}`);
+			if (eventSlave.butt > 12) {
+				r.push(`inhuman ass`);
+			} else if (eventSlave.butt > 5) {
+				r.push(`massive ass`);
+			} else if (eventSlave.butt > 2) {
+				r.push(`big butt`);
+			} else if (eventSlave.butt > 0) {
+				r.push(`nice ass`);
+			} else {
+				r.push(`flat ass`);
+			}
+			r.push(`and let ${him} see it coming; ${he} <span class="devotion inc">accepts</span> the spank due to fright at what you might do if ${he} dodged before fleeing.`);
+			eventSlave.devotion += 4;
+			seX(eventSlave, "oral", PC, "penetrative");
+			return r;
+		}
+
+		function talk() {
+			const frag = document.createDocumentFragment();
+			r = [];
+			r.push(`You take ${him} by the hand, lead ${him} to a nearby couch, and sit down with ${him}, letting ${him} seat ${himself} beside you so ${he} can`);
+			if (eventSlave.belly >= 5000) {
+				r.push(`rest ${his}`);
+				if (eventSlave.bellyPreg >= 3000) {
+					r.push(`gravid`);
+				}
+				r.push(`bulk against you`);
+			} else {
+				r.push(`lean against you`);
+			}
+			r.push(`without putting too much weight on ${his} poor overused butthole. You ask ${him} about ${his} day.`);
+			if (!canTalk(eventSlave)) {
+				r.push(`${He} uses gestures to recount it through ${his} tears. Apparently while one guy was using ${his} anus, another thought it was hot and waited for him to be done before using ${him} in turn, without letting ${him} rest or clean ${himself}. It took four cocks total for another slave to notice and rescue ${him}.`);
+			} else {
+				r.push(
+					`${He} ${say}s, a little tearfully,`,
+					Spoken(eventSlave, `"${Master}, this guy wanted to use my butt in public. So of course I let him, and he made me sit in his lap to do it, and held my ${hasBothLegs(eventSlave) ? `legs` : "leg"} back so everyone could see! And then another guy thought it was hot and waited, and then fucked me in my ass too. Another slave finally noticed and rescued me after four cocks, ${Master}. I'm really sore."`)
+				);
+			}
+			r.push(`${He}`);
+			if (canSee(eventSlave)) {
+				r.push(`looks up at you with big ${App.Desc.eyesColor(eventSlave)}`);
+			} else {
+				r.push(`gazes at you`);
+			}
+			r.push(`for a long moment, a final tear leaking down ${his} ${eventSlave.skin} cheek, before ${he} suddenly`);
+			if (!canTalk(eventSlave)) {
+				r.push(`shakes with mute laughter.`);
+			} else {
+				r.push(`giggles.`);
+			}
+			r.push(`${He} explains ${himself} after a while: it's not what ${he} thought ${he}'d be doing with ${his} life,`);
+			switch (eventSlave.career) {
+				case "a bioreactor":
+				case "a breeder":
+				case "a breeding bull":
+				case "a dairy cow":
+				case "a dairy slave":
+				case "a Fuckdoll":
+				case "a Futanari Sister":
+				case "a slave":
+				case "a slave since birth":
+				case 0:
+					r.push(`once upon a time.`);
+					break;
+				default:
+					r.push(`back when ${he} was ${convertCareer(eventSlave)}.`);
+			}
+			if (!canTalk(eventSlave)) {
+				r.push(`${He} points to ${himself} and uses both hands to mimic sodomy, as though to suggest that's all ${he} is, before giving you a rueful smile.`);
+			} else {
+				r.push(
+					Spoken(eventSlave, `"${eventSlave.slaveName} the butthole ho, that's me,"`),
+					`${he} ${say}s sadly, before giving you a rueful smile.`
+				);
+			}
+			r.push(`${He} kisses you on the cheek and <span class="trust inc">thanks you</span> for listening instead of raping ${him}.`);
+			eventSlave.trust += 4;
+
+			App.Events.addParagraph(frag, r);
+			App.Events.addResponses(frag, [
+				new App.Events.Result(`Kiss ${him} back`, kiss),
+				new App.Events.Result(`Rape ${him}`, rape),
+			]);
+			return frag;
+
+			function kiss() {
+				r = [];
+				r.push(`You turn to kiss ${him} back, on the lips this time. ${He}`);
+				if (canSee(eventSlave)) {
+					r.push(`sees`);
+				} else {
+					r.push(`feels`);
+				}
+				r.push(`your intention and <span class="trust inc">complies trustingly,</span> closing ${his} eyes and tilting ${his} head slightly so your lips lock perfectly.`);
+				if (eventSlave.lips > 70) {
+					r.push(`${His} ridiculous, pillowlike lips part softly.`);
+				} else if (eventSlave.teeth === "pointy") {
+					r.push(`${He} opens ${his} jaw wide, careful to keep ${his} shark's teeth well clear of you.`);
+				} else if (eventSlave.teeth === "fangs") {
+					r.push(`${He} keeps ${his} jaw steady so you may work around ${his} fangs easier.`);
+				} else if (eventSlave.teeth === "fang") {
+					r.push(`You try your best to work around ${his} lone fang.`);
+				}
+				r.push(`After a few seconds, ${he} realizes you aren't planning to break the kiss anytime soon, and softens, ${his}`);
+				if (eventSlave.bellyPreg >= 1500) {
+					r.push(`pregnant`);
+				}
+				r.push(`body relaxing against yours. ${He} scoots closer to you, bringing ${his} legs up under ${him} on the couch cushions so ${he} can face you comfortably. ${He} leans one`);
+				if (eventSlave.weight > 160) {
+					r.push(`extremely well padded`);
+				} else if (eventSlave.weight > 95) {
+					r.push(`well padded`);
+				} else if (eventSlave.muscles > 30) {
+					r.push(`muscular`);
+				} else if (eventSlave.weight > 10) {
+					r.push(`plush`);
+				} else if (eventSlave.hips > -1) {
+					r.push(`pretty`);
+				}
+				r.push(`hip against your leg, hiking ${himself} half onto your lap so ${he} can make out with you without having to sit with any weight on ${his} sore butthole.`);
+				eventSlave.trust += 2;
+				return r;
+			}
+
+			function rape() {
+				r = [];
+				r.push(`But ${he}'s wrong to place that kind of faith in you. As ${he} withdraws from the kiss, you snake a betraying hand between ${his} butt and the couch, and shove`);
+				if (eventSlave.anus <= 1) {
+					r.push(`two rude fingers up ${his} sore little anus.`);
+				} else if (eventSlave.anus === 2) {
+					r.push(`three rude fingers up ${his} sore anus.`);
+				} else {
+					r.push(`all four of your fingers and your thumb, formed into a point, as far up ${his} loose butt as they will go.`);
+				}
+				r.push(`${He} lets out a pained "oh," and then goes silent. For such a little sound, it bears a great weight of <span class="trust dec">betrayed trust.</span> You insert your fingers to the knuckle, making ${him} writhe with discomfort, and then turf ${him} off the couch to land`);
+				if (eventSlave.belly >= 300000) {
+					r.push(`across ${his} ${belly} stomach`);
+				} else {
+					r.push(`face first`);
+				}
+				r.push(`on the floor in front of you. ${He} tries to spread ${his} butt and angle ${his} hips like a good ${girl}, but you slap ${his} hands away and push your`);
+				if (PC.dick === 0) {
+					r.push(`strap-on`);
+				} else {
+					r.push(`cock`);
+				}
+				r.push(`inside ${him} without regard for ${his} poor anus. ${He} shudders and begins to cry, and keeps crying as you ravage ${his} asshole. When you climax and pull out, ${he} continues to weep, but stumbles off to wash. When ${he} comes back, ${he}'s still sniffling, but without being prompted,`);
+				if (eventSlave.belly >= 300000) {
+					r.push(`<span class="devotion inc">${he} leans over ${his} belly and offers you ${his} sore butthole again.</span>`);
+				} else {
+					r.push(`<span class="devotion inc">${he} gets down on ${his} knees and offers you ${his} sore butthole again.</span>`);
+				}
+				eventSlave.trust -= 4;
+				eventSlave.devotion += 5;
+				r.push(VCheck.Anal(eventSlave, 1));
+				return r;
+			}
+		}
+	}
+};
diff --git a/src/events/RESS/review/vocalDisobedience.js b/src/events/RESS/review/vocalDisobedience.js
new file mode 100644
index 0000000000000000000000000000000000000000..407b893a24636dff057f0288728ae7b1f9e8050f
--- /dev/null
+++ b/src/events/RESS/review/vocalDisobedience.js
@@ -0,0 +1,223 @@
+App.Events.RESSVocalDisobedience = class RESSVocalDisobedience extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return []; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				canTalk,
+				s => s.assignment !== Job.QUARTER,
+				s => s.devotion < -50,
+				s => s.trust >= -20,
+				s => s.rules.speech === "restrictive"
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			His, He, he, his, him
+		} = getPronouns(eventSlave);
+		const {title: Master} = getEnunciation(eventSlave);
+		const rudeTitle = eventSlave.rudeTitle === 1 ? PoliteRudeTitle(eventSlave) : Master;
+		const belly = bellyAdjective(eventSlave);
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, eventSlave, "no clothing");
+
+		let r = [];
+		r.push(
+			`One morning, despite the fact that ${he} is not allowed to speak without being spoken to,`,
+			contextualIntro(V.PC, eventSlave, "DOM"),
+		);
+		if (canSee(eventSlave)) {
+			r.push(`looks you directly in the eye`);
+		} else {
+			r.push(`faces you`);
+		}
+		r.push(`and asks`);
+		if (SlaveStatsChecker.checkForLisp(eventSlave)) {
+			r.push(`boldly through ${his}`);
+			if (eventSlave.lips > 70) {
+				r.push(`massive dick-sucking lips,`);
+			} else if (eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2) {
+				r.push(`inconvenient oral piercings,`);
+			} else {
+				r.push(`lisp,`);
+			}
+			r.push(
+				Spoken(eventSlave, `"I'm tired, can I have the day off?"`),
+				`${He} didn't even call you ${getWrittenTitle(eventSlave)}.`
+			);
+		} else {
+			r.push(
+				`boldly,`,
+				Spoken(eventSlave, `"I'm tired, can I have the day off, ${rudeTitle}?"`)
+			);
+		}
+
+		App.Events.addParagraph(node, r);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Give ${him} a rough spanking`, spanking, virginityWarning()),
+			(canDoAnal(eventSlave) || canDoVaginal(eventSlave))
+				? new App.Events.Result(`Sentence ${him} to public use`, sentence, virginityWarning())
+				: new App.Events.Result(),
+			new App.Events.Result(`Give ${him} the day off`, off),
+		]);
+
+		function virginityWarning() {
+			if ((eventSlave.anus === 0 && canDoAnal(eventSlave)) || (eventSlave.vagina === 0 && canDoVaginal(eventSlave))) {
+				return `This option will take ${his} virginity`;
+			}
+		}
+
+		function spanking() {
+			r = [];
+			if (hasAnyLegs(eventSlave)) {
+				r.push(`You tie the protesting slave to your desk`);
+				if (eventSlave.belly >= 5000) {
+					r.push(`with ${his} chest against the top of the desk with ${his} ${belly}`);
+					if (eventSlave.bellyPreg >= 3000) {
+						r.push(`pregnant`);
+					}
+					r.push(`belly hanging of the side, so that`);
+				} else {
+					r.push(`so that ${his} chest is against the top of the desk and`);
+				}
+				r.push(`${he}'s standing upright with ${his} ass in the air.`);
+			} else {
+				if (eventSlave.belly >= 300000) {
+					r.push(`You carefully balance the protesting, defenseless torso atop ${his} own ${belly}`);
+					if (eventSlave.bellyPreg >= 3000) {
+						r.push(`pregnancy.`);
+					} else {
+						r.push(`stomach.`);
+					}
+				} else if (eventSlave.belly >= 5000) {
+					r.push(`You place the protesting, defenseless torso on your lap, face-down with ${his} ${belly}`);
+					if (eventSlave.bellyPreg >= 3000) {
+						r.push(`pregnant`);
+					}
+					r.push(`belly between your legs.`);
+				} else {
+					r.push(`You place the protesting, defenseless torso on your desk, face-down.`);
+				}
+			}
+			r.push(`You spank ${him} severely, leaving ${his} buttocks bright pink. ${He} must count the strokes or have ${his} punishment start over. Sobbing, ${he} counts`);
+			if (eventSlave.lips > 70) {
+				r.push(`through ${his} massive dick-sucking lips,`);
+			} else if (eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2) {
+				r.push(`through ${his} inconvenient oral piercings`);
+			}
+			r.push(
+				Spoken(eventSlave, `"Six, AAGHHH, seven, AAGHHH, seven"`),
+				`and then realizes ${his} mistake and begs for mercy — in vain, of course. You finish ${him} off with a rough`
+			);
+			if (canDoVaginal(eventSlave)) {
+				r.push(`fuck, with ${him} jerking against ${his} restraints every time you stroke into ${his} sore buttocks.`);
+				r.push(VCheck.Vaginal(eventSlave, 1));
+			} else if (canDoAnal(eventSlave)) {
+				r.push(`assfuck, with ${him} jerking against ${his} restraints every time you stroke into ${his} sore buttocks.`);
+				r.push(VCheck.Anal(eventSlave, 1));
+			} else {
+				r.push(`throatfuck, with ${him} jerking against ${his} restraints every time you hilt yourself and slap ${his} ass.`);
+				seX(eventSlave, "oral", V.PC, "penetrative");
+			}
+			r.push(`<span class="trust dec">${He} learns from the experience.</span>`);
+			eventSlave.trust -= 5;
+			return r;
+		}
+
+		function sentence() {
+			r = [];
+			r.push(`When ${he}`);
+			if (canSee(eventSlave)) {
+				r.push(`sees ${he}'s being taken to a sex booth,`);
+			} else if (canHear(eventSlave)) {
+				r.push(`hears the sounds of a public sex parlor,`);
+			} else {
+				r.push(`finally figures out ${his} destination,`);
+			}
+			r.push(`${he} begins to cry. ${He} begs`);
+			if (eventSlave.lips > 70) {
+				r.push(`through ${his} massive dick-sucking lips,`);
+			} else if (eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2) {
+				r.push(`through ${his} inconvenient oral piercings,`);
+			} else {
+				r.push(`through ${his} tears,`);
+			}
+			r.push(
+				Spoken(eventSlave, `"Please, no, ${Master}, I'll be good —"`),
+				`but is cut off when the machine closes around ${his} head. It will offer ${his}`
+			);
+			if (canDoAnal(eventSlave) && canDoVaginal(eventSlave)) {
+				r.push(`ass and pussy`);
+			} else if (canDoAnal(eventSlave)) {
+				r.push(`ass`);
+			} else {
+				r.push(`pussy`);
+			}
+			r.push(`to anyone who pays for the rest of the week, and keep ${his} fed and cleaned. ${His} world will become nothing but silent, featureless darkness and dick. <span class="cash inc">You earn some money off ${him},</span> and by the end of the night ${his}`);
+			if (canDoAnal(eventSlave) && canDoVaginal(eventSlave)) {
+				r.push(`holes get`);
+			} else {
+				r.push(`hole gets`);
+			}
+			if ((canDoAnal(eventSlave) && eventSlave.anus === 0) || (canDoVaginal(eventSlave) && eventSlave.vagina === 0)) {
+				r.push(`well stretched.`);
+			} else {
+				r.push(`<span class="lime">well stretched.</span>`);
+			}
+			r.push(`<span class="devotion inc">${He} learns from the experience.</span>`);
+			if (canDoAnal(eventSlave) && canDoVaginal(eventSlave)) {
+				if (eventSlave.vagina === 0 && eventSlave.anus === 0) {
+					r.push(`<span class="virginity loss">${He}'s lost both ${his} virginity and anal cherry.</span>`);
+				} else if (eventSlave.vagina === 0) {
+					r.push(`<span class="virginity loss">${He}'s lost ${his} virginity.</span>`);
+				} else if (eventSlave.anus === 0) {
+					r.push(`<span class="virginity loss"> ${He}'s lost ${his} anal cherry.</span>`);
+				}
+				eventSlave.vagina++;
+				eventSlave.anus++;
+				seX(eventSlave, "vaginal", "public", "penetrative", 10);
+				seX(eventSlave, "anal", "public", "penetrative", 10);
+				if (eventSlave.eggType === "human" && canGetPregnant(eventSlave)) {
+					r.push(knockMeUp(eventSlave, 25, 2, -2));
+				}
+			} else if (canDoAnal(eventSlave)) {
+				if (eventSlave.anus === 0) {
+					r.push(`<span class="virginity loss"> ${He}'s lost ${his} anal cherry.</span>`);
+				}
+				eventSlave.anus++;
+				seX(eventSlave, "anal", "public", "penetrative", 5);
+				if (eventSlave.eggType === "human" && canGetPregnant(eventSlave)) {
+					r.push(knockMeUp(eventSlave, 50, 1, -2));
+				}
+			} else {
+				if (eventSlave.vagina === 0) {
+					r.push(`<span class="virginity loss">${He}'s lost ${his} virginity.</span>`);
+				}
+				eventSlave.vagina++;
+				seX(eventSlave, "vaginal", "public", "penetrative", 20);
+				if (eventSlave.eggType === "human" && canGetPregnant(eventSlave)) {
+					r.push(knockMeUp(eventSlave, 50, 0, -2));
+				}
+			}
+			eventSlave.devotion += 4;
+			cashX(50, "event", eventSlave);
+			return r;
+		}
+
+		function off() {
+			eventSlave.devotion -= 5;
+			return `${He} skips away happily and spends the rest of the day lounging around. ${His} obedience to you <span class="devotion dec">has decreased.</span>`;
+		}
+	}
+};
diff --git a/src/events/RESS/review/wetDreams.js b/src/events/RESS/review/wetDreams.js
new file mode 100644
index 0000000000000000000000000000000000000000..f1127af4f3469f3e24cb1309ebb1807689c23598
--- /dev/null
+++ b/src/events/RESS/review/wetDreams.js
@@ -0,0 +1,407 @@
+App.Events.RESSWetDreams = class RESSWetDreams extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return [
+			() => V.seeAge === 1,
+		];
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				(s) => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				(s) => s.actualAge < 18,
+				(s) => s.devotion > 20,
+				canPenetrate,
+				(s) => s.balls > 0,
+				(s) => s.pubertyXY === 0,
+				(s) => (s.physicalAge + s.birthWeek / 52 >= s.pubertyAgeXY - 0.5),
+
+			]
+		];
+	}
+
+	get weight() {
+		return 10;
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [slave] = this.actors.map(a => getSlave(a));
+		const {
+			He, His,
+			he, his, him, hers, himself, woman, girl
+		} = getPronouns(slave);
+		let r = [];
+		const { title: Master } = getEnunciation(slave);
+		const belly = bellyAdjective(slave);
+		const { say } = getEnunciation(slave);
+
+		V.nextLink = "Next Week";
+
+		App.Events.drawEventArt(node, slave);
+		App.Events.addParagraph(node, [
+			App.UI.DOM.slaveDescriptionDialog(slave),
+			`appears in the door of your office early in the morning, hesitating before stepping in. You question why ${he} has come to see you and ${he} gingerly approaches your desk.`
+		]);
+
+		if (canTalk(slave)) {
+			r.push(
+				Spoken(slave, `"I'm sorry, ${Master},"`),
+				`${he} ${say}s apologetically.`,
+				Spoken(slave, `"I keep wetting my bed at night, and it feels so good too."`)
+			);
+		} else {
+			r.push(`${He} uses gestures to point to ${his} crotch, and explains that ${he} has accidentally started wetting ${his} bed.`);
+		}
+		r.push(`You check ${his} records for any potential health issues that could be causing this annoyance when it dawns on you. ${slave.slaveName} is likely becoming potent, and now is the perfect time to cement ${his} sexuality.`);
+		slave.pubertyXY = 1;
+		App.Events.addParagraph(node, r);
+
+
+		const choices = [];
+		choices.push(new App.Events.Result(`Explain ${he}'s just growing up`, justGrowing));
+		choices.push(new App.Events.Result(`Teach ${him} ${his} place`, teachHisPlace, (slave.vagina === 0) ? `This option will take ${his} virginity` : null));
+		if (V.PC.vagina > 0) {
+			choices.push(new App.Events.Result(`Let me teach you how to use it`, howToUse, `This option will penetrate you`));
+		}
+		choices.push(new App.Events.Result(`Tell ${him} it doesn't matter, ${he} won't be using it`, noMatter, (slave.anus === 0) ? `This option will take ${his} anal virginity` : null));
+		if (V.seeExtreme === 1 && slave.indentureRestrictions <= 0) {
+			choices.push(new App.Events.Result(`Geld ${him} to render ${him} impotent again`, geld));
+		}
+
+		App.Events.addResponses(node, choices);
+
+		function justGrowing() {
+			const frag = new DocumentFragment();
+			let r = [];
+			r.push(`You tell ${him} that ${his} body is preparing to be able to impregnate girls, and that what happens at night happens to all boys. Though as a slave, ${he} should consider ${himself} lucky to be allowed to keep ${his} male genitalia.`);
+			if (canTalk(slave)) {
+				r.push(
+					Spoken(slave, `"I-I can get girls pregnant now? ${Master}, that m-means I'll have to be more careful."`),
+					`${He} trails off.`
+				);
+			} else {
+				r.push(`${He} brings ${his} hands to ${his} growing erection, a bubble of precum forming on its tip. ${He} fondles ${himself} as ${he} ponders ${his} new potency.`);
+			}
+			r.push(`You tell ${him} to keep ${his} dick in check or risk losing it, before continuing to read off the other various changes that will occur in ${him}. ${slave.slaveName} <span class="trust inc">appreciates</span> you taking the time to explain ${his} developing body.`);
+			slave.trust += 5;
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function teachHisPlace() {
+			const frag = new DocumentFragment();
+			let r = [];
+			if (V.PC.dick === 0) {
+				r.push(`You tell ${him} that ${he} is just becoming a potent ${woman}, and as such, ${he} will need to learn that you are the dominant force in ${his} life.`);
+				if (canTalk(slave)) {
+					r.push(Spoken(slave, `"What does that mean, ${Master}?"`));
+				} else {
+					r.push(`${His} expression shifts to confusion.`);
+				}
+				r.push(`You quickly approach and catch ${him}, forcing ${his}`);
+				if (slave.belly >= 1500) {
+					if (slave.bellyPreg >= 1500) {
+						r.push(`gravid`);
+					} else {
+						r.push(`distended`);
+					}
+				}
+				r.push(`body face-up onto the couch. ${He}`);
+				if (canSee(slave)) {
+					r.push(`watches you carefully`);
+				} else if (canHear(slave)) {
+					r.push(`listens to your movements`);
+				} else {
+					r.push(`waits with trepidation`);
+				}
+				r.push(`as you size up ${his} fully erect`);
+				if (slave.dick === 1) {
+					r.push(`tiny dick.`);
+				} else if (slave.dick === 2) {
+					r.push(`cute dick.`);
+				} else if (slave.dick === 3) {
+					r.push(`dick.`);
+				} else if (slave.dick === 4) {
+					r.push(`big dick.`);
+				} else if (slave.dick === 5) {
+					r.push(`impressive dick.`);
+				} else if (slave.dick === 6) {
+					r.push(`huge dick.`);
+				} else if (slave.dick === 7) {
+					r.push(`gigantic dick`);
+				} else if (slave.dick === 8) {
+					r.push(`titanic dick`);
+				} else if (slave.dick === 9) {
+					r.push(`absurd dick`);
+				} else if (slave.dick === 10) {
+					r.push(`inhuman dick`);
+				} else {
+					r.push(`hypertrophied dick`);
+				}
+				r.push(`You push ${him} back down as you straddle ${his}`);
+				if (slave.belly >= 1500) {
+					r.push(belly);
+					if (slave.bellyPreg >= 1500) {
+						r.push(`pregnant`);
+					}
+					r.push(`belly`);
+				} else if (slave.boobs > 2000) {
+					r.push(`huge tits`);
+				} else {
+					r.push(`chest`);
+				}
+				r.push(`planting your moistening pussy over the ${girl}'s face. You lean forward, teasing ${his} twitching cock, as you grind against ${his} face. As ${he} begins to moan with lust, you quickly bind the base of ${his} penis, denying ${his} release. You grind your cunt into ${his} face, telling ${him} that YOU are the one who'll be orgasming here, not ${him}. Only once you have taught ${him} ${his} place by soaking ${his} face in your cum do you release ${his} dick and lean back to avoid the coming blast. Just undoing the binding is enough to set ${him} over the edge, coating ${his}`);
+				if (slave.bellyPreg >= 1500) {
+					r.push(`pregnancy`);
+				} else {
+					r.push(`belly`);
+				}
+				r.push(`in ${his} virile sperm. You turn around and order the exhausted ${girl} to clean ${himself} up and go back to ${his} assignment; ${he} <span class="devotion inc">complies meekly,</span> understanding that having a potent penis is meaningless in ${his} position.`);
+				if (slave.fetish === "none") { // TODO: was coral, should probably be fetish gain.
+					r.push(`The next time ${he} walks past your office, you can't help notice the growing erection ${he} carries. <span class="fetish dec"> Your dominating display has left ${him} craving domination.</span>`);
+					slave.fetish = "submissive";
+					slave.fetishStrength = 10;
+				}
+				slave.devotion += 5;
+			} else {
+				r.push(`You tell ${him} that ${he} is just becoming a potent ${woman}, and as such, ${he} will need to learn that you are the dominant force in ${his} life.`);
+				if (canTalk(slave)) {
+					r.push(Spoken(slave, `"What does that mean, ${Master}?"`));
+				} else {
+					r.push(`${His} expression shifts to confusion.`);
+				}
+				r.push(`You quickly approach and catch ${him}, forcing ${his}`);
+				if (slave.belly >= 1500) {
+					if (slave.bellyPreg >= 1500) {
+						r.push(`gravid`);
+					} else {
+						r.push(`distended`);
+					}
+				}
+				r.push(`body face-down onto the couch${(slave.belly >= 100000) ? ` as best you can` : ``}. ${He}`);
+				if (canSee(slave)) {
+					r.push(`watches you carefully`);
+				} else {
+					r.push(`listens to your movements`);
+				}
+				r.push(`as you size up ${his} fully erect`);
+				if (slave.dick === 1) {
+					r.push(`tiny dick.`);
+				} else if (slave.dick === 2) {
+					r.push(`cute dick.`);
+				} else if (slave.dick === 3) {
+					r.push(`dick.`);
+				} else if (slave.dick === 4) {
+					r.push(`big dick.`);
+				} else if (slave.dick === 5) {
+					r.push(`impressive dick.`);
+				} else if (slave.dick === 6) {
+					r.push(`huge dick.`);
+				} else if (slave.dick === 7) {
+					r.push(`gigantic dick`);
+				} else if (slave.dick === 8) {
+					r.push(`titanic dick`);
+				} else if (slave.dick === 9) {
+					r.push(`absurd dick`);
+				} else if (slave.dick === 10) {
+					r.push(`inhuman dick`);
+				} else {
+					r.push(`hypertrophied dick`);
+				}
+				r.push(`You push ${his} face into the cushions as you mount ${his}`);
+				if (slave.butt > 6) {
+					r.push(`ridiculous`);
+				} else if (slave.butt > 5) {
+					r.push(`gigantic`);
+				} else if (slave.butt > 4) {
+					r.push(`enormous`);
+				} else if (slave.butt > 3) {
+					r.push(`huge`);
+				} else if (slave.butt > 2) {
+					r.push(`big`);
+				} else if (slave.butt > 1) {
+					r.push(`plump`);
+				} else if (slave.butt > 0) {
+					r.push(`small`);
+				} else {
+					r.push(`flat`);
+				}
+				r.push(`butt, sinking your cock deep into ${his}`);
+				if (slave.anus === 0) {
+					r.push(`virgin`);
+				}
+				r.push(`asspussy. You lean forward, running your hands across ${his} nipples`);
+				if (slave.belly >= 5000) {
+					r.push(`and ${belly}`);
+					if (slave.belly >= 3000) {
+						r.push(`pregnant`);
+					}
+					r.push(`belly`);
+				}
+				r.push(`as you move to tease ${his} stiff prick. Between your dick in ${his} ass and your hand on ${his} cock, ${he} rapidly approaches ${his} peak. Quickly, you bind the base of ${his} penis, denying ${his} release and eliciting a long moan from the pent-up ${girl}. You begin thrusting hard, telling ${him} that YOU are the one who'll be orgasming here, not ${him}. Only once you have taught ${him} ${his} place by filling ${his} asspussy with your cum do you allow ${his} release. Just undoing the binding is enough to set ${him} over the edge, coating the cushions`);
+				if (slave.belly >= 5000) {
+					r.push(`and the bottom of ${his} ${belly}`);
+					if (slave.belly >= 3000) {
+						r.push(`pregnant`);
+					}
+					r.push(`belly`);
+				}
+				r.push(`in ${his} virile sperm. You dismount and order the exhausted ${girl} to clean ${himself} and the couch up before going back to ${his} assignment; ${he} <span class="devotion inc">complies meekly,</span> understanding that having a potent penis is meaningless in ${his} position.`);
+				if (slave.fetish === "none") { //todo: coral
+					r.push(`The next time ${he} walks past your office, you can't help notice the growing erection ${he} carries. <span class="fetish dec">Your dominating display has left ${him} craving domination.</span>`);
+					slave.fetish = "submissive";
+					slave.fetishStrength = 10;
+				}
+				slave.devotion += 5;
+			}
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function howToUse() {
+			const frag = new DocumentFragment();
+			let r = [];
+			r.push(`You tell ${him} that ${he} is just becoming a potent ${woman}, and as such, ${he} will need to learn how to please ${his} partners.`);
+			if (canTalk(slave)) {
+				r.push(Spoken(slave, `"What's that mean, ${Master}?"`));
+			} else {
+				r.push(`${His} expression shifts to confusion.`);
+			}
+			r.push(`You quickly approach and catch ${him}, forcing ${his}`);
+			if (slave.belly >= 1500) {
+				if (slave.bellyPreg >= 1500) {
+					r.push(`gravid`);
+				} else {
+					r.push(`distended`);
+				}
+			}
+			r.push(`body face-up onto the couch. ${He}`);
+			if (canSee(slave)) {
+				r.push(`watches you carefully`);
+			} else if (canHear(slave)) {
+				r.push(`listens to your movements`);
+			} else {
+				r.push(`waits with trepidation`);
+			}
+			r.push(`as you size up ${his} fully erect`);
+			if (slave.dick === 1) {
+				r.push(`tiny dick.`);
+			} else if (slave.dick === 2) {
+				r.push(`cute dick.`);
+			} else if (slave.dick === 3) {
+				r.push(`dick.`);
+			} else if (slave.dick === 4) {
+				r.push(`big dick.`);
+			} else if (slave.dick === 5) {
+				r.push(`impressive dick.`);
+			} else if (slave.dick === 6) {
+				r.push(`huge dick.`);
+			} else if (slave.dick === 7) {
+				r.push(`gigantic dick.`);
+			} else if (slave.dick === 8) {
+				r.push(`titanic dick.`);
+			} else if (slave.dick === 9) {
+				r.push(`absurd dick.`);
+			} else if (slave.dick === 10) {
+				r.push(`inhuman dick.`);
+			} else {
+				r.push(`hypertrophied dick.`);
+			}
+			r.push(`You push ${him} back down as you straddle ${his} cock, lining it up before lowering`);
+			if (V.PC.belly >= 1500) {
+				r.push(`your pregnant body until ${he} delightfully penetrates you.`);
+			} else {
+				r.push(`yourself onto ${his} needy prick.`);
+			}
+			r.push(`You slowly ride ${his} dick, instructing ${him} the proper way to thrust into you and how to adequately support your weight. Once ${he} gets the hand of things, you dismount and lie down on the couch, legs spread, beckoning ${him} into you. ${He} gingerly inserts ${his} cock`);
+			if (slave.belly >= 100000) {
+				r.push(`while you do your best to manage ${his} ${belly} stomach`);
+			}
+			r.push(`and begins thrusting, slowly at first, before getting the hang of things and speeding up${(V.PC.dick !== 0)? `, your own neglected dick bobbing along to ${his} thrusts` : ``}. As soon as you feel ${his} beginning to tense you`);
+			if (V.PC.pregKnown === 1) {
+				r.push(`tell ${him} it's safe to cum in you, you're already pregnant.`);
+			} else {
+				r.push(`order ${him} to pull out.`);
+			}
+			r.push(`The poor ${girl} is so caught up in ${his} lust, ${he} can't stop thrusting. Before you can rectify this, ${he} pushes you over the edge and gushes deep into you as you climax`);
+			if (V.PC.dick !== 0) {
+				r.push(`and spray your own cum`);
+				if (V.PC.belly >= 5000 && slave.belly >= 5000) {
+					r.push(`into the cramped space between your swollen bodies.`);
+				} else if (slave.belly >= 100000) {
+					r.push(`across your belly and the underside of ${hers}.`);
+				} else {
+					r.push(`across ${his} chest.`);
+				}
+			}
+			r.push(`${He} gingerly pulls ${himself} from you, apologizes <span class="devotion inc">meekly</span> for losing control, and snuggles up next to you. Cumming in ${his} ${getWrittenTitle(slave)}'s pussy as ${his} first time builds <span class="trust inc">a special bond</span> with you.`);
+
+			if (V.PC.preg === 0 && V.PC.pregWeek === 0) {
+				r.push(`You aren't on contraceptives right now; ${his} first time may be more fruitful than ${he} realizes.`);
+			}
+			slave.devotion += 10;
+			slave.trust += 20;
+			seX(slave, "penetrative", V.PC, "vaginal");
+			if (canImpreg(V.PC, slave)) {
+				r.push(knockMeUp(V.PC, 60, 0, slave.ID));
+			}
+
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function noMatter() {
+			const frag = new DocumentFragment();
+			let r = [];
+			r.push(`In one swift motion, one pull out a chastity cage and lock it onto ${him}. ${He} gasps as ${he} feels it hug close to ${his} struggling erection. You explain that ${he} has just become potent, and thus, will be restricted until you feel differently.`);
+			if (canTalk(slave)) {
+				r.push(Spoken(slave, `"You don't want me to use my penis, ${Master}?"`));
+			} else {
+				r.push(`${He} rubs a hand across ${his} caged dick.`);
+			}
+			r.push(`You bring ${him} over to the couch, set ${him} on your lap, and teasingly call ${him} a buttslut. Every so often you graze a finger around ${his} chastity cage, torturing ${his} dick and balls, but you only make it the center of attention once the poor over-aroused slave`);
+			if (canTalk(slave)) {
+				r.push(
+					`begs,`,
+					Spoken(slave, `"I can't take it any more, ${Master}! Please fuck me!"`)
+				);
+			} else {
+				r.push(`begins to use piteous gestures to beg you abjectly to penetrate ${him}.`);
+			}
+			r.push(`You snicker, but remind ${him} that ${he} has no say in ${his} release. You line up and insert your`);
+			if (V.PC.dick === 0) {
+				r.push(`strap-on`);
+			} else {
+				r.push(`cock`);
+			}
+			r.push(`up ${his} ass and begin slowly fucking ${him}, making sure to stimulate ${his} prostate. When ${he} finally orgasms`);
+			if (V.PC.dick === 0) {
+				r.push(`${his} unabashed enjoyment`);
+			} else {
+				r.push(`the strength of ${his} spasming sphincter`);
+			}
+			r.push(`sends you over as well. ${He}'s left in a confused haze; ${his} body tells ${him} to fuck, but you tell ${him} to get fucked. ${He} <span class="hotpink">sides with your decision</span> and vows to be the one taking dick for you.`);
+			if (slave.fetish === "none") {
+				r.push(`<span class="fetish dec">Overcoming ${his} urges to become a father via anal cause ${him} to become a buttslut.</span>`);
+				slave.fetish = "buttslut";
+				slave.fetishStrength = 10;
+			}
+			slave.devotion += 5;
+			slave.chastityPenis = 1;
+			r.push(VCheck.Anal(slave, 1));
+
+			App.Events.addParagraph(frag, r);
+			return frag;
+		}
+
+		function geld() {
+			slave.balls = 0;
+			slave.trust -= 20;
+			surgeryDamage(slave, 10);
+			return `You bluntly tell ${him} ${he} is becoming potent, and that is something you can't allow to roam unchecked amongst your fertile slaves. You drag ${him} to the remote surgery and strap ${him} face-down with ${his} legs spread${(slave.belly >= 5000) ? `${his} ${belly} rounded belly forcing ${his} rear into the air` : ``}. ${He} doesn't understand what's happening, since the anesthetics totally deprive ${him} of any sensation. ${He}'s so drugged and drowsy with <span class="health dec">surgical recovery</span> that it takes a while for ${him} to figure out what's happened. When ${he} does, ${his} poor mind scarcely processes the <span class="trust dec">horror</span> of what's happened. ${He} numbly carries on, terrified.`;
+		}
+	}
+};
diff --git a/src/events/RESS/serveThePublicDevoted.js b/src/events/RESS/serveThePublicDevoted.js
index 6d45289e117701b8854b77fd45b4ea86fdabfdde..b48f8d500ad678452233c4aafb2ed50bea346c73 100644
--- a/src/events/RESS/serveThePublicDevoted.js
+++ b/src/events/RESS/serveThePublicDevoted.js
@@ -44,11 +44,11 @@ App.Events.RESSServeThePublicDevoted = class RESSServeThePublicDevoted extends A
 		t.push(`As ${he} goes, you notice that`);
 		if (eventSlave.chastityPenis === 1) {
 			t.push(`precum is starting to dribble out of ${his} chastity cage.`);
-		} else if ((eventSlave.dick > 0) && canAchieveErection(eventSlave)) {
+		} else if (eventSlave.dick > 0 && canAchieveErection(eventSlave)) {
 			t.push(`${his} cock is so hard it's standing out, perfectly straight.`);
-		} else if ((eventSlave.dick > 0) && (eventSlave.balls > 0) && !canAchieveErection(eventSlave)) {
+		} else if (eventSlave.dick > 0 && eventSlave.balls > 0 && !canAchieveErection(eventSlave)) {
 			t.push(`${his} semi-hard cock is dribbling precum, a sure sign of a bitch who wants to be buttfucked.`);
-		} else if ((eventSlave.dick > 0) && !canAchieveErection(eventSlave)) {
+		} else if (eventSlave.dick > 0 && !canAchieveErection(eventSlave)) {
 			t.push(`${his} pathetically soft cock is streaming precum, a sure sign of a bitch who wants to be buttfucked.`);
 		} else if (eventSlave.clit > 0) {
 			t.push(`${his} big clit is obviously engorged.`);
@@ -68,7 +68,7 @@ App.Events.RESSServeThePublicDevoted = class RESSServeThePublicDevoted extends A
 			t.push(`play the dom.`);
 		} else if (eventSlave.fetish === "sadist") {
 			t.push(`find a willing masochist.`);
-		} else if ((eventSlave.fetish === "pregnancy") && (eventSlave.preg > eventSlave.pregData.normalBirth / 4)) {
+		} else if (eventSlave.fetish === "pregnancy" && eventSlave.preg > eventSlave.pregData.normalBirth / 4) {
 			t.push(`have ${his} pregnancy fondled.`);
 		} else if (eventSlave.fetish === "pregnancy") {
 			t.push(`pretend to get knocked up.`);
@@ -272,9 +272,9 @@ App.Events.RESSServeThePublicDevoted = class RESSServeThePublicDevoted extends A
 			t.push(`${eventSlave.slaveName} returns many hours later. ${He}'s obviously bone tired. When you meet ${him} at the entrance to your penthouse ${he}'s surprised to`);
 			t.push(canSee(eventSlave) ? "see" : "find");
 			t.push(`you, but ${he} gives you a little smile anyway. You bring ${him} back to your office, and ${he}'s clearly expecting to get fucked, so ${he}'s surprised when you hand ${him} a hot beverage and sit down on the couch with ${him}. ${He} relaxes quickly and chats with you about ${his} day, gossiping about all the private doings of all the prominent citizens who fucked ${his}`);
-			if ((eventSlave.vagina > 0) && canDoVaginal(eventSlave)) {
+			if (eventSlave.vagina > 0 && canDoVaginal(eventSlave)) {
 				t.push(`cunt`);
-			} else if ((eventSlave.anus > 0) && canDoAnal(eventSlave)) {
+			} else if (eventSlave.anus > 0 && canDoAnal(eventSlave)) {
 				t.push(`asshole`);
 			} else {
 				t.push(`mouth`);
diff --git a/src/events/RESS/suppositoryResistance.js b/src/events/RESS/suppositoryResistance.js
index db48ceae518bb6242374ac263f7a61e50d3e5803..d8df258d29006b18b9716e002c266ff313a84418 100644
--- a/src/events/RESS/suppositoryResistance.js
+++ b/src/events/RESS/suppositoryResistance.js
@@ -26,7 +26,7 @@ App.Events.RESSSuppositoryResistance = class RESSSuppositoryResistance extends A
 			He, he, His, his, him, himself
 		} = getPronouns(eventSlave);
 		const {hisA} = getPronouns(assistant.pronouns().main).appendSuffix('A');
-		const {s, sh, ss, title: Master} = getEnunciation(eventSlave);
+		const {title: Master} = getEnunciation(eventSlave);
 		const desc = SlaveTitle(eventSlave);
 		const belly = bellyAdjective(eventSlave);
 
@@ -56,7 +56,10 @@ App.Events.RESSSuppositoryResistance = class RESSSuppositoryResistance extends A
 
 		t.push(`${He} turns to you as you enter, and ${canSee(eventSlave) ? "seeing" : "realizing"} that it's you, ${he}`);
 		if (canTalk(eventSlave)) {
-			t.push(`mumbles unhappily, "Plea${s}e, ${Master}, can I ju${s}t take a ${sh}ot? A${ss}rape from, you know, people, i${s}, um, bad enough."`);
+			t.push(
+				`mumbles unhappily,`,
+				Spoken(eventSlave, `"Please, ${Master}, can I just take a shot? Assrape from, you know, people, is, um, bad enough."`)
+			);
 		} else {
 			t.push(`uses hesitant gestures to beg you to let ${him} take ${his} drugs normally. ${He} tries to use gestures to explain that ${he} thinks ${he} gets enough anal from humans, without being buttfucked by a machine every morning.`);
 		}
diff --git a/src/events/RETS/reDatePlease.js b/src/events/RETS/reDatePlease.js
index df348b47ce1cf02ca27a37fcaefa4975f86210ef..53cfd0f1b31ff091742080eeec1eb14c79983901 100644
--- a/src/events/RETS/reDatePlease.js
+++ b/src/events/RETS/reDatePlease.js
@@ -33,14 +33,13 @@ App.Events.RETSDatePlease = class RETSDatePlease extends App.Events.BaseEvent {
 		const {
 			He, he, his, him, girl
 		} = getPronouns(eventSlave);
-		const {say} = getEnunciation(eventSlave);
+		const {say, title: master} = getEnunciation(eventSlave);
 		const {him2, girl2, wife2} = getPronouns(subSlave).appendSuffix("2");
 		V.nextLink = "Next Week";
 		let artDiv = document.createElement("div"); // named container so we can replace it later
 		App.Events.drawEventArt(artDiv, eventSlave, "no clothing");
 		node.appendChild(artDiv);
 
-		const master = Spoken(eventSlave, getWrittenTitle(eventSlave));
 		const partner = (eventSlave.relationship >= 5) ? `${wife2}` : `${girl2}friend`;
 		const pitch = (eventSlave.voice > 2) ? "high" : (eventSlave.voice > 1 ? "feminine" : "deep"); // When true male slaves are implemented, split "deep" into husky and masculine?
 
diff --git a/src/events/RETS/reIfYouEnjoyIt.js b/src/events/RETS/reIfYouEnjoyIt.js
index 41eba75a6dd521cad913930da96c3e4ab6a3d981..5b02e1099d874daaa01619c73e09ea1f5d36eb6a 100644
--- a/src/events/RETS/reIfYouEnjoyIt.js
+++ b/src/events/RETS/reIfYouEnjoyIt.js
@@ -229,7 +229,7 @@ App.Events.RETSIfYouEnjoyIt = class RETSIfYouEnjoyIt extends App.Events.BaseEven
 			} else {
 				t.push(`fingerfucking ${subSlave.slaveName}'s ass`);
 			}
-			t.push(`without mercy. The eventSlave screams at the sudden change of pace, thrashing a little. ${His2} struggles bring`);
+			t.push(`without mercy. The slave screams at the sudden change of pace, thrashing a little. ${His2} struggles bring`);
 			if (canSee(subSlave)) {
 				t.push(`${his2} head around, and ${he2}'s surprised to come face to face with your ankles. With dawning comprehension, ${his2} eyes track rapidly up your`);
 				if (V.arcologies[0].FSPhysicalIdealist !== "unset") {
@@ -302,7 +302,7 @@ App.Events.RETSIfYouEnjoyIt = class RETSIfYouEnjoyIt extends App.Events.BaseEven
 			} else {
 				t.push(`a pleased chuckle out of you. With dawning comprehension, ${his2} face rapidly moves to face yours.`);
 			}
-			t.push(`${He2} wilts. ${eventSlave.slaveName} thinks this is hilarious, and laughs so hard at the eventSlave's reaction to your appearance that ${he} almost loses hold of ${subSlave.slaveName}'s `);
+			t.push(`${He2} wilts. ${eventSlave.slaveName} thinks this is hilarious, and laughs so hard at the slave's reaction to your appearance that ${he} almost loses hold of ${subSlave.slaveName}'s `);
 			if (subSlave.dick > 0) {
 				t.push(`cock.`);
 			} else if (subSlave.clit > 0) {
@@ -316,7 +316,7 @@ App.Events.RETSIfYouEnjoyIt = class RETSIfYouEnjoyIt extends App.Events.BaseEven
 			} else {
 				t.push(`pull ${subSlave.slaveName}'s mouth against your cunt.`);
 			}
-			t.push(`${eventSlave.slaveName} is still giggling, but leans over the unhappy eventSlave speared between the two of you to <span class="devotion inc">plant a kiss</span> on you. ${He} misses, smearing ${his} kiss along your cheek and past your ear, but you take ${his} face in your hands and kiss ${him} properly as ${subSlave.slaveName} begins to do ${his2} best to relax and get you off, <span class="trust dec">fearful</span> that worse is in store if ${he2} doesn't <span class="devotion inc">submit.</span>`);
+			t.push(`${eventSlave.slaveName} is still giggling, but leans over the unhappy slave speared between the two of you to <span class="devotion inc">plant a kiss</span> on you. ${He} misses, smearing ${his} kiss along your cheek and past your ear, but you take ${his} face in your hands and kiss ${him} properly as ${subSlave.slaveName} begins to do ${his2} best to relax and get you off, <span class="trust dec">fearful</span> that worse is in store if ${he2} doesn't <span class="devotion inc">submit.</span>`);
 			eventSlave.devotion += 4;
 			seX(subSlave, "anal", eventSlave, "penetrative");
 			seX(subSlave, "oral", V.PC, "penetrative");
diff --git a/src/events/assistant/assistantFS.js b/src/events/assistant/assistantFS.js
index a3fb40ebf182f01bf686e6d5ee12c384402ce158..76311051b0e72bfd1a88c9c8242aa9e9c5b10e0d 100644
--- a/src/events/assistant/assistantFS.js
+++ b/src/events/assistant/assistantFS.js
@@ -1179,7 +1179,6 @@ App.Events.assistantFS = class assistantFS extends App.Events.BaseEvent {
 				}
 		}
 
-		r.push(App.UI.DOM.makeElement("h3", "Personal assistant appearances"));
 		App.Events.addParagraph(node, r);
 
 		const responses = [
diff --git a/src/events/gameover.js b/src/events/gameover.js
index 0b46cda9e9e2ed00f97e697c129e7411eefeb1d7..88c3e4a12c169ca8e6b579d6e04fc7b1c4b1045b 100644
--- a/src/events/gameover.js
+++ b/src/events/gameover.js
@@ -117,9 +117,7 @@ App.Events.Gameover = function() {
 			}
 			break;
 		case "Rebellion defeat":
-			r.push(`As the furious horde of`);
-			V.SecExp.war.type.toLowerCase().replace(" rebellion", "");
-			r.push(`s invades your penthouse you are left a few precious seconds to decide your fate. You embrace for the last time your faithful revolver and just as the rebels break through your doors you squeeze the trigger.`);
+			r.push(`As the furious horde of ${V.SecExp.war.type.toLowerCase().replace(" rebellion", "")}s invades your penthouse you are left a few precious seconds to decide your fate. You embrace for the last time your faithful revolver and just as the rebels break through your doors you squeeze the trigger.`);
 			r.push(`The end of your story has come and your arcology is now in the hands of whoever will take control of the vermin that dared rise up this day.`);
 			break;
 		case "Idiot Ball 2 The Dumbassening":
diff --git a/src/events/intro/economyIntro.js b/src/events/intro/economyIntro.js
index e359c06b05b484a9bd04a678981e0d04f45a48b8..328a8c9f19f4b24b47090a616d8edb5ec56c3e35 100644
--- a/src/events/intro/economyIntro.js
+++ b/src/events/intro/economyIntro.js
@@ -1,6 +1,5 @@
 App.Intro.economyIntro = function() {
 	const node = new DocumentFragment();
-	// :: Economy Intro [nobr]
 
 	App.Events.addParagraph(node, [
 		`It is the year 2037, and the past 21 years have not been kind. The world is starting to fall apart. The climate is deteriorating, resources are being exhausted, and there are more people to feed every year. Technology is advancing, but not fast enough to save everyone. <span class="intro question"></span>`,
diff --git a/src/events/intro/extremeIntro.js b/src/events/intro/extremeIntro.js
index 97877f834d4077c4146de7f56aed5cb94dca7b3f..e84a13d5136865d6fc8de35e806ae021ad981dd6 100644
--- a/src/events/intro/extremeIntro.js
+++ b/src/events/intro/extremeIntro.js
@@ -1,6 +1,5 @@
 App.Intro.extremeIntro = function() {
 	const node = new DocumentFragment();
-	// :: :: Extreme Intro [nobr]
 
 	App.Events.addParagraph(node, [
 		`The early Free Cities were wild places where the writ of law did not run. In some of the most depraved, slaves' bodies, minds and even lives were playthings of the wealthy and powerful. Though modern Free Cities are tremendously varied, a majority of the new communities made a choice about whether extreme practices were a flaw in a lawless society or one of its benefits.`,
diff --git a/src/events/intro/locationIntro.js b/src/events/intro/locationIntro.js
index 179f4c1636de765d6cd59ce5657790b562ef1666..881d4d3489b9de513c6a1edc9f363590dbc5363d 100644
--- a/src/events/intro/locationIntro.js
+++ b/src/events/intro/locationIntro.js
@@ -1,5 +1,4 @@
 App.Intro.locationIntro = function() {
-	// :: Location Intro
 	const node = new DocumentFragment();
 
 	App.Events.addParagraph(node, [
diff --git a/src/events/intro/newGamePlusPassage.js b/src/events/intro/newGamePlusPassage.js
index 6fe41226734cf521d38942fc7089e822cb310a2f..14b371992b12e618075307bebe207cce07388fb8 100644
--- a/src/events/intro/newGamePlusPassage.js
+++ b/src/events/intro/newGamePlusPassage.js
@@ -5,24 +5,24 @@ App.Intro.newGamePlus = function() {
 		V.slavesToImportMax = 5;
 	}
 
-	const _fee = 50000 + (V.slavesToImportMax * 10000);
+	const fee = 50000 + (V.slavesToImportMax * 10000);
 	setupLastWeeksCash();
 	setupLastWeeksRep();
 
 	App.UI.DOM.appendNewElement("p", node, `You have decided to start over and will be able to take a few things with you: a few slaves, a small fraction of your current reserves of money, and possibly even your experience as an arcology owner, which will give you a very powerful career background. Many of your other customizations and settings will be carried over as the defaults for your new game, but can be revised freely.`);
 
-	if (V.cash >= _fee) {
-		App.Events.addNode(node, [`You have allocated funds to bring up to ${V.slavesToImportMax} slaves with you (or your equivalent) to a new arcology. It will cost <span class="yellowgreen">${cashFormat(_fee)}</span> to insure another slave's safe transfer. You have <span class="yellowgreen">${cashFormat(V.cash)}</span> to spend.`], "div");
+	if (V.cash >= fee) {
+		App.Events.addNode(node, [`You have allocated funds to bring up to ${V.slavesToImportMax} slaves with you (or your equivalent) to a new arcology. It will cost <span class="yellowgreen">${cashFormat(fee)}</span> to insure another slave's safe transfer. You have <span class="yellowgreen">${cashFormat(V.cash)}</span> to spend.`], "div");
 		App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link(
 			"Increase slave import capacity by 1.",
 			() => {
-				cashX(forceNeg(_fee), "capEx");
+				cashX(forceNeg(fee), "capEx");
 				V.slavesToImportMax++;
 				App.UI.reload();
 			}
 		));
 	} else {
-		App.Events.addNode(node, [`You lack the <span class="yellowgreen">${cashFormat(_fee)}</span> needed to bring any more than ${V.slavesToImportMax} slaves with you (or your equivalent) to a new arcology.`], "div");
+		App.Events.addNode(node, [`You lack the <span class="yellowgreen">${cashFormat(fee)}</span> needed to bring any more than ${V.slavesToImportMax} slaves with you (or your equivalent) to a new arcology.`], "div");
 	}
 
 	V.ngpParams = {nationality: getRevivalistNationality(), prosperity: (250 * V.arcologies[0].prosperity * V.arcologies[0].ownership)};
@@ -98,7 +98,7 @@ App.Intro.newGamePlus = function() {
 			() => {
 				V.saveImported = 1;
 				V.oldCareer = "undefined";
-			}, [], "init",
+			}, [], "Alpha disclaimer",
 		)
 	]));
 	node.append(App.UI.SlaveList.listNGPSlaves());
diff --git a/src/events/intro/pcAppearanceIntro.js b/src/events/intro/pcAppearanceIntro.js
index 82cefc77e27c4a39910e0bd2721fc940d1a3728d..31bc761ae627e0276d3232ab091f19e32af207c5 100644
--- a/src/events/intro/pcAppearanceIntro.js
+++ b/src/events/intro/pcAppearanceIntro.js
@@ -1,14 +1,14 @@
 App.Intro.PCAppearanceIntro = function() {
 	const node = new DocumentFragment();
-	// :: PC Appearance Intro [nobr]
+
 	node.append(
 		`Race and appearance are largely irrelevant in the Free Cities; there are only the free and the enslaved.`,
 		App.UI.DOM.makeElement("div", `Appearance only, will mostly have a superficial effect (unless you make a big deal out of it).`, ["indent", "note"])
 	);
 
-	const _options = new App.UI.OptionsGroup();
-	App.UI.Player.appearance(_options);
-	node.append(_options.render());
+	const options = new App.UI.OptionsGroup();
+	App.UI.Player.appearance(options);
+	node.append(options.render());
 
 	if (isFertile(V.PC)) {
 		App.UI.DOM.appendNewElement("div", node, App.UI.DOM.passageLink(
diff --git a/src/events/intro/pcPregIntro.js b/src/events/intro/pcPregIntro.js
index c88aee7211753fe7468c040cae790ef7889f7255..032b64b63235821f876de747ebb0fd517518335d 100644
--- a/src/events/intro/pcPregIntro.js
+++ b/src/events/intro/pcPregIntro.js
@@ -1,6 +1,5 @@
 App.Intro.PCPregIntro = function() {
 	const node = new DocumentFragment();
-	// :: PC Preg Intro [nobr]
 
 	App.Events.addParagraph(node, [
 		`You have a working female reproductive system, and thus, a menstrual cycle. Women already face hardships as slaveowners and arcology owners, and being with child, coupled with a strong societal aversion to the dominant being penetrated, leads most pregnant owners to find themselves in dire situations. As an added precaution, since nothing stops an owner from hooking up with another owner, contraceptives are common amongst free women.`,
@@ -81,9 +80,7 @@ App.Intro.PCPregIntro = function() {
 
 	App.UI.DOM.appendNewElement("p", node, `Hormones can be an interesting thing, but how do they affect you?`, ["intro", "question"]);
 
-	// <p>
 	r = [];
-	linkArray = [];
 	r.push(`You're`);
 	if (V.PC.pregMood === 1) {
 		r.push(`gentle and motherly when you're hormonal.`);
@@ -92,35 +89,15 @@ App.Intro.PCPregIntro = function() {
 	} else {
 		r.push(`aggressive and domineering when you're hormonal.`);
 	}
-	if (V.PC.pregMood !== 0) {
-		r.push(`gentle and motherly when you're hormonal.`);
-		linkArray.push(App.UI.DOM.passageLink(
-			"Normal",
-			"PC Preg Intro",
-			() => V.PC.pregMood = 0
-		));
-	}
-	if (V.PC.pregMood !== 1) {
-		r.push(`in complete control of yourself.`);
-		linkArray.push(App.UI.DOM.passageLink(
-			"Motherly",
-			"PC Preg Intro",
-			() => V.PC.pregMood = 1
-		));
-	}
-	if (V.PC.pregMood !== 2) {
-		linkArray.push(App.UI.DOM.passageLink(
-			"Aggressive",
-			"PC Preg Intro",
-			() => V.PC.pregMood = 2
-		));
-	}
-
-	App.Events.addParagraph(node, [
-		r.join(" "),
-		App.UI.DOM.generateLinksStrip(linkArray),
-		App.UI.DOM.makeElement("span", `Hormone induced moods may alter some sex scenes, as well as change slaves' reactions to you.`, "note")
-	]);
+	const options = new App.UI.OptionsGroup();
+	options.addOption(r.join(" "), "pregMood", V.PC)
+		.addValueMap(new Map([
+			["Normal", 0],
+			["Motherly", 1],
+			["Aggressive", 2]
+		]))
+		.addComment(`Hormone induced moods may alter some sex scenes, as well as change slaves' reactions to you.`);
+	node.append(options.render());
 
 	App.UI.DOM.appendNewElement("p", node, App.UI.DOM.passageLink(
 		"Confirm player character customization",
diff --git a/src/events/intro/slaveAgeIntro.js b/src/events/intro/slaveAgeIntro.js
index 570e53552460281e0b487103fb6b390ee02ec317..974393450cd8fa2e517763fa6dc2dd5f0ac13e15 100644
--- a/src/events/intro/slaveAgeIntro.js
+++ b/src/events/intro/slaveAgeIntro.js
@@ -1,6 +1,5 @@
 App.Intro.slaveAgeIntro = function() {
 	const node = new DocumentFragment();
-	// :: Slave Age Intro [nobr]
 
 	App.UI.DOM.appendNewElement("p", node, `Do you want to see content involving girls younger than 18 in this game?`, ["intro", "question"]);
 
diff --git a/src/events/intro/tradeIntro.js b/src/events/intro/tradeIntro.js
index ef7f39db17c74be9390096cf03f6e27f3c49be34..58199ce6856ce6756287f67088c198bb8351a130 100644
--- a/src/events/intro/tradeIntro.js
+++ b/src/events/intro/tradeIntro.js
@@ -1,6 +1,5 @@
 App.Intro.tradeIntro = function() {
 	const node = new DocumentFragment();
-	// :: Trade Intro [nobr]
 
 	App.Events.addParagraph(node, [
 		`Most of the Free Cities are run on radically libertarian or even anarcho-capitalist principles. The first Free Cities experimented with indentured servitude, and this rapidly developed into widespread slavery. By now, the Free Cities collectively are a fundamentally slaveowning society and maintain a thriving slave trade that feeds off the terrible conditions in parts of the old world.`,
diff --git a/src/events/nonRandom/daughters/pBombing.js b/src/events/nonRandom/daughters/pBombing.js
index 1e125f79f5a611dad204e29587f5cbc5b26c3103..7c55c2d4676b67d8e9f4b932f364a402f421a62e 100644
--- a/src/events/nonRandom/daughters/pBombing.js
+++ b/src/events/nonRandom/daughters/pBombing.js
@@ -137,5 +137,6 @@ App.Events.PBombing = class PBombing extends App.Events.BaseEvent {
 			setTimeout(() => Engine.play("Gameover"), Engine.minDomActionDelay);
 		}
 		r.push(`Hours later, you receive another message from the Daughters of Liberty. This one is even briefer than the first. "Next time, '${properMaster()},'" it reads.`);
+		App.Events.addParagraph(node, r);
 	}
 };
diff --git a/src/events/nonRandom/daughters/pCoupAttempt.js b/src/events/nonRandom/daughters/pCoupAttempt.js
index 94008c2f305c61145653c0a9fd1993dda6311bf9..3c011f4523a8044161afcd814254de5a75d71eaa 100644
--- a/src/events/nonRandom/daughters/pCoupAttempt.js
+++ b/src/events/nonRandom/daughters/pCoupAttempt.js
@@ -1,11 +1,4 @@
 App.Events.PCoupAttempt = class PCoupAttempt extends App.Events.BaseEvent {
-	eventPrerequisites() {
-		return [
-			() => V.collaboration === 1,
-			() => V.traitorType !== "trapper"
-		];
-	}
-
 	execute(node) {
 		let r = [];
 		const {
@@ -208,14 +201,14 @@ App.Events.PCoupAttempt = class PCoupAttempt extends App.Events.BaseEvent {
 			} else {
 				pcaj = 0;
 			}
-			for (let _pca = 0; _pca <= pcaj; _pca++) {
-				const _slave = GenerateNewSlave("XY", {minAge: 16, maxAge: 32, disableDisability: 1});
-				generateSalonModifications(_slave);
-				_slave.origin = "$He is an enslaved Daughter of Liberty.";
-				_slave.weight = random(-20, 30);
-				_slave.muscles = random(20, 80);
-				_slave.waist = random(10, 80);
-				newSlaves.push(_slave);
+			for (let pca = 0; pca <= pcaj; pca++) {
+				const slave = GenerateNewSlave("XY", {minAge: 16, maxAge: 32, disableDisability: 1});
+				generateSalonModifications(slave);
+				slave.origin = "$He is an enslaved Daughter of Liberty.";
+				slave.weight = random(-20, 30);
+				slave.muscles = random(20, 80);
+				slave.waist = random(10, 80);
+				newSlaves.push(slave);
 			}
 			if (V.seeDicks < 50) {
 				pcaj = 3;
@@ -224,14 +217,14 @@ App.Events.PCoupAttempt = class PCoupAttempt extends App.Events.BaseEvent {
 			} else {
 				pcaj = 0;
 			}
-			for (let _pca = 0; _pca <= pcaj; _pca++) {
-				const _slave = GenerateNewSlave("XX", {minAge: 16, maxAge: 32, disableDisability: 1});
-				generateSalonModifications(_slave);
-				_slave.origin = "$He is an enslaved Daughter of Liberty.";
-				_slave.weight = random(-50, 30);
-				_slave.muscles = random(0, 80);
-				_slave.waist = random(-20, 20);
-				newSlaves.push(_slave);
+			for (let pca = 0; pca <= pcaj; pca++) {
+				const slave = GenerateNewSlave("XX", {minAge: 16, maxAge: 32, disableDisability: 1});
+				generateSalonModifications(slave);
+				slave.origin = "$He is an enslaved Daughter of Liberty.";
+				slave.weight = random(-50, 30);
+				slave.muscles = random(0, 80);
+				slave.waist = random(-20, 20);
+				newSlaves.push(slave);
 			}
 			V.trinkets.push("a Daughters of Liberty brassard");
 			r.push(IncreasePCSkills('warfare', 5));
@@ -270,8 +263,8 @@ App.Events.PCoupAttempt = class PCoupAttempt extends App.Events.BaseEvent {
 
 		function sell() {
 			for (const slave of newSlaves) {
-				const _slaveCost = slaveCost(slave);
-				cashX(_slaveCost, "slaveTransfer");
+				const cost = slaveCost(slave);
+				cashX(cost, "slaveTransfer");
 			}
 			return `Prisoners sold.`;
 		}
@@ -280,8 +273,8 @@ App.Events.PCoupAttempt = class PCoupAttempt extends App.Events.BaseEvent {
 			const frag = new DocumentFragment();
 			let r = [];
 			for (const slave of newSlaves) {
-				const _slaveCost = slaveCost(slave);
-				repX(Math.trunc(_slaveCost / 10), "war");
+				const cost = slaveCost(slave);
+				repX(Math.trunc(cost / 10), "war");
 			}
 			r.push(`Prisoners <span class="green">given away.</span>`);
 			App.Events.addParagraph(frag, r);
diff --git a/src/events/nonRandom/daughters/pCoupBetrayal.js b/src/events/nonRandom/daughters/pCoupBetrayal.js
index c7e3ca7a578f723fc886722f69a5caac69a54fce..b2d9f174a147a693c3386971d342909d24bc72f1 100644
--- a/src/events/nonRandom/daughters/pCoupBetrayal.js
+++ b/src/events/nonRandom/daughters/pCoupBetrayal.js
@@ -1,11 +1,4 @@
 App.Events.PCoupBetrayal = class PCoupBetrayal extends App.Events.BaseEvent {
-	eventPrerequisites() {
-		return [
-			() => V.collaboration === 1,
-			() => V.traitorType !== "trapper"
-		];
-	}
-
 	execute(node) {
 		let r = [];
 		const {He, he} = getPronouns(V.traitor ? V.traitor : {pronoun: App.Data.Pronouns.Kind.neutral});
@@ -13,15 +6,15 @@ App.Events.PCoupBetrayal = class PCoupBetrayal extends App.Events.BaseEvent {
 		V.nextButton = "Continue";
 		V.daughtersVictory = 1;
 
-		const _weeks = V.traitorWeeks-1;
-		const _pregWeeks = V.traitorWeeks-1;
+		const weeks = V.traitorWeeks-1;
+		const pregWeeks = V.traitorWeeks-1;
 		V.traitorWeeks = 0;
 
 		if (V.traitor === 0) { // never happens, needed for typing
 			return node;
 		}
 
-		WombProgress(V.traitor, _pregWeeks, _pregWeeks); /* In all cases should be done */
+		WombProgress(V.traitor, pregWeeks, pregWeeks); /* In all cases should be done */
 		WombUpdatePregVars(V.traitor);
 		if (WombBirthReady(V.traitor, V.traitor.pregData.normalBirth) > 0 ) { /* normal birth case, partial birthers not supported*/
 			V.traitor.preg = -1;
@@ -35,10 +28,10 @@ App.Events.PCoupBetrayal = class PCoupBetrayal extends App.Events.BaseEvent {
 
 		if (V.traitor.bald !== 1) {
 			if (V.traitor.hLength < 150) {
-				V.traitor.hLength += _weeks;
+				V.traitor.hLength += weeks;
 			}
 		}
-		ageSlaveWeeks(V.traitor, _weeks);
+		ageSlaveWeeks(V.traitor, weeks);
 
 		r.push(`You are awakened in the middle of the night by a jolt that shakes the entire arcology, accompanied by a distant boom. It is followed by the wail of the arcology's alarm systems, and then finally by a faint crackle that grows to a constant chatter of gunfire. You rush to the video feeds to see what is going on. The Daughters of Liberty have not only succeeded in locking down your arcology with them outside of it, but have effectively cornered themselves against it. A PMC group has their retreat cut off and is steadily bleeding their numbers. It is a rather short, if not spectacular, battle.`);
 
@@ -57,6 +50,7 @@ App.Events.PCoupBetrayal = class PCoupBetrayal extends App.Events.BaseEvent {
 		r = [];
 
 		r.push(`When ${V.traitor.slaveName} finally manages to return to you, ${he} explains what happened. ${He} caught wind of the military contractors working in the area and succeeded in goading the Daughters of Liberty into attacking the supposed slaver troop. Once it became clear that the untrained ex-slaves and their saviors stood no chance against a coordinated force, they beat a hasty retreat for your arcology under the assumption that the codes you gave them would allow them a fortifiable position. But alas, they found nothing more than their demise.`);
+		App.Events.addParagraph(node, r);
 		restoreTraitor();
 	}
 };
diff --git a/src/events/nonRandom/daughters/pCoupCollaboration.js b/src/events/nonRandom/daughters/pCoupCollaboration.js
index 414501fb071b0f42ff8051a2db29630c4d106b8e..bb2745d40143ff299fd793b4056f0fb14ed2c03c 100644
--- a/src/events/nonRandom/daughters/pCoupCollaboration.js
+++ b/src/events/nonRandom/daughters/pCoupCollaboration.js
@@ -14,10 +14,10 @@ App.Events.PCoupCollaboration = class PCoupCollaboration extends App.Events.Base
 		} = getPronouns(V.traitor ? V.traitor : {pronoun: App.Data.Pronouns.Kind.neutral});
 
 		if (V.traitor !== 0) {
-			const _pregWeeks = V.traitorWeeks;
+			const pregWeeks = V.traitorWeeks;
 			V.traitorWeeks = 0;
 
-			WombProgress(V.traitor, _pregWeeks, _pregWeeks); /* In all cases should be done */
+			WombProgress(V.traitor, pregWeeks, pregWeeks); /* In all cases should be done */
 			WombUpdatePregVars(V.traitor);
 			if (WombBirthReady(V.traitor, V.traitor.pregData.normalBirth) > 0) { /* normal birth case, partial birthers not supported*/
 				V.traitor.preg = -1;
diff --git a/src/events/nonRandom/daughters/pCoupLoss.js b/src/events/nonRandom/daughters/pCoupLoss.js
index 38fa73c1a1911cf49a5f8e37ef11f2d1e7504acb..98ae7bfe19003a63012389f3fe57dd73096aa204 100644
--- a/src/events/nonRandom/daughters/pCoupLoss.js
+++ b/src/events/nonRandom/daughters/pCoupLoss.js
@@ -3,10 +3,10 @@ App.Events.PCoupLoss = class PCoupLoss extends App.Events.BaseEvent {
 		let r = [];
 
 		if (V.traitor !== 0) {
-			const _pregWeeks = V.traitorWeeks;
+			const pregWeeks = V.traitorWeeks;
 			V.traitorWeeks = 0;
 
-			WombProgress(V.traitor, _pregWeeks, _pregWeeks); /* In all cases should be done */
+			WombProgress(V.traitor, pregWeeks, pregWeeks); /* In all cases should be done */
 			WombUpdatePregVars(V.traitor);
 			if (WombBirthReady(V.traitor, V.traitor.pregData.normalBirth) > 0 ) { /* normal birth case, partial birthers not supported*/
 				V.traitor.preg = -1;
diff --git a/src/events/nonRandom/daughters/pTraitorMessage.js b/src/events/nonRandom/daughters/pTraitorMessage.js
index e8d683daae73a49574be5322ee6906773f5078d5..5735ea1a53fc54191604e85b83783370f8f935b5 100644
--- a/src/events/nonRandom/daughters/pTraitorMessage.js
+++ b/src/events/nonRandom/daughters/pTraitorMessage.js
@@ -13,17 +13,17 @@ App.Events.PTraitorMessage = class PTraitorMessage extends App.Events.BaseEvent
 		} = getPronouns(V.traitor ? V.traitor : {pronoun: App.Data.Pronouns.Kind.neutral});
 
 		V.nextButton = "Continue";
-		const _weeks = V.traitorWeeks-1;
-		const _pregWeeks = V.traitorWeeks-1;
+		const weeks = V.traitorWeeks-1;
+		const pregWeeks = V.traitorWeeks-1;
 		V.traitorWeeks = 1;
 		if (V.traitor === 0) { // never happens, just for typing
 			return node;
 		}
 
 		/* ------------------ pregnancy setup start here----------------- */
-		const _wasPreg = (V.traitor.preg > 0) ? 1 : 0;
+		const wasPreg = (V.traitor.preg > 0) ? 1 : 0;
 
-		WombProgress(V.traitor, _pregWeeks, _pregWeeks); /* In all cases should be done */
+		WombProgress(V.traitor, pregWeeks, pregWeeks); /* In all cases should be done */
 		WombUpdatePregVars(V.traitor);
 		if (V.traitor.broodmother > 0) { /* Broodmother implant is assumed as removed.*/
 			V.traitor.preg = -1;
@@ -41,7 +41,7 @@ App.Events.PTraitorMessage = class PTraitorMessage extends App.Events.BaseEvent
 		}
 		SetBellySize(V.traitor); /* In any case it's useful to do.*/
 
-		const _isPreg = (V.traitor.preg > 0) ? 1 : 0;
+		const isPreg = (V.traitor.preg > 0) ? 1 : 0;
 
 		/* ------------------ pregnancy setup end here-----------------
 			r.push(`As no broodmother cases in code below, it's no need to setup every case of impregnation through new system. Backup mechanic will do it for normal pregnancies.`);
@@ -52,16 +52,16 @@ App.Events.PTraitorMessage = class PTraitorMessage extends App.Events.BaseEvent
 		}
 		if (V.traitor.bald !== 1) {
 			if (V.traitor.hLength < 150) {
-				V.traitor.hLength += _weeks;
+				V.traitor.hLength += weeks;
 			}
 		}
-		ageSlaveWeeks(V.traitor, _weeks);
+		ageSlaveWeeks(V.traitor, weeks);
 
-		r.push(`The month after freeing ${V.traitor.slaveName}, you receive another message from the Daughters of Liberty. This one contains a video. It shows ${V.traitor.slaveName} sitting quietly at a table${(_wasPreg !== _isPreg) ? ", no longer clearly pregnant" : ""}, wearing comfortable clothes and eating a nice meal.`);
+		r.push(`The month after freeing ${V.traitor.slaveName}, you receive another message from the Daughters of Liberty. This one contains a video. It shows ${V.traitor.slaveName} sitting quietly at a table${(wasPreg !== isPreg) ? ", no longer clearly pregnant" : ""}, wearing comfortable clothes and eating a nice meal.`);
 		if (V.traitorType === "agent") {
 			if (V.traitor.intelligence+V.traitor.intelligenceImplant < -50) {
 				r.push(`${He} looks a little bewildered, but there's an obvious happiness to ${him}; ${he} may be falling in with their teachings. ${He} seems unaware ${he}'s being recorded.`);
-			} else if (_wasPreg !== _isPreg) {
+			} else if (wasPreg !== isPreg) {
 				r.push(`${He} looks a little depressed, likely due to giving birth away from home, but ${he} is still playing the part of a traitor impeccably. ${He} seems aware ${he}'s being recorded and, for the briefest moment, makes eye contact with the camera.`);
 			} else {
 				r.push(`${He}'s playing the part of a traitor impeccably, feigning happiness despite yearning to be at your side. ${He} seems aware ${he}'s being recorded and, for the briefest moment, makes eye contact with the camera.`);
@@ -76,5 +76,6 @@ App.Events.PTraitorMessage = class PTraitorMessage extends App.Events.BaseEvent
 		r = [];
 
 		r.push(`A voice cuts in, calm but filled with unmistakable rage: "I hope you don't think this fixes everything, scum. We're still coming for you, and for all your slaveowning friends. All you've bought with this is the chance to maybe come out alive at the end. We'll be in touch."`);
+		App.Events.addParagraph(node, r);
 	}
 };
diff --git a/src/events/nonRandom/daughters/pUndergroundRailroad.js b/src/events/nonRandom/daughters/pUndergroundRailroad.js
index d19ed5bcf72039c2b6fa32aa5870a68dad963195..1346528190d633cd8f9c10642365bbeb72003f6d 100644
--- a/src/events/nonRandom/daughters/pUndergroundRailroad.js
+++ b/src/events/nonRandom/daughters/pUndergroundRailroad.js
@@ -191,6 +191,7 @@ App.Events.PUndergroundRailroad = class PUndergroundRailroad extends App.Events.
 				} else {
 					r.push(`shakily gestures an apology, and admits that ${he} does.`);
 				}
+				App.Events.addParagraph(node, r);
 			}
 
 			const responses = [
diff --git a/src/events/nonRandom/eliteTakeOver.js b/src/events/nonRandom/eliteTakeOver.js
index 51299bd0ca184fa2c6edc91b76639d4ae9a274ca..42de7ed345b8f33b336cd46b204c42fecb30ef94 100644
--- a/src/events/nonRandom/eliteTakeOver.js
+++ b/src/events/nonRandom/eliteTakeOver.js
@@ -22,7 +22,7 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 			he, his
 		} = getPronouns(S.Bodyguard ? S.Bodyguard : {pronoun: App.Data.Pronouns.Kind.neutral});
 
-		let _pregSurrender = 0; // preg/lobotomization check
+		let pregSurrender = 0; // preg/lobotomization check
 		r.push(`You knew this day would come. Surrounding yourself with powerful people has its boons, but also poses a distinct threat. You've heard them murmuring when you enter the room, you've seen them excuse themselves from your presence, and lately they've been overtly hostile. The Societal Elite${(V.arcologies[0].FSNeoImperialistLaw2 === 1) ? ", likely with the support of your ever-plotting Barons," : ""} have turned on you.`);
 		App.Events.addNode(container, r, "div");
 		r = [];
@@ -67,7 +67,7 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 				r.push(`As ${he} and their leader struggle closer to your desk, his revolver and a syringe are dislodged onto your desk. It seems drugging you wasn't their first thought. With ${S.Bodyguard.slaveName}'s risky gamble, your fate has fallen back into your hands.`);
 			} else {
 				r.push(`You'll spend the rest of your life a breeder to the Societal Elite; blinded and muted. More than a slave, but still less than your master. Life isn't so bad, your two most devoted slaves were taken along to keep you happy, and you are treated quite well, possibilities considered. Though once your eggs dry up, odds are your little remaining usefulness will be at an end. Best not to think too much into it.`);
-				_pregSurrender = 1;
+				pregSurrender = 1;
 				V.ui = "start";
 				App.Events.addParagraph(container, r);
 				r = [];
@@ -81,7 +81,7 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 		}
 		App.Events.addParagraph(container, r);
 
-		if (_pregSurrender === 0) {
+		if (pregSurrender === 0) {
 			App.UI.DOM.appendNewElement("div", container, "You decide to");
 
 			const choices = [];
@@ -132,33 +132,33 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 		function eliteTakeOverFight(finalChoice) {
 			const node = new DocumentFragment();
 			let r = [];
-			let _BgSignaled;
-			let _EliteEnraged;
+			let bgSignaled;
+			let eliteEnraged;
 
 			switch (finalChoice) {
 				case "bodyguard": {
-					const _roll = random(0, 100);
+					const roll = random(0, 100);
 					if (V.PC.career === "mercenary") {
 						r.push(`As a result of your prior experience as a mercenary you were able to successfully signal ${S.Bodyguard.slaveName} without the Elites noticing.`);
-						_BgSignaled = 1;
-					} else if (V.PC.skill.warfare >= 100 && _roll > 20) {
+						bgSignaled = 1;
+					} else if (V.PC.skill.warfare >= 100 && roll > 20) {
 						r.push(`As a result of your mastery of warfare you were able to successfully signal ${S.Bodyguard.slaveName} without the Elites noticing.`);
-						_BgSignaled = 1;
-					} else if (V.PC.skill.warfare >= 60 && _roll > 30) {
+						bgSignaled = 1;
+					} else if (V.PC.skill.warfare >= 60 && roll > 30) {
 						r.push(`As a result of your expertness of warfare you were able to successfully signal ${S.Bodyguard.slaveName} without the Elites noticing.`);
-						_BgSignaled = 1;
-					} else if (V.PC.skill.warfare >= 30 && _roll > 40) {
+						bgSignaled = 1;
+					} else if (V.PC.skill.warfare >= 30 && roll > 40) {
 						r.push(`As a result of having some skill in warfare you were able to successfully signal ${S.Bodyguard.slaveName} without the elites noticing.`);
-						_BgSignaled = 1;
-					} else if (V.PC.skill.warfare >= 10 && _roll > 50) {
+						bgSignaled = 1;
+					} else if (V.PC.skill.warfare >= 10 && roll > 50) {
 						r.push(`As a result of having a small amount of skill in warfare you were able to successfully signal ${S.Bodyguard.slaveName} without the Elites noticing.`);
-						_BgSignaled = 1;
-					} else if (V.PC.skill.warfare < 10 && _roll > 60) {
+						bgSignaled = 1;
+					} else if (V.PC.skill.warfare < 10 && roll > 60) {
 						r.push(`By blind luck and what little you remember of your lessons in warfare are were able to successfully signal ${S.Bodyguard.slaveName} without the Elites noticing.`);
-						_BgSignaled = 1;
+						bgSignaled = 1;
 					} else {
 						r.push(`One of the Elites shouts "What the fuck are you trying to do?" Well, there goes that option.`);
-						_BgSignaled = 0;
+						bgSignaled = 0;
 					}
 					App.Events.addNode(node, r, "div");
 					r = [];
@@ -178,13 +178,13 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 				case "enrage":
 					if (["arcology owner", "BlackHat", "capitalist", "celebrity", "child prostitute", "escort", "gang", "hacker", "hoodlum", "medical assistant", "medicine", "prostitute", "rich kid", "rising star", "trust fund", "wealth"].includes(V.PC.career)) {
 						r.push(`You know exactly what to say in order to enrage them.`);
-						_EliteEnraged = 1;
+						eliteEnraged = 1;
 					} else if (random(0, 100) > 50) {
 						r.push(`You manage to select the right words to enrage them.`);
-						_EliteEnraged = 1;
+						eliteEnraged = 1;
 					} else {
 						r.push(`You try to enrage them, but your words have had no effect.`);
-						_EliteEnraged = 0;
+						eliteEnraged = 0;
 					}
 					App.Events.addNode(node, r, "div");
 					r = [];
@@ -213,36 +213,36 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 
 				/* variables: */
 				/* Revolver */
-				let _revolverChambers = 6;
-				let _revolverBullets = 5;
+				let revolverChambers = 6;
+				let revolverBullets = 5;
 
 				/* To Hit chance */
-				let _toHit;
+				let toHit;
 				if (V.PC.pregSource === -1 || V.PC.pregSource === -6) { /* still woozy */
-					_toHit = 56;
+					toHit = 56;
 				} else if (V.PC.career === "mercenary" || V.PC.skill.warfare >= 100) {
-					_toHit = 83;
+					toHit = 83;
 				} else if (V.PC.skill.warfare >= 60) {
-					_toHit = 76;
+					toHit = 76;
 				} else if (V.PC.skill.warfare >= 30) {
-					_toHit = 67;
+					toHit = 67;
 				} else if (V.PC.skill.warfare >= 10) {
-					_toHit = 60;
+					toHit = 60;
 				} else {
-					_toHit = 56;
+					toHit = 56;
 				}
-				if (_EliteEnraged === 1) {
-					_toHit += 5;
+				if (eliteEnraged === 1) {
+					toHit += 5;
 				}
 
 				/* shooting */
 				/* in the end I removed the messages from the cycle. I don't think having 6 lines of "you shot" is pretty looking. Feel free to re add them in however */
-				for (let _i = _revolverChambers; _i > 0; _i--) {
-					if (random(0, 100) <= _toHit && _revolverBullets > 0) {
+				for (let i = revolverChambers; i > 0; i--) {
+					if (random(0, 100) <= toHit && revolverBullets > 0) {
 						eliteDead += 1;
-						_revolverBullets -= 1;
-					} else if (_revolverBullets > 0) {
-						_revolverBullets -= 1;
+						revolverBullets -= 1;
+					} else if (revolverBullets > 0) {
+						revolverBullets -= 1;
 					}
 				}
 				App.Events.addNode(node, r, "div");
@@ -259,7 +259,7 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 
 				/* syringe shot */
 				eliteVegetable = 0;
-				let _druggedThrow = 0;
+				let druggedThrow = 0;
 
 				if (eliteDead > 0) {
 					r.push(`With ${eliteDead} Elites dead, you pick up the syringe from the desk and aim for the forehead of another.`);
@@ -269,7 +269,7 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 				if (V.PC.pregSource === -1 || V.PC.pregSource === -6) {
 					r.push(`But there's two of them... Shaking your head, you realize it's the drugs messing with you. You just need to focus.`);
 				}
-				const hitRoll = (random(0, 100) - _druggedThrow);
+				const hitRoll = (random(0, 100) - druggedThrow);
 				let syringeHeadShot;
 				if (V.PC.career === "mercenary" && hitRoll > 0) {
 					r.push(`With your prior history as a mercenary, making the throw is child's play.`);
@@ -317,35 +317,35 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 				}
 				App.Events.addNode(node, r, "div");
 				r = [];
-				let _SpentRevolverHitSyringePlunger;
+				let spentRevolverHitSyringePlunger;
 				if (syringeHeadShot === 1) {
 					r.push(`Picking up the spent revolver, you aim for the syringe's plunger.`);
 					if (V.PC.career === "mercenary") {
 						r.push(`With your prior history as a mercenary, making the throw is child's play.`);
-						_SpentRevolverHitSyringePlunger = 1;
+						spentRevolverHitSyringePlunger = 1;
 					} else if (V.PC.skill.warfare >= 100 && random(0, 100) > 50) {
 						r.push(`As a result of your mastery of warfare you successfully made the throw.`);
-						_SpentRevolverHitSyringePlunger = 1;
+						spentRevolverHitSyringePlunger = 1;
 					} else if (V.PC.skill.warfare >= 60 && random(0, 100) > 60) {
 						r.push(`As a result of your expertness of warfare you successfully made the throw.`);
-						_SpentRevolverHitSyringePlunger = 1;
+						spentRevolverHitSyringePlunger = 1;
 					} else if (V.PC.skill.warfare >= 30 && random(0, 100) > 70) {
 						r.push(`As you have some skill you successfully made the throw.`);
-						_SpentRevolverHitSyringePlunger = 1;
+						spentRevolverHitSyringePlunger = 1;
 					} else if (V.PC.skill.warfare >= 10 && random(0, 100) > 80) {
 						r.push(`Your small amount of skill assisted you in making the throw.`);
-						_SpentRevolverHitSyringePlunger = 1;
+						spentRevolverHitSyringePlunger = 1;
 					} else if (V.PC.skill.warfare < 10 && random(0, 100) > 90) {
 						r.push(`By blind luck you successfully made the throw.`);
-						_SpentRevolverHitSyringePlunger = 1;
+						spentRevolverHitSyringePlunger = 1;
 					} else {
 						r.push(`Unfortunately you miss the shot.`);
-						_SpentRevolverHitSyringePlunger = 0;
+						spentRevolverHitSyringePlunger = 0;
 					}
 				}
 				App.Events.addNode(node, r, "div");
 				r = [];
-				if (_SpentRevolverHitSyringePlunger === 1) {
+				if (spentRevolverHitSyringePlunger === 1) {
 					if (random(0, 100) > 50) {
 						r.push(`The target dies of nervous system overload brought about by the drug.`);
 						eliteDead += 1;
@@ -366,7 +366,7 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 			/*		enslaved = 1				*/
 			/*		had fun (and enslaved) = 2	*/
 
-			if (_BgSignaled === 1) {
+			if (bgSignaled === 1) {
 				const {title: Master} = getEnunciation(S.Bodyguard);
 				r.push(`${S.Bodyguard.slaveName} asks, "${Master}, what should I do with the`);
 				if (eliteLeft < eliteTotal) {
@@ -462,7 +462,7 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 				const {
 					himU, hisU
 				} = getNonlocalPronouns(V.seeDicks).appendSuffix("U");
-				let _SFHappyEverAfter;
+				let sfHappyEverAfter;
 
 				switch (fate) {
 					case 0:
@@ -570,12 +570,12 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 							]);
 
 							function no() {
-								_SFHappyEverAfter = 0;
+								sfHappyEverAfter = 0;
 								return `Your rejection upsets some of them, but their professionalism ensures it isn't visible.`;
 							}
 							function yes() {
 								eliteLeft -= 1;
-								_SFHappyEverAfter = 1;
+								sfHappyEverAfter = 1;
 								repX(2500, "event");
 								return `For a second your acceptance shocks them. Once they recover they are very grateful. "Thank you ${properTitle()}, I'll make sure to look after ${himU}." Soon the story spreads of the kind arcology owner, enhancing your reputation.`;
 							}
@@ -583,7 +583,7 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 								switch (V.SF.Colonel.Core) {
 									case "kind":
 										r.push(`The Colonel is shocked that you would allow her troops to do this but understands that it comes with the territory.`);
-										if (_SFHappyEverAfter === 1) { // TODO: this never worked in tw since this is set by a link that doesn't refresh this content.
+										if (sfHappyEverAfter === 1) { // TODO: this never worked in tw since this is set by a link that doesn't refresh this content.
 											r.push(`"Thanks for being kind to one of my soldiers."`);
 										}
 										break;
@@ -591,7 +591,7 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 									case "cruel":
 									case "jaded":
 										r.push(`The Colonel is grateful that you let her troops let off some steam.`);
-										if (_SFHappyEverAfter === 1) {
+										if (sfHappyEverAfter === 1) {
 											r.push(`"Thanks for being kind to one of my soldiers."`);
 										}
 								}
@@ -639,7 +639,7 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 						if (slave.boobShape === "saggy" || slave.boobShape === "downward-facing") {
 							slave.boobShape = either("perky", "torpedo-shaped", "wide-set");
 						}
-						applyMindbroken(slave);
+						applyMindbroken(slave, random(70, 100));
 						slave.pubicHStyle = "waxed";
 						slave.underArmHStyle = "waxed";
 						slave.anus = 0;
@@ -648,7 +648,7 @@ App.Events.eliteTakeOver = class eliteTakeOver extends App.Events.BaseEvent {
 						slave.canRecruit = 0;
 						newSlave(slave); /* skip New Slave Intro */
 					}
-					for (let _i = eliteLeft; _i > 0; _i--) {
+					for (let i = eliteLeft; i > 0; i--) {
 						const gender = (V.seeDicks === 100 || (random(1, 100) > 50)) ? "XY" : "XX"; /* 50% chance of getting girl or boy */
 						const slave = GenerateNewSlave(gender, {minAge: 25, maxAge: V.retirementAge - 2, race: "nonslave"});
 						slave.origin = "$He was a member of the Societal Elite, captured in their failed attempt at expressing their displeasure.";
diff --git a/src/events/nonRandom/foodCrisis/pFoodCrisisLowerClass.js b/src/events/nonRandom/foodCrisis/pFoodCrisisLowerClass.js
index 4fcf64c831cbd5df297bf81536e372469bb9d292..bc288790a63c42dec11d458147688dbbf49d0a6b 100644
--- a/src/events/nonRandom/foodCrisis/pFoodCrisisLowerClass.js
+++ b/src/events/nonRandom/foodCrisis/pFoodCrisisLowerClass.js
@@ -1,4 +1,4 @@
-App.Events.pFoodCrisisLowerClass = class PFoodCrisis extends App.Events.BaseEvent {
+App.Events.pFoodCrisisLowerClass = class pFoodCrisisLowerClass extends App.Events.BaseEvent {
 	actorPrerequisites() {
 		return [];
 	}
diff --git a/src/events/nonRandom/foodCrisis/pFoodCrisisMiddleClass.js b/src/events/nonRandom/foodCrisis/pFoodCrisisMiddleClass.js
index 913100971c1bc11eb0143f5cca4c162834de29c4..513f1574b62c1494d36e1b93b29779c4032b414c 100644
--- a/src/events/nonRandom/foodCrisis/pFoodCrisisMiddleClass.js
+++ b/src/events/nonRandom/foodCrisis/pFoodCrisisMiddleClass.js
@@ -1,4 +1,4 @@
-App.Events.pFoodCrisisMiddleClass = class PFoodCrisis extends App.Events.BaseEvent {
+App.Events.pFoodCrisisMiddleClass = class pFoodCrisisMiddleClass extends App.Events.BaseEvent {
 	actorPrerequisites() {
 		return [];
 	}
diff --git a/src/events/nonRandom/foodCrisis/pFoodCrisisUpperClass.js b/src/events/nonRandom/foodCrisis/pFoodCrisisUpperClass.js
index 3e5c573a4bad03b7016b7f63d9efb3cf9e1a66eb..a58b2c864789086b29a2e079bda66f8299f3d0ff 100644
--- a/src/events/nonRandom/foodCrisis/pFoodCrisisUpperClass.js
+++ b/src/events/nonRandom/foodCrisis/pFoodCrisisUpperClass.js
@@ -1,4 +1,4 @@
-App.Events.pFoodCrisisUpperClass = class PFoodCrisis extends App.Events.BaseEvent {
+App.Events.pFoodCrisisUpperClass = class pFoodCrisisUpperClass extends App.Events.BaseEvent {
 	actorPrerequisites() {
 		return [];
 	}
diff --git a/src/events/nonRandom/mercs/pMercenaries.js b/src/events/nonRandom/mercs/pMercenaries.js
index 6330976dc243e156b95d1e77cd8dc8192d5022ff..3ee123f4e24f2fdc1a11f3404517270157b61eef 100644
--- a/src/events/nonRandom/mercs/pMercenaries.js
+++ b/src/events/nonRandom/mercs/pMercenaries.js
@@ -10,11 +10,11 @@ App.Events.PMercenaries = class PMercenaries extends App.Events.BaseEvent {
 		V.mercenaries = 0;
 		V.mercenariesTitle = "mercenaries";
 
-		let _price = 5000;
+		let price = 5000;
 		if (V.PC.skill.warfare >= 100) {
-			_price = 2500;
+			price = 2500;
 		} else if (V.PC.skill.warfare >= 50) {
-			_price = 3725;
+			price = 3725;
 		}
 
 		App.Events.addParagraph(node, [`Another wave of security hysteria is sweeping the Free Cities. And this time, it's not based on rumor and alarmism. On the other side of the globe, a Free City was sacked by an old world army today. The Free City's handful of high-technology defenders and multitude of drones caused heavy casualties among the attackers, but eventually sheer weight of numbers wore them down.`]);
@@ -31,7 +31,7 @@ App.Events.PMercenaries = class PMercenaries extends App.Events.BaseEvent {
 		choices.push(new App.Events.Result(
 			`Quarter a squad in the arcology`, quarter,
 			App.Events.makeNode([
-				`This will cost ${cashFormat(_price)} ${discount ?
+				`This will cost ${cashFormat(price)} ${discount ?
 					`and some upkeep, <span class="skill player">reduced by your mercenary contacts.</span>` :
 					`and incur significant upkeep costs.`}`
 			])
@@ -39,7 +39,7 @@ App.Events.PMercenaries = class PMercenaries extends App.Events.BaseEvent {
 		choices.push(new App.Events.Result(
 			`Quarter a platoon in the arcology`, platoon,
 			App.Events.makeNode([
-				`This will cost ${cashFormat(_price * 2)} ${discount ?
+				`This will cost ${cashFormat(price * 2)} ${discount ?
 					`and some upkeep, <span class="skill player">reduced by your mercenary contacts</span>.` :
 					`and incur significant upkeep costs.`}`
 			])
@@ -49,7 +49,7 @@ App.Events.PMercenaries = class PMercenaries extends App.Events.BaseEvent {
 
 		function quarter() {
 			repX(-100, "event");
-			cashX(forceNeg(_price), "mercenaries");
+			cashX(forceNeg(price), "mercenaries");
 			V.mercenaries = 1;
 			if (V.secExpEnabled > 0) {
 				V.SecExp.units.mercs.free = 15;
@@ -59,7 +59,7 @@ App.Events.PMercenaries = class PMercenaries extends App.Events.BaseEvent {
 
 		function platoon() {
 			repX(-500, "event");
-			cashX(forceNeg(_price * 2), "mercenaries");
+			cashX(forceNeg(price * 2), "mercenaries");
 			V.mercenaries = 3;
 			if (V.secExpEnabled > 0) {
 				V.SecExp.units.mercs.free = 30;
diff --git a/src/events/nonRandom/mercs/pMercenaryRomeo.js b/src/events/nonRandom/mercs/pMercenaryRomeo.js
index 540089bceba569e998b49f17dd895c05222bf077..50b47db838bdb0cd7011758904394f3158129883 100644
--- a/src/events/nonRandom/mercs/pMercenaryRomeo.js
+++ b/src/events/nonRandom/mercs/pMercenaryRomeo.js
@@ -13,28 +13,28 @@ App.Events.PMercenaryRomeo = class PMercenaryRomeo extends App.Events.BaseEvent
 		V.nextButton = "Continue";
 		/** @type {FC.Zeroable<string>} */
 		let name = 0;
-		let _slaveCost;
+		let cost;
 		let juliet;
 
-		let _romeoSlaves = V.slaves.filter(function(s) { return s.fetish !== "mindbroken" && s.fuckdoll === 0 && ["serve in the club", "serve the public", "whore", "work in the brothel"].includes(s.assignment); });
-		if (_romeoSlaves.length === 0) {
-			_romeoSlaves = V.slaves.filter(function(s) { return (s.counter.publicUse > 0) && (s.newGamePlus === 0) && (s.relationship > -3) && !["be your Concubine", "serve in the master suite"].includes(s.assignment); });
-			if (_romeoSlaves.length === 0) {
+		let romeoSlaves = V.slaves.filter(function(s) { return s.fetish !== "mindbroken" && s.fuckdoll === 0 && ["serve in the club", "serve the public", "whore", "work in the brothel"].includes(s.assignment); });
+		if (romeoSlaves.length === 0) {
+			romeoSlaves = V.slaves.filter(function(s) { return (s.counter.publicUse > 0) && (s.newGamePlus === 0) && (s.relationship > -3) && !["be your Concubine", "serve in the master suite"].includes(s.assignment); });
+			if (romeoSlaves.length === 0) {
 				name = setup.whiteAmericanSlaveNames.random();
 			} else {
-				juliet = _romeoSlaves.random();
+				juliet = romeoSlaves.random();
 			}
 		} else {
-			juliet = _romeoSlaves.random();
+			juliet = romeoSlaves.random();
 		}
 		if (juliet === undefined) {
 			name = setup.whiteAmericanSlaveNames.random();
 		}
 
 		if (name === 0) {
-			_slaveCost = slaveCost(juliet);
-			_slaveCost = (random(60, 70) * Math.trunc(_slaveCost / 100));
-			_slaveCost = 100 * Math.trunc(_slaveCost / 100);
+			cost = slaveCost(juliet);
+			cost = (random(60, 70) * Math.trunc(cost / 100));
+			cost = 100 * Math.trunc(cost / 100);
 		}
 		const {
 			He, His,
@@ -83,7 +83,7 @@ App.Events.PMercenaryRomeo = class PMercenaryRomeo extends App.Events.BaseEvent
 					`here and there and I can't stop thinking about ${him}. I feel ${he}'d make the years sit a little lighter on me.`
 				);
 			}
-			r.push(`I've scraped together what I can, and I can pay ${cashFormat(_slaveCost)}." It's a decent price, probably a little less than you could get at auction. It's a huge sum for a mercenary; it's probably his entire savings. You ask what he would do with ${him}. "Well," he says, actually blushing, "I'd free ${him}. And marry ${him}, if ${he}'d have me."`);
+			r.push(`I've scraped together what I can, and I can pay ${cashFormat(cost)}." It's a decent price, probably a little less than you could get at auction. It's a huge sum for a mercenary; it's probably his entire savings. You ask what he would do with ${him}. "Well," he says, actually blushing, "I'd free ${him}. And marry ${him}, if ${he}'d have me."`);
 
 			App.Events.addParagraph(node, r);
 			const choices = [];
@@ -137,7 +137,7 @@ App.Events.PMercenaryRomeo = class PMercenaryRomeo extends App.Events.BaseEvent
 				}
 				r.push(`${he} gives the nearest camera a little nod and silently mouths the words "Thank you, ${getWrittenTitle(juliet)}." 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 <span class="reputation inc">a supporting role.</span>`);
 				// TODO: uh, actually increase rep?
-				cashX(_slaveCost, "slaveTransfer");
+				cashX(cost, "slaveTransfer");
 				removeSlave(juliet);
 			}
 			return r;
diff --git a/src/events/nonRandom/mercs/pRaidResult.js b/src/events/nonRandom/mercs/pRaidResult.js
index 6ca7b6370616878f899fa9fdfdd97943d7b724e2..f029f0da627bf61ee6390cc3b78b761152e543c8 100644
--- a/src/events/nonRandom/mercs/pRaidResult.js
+++ b/src/events/nonRandom/mercs/pRaidResult.js
@@ -8,28 +8,28 @@ App.Events.PRaidResult = class PRaidResult extends App.Events.BaseEvent {
 
 		App.Events.addParagraph(node, [`Out ahead of the main body of refugees there is a small knot moving quickly and in good order, carrying weapons. Farther back, there is a larger group separated from the main body who could be easily isolated. And finally, it seems a group of sick and injured refugees have clustered around a tent where there must be medical assistance of some kind.`]);
 
-		const _newSlaves = [];
+		const newSlaves = [];
 		if (this.params.raidTarget === 1) {
 			r.push(`Under orders to target resistance, your mercenaries target the leading group. They even manage to direct a little small arms fire at the VTOL craft as it circles them, dropping mercenaries and plying its nonlethal weapons, but they are of course rapidly defeated. Your share is two slaves in good physical condition, who prove to have been survivors of the defeated attack on the arcology. The mercenaries find after a data search that one of the prisoners whose part of their share was a minor leader in the anti-Free Cities movement. After a quick consultation over their radios, the mercenaries decide that a summary execution out here would be too quick for the wretch, and bring their prize back to the arcology for more thorough punishment. Between the successful raid and the capture of this public enemy, <span class="green">the citizens are quite impressed by you.</span>`);
 			repX(2500, "event");
-			for (let _prr = 0; _prr < 3; _prr++) {
+			for (let prr = 0; prr < 3; prr++) {
 				if (V.seeDicks > 0) {
-					const _slave = GenerateNewSlave("XY");
-					_slave.origin = "$He is an enslaved refugee who participated in the defeated attack on your arcology.";
-					_newSlaves.push(_slave);
+					const slave = GenerateNewSlave("XY");
+					slave.origin = "$He is an enslaved refugee who participated in the defeated attack on your arcology.";
+					newSlaves.push(slave);
 				} else {
-					const _slave = GenerateNewSlave("XX");
-					_slave.origin = "$He is an enslaved refugee who participated in the defeated attack on your arcology.";
-					_newSlaves.push(_slave);
+					const slave = GenerateNewSlave("XX");
+					slave.origin = "$He is an enslaved refugee who participated in the defeated attack on your arcology.";
+					newSlaves.push(slave);
 				}
 			}
 		} else if (this.params.raidTarget === 2) {
 			r.push(`Under orders to target civilians, your mercenaries head for the isolated group. When the VTOL descends to circle around the large group of refugees, it becomes obvious that it won't even be necessary to expend nonlethal ammunition. A few of the refugees throw themselves down in bitterness, but most just subside into the catatonia of helplessness. They stand quiescent as they are searched, tagged, and loaded onto the VTOL like the wretched human refuse they are. The successful raid <span class="green">is the talk of the Free City.</span>`);
 			repX(1000, "event");
-			for (let _prr = 0; _prr < 4; _prr++) {
-				const _slave = GenerateNewSlave();
-				_slave.origin = "$He is an enslaved refugee.";
-				_newSlaves.push(_slave);
+			for (let prr = 0; prr < 4; prr++) {
+				const slave = GenerateNewSlave();
+				slave.origin = "$He is an enslaved refugee.";
+				newSlaves.push(slave);
 			}
 		} else {
 			const {
@@ -38,11 +38,11 @@ App.Events.PRaidResult = class PRaidResult extends App.Events.BaseEvent {
 			r.push(`Under orders to target the largest possible group of people, your mercenaries head for the sick and injured. As the VTOL settles, it becomes apparent that most of the injuries are from combat, almost certainly in the defeat at ${V.arcologies[0].name}. The tent proves to contain a harassed nurse, almost without medical supplies and at the end of ${hisU} rope. When ${heU} sees the mercenaries push through the tent flap, ${heU} heaves a sigh of mixed defeat and relief and wordlessly offers ${hisU} wrists. The mercenaries give you a larger share of the other slaves in return for ${himU}: they tell you in confidence that ${heU}'ll be a medical asset to them as well as the usual amusement. The successful raid <span class="green">is the talk of the Free City.</span>`);
 			App.Events.queueEvent(1, new App.Events.PSlaveMedic());
 			repX(1000, "event");
-			for (let _prr = 0; _prr < 5; _prr++) {
-				const _slave = GenerateNewSlave();
-				_slave.origin = "$He is an enslaved refugee who was wounded in the defeated attack on your arcology.";
-				setHealth(_slave, jsRandom(-50, 40), normalRandInt(20, 3), normalRandInt(15, 3), Math.max(normalRandInt(0, 1), 0), jsRandom(40, 80));
-				_newSlaves.push(_slave);
+			for (let prr = 0; prr < 5; prr++) {
+				const slave = GenerateNewSlave();
+				slave.origin = "$He is an enslaved refugee who was wounded in the defeated attack on your arcology.";
+				setHealth(slave, jsRandom(-50, 40), normalRandInt(20, 3), normalRandInt(15, 3), Math.max(normalRandInt(0, 1), 0), jsRandom(40, 80));
+				newSlaves.push(slave);
 			}
 		}
 		App.Events.addParagraph(node, r);
@@ -54,23 +54,22 @@ App.Events.PRaidResult = class PRaidResult extends App.Events.BaseEvent {
 		App.Events.addResponses(node, choices);
 
 		function sell() {
-			for (const slave of _newSlaves) {
-				const _slaveCost = slaveCost(slave);
-				cashX(_slaveCost, "slaveTransfer");
+			for (const slave of newSlaves) {
+				cashX(slaveCost(slave), "slaveTransfer");
 			}
 			return `Prisoners sold.`;
 		}
 
 		function give() {
-			for (const slave of _newSlaves) {
-				const _slaveCost = slaveCost(slave);
-				repX(Math.trunc(_slaveCost / 10), "event");
+			for (const slave of newSlaves) {
+				const cost = slaveCost(slave);
+				repX(Math.trunc(cost / 10), "event");
 			}
 			return `Prisoners <span class="reputation inc">given away.</span>`;
 		}
 
 		function enslave() {
-			for (const slave of _newSlaves) {
+			for (const slave of newSlaves) {
 				newSlave(slave);
 			}
 			return `You simply enslave all of the refugees yourself. They would have been worse off had you not intervened.`;
diff --git a/src/events/nonRandom/mercs/pSlaveMedic.js b/src/events/nonRandom/mercs/pSlaveMedic.js
index c179406809f69a42f5f69948552c7095b72b0833..dba7354e78886ed3c45dbfbde31ee229fdf55b27 100644
--- a/src/events/nonRandom/mercs/pSlaveMedic.js
+++ b/src/events/nonRandom/mercs/pSlaveMedic.js
@@ -88,7 +88,7 @@ App.Events.PSlaveMedic = class PSlaveMedic extends App.Events.BaseEvent {
 			} else {
 				r.push(`main living area,`);
 			}
-			r.push(`you see ${slave.slaveName} kneeling next to a mercenary with most of his armor stripped off. ${He}'s the ${aNational(slave.nationality)} nurse they captured and enslaved, and ${he} seems to be doing pretty well in ${his} new life. ${He} seems to be checking the sutures on a minor wound to the man's flank. "Don't squirm!" ${he} says with an annoyed tone. "I'll get you off when I've checked this." He chuckles and holds still; ${he} redresses the wound, stands up, and strips off ${his} tank top, allowing ${his} huge tits to swing free. ${He}'s quite young, but ${his} _slave.skin body is appealingly curvy. As ${he} swings one leg across the seated mercenary, ${he} continues, "Please sit still and let me do the work. You need to take it easy for a day or two or you'll pop those sutures." Using ${his} hands, ${he} gently caresses his stiff prick with ${his} pillowy breasts, eliciting a grunt. ${He}'s a strong ${girl}, and pleasures him without letting any of ${his} weight rest on his body at all. When he climaxes, ${he} leans in to clean him with ${his} mouth and then heads off to wash out ${his} cleavage.`);
+			r.push(`you see ${slave.slaveName} kneeling next to a mercenary with most of his armor stripped off. ${He}'s the ${aNational(slave.nationality)} nurse they captured and enslaved, and ${he} seems to be doing pretty well in ${his} new life. ${He} seems to be checking the sutures on a minor wound to the man's flank. "Don't squirm!" ${he} says with an annoyed tone. "I'll get you off when I've checked this." He chuckles and holds still; ${he} redresses the wound, stands up, and strips off ${his} tank top, allowing ${his} huge tits to swing free. ${He}'s quite young, but ${his} ${slave.skin} body is appealingly curvy. As ${he} swings one leg across the seated mercenary, ${he} continues, "Please sit still and let me do the work. You need to take it easy for a day or two or you'll pop those sutures." Using ${his} hands, ${he} gently caresses his stiff prick with ${his} pillowy breasts, eliciting a grunt. ${He}'s a strong ${girl}, and pleasures him without letting any of ${his} weight rest on his body at all. When he climaxes, ${he} leans in to clean him with ${his} mouth and then heads off to wash out ${his} cleavage.`);
 		} else {
 			r.push(`You make a habit of dropping in on your mercenaries whenever you get the chance. You have regular meetings with their grizzled captain, of course, but turning up unannounced to get to know them is simply a matter of self-preservation. The better they like you, the more likely they are to think of more than their pay when deciding how to hazard themselves on your behalf.`);
 
diff --git a/src/events/nonRandom/pSchoolSuggestion.js b/src/events/nonRandom/pSchoolSuggestion.js
index 23234c7cd44b43850b96c180c231fb9e75602b9d..cc0f1b16cdfd8d05dc7a639a1ed07abe51e4972b 100644
--- a/src/events/nonRandom/pSchoolSuggestion.js
+++ b/src/events/nonRandom/pSchoolSuggestion.js
@@ -23,7 +23,7 @@ App.Events.PSchoolSuggestion = class PSchoolSuggestion extends App.Events.BaseEv
 
 		if (V.seeDicks !== 100) {
 			App.Events.addParagraph(node, [`"The Slave School for me," says a portly man with a thriving slave breaking business down in the markets. "Their girls are pretty, skilled, and innocent, without any of that weird crap the other schools go in for. Besides, all that special stuff drives up the prices. TSS girls are cheap for what you get. When you're tired of one, just buy another." He turns to his friend and business partner, a much thinner man. "Though I'm sure you disagree with me."`]);
-			App.Events.addParagraph(node, [`"Of course I do, we've been having this debate every day for ten years." The thin man laughs. "Hasn't hurt our company, though. Anyway, I'm a GRI man. It's much harder to change a girl's body than it is to train her mind. The Growth Research Institute might sell their girls with no training and some nasty flaws, but you can fix those faster than you can grow a well-trained skinny girl's tits out to //here//," and he gestures far out in front of his own chest.`]);
+			App.Events.addParagraph(node, [`"Of course I do, we've been having this debate every day for ten years." The thin man laughs. "Hasn't hurt our company, though. Anyway, I'm a GRI man. It's much harder to change a girl's body than it is to train her mind. The Growth Research Institute might sell their girls with no training and some nasty flaws, but you can fix those faster than you can grow a well-trained skinny girl's tits out to <i>here</i>," and he gestures far out in front of his own chest.`]);
 
 			App.Events.addParagraph(node, [`An older woman standing across from him sniffs. "St. Claver's knows how to do both. They train them right, and if they aren't perfectly made, well, that's what plastic surgery is for." She favors the group with a sharp smile. "The best part is that between the silicone and their, ahem, strict training, they're all the same. Once you get used to their girls, you can always rely on them to give you more of what you like."`]);
 		}
@@ -36,12 +36,14 @@ App.Events.PSchoolSuggestion = class PSchoolSuggestion extends App.Events.BaseEv
 			App.Events.addParagraph(node, [`The unusually competent young heiress standing next to him snickers. "If you're going to bring up refinement, um, hello, the Futanari Sisters. I have four futas in my apartment having sex with each other right now. How do I know? Because they're always having sex with each other. They never stop." Her eyes take on a faraway look and she pauses. "Um, haha, I know what I'm doing later."`]);
 		}
 
-		App.Events.addParagraph(node, [`"If you like them soft and mellow, you got to go with The Cattle Ranch," a buff man blurts loudly while slamming down his empty mug. "I've got a pair of 'em for my bedroom; they are so loving after a good milking. Taste good too." His drinking buddy retorts, "Too much work is what they are. They might as well be animals with how they act.${(V.seePreg === 0) ? "In addition, hope you like pregnant pussies, 'cause you need to keep them gravid or their milk dries up." : ""}"`]);
+		App.Events.addParagraph(node, [`"If you like them soft and mellow, you got to go with The Cattle Ranch," a buff man blurts loudly while slamming down his empty mug. "I've got a pair of 'em for my bedroom; they are so loving after a good milking. Taste good too." His drinking buddy retorts, "Too much work is what they are. They might as well be animals with how they act.${(V.seePreg === 0) ? " In addition, hope you like pregnant pussies, 'cause you need to keep them gravid or their milk dries up." : ""}"`]);
 
-		App.Events.addParagraph(node, [`"I see good taste is scarce within this walls," suddenly stated a young man previously quiet in his corner. "I say quality and strength is where the game should be played and there's nothing better than the girls from the Hippolyta Academy.`]);
+		App.Events.addParagraph(node, [`"I see good taste is scarce within this walls," suddenly stated a young man previously quiet in his corner. "I say quality and strength is where the game should be played and there's nothing better than the girls from the Hippolyta Academy."`]);
 
 		App.Events.addParagraph(node, [`The older gentleman who seems to have been acting as unofficial moderator before you came in turns to you. "In any case, ${(V.PC.title === 1) ? "sir" : "madam"}, we agreed before you came in. We'd like to get together and pay half the cost of encouraging a slave school to set up a branch campus here, if you'd be willing to pay the other half and choose which. I think ${cashFormat(startFee)} from you would cover it." He looks around the group. "Before we started this little debate, we all agreed to chip in regardless of which you chose."`]);
 
+		App.UI.DOM.appendNewElement("div", node, `Selecting a school will cost ${cashFormat(startFee)} and add minor upkeep costs`, "note");
+
 		const choices = [];
 		if (V.seeDicks !== 100) {
 			choices.push(new App.Events.Result(`The Slave School`, TSS));
@@ -61,8 +63,6 @@ App.Events.PSchoolSuggestion = class PSchoolSuggestion extends App.Events.BaseEv
 		}
 		App.Events.addResponses(node, choices);
 
-		App.UI.DOM.appendNewElement("div", node, `Selecting a school will cost ${cashFormat(startFee)}and add minor upkeep costs`, "note");
-
 		function TSS() {
 			V.TSS.schoolPresent = 1;
 			cashX(-startFee, "policies");
diff --git a/src/events/nonRandom/peacekeepers/pPeacekeepersInfluence.js b/src/events/nonRandom/peacekeepers/pPeacekeepersInfluence.js
index e7443022b2619ecb9b523dcc68f869b4acc57f25..107b43f2d71228e60469bd4839474df4f7be9296 100644
--- a/src/events/nonRandom/peacekeepers/pPeacekeepersInfluence.js
+++ b/src/events/nonRandom/peacekeepers/pPeacekeepersInfluence.js
@@ -61,7 +61,7 @@ App.Events.PPeacekeepersInfluence = class PPeacekeepersInfluence extends App.Eve
 					r.push(`The little fairy appears on your table, leaning towards you and squishing ${hisA} breasts together to show off ${hisA} cleavage. You completely fail to notice ${himA}. ${HeA} tries again, turning around and bending over and shaking ${hisA} butt while looking back at you. Yet again ${heA} fails to draw your attention. Frustrated, ${heA} sits on the table, spreading ${hisA} legs and showing off ${hisA} pussy. Peeking over ${hisA} swollen belly, ${heA} sees that you're not even looking at ${himA}. ${HisA} tiny body is just too small to garner your attention. It's not for a few minutes until you notice ${himA} sitting up on the desk, looking away with ${hisA} arms crossed and pouting.`);
 					break;
 				case "hypergoddess":
-					r.push(`The beautiful, massively gravid goddess appears with${hisA} usual wash of radiant golden light, and gently calms ${hisA} squirming occupants until ${heA} has your attention.`);
+					r.push(`The beautiful, massively gravid goddess appears with ${hisA} usual wash of radiant golden light, and gently calms ${hisA} squirming occupants until ${heA} has your attention.`);
 					break;
 				case "loli":
 					r.push(`The cute little ${loliA} pops up, literally, bouncing upward again and again until ${heA} is absolutely certain ${heA} has your attention.`);
diff --git a/src/events/nonRandom/rival/pHostageAcquisition.js b/src/events/nonRandom/rival/pHostageAcquisition.js
index 895c76bd3ed83fa2b8564d359269ca9339339493..9e2c10a514e407dc0c1704200a59514647fa35ff 100644
--- a/src/events/nonRandom/rival/pHostageAcquisition.js
+++ b/src/events/nonRandom/rival/pHostageAcquisition.js
@@ -13,7 +13,7 @@ App.Events.pHostageAcquisition = function() {
 		} = getPronouns(V.hostage);
 		V.hostageRescued = 0;
 		V.hostage.weekAcquired = V.week;
-		let _closer = 0;
+		let closer = 0;
 
 		const {
 			his2, woman2, wife2, girl2
@@ -26,7 +26,7 @@ App.Events.pHostageAcquisition = function() {
 		if (isPCCareerInCategory("wealth")) {
 			r.push(`a popular party ${girl}`);
 			if (V.PC.career === "rich kid") {
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("capitalist")) {
 			if (V.PC.career === "capitalist") {
@@ -35,42 +35,42 @@ App.Events.pHostageAcquisition = function() {
 				r.push(`a hopeful intern`);
 			} else {
 				r.push(`a brilliant student`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("mercenary")) {
 			if (V.PC.career === "mercenary" || V.PC.career === "recruit" || V.PC.actualAge > 16) {
 				r.push(`a logistics officer`);
 			} else if (V.PC.career === "child soldier") {
 				r.push(`a conscript`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("engineer")) {
 			if (V.PC.career === "engineer" || V.PC.career === "construction" || V.PC.actualAge > 16) {
 				r.push(`an arcology sales${woman}`);
 			} else if (V.PC.career === "worksite helper") {
 				r.push(`a prodigy`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("medicine")) {
 			if (V.PC.career === "medicine" || V.PC.career === "medical assistant" || V.PC.actualAge > 16) {
 				r.push(`a surgical nurse`);
 			} else if (V.PC.career === "nurse") {
 				r.push(`a nurse`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("slaver")) {
 			if (V.PC.career === "slaver" || V.PC.career === "slave overseer" || V.PC.actualAge > 16) {
 				r.push(`an abusive pens guard`);
 			} else if (V.PC.career === "slave tender") {
 				r.push(`a slave caretaker`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("celebrity")) {
 			if (V.PC.career === "celebrity" || V.PC.career === "rising star" || V.PC.actualAge > 16) {
 				r.push(`a popular groupie`);
 			} else if (V.PC.career === "slave tender") {
 				r.push(`a child star`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("escort")) {
 			if (V.PC.career === "escort" || V.PC.actualAge > 24) {
@@ -79,21 +79,21 @@ App.Events.pHostageAcquisition = function() {
 				r.push(`a prostitute`);
 			} else {
 				r.push(`a young prostitute`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("gang")) {
 			if (V.PC.career === "gang" || V.PC.career === "hoodlum" || V.PC.actualAge > 16) {
 				r.push(`a gang member`);
 			} else {
 				r.push(`a homeless ${girl}`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("servant")) {
 			if (V.PC.career === "servant" || V.PC.career === "handmaiden" || V.PC.actualAge > 16) {
 				r.push(`a maid`);
 			}
 			if (V.PC.career === "child servant") {
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("BlackHat")) {
 			if (V.PC.career === "BlackHat" || V.PC.actualAge > 24) {
@@ -102,12 +102,12 @@ App.Events.pHostageAcquisition = function() {
 				r.push(`a bright hacker`);
 			} else {
 				r.push(`a young hacker`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("arcology owner")) {
 			r.push(`a prominent Free Cities citizen`);
 		}
-		if (_closer === 1) {
+		if (closer === 1) {
 			r.push(`dear to you`);
 		} else {
 			r.push(`of your acquaintance`);
@@ -257,6 +257,7 @@ App.Events.pHostageAcquisition = function() {
 						r.push(`and broken.`);
 					}
 					r.push(`Although, if ${he} pulls through this, ${he}'ll be devoted to you forever.`);
+					applyMindbroken(V.hostage, V.hostage.intelligence);
 					V.hostage.weight = -100;
 					V.hostage.muscles = -100;
 					if (V.hostage.health.health > -100) {
@@ -528,6 +529,7 @@ App.Events.pHostageAcquisition = function() {
 				} else {
 					r.push(`Your mercenaries radio you upon arrival. "VIP recovered but... I'm so sorry..."`);
 					r.push(`You immediately wretch from the smell that follows the merc troop into your office. You rise to shout at them for tracking it in when you realize what the source of the smell is. A crate containing the twisted, mutilated, inked and pierced body of ${V.hostage.slaveName}. The mercenaries see themselves out as you carefully take a biometric scan of the inert, limbless body before you. ${He} is alive, but barely, and a brain scan shows few signs of activity. You call for some servants to clean ${him} up, hoping that maybe it will draw ${him} out of ${his} stupor. Deep down, you understand the ${girl} you used to know has been twisted and broken completely; never to be the same again.`);
+					applyMindbroken(V.hostage, V.hostage.intelligence);
 					if (V.hostage.health.health > -100) {
 						setHealth(V.hostage, -40, 30, Math.max(V.hostage.health.longDamage, 30), 2, 100);
 					}
@@ -839,7 +841,7 @@ App.Events.pHostageAcquisition = function() {
 					r.push(`sobbing`);
 					r.push(Spoken(V.hostage, `"I've never had to exercise so much; I'm exhausted!"`));
 					r.push(`You gently wrap your arms around ${his} soft body in a comforting embrace. ${He}'s exactly as you remember.`);
-					if (_closer && V.hostage.actualAge <= 16 && V.hostage.boobs > 800) {
+					if (closer && V.hostage.actualAge <= 16 && V.hostage.boobs > 800) {
 						r.push(`Well, except for the sizable busoms pressing against you; puberty was quite generous to ${him}`);
 					}
 				} else if (V.rivalryDuration <= 10) {
@@ -852,7 +854,7 @@ App.Events.pHostageAcquisition = function() {
 					r.push(`feeling the muscles under ${his} chubby body, as ${he} breaks down in tears.`);
 					r.push(Spoken(V.hostage, `"You aren't going to make me pump iron, are you?"`));
 					r.push(`While ${he}'s thinner than you remember, and a little more muscular, ${his} personality is exactly the same.`);
-					if (_closer && V.hostage.actualAge <= 16 && V.hostage.boobs > 800) {
+					if (closer && V.hostage.actualAge <= 16 && V.hostage.boobs > 800) {
 						r.push(`You can't help but notice the size of ${his} breasts pressing against you; puberty was generous to ${him}`);
 					}
 				} else if (V.rivalryDuration <= 15) {
@@ -966,7 +968,7 @@ App.Events.pHostageAcquisition = function() {
 					r.push(`sobbing`);
 					r.push(Spoken(V.hostage, `"I've never had to exercise so much, I'm exhausted!"`));
 					r.push(`You gently wrap your arms around ${his} soft body in a comforting embrace. ${He}'s exactly as you remember.`);
-					if (_closer && V.hostage.actualAge <= 16 && V.hostage.boobs > 800) {
+					if (closer && V.hostage.actualAge <= 16 && V.hostage.boobs > 800) {
 						r.push(`Well, except for the sizable busoms pressing against you; puberty was quite generous to ${him}`);
 					}
 				} else if (V.rivalryDuration <= 10) {
@@ -979,7 +981,7 @@ App.Events.pHostageAcquisition = function() {
 					r.push(`feeling the muscles under ${his} chubby body, as ${he} breaks down in tears.`);
 					r.push(Spoken(V.hostage, `"You aren't going to make me pump iron, are you?"`));
 					r.push(`While ${he}'s thinner than you remember, and a little more muscular, ${his} personality is exactly the same.`);
-					if (_closer && V.hostage.actualAge <= 16 && V.hostage.boobs > 800) {
+					if (closer && V.hostage.actualAge <= 16 && V.hostage.boobs > 800) {
 						r.push(`You can't help but notice the size of ${his} breasts pressing against you; puberty was generous to ${him}`);
 					}
 				} else if (V.rivalryDuration <= 15) {
@@ -1225,7 +1227,7 @@ App.Events.pHostageAcquisition = function() {
 						r.push(`chest`);
 					}
 					r.push(`as ${he} breaks down in tears.`);
-					r.push(Spoken(V.hostage, `"They made me get on${(hasBothLegs(V.hostage)) ? `my knees` : `the ground`}and make out with some tiny harlot!"`));
+					r.push(Spoken(V.hostage, `"They made me get on ${(hasBothLegs(V.hostage)) ? `my knees` : `the ground`} and make out with some tiny harlot!"`));
 					r.push(`${He}'s exactly as you remember.`);
 				} else if (V.rivalryDuration <= 15) {
 					r.push(`Upon seeing you, ${V.hostage.slaveName} shifts ${his} weight back and forth, unsure of what to make of you. As you step forward, ${he} hesitatingly approaches. Once ${he} is close enough ${he} asks`);
diff --git a/src/events/nonRandom/rival/pRivalryActions.js b/src/events/nonRandom/rival/pRivalryActions.js
index c00cb108baf87b8e699118f76422b5636066ad90..9947749c877c35c55ef3c48c6963207952dac981 100644
--- a/src/events/nonRandom/rival/pRivalryActions.js
+++ b/src/events/nonRandom/rival/pRivalryActions.js
@@ -1534,7 +1534,6 @@ App.Events.pRivalryActions = function() {
 						V.hostage.counter.mammary += 50;
 						V.hostage.lactation = 1;
 						V.hostage.lactationDuration = 2;
-						applyMindbroken(V.hostage);
 						/* Make scars worse: */
 						App.Medicine.Modification.addScourged(V.hostage);
 						App.Medicine.Modification.addScar(V.hostage, "left cheek", "generic", 3);
@@ -1637,7 +1636,6 @@ App.Events.pRivalryActions = function() {
 						V.hostage.corsetPiercing = 1;
 						V.hostage.areolaePiercing = 1;
 						V.hostage.tonguePiercing = 2;
-						applyMindbroken(V.hostage);
 						if (seed < 40) {
 							App.Medicine.Modification.addScar(V.hostage, "anus", "burn", 2);
 						} else if (seed < 80) {
diff --git a/src/events/nonRandom/rival/pRivalryHostage.js b/src/events/nonRandom/rival/pRivalryHostage.js
index 38b133b164da0863226c942b39d664465eab0f73..25e512752c62af3a5f46b210ac02f63f40cc42d3 100644
--- a/src/events/nonRandom/rival/pRivalryHostage.js
+++ b/src/events/nonRandom/rival/pRivalryHostage.js
@@ -28,7 +28,7 @@ App.Events.pRivalryHostage = function() {
 		const {woman2, girl2, he2, his2} = getPronouns(V.hostageWife || {pronoun : 0}).appendSuffix("2");
 		let r = [];
 
-		let _closer = 0;
+		let closer = 0;
 		r.push(`Only a few days into your inter-arcology war, you receive a video message from your rival. Once ${V.assistant.name} is satisfied that the file is clean, you clear your office and pull it up. To your surprise, there are two faces on your desk, not one. One of them is your rival, and after a moment, you remember who the other is. You recognize ${him} from your`);
 		if (isPCCareerInCategory("wealth")) {
 			if (V.PC.career === "wealth" || V.PC.career === "trust fund" || V.PC.actualAge > 16) {
@@ -41,7 +41,7 @@ App.Events.pRivalryHostage = function() {
 					r.push(`around your age, that you spent a lot of time with.`);
 				}
 				r.push(`You can't say that you've kept in touch,`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("escort")) {
 			r.push(`time as a ${womanP} of sexual promiscuity.`);
@@ -54,7 +54,7 @@ App.Events.pRivalryHostage = function() {
 					r.push(`${He} was a pretty little slut around your age that you spent most of your time with. You played together, bathed together, shared clients together, and even lost your virginities together.`);
 				}
 				r.push(`You lost track of ${him} while moving up in the world,`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("servant")) {
 			r.push(`time as a ${womanP} of servitude. ${He} was a`);
@@ -109,7 +109,7 @@ App.Events.pRivalryHostage = function() {
 					}
 				}
 				r.push(`You lost track of ${him} while moving up in the world,`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("gang")) {
 			if (V.PC.career === "gang") {
@@ -127,7 +127,7 @@ App.Events.pRivalryHostage = function() {
 					r.push(`${He}'s put on a surprising amount of weight, so at least ${he} has been eating well.`);
 				}
 				r.push(`You lost track of ${him} while moving up in the world,`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("BlackHat")) {
 			if (V.PC.career === "BlackHat") {
@@ -142,7 +142,7 @@ App.Events.pRivalryHostage = function() {
 					r.push(`${He} was another kid you often practiced your scripts with, or on, considering your stash of nudes pics of ${him}.`);
 				}
 				r.push(`You never really found the time to check up on ${him} while moving up in the world,`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("capitalist")) {
 			if (V.PC.career === "capitalist") {
@@ -157,7 +157,7 @@ App.Events.pRivalryHostage = function() {
 					r.push(`${He} was a cute classmate that you spent a lot of time with learning the ins and outs of business.`);
 				}
 				r.push(`You can't say that you've kept in touch,`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("mercenary")) {
 			if (V.PC.career === "mercenary" || V.PC.career === "recruit" || V.PC.actualAge > 16) {
@@ -170,7 +170,7 @@ App.Events.pRivalryHostage = function() {
 					r.push(`${He} was another child soldier that served along side you. You were always there to support each other when combat become too overwhelming.`);
 				}
 				r.push(`You weren't sure what became of them,`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("engineer")) {
 			if (V.PC.career === "engineer" || V.PC.career === "construction" || V.PC.actualAge > 16) {
@@ -183,7 +183,7 @@ App.Events.pRivalryHostage = function() {
 					r.push(`${He} was a cute little ${girl} that loved to stop by the worksite and ask questions. ${He} had a knack for design, and loved to share ${his} ideas with you.`);
 				}
 				r.push(`You can't say that you've kept in touch,`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("medicine")) {
 			r.push(`career in medicine.`);
@@ -196,7 +196,7 @@ App.Events.pRivalryHostage = function() {
 					r.push(`${He} was another little nurse that worked alongside you, entertaining patients and doing ${his} best to stay out of the way.`);
 				}
 				r.push(`You can't say that you've kept in touch,`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("slaver")) {
 			if (V.PC.career === "slaver" || V.PC.career === "slave overseer" || V.PC.actualAge > 16) {
@@ -209,7 +209,7 @@ App.Events.pRivalryHostage = function() {
 					r.push(`${He} was a little ${girl} that helped clean and feed the slaves with you. You made a pretty good team; if a new capture thought it would be easy to overpower a child, they'd quickly learn to watch their back.`);
 				}
 				r.push(`You can't say that you've kept in touch,`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("celebrity")) {
 			r.push(`time as a minor celebrity.`);
@@ -222,12 +222,12 @@ App.Events.pRivalryHostage = function() {
 					r.push(`${He} was a child star that was often booked alongside you. So much so, you started to be treated more like siblings than competitors.`);
 				}
 				r.push(`You can't say that you've kept in touch,`);
-				_closer = 1;
+				closer = 1;
 			}
 		} else if (isPCCareerInCategory("arcology owner")) {
 			r.push(`time owning another arcology. ${He} was a prominent citizen who supported your government. You were never particularly close,`);
 		}
-		if (_closer !== 1) {
+		if (closer !== 1) {
 			r.push(`but you do remember ${him}, and your rival knows it. This is obviously the best ${heR} could come up with to provoke an emotional reaction.`);
 		} else {
 			r.push(`but you were close to ${him}, and your rival knows it. ${HeR} clearly did ${hisR} research when coming up with a way to provoke an emotional reaction.`);
diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js
index 5518bfc4952ec58a8d1b247ead4dcafff01bde85..fcd4e5f343212ff467f693da9649a14ce41420cc 100644
--- a/src/events/randomEvent.js
+++ b/src/events/randomEvent.js
@@ -22,6 +22,7 @@ App.Events.getIndividualEvents = function() {
 		new App.Events.RESSBirthday(),
 		new App.Events.RESSBondageGear(),
 		new App.Events.RESSBreedingBull(),
+		new App.Events.RESSCageRelief(),
 		new App.Events.RESSCockFeederResistance(),
 		new App.Events.RESSComfortableSeat(),
 		new App.Events.RESSCoolerLockin(),
@@ -37,12 +38,16 @@ App.Events.getIndividualEvents = function() {
 		new App.Events.RESSDevotedWaist(),
 		new App.Events.RESSDickgirlPC(),
 		new App.Events.RESSEscapee(),
+		new App.Events.RESSFearfulHumiliation(),
 		new App.Events.RESSForbiddenMasturbation(),
 		new App.Events.RESSFrighteningDick(),
-		new App.Events.RESSHeels(),
 		new App.Events.RESSGaggedSlave(),
+		new App.Events.RESSHeavyPiercing(),
+		new App.Events.RESSHeels(),
 		new App.Events.RESSHormoneDysfunction(),
 		new App.Events.RESSHotPC(),
+		new App.Events.RESSHugeTits(),
+		new App.Events.RESSIgnorantHorny(),
 		new App.Events.RESSImpregnationPlease(),
 		new App.Events.RESSImScared(),
 		new App.Events.RESSInconvenientLabia(),
@@ -57,6 +62,7 @@ App.Events.getIndividualEvents = function() {
 		new App.Events.RESSMilkgasm(),
 		new App.Events.RESSMindbrokenMorning(),
 		new App.Events.RESSModestClothes(),
+		new App.Events.RESSModsPlease(),
 		new App.Events.RESSMoistPussy(),
 		new App.Events.RESSMuscles(),
 		new App.Events.RESSMutinyAttempt(),
@@ -76,8 +82,10 @@ App.Events.getIndividualEvents = function() {
 		new App.Events.RESSPlugDisobedience(),
 		new App.Events.RESSRebelliousArrogant(),
 		new App.Events.RESSRefreshmentDelivery(),
+		new App.Events.RESSResistantAnalVirgin(),
 		new App.Events.RESSResistantGelding(),
 		new App.Events.RESSResistantShower(),
+		new App.Events.RESSRestrictedProfession(),
 		new App.Events.RESSRestrictedSmart(),
 		new App.Events.RESSPenitent(),
 		new App.Events.RESSRetchingCum(),
@@ -93,8 +101,13 @@ App.Events.getIndividualEvents = function() {
 		new App.Events.RESSSuppositoryResistance(),
 		new App.Events.RESSSurgeryAddict(),
 		new App.Events.RESSTooThinForCumDiet(),
+		new App.Events.RESSTrustingHG(),
+		new App.Events.RESSUsedWhore(),
+		new App.Events.RESSVocalDisobedience(),
 		new App.Events.RESSWaistlineWoes(),
 		new App.Events.RESSWhoreRebellious(),
+		new App.Events.RESSFirstPeriod(),
+		new App.Events.RESSWetDreams(),
 
 		new App.Events.RECIButthole(),
 		new App.Events.RECIFeminization(),
@@ -172,6 +185,7 @@ App.Events.getNonindividualEvents = function() {
 		new App.Events.REDevotedTwins(),
 		new App.Events.RERoyalBlood(),
 		new App.Events.REArcologyInspection(),
+		new App.Events.REShelterInspection(),
 
 		new App.Events.REFIBoobslut(),
 		new App.Events.REFIButtslut(),
@@ -189,9 +203,9 @@ App.Events.getNonindividualEvents = function() {
 		new App.Events.REMaleCitizenHookup(),
 		new App.Events.RECitizenHookup(),
 		new App.Events.REMaleArcologyOwner(),
-		new App.Events.REFSNonconformist(),
 		new App.Events.RESEndowment(),
 		new App.Events.RESMove(),
+		new App.Events.RESSale(),
 		new App.Events.REBoomerang(),
 		new App.Events.REMilfTourist(),
 		new App.Events.REAWOL(),
@@ -216,9 +230,21 @@ App.Events.getNonindividualEvents = function() {
 		new App.Events.REBusyServantsQuarters(),
 
 		// refs
-		new App.Events.refsPaternalistEncounter(),
+		new App.Events.refsBaronDemand(),
+		new App.Events.refsBodyPurismEncounter(),
+		new App.Events.refsDeadBaron(),
 		new App.Events.refsDegradationistEncounter(),
-
+		new App.Events.refsFeast(),
+		new App.Events.refsKnightlyDuel(),
+		new App.Events.refsMaturityPreferentialistEncounter(),
+		new App.Events.refsPastoralistEncounter(),
+		new App.Events.refsPaternalistEncounter(),
+		new App.Events.refsPhysicalIdealistEncounter(),
+		new App.Events.refsTotallyLegitCatgirls(),
+		new App.Events.refsTransformationFetishismEncounter(),
+		new App.Events.refsWarhound(),
+		new App.Events.refsYouthPreferentialistEncounter(),
+		new App.Events.REFSNonconformist(),
 
 		// Justice Event
 		new App.Events.JESlaveDisputeBreedingDeal(),
@@ -226,7 +252,6 @@ App.Events.getNonindividualEvents = function() {
 		new App.Events.JESlaveDisputeMajorityDeal(),
 		new App.Events.JESlaveDisputeSlaveDeal(),
 		new App.Events.JESlaveDisputeSlaveTraining(),
-		new App.Events.JESlaveDisputeSlaveDeal(),
 		new App.Events.JESlaveVirginityDeal(),
 
 		// Random Market Events
diff --git a/src/events/reRecruit/blessedVessel.js b/src/events/reRecruit/blessedVessel.js
index 1dcbb511811b2834c50d2fada5fa3dff6293a573..71e857295aa06cd5481501af87e306c5108e9f9e 100644
--- a/src/events/reRecruit/blessedVessel.js
+++ b/src/events/reRecruit/blessedVessel.js
@@ -114,7 +114,7 @@ App.Events.recBlessedVessel = class recBlessedVessel extends App.Events.BaseEven
 			slave.weight = 90;
 			slave.muscles = random(-100, -50);
 			slave.career = "a breeder";
-			applyMindbroken(slave);
+			applyMindbroken(slave, slave.intelligence);
 			return slave;
 		}
 	}
diff --git a/src/events/recETS/newSlaveIncestSex.js b/src/events/recETS/newSlaveIncestSex.js
index d623c3c08afb9dc85734c86f14d983a1ec24f050..b15da728a30465f38a685486eb569606258bfaea 100644
--- a/src/events/recETS/newSlaveIncestSex.js
+++ b/src/events/recETS/newSlaveIncestSex.js
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  * @param {App.Entity.SlaveState} relative
  * @param {App.Entity.SlaveState} relative2
  * @returns {HTMLElement}
diff --git a/src/events/recETS/recetsAddictMotherDaughter.js b/src/events/recETS/recetsAddictMotherDaughter.js
index 55d08cc578c220180e42f4613e1952f51d79886d..c572bed90f91e58021c613818f896bec5a8679c8 100644
--- a/src/events/recETS/recetsAddictMotherDaughter.js
+++ b/src/events/recETS/recetsAddictMotherDaughter.js
@@ -64,9 +64,9 @@ App.Events.recetsAddictMotherDaughter = class recetsAddictMotherDaughter extends
 		App.Events.addParagraph(node, [`Enslaving ${him} will cost ${cashFormat(contractCost)}. Alternatively, you could sell your rights to ${him}. Including costs, this will bring in ${cashFormat(cost - contractCost)}. As a third option, for ${cashFormat(contractCost * 2)} you could manipulate ${him} to bind both mother and ${daughter2}, but you wouldn't be able to examine the ${daughter2} first.`]);
 		r.push();
 
-		const _newSlaves = [mother]; /* caller doesn't want relative involved, so you don't get to inspect her even if you can force a sale */
+		const newSlaves = [mother]; /* caller doesn't want relative involved, so you don't get to inspect her even if you can force a sale */
 
-		node.append(App.UI.MultipleInspect(_newSlaves, true, "generic"));
+		node.append(App.UI.MultipleInspect(newSlaves, true, "generic"));
 		const choices = [];
 
 		if (V.cash >= contractCost) {
diff --git a/src/events/recETS/recetsIncestFatherDaughter.js b/src/events/recETS/recetsIncestFatherDaughter.js
index 9b00de480a3a5fb3cbe1da28432698eeeb675f28..e37bef8e76613894bfc38b55ec97092601e64193 100644
--- a/src/events/recETS/recetsIncestFatherDaughter.js
+++ b/src/events/recETS/recetsIncestFatherDaughter.js
@@ -13,7 +13,7 @@ App.Events.recetsIncestFatherDaughter = class recetsIncestFatherDaughter extends
 	get eventName() {
 		return `Father Daughter Incest`;
 	}
-	
+
 	execute(node) {
 		V.nextButton = "Continue";
 		V.nextLink = "RIE Eligibility Check";
diff --git a/src/events/recETS/recetsMatchedPair.js b/src/events/recETS/recetsMatchedPair.js
index ad8562845147242e17e17236cedc26631a48a0cb..fdacb0033e61853934b7ff684d2cbe5536355a98 100644
--- a/src/events/recETS/recetsMatchedPair.js
+++ b/src/events/recETS/recetsMatchedPair.js
@@ -76,10 +76,7 @@ App.Events.recetsMatchedPair = class recetsMatchedPair extends App.Events.BaseEv
 		sis2.relationshipTarget = sis1.ID;
 		sis1.relationshipTarget = sis2.ID;
 
-		const {
-			His,
-			his, him
-		} = getPronouns(sis1);
+		const {His, his} = getPronouns(sis1);
 		const {
 			he2, sister2,
 		} = getPronouns(sis2).appendSuffix("2");
diff --git a/src/events/recFS/recfsFSEgyptianRevivalistAcquisition.js b/src/events/recFS/recfsFSEgyptianRevivalistAcquisition.js
index 9f90ddc24e3c81dce18e7be5a9aa1ed940be8517..be23e9be32e16a412d38c0bcc820e136efa62ffa 100644
--- a/src/events/recFS/recfsFSEgyptianRevivalistAcquisition.js
+++ b/src/events/recFS/recfsFSEgyptianRevivalistAcquisition.js
@@ -12,58 +12,58 @@ App.Events.recFSEgyptianRevivalistAcquisition = class recFSEgyptianRevivalistAcq
 		V.nextLink = "RIE Eligibility Check";
 		V.returnTo = "RIE Eligibility Check";
 		V.encyclopedia = "Enslaving People";
-		V.market = {introType: "egyptian", newSlavesDone: 0, newSlaveIndex: 0};
+		V.market = Object.assign(App.Markets.GlobalVariable(), {introType: "egyptian", newSlavesDone: 0, newSlaveIndex: 0});
 
-		const _contractCost = 3000;
-		const _slave = GenerateNewSlave(null, {minAge: Math.max(16, V.minimumSlaveAge + 3), maxAge: 29, disableDisability: 1});
-		generateSalonModifications(_slave);
-		_slave.origin = "$He offered $himself to you for enslavement hoping you would preserve $his incestuous relationship with $his sibling.";
-		_slave.devotion = random(5, 15);
-		_slave.trust = random(-15, -5);
-		setHealth(_slave, jsRandom(-20, 0), undefined, undefined, undefined, 35);
-		setMissingParents(_slave);
-		_slave.canRecruit = 0;
-		if (_slave.dick > 0 && _slave.balls === 0) {
-			_slave.balls = random(1, 5);
+		const contractCost = 3000;
+		const slave = GenerateNewSlave(null, {minAge: Math.max(16, V.minimumSlaveAge + 3), maxAge: 29, disableDisability: 1});
+		generateSalonModifications(slave);
+		slave.origin = "$He offered $himself to you for enslavement hoping you would preserve $his incestuous relationship with $his sibling.";
+		slave.devotion = random(5, 15);
+		slave.trust = random(-15, -5);
+		setHealth(slave, jsRandom(-20, 0), undefined, undefined, undefined, 35);
+		setMissingParents(slave);
+		slave.canRecruit = 0;
+		if (slave.dick > 0 && slave.balls === 0) {
+			slave.balls = random(1, 5);
 		}
 
-		const _oppositeSex = V.seeDicks.isBetween(0, 100) && (random(1, 4) <= 3);
-		const _secondSlave = generateRelatedSlave(_slave, "younger sibling", _oppositeSex);
+		const oppositeSex = V.seeDicks.isBetween(0, 100) && (random(1, 4) <= 3);
+		const secondSlave = generateRelatedSlave(slave, "younger sibling", oppositeSex);
 
-		_secondSlave.relationship = 4;
-		_secondSlave.relationshipTarget = _slave.ID;
-		_slave.relationship = 4;
-		_slave.relationshipTarget = _secondSlave.ID;
+		secondSlave.relationship = 4;
+		secondSlave.relationshipTarget = slave.ID;
+		slave.relationship = 4;
+		slave.relationshipTarget = secondSlave.ID;
 
-		if (_secondSlave.actualAge <= 22) {
-			_secondSlave.career = App.Data.Careers.General.young.random();
-		} else if (_secondSlave.intelligenceImplant >= 15) {
-			_secondSlave.career = App.Data.Careers.General.educated.random();
+		if (secondSlave.actualAge <= 22) {
+			secondSlave.career = App.Data.Careers.General.young.random();
+		} else if (secondSlave.intelligenceImplant >= 15) {
+			secondSlave.career = App.Data.Careers.General.educated.random();
 		} else {
-			_secondSlave.career = App.Data.Careers.General.uneducated.random();
+			secondSlave.career = App.Data.Careers.General.uneducated.random();
 		}
 
 		/* they've been fucking, obviously, so no virginity */
-		if (_secondSlave.dick > 0) {
-			if (_slave.vagina === 0) {
-				_slave.vagina = _secondSlave.dick > 4 ? 2 : 1;
+		if (secondSlave.dick > 0) {
+			if (slave.vagina === 0) {
+				slave.vagina = secondSlave.dick > 4 ? 2 : 1;
 			}
-			_slave.anus = Math.max(_slave.anus, _secondSlave.dick > 4 ? 2 : 1);
-			if (_slave.preg >= 1) {
-				_slave.pregSource = _secondSlave.ID;
+			slave.anus = Math.max(slave.anus, secondSlave.dick > 4 ? 2 : 1);
+			if (slave.preg >= 1) {
+				slave.pregSource = secondSlave.ID;
 			}
 		}
-		if (_slave.dick > 0) {
-			if (_secondSlave.vagina === 0) {
-				_secondSlave.vagina = _slave.dick > 4 ? 2 : 1;
+		if (slave.dick > 0) {
+			if (secondSlave.vagina === 0) {
+				secondSlave.vagina = slave.dick > 4 ? 2 : 1;
 			}
-			_secondSlave.anus = Math.max(_secondSlave.anus, _slave.dick > 4 ? 2 : 1);
-			if (_secondSlave.preg >= 1) {
-				_secondSlave.pregSource = _slave.ID;
+			secondSlave.anus = Math.max(secondSlave.anus, slave.dick > 4 ? 2 : 1);
+			if (secondSlave.preg >= 1) {
+				secondSlave.pregSource = slave.ID;
 			}
 		}
 
-		const _newSlaves = [_slave, _secondSlave];
+		const newSlaves = [slave, secondSlave];
 		const {
 			HeA,
 		} = getPronouns(assistant.pronouns().main).appendSuffix("A");
@@ -77,12 +77,12 @@ App.Events.recFSEgyptianRevivalistAcquisition = class recFSEgyptianRevivalistAcq
 			`${capFirstChar(V.assistant.name)} assembles a dossier of information and photos from information they've sent describing their bodies and skills, to be used as a substitute for an in-person inspection.`
 		]);
 
-		const _totalValue = slaveCost(_slave) + slaveCost(_secondSlave);
-		App.UI.DOM.appendNewElement("div", node, `Enslaving them will cost ${cashFormat(_contractCost)}. Selling them immediately will bring in approximately ${cashFormat(_totalValue-_contractCost)}.`, "note");
-		node.append(App.UI.MultipleInspect(_newSlaves, true));
+		const totalValue = slaveCost(slave) + slaveCost(secondSlave);
+		App.UI.DOM.appendNewElement("div", node, `Enslaving them will cost ${cashFormat(contractCost)}. Selling them immediately will bring in approximately ${cashFormat(totalValue-contractCost)}.`, "note");
+		node.append(App.UI.MultipleInspect(newSlaves, true));
 
 		const choices = [];
-		if (V.cash >= _contractCost) {
+		if (V.cash >= contractCost) {
 			choices.push(new App.Events.Result(`Enslave the pair`, enslave));
 		} else {
 			choices.push(new App.Events.Result(null, null, "You lack the necessary funds to enslave them."));
@@ -90,8 +90,8 @@ App.Events.recFSEgyptianRevivalistAcquisition = class recFSEgyptianRevivalistAcq
 		App.Events.addResponses(node, choices);
 
 		function enslave() {
-			V.market.newSlaves = _newSlaves;
-			V.market.newSlaves.forEach((s) => cashX(forceNeg(_contractCost/V.market.newSlaves.length), "slaveTransfer", s));
+			V.market.newSlaves = newSlaves;
+			V.market.newSlaves.forEach((s) => cashX(forceNeg(contractCost/V.market.newSlaves.length), "slaveTransfer", s));
 			return App.Markets.bulkSlaveIntro();
 		}
 	}
diff --git a/src/events/recFS/recfsIntellectualDependencyTwo.js b/src/events/recFS/recfsIntellectualDependencyTwo.js
index d26986cf54da8d1640a20bae07c887d630bb04bb..96bc82f33e85810baec08f0e246e371a0fd1cff4 100644
--- a/src/events/recFS/recfsIntellectualDependencyTwo.js
+++ b/src/events/recFS/recfsIntellectualDependencyTwo.js
@@ -15,7 +15,7 @@ App.Events.recFSIntellectualDependencyTwo = class recFSIntellectualDependencyTwo
 		generateSalonModifications(slave);
 		slave.origin = "$He was voluntarily enslaved after $he overdosed on psychosuppressant-laced aphrodisiacs and fried $his brain.";
 		slave.dullIntelligence = 1;
-		const _geneticInt = slave.intelligence;/* for longSlaveDescription to report what the intelligence will be while keeping the original value safe for ${V.genePool[]} */
+		const geneticInt = slave.intelligence;/* for longSlaveDescription to report what the intelligence will be while keeping the original value safe for ${V.genePool[]} */
 		slave.intelligence = -100;
 		slave.devotion = random(20, 40);
 		slave.trust = random(0, 50);
@@ -56,7 +56,7 @@ App.Events.recFSIntellectualDependencyTwo = class recFSIntellectualDependencyTwo
 		function enslave() {
 			const frag = new DocumentFragment();
 			r = [];
-			slave.intelligence = _geneticInt;
+			slave.intelligence = geneticInt;
 			r.push(`It takes several hours to track ${him} down for enslavement and once ${he} arrives it becomes clear that ${his} mental state has broken down even further. ${He} spends the better part of the process masturbating and begging for you to touch ${his} body.`);
 
 			r.push(App.UI.newSlaveIntro(slave));
diff --git a/src/events/recFS/recfsSupremacist.js b/src/events/recFS/recfsSupremacist.js
index 4e1f1edb26ebf9753cce6b4a7cc3689a9f9544b8..e916cd251fe48aa5a2b8b817be366f02d4cd1b45 100644
--- a/src/events/recFS/recfsSupremacist.js
+++ b/src/events/recFS/recfsSupremacist.js
@@ -20,8 +20,8 @@ App.Events.recFSSupremacist = class recFSSupremacist extends App.Events.BaseEven
 		if (V.arcologies[0].FSSubjugationistRace !== 0) {
 			pram.race = V.arcologies[0].FSSubjugationistRace;
 		} else {
-			const _races = App.Utils.getRaceArrayWithoutParamRace(V.arcologies[0].FSSupremacistRace);
-			pram.race = _races.random();
+			const races = App.Utils.getRaceArrayWithoutParamRace(V.arcologies[0].FSSupremacistRace);
+			pram.race = races.random();
 		}
 		const slave = GenerateNewSlave(null, pram);
 		generateSalonModifications(slave);
diff --git a/src/events/scheduled/JobFulfillmentCenterDelivery.js b/src/events/scheduled/JobFulfillmentCenterDelivery.js
index ce45d22af5e5f032d35aad85f1fc3fd95dbeb95a..9d0dde386dfa6c50278f90b5f2227083202e719e 100644
--- a/src/events/scheduled/JobFulfillmentCenterDelivery.js
+++ b/src/events/scheduled/JobFulfillmentCenterDelivery.js
@@ -16,12 +16,12 @@ App.Events.JobFulfillmentCenterDelivery = class JobFulfillmentCenterDelivery ext
 			He,
 			he, him
 		} = getPronouns(slave);
-		const _slaveCost = slaveCost(slave) * 6;
+		const cost = slaveCost(slave) * 6;
 
 		App.Events.addParagraph(node, [
 			`A slave dealer has submitted a slave to satisfy your`,
 			App.UI.DOM.makeElement("span", V.JFC.role, "bold"),
-			`order for ${cashFormat(_slaveCost)}.`
+			`order for ${cashFormat(cost)}.`
 		]);
 
 		App.UI.DOM.appendNewElement("span", node, `As usual, the asking price is quite high, to cover training costs. However, you can freely decline the slave should ${he} not meet your standards or the job has already been filled.`, "note");
@@ -29,7 +29,7 @@ App.Events.JobFulfillmentCenterDelivery = class JobFulfillmentCenterDelivery ext
 		node.append(App.Desc.longSlave(slave, {market: "generic"}));
 
 		const choices = [];
-		if (V.cash >= _slaveCost) {
+		if (V.cash >= cost) {
 			choices.push(new App.Events.Result(`Accept the offered slave`, accept));
 		} else {
 			choices.push(new App.Events.Result(null, null, `You lack the necessary funds to accept the offered slave.`));
@@ -39,7 +39,7 @@ App.Events.JobFulfillmentCenterDelivery = class JobFulfillmentCenterDelivery ext
 
 		function accept() {
 			V.JFC = {order: 0, reorder: 0};
-			cashX(-_slaveCost, "slaveTransfer", slave);
+			cashX(-cost, "slaveTransfer", slave);
 
 			return [
 				`${He} has been very well trained by the dealer that offered ${him} to you. ${He} has also picked up on the fact that ${he} was specially selected, and is a little hopeful that this means ${he} may be treated well. ${He} is now eagerly awaiting your instructions.`,
diff --git a/src/events/scheduled/murderAttempt.js b/src/events/scheduled/murderAttempt.js
index b00842c7800de7fe10a76c8df586d95c18c53397..618795bb12500d0626a613d3153178fa4d6e5a33 100644
--- a/src/events/scheduled/murderAttempt.js
+++ b/src/events/scheduled/murderAttempt.js
@@ -392,7 +392,7 @@ App.Events.MurderAttempt = class MurderAttempt extends App.Events.BaseEvent {
 	}
 };
 
-App.Events.MurderAttemptFollowup = class MurderAttemptTradeFollowup extends App.Events.BaseEvent {
+App.Events.MurderAttemptFollowup = class MurderAttemptFollowup extends App.Events.BaseEvent {
 	constructor(actors, params) {
 		super(actors, params);
 	}
@@ -424,7 +424,7 @@ App.Events.MurderAttemptFollowup = class MurderAttemptTradeFollowup extends App.
 	}
 
 	execute(node) {
-		const _this = this;
+		const that = this;
 		switch (this.params.variation) {
 			case "trade":
 				App.Events.addParagraph(node, tradeDeal());
@@ -440,7 +440,7 @@ App.Events.MurderAttemptFollowup = class MurderAttemptTradeFollowup extends App.
 		function tradeDeal() {
 			V.illegalDeals.trade = -1;
 			let r = [];
-			r.push(`Today you are receiving the delegation from the old world company wanting to buy into the lucrative Free Cities market. After showing them around your logistic centers and the cleaner industry areas, you leave them alone with the representatives from ${_this.params.company}.`);
+			r.push(`Today you are receiving the delegation from the old world company wanting to buy into the lucrative Free Cities market. After showing them around your logistic centers and the cleaner industry areas, you leave them alone with the representatives from ${that.params.company}.`);
 			const failChance = 20 - (V.PC.skill.trading / 10);
 			if (random(1, 100) > failChance) {
 				r.push(`The next day you receive a transaction of ${cashFormatColor(270000)}.`);
diff --git a/src/events/scheduled/pitFightNonlethal.js b/src/events/scheduled/pitFightNonlethal.js
index 04452b1a030282e703a7d0929c7cf3ccf6aa54fa..9761f9753a33ba7be28c80d85af0c810368898ce 100644
--- a/src/events/scheduled/pitFightNonlethal.js
+++ b/src/events/scheduled/pitFightNonlethal.js
@@ -627,7 +627,7 @@ App.Facilities.Pit.nonlethalFight = function(fighters) {
 					cashX(500, "pit", winner);
 				}
 			} else if (loser.vagina > 0) {
-				r.push(`${winner.slaveName} wants to win badly enough that ${he} takes an extremely unpleasant shortcut to victory. The instant the fight starts, ${he} furiously goes for ${loser.slaveName}'s eyes${hasBothArms(winner) ? `, hands forming claws` : hasAnyArms(winner) ? `, ${his} hand forming a claw` : ``}. ${loser.slaveName} ${hasAnyArms(loser) ? `defends ${himself2} with ${his2} ${hasBothArms(loser) ? `arms` : `arm`}` : `tries to defend ${himself} as best ${he} can`}, at which point ${winner.slaveName} delivers a mighty cunt punt. ${loser.slaveName} goes straight down, ${his2} mouth soundlessly opening and closing and tears leaking from ${his2} closed eyes${hasAnyArms(loser) ? `while ${his} ${hasBothArms(loser) ? `hands` : `hand`} desperately shield${!hasBothArms(loser) ? `s` : ``} ${his2} outraged pussy` : ``}. ${winner.slaveName} follows ${him2} down and puts the unresisting ${girl2}'s head in a simple lock.`);
+				r.push(`${winner.slaveName} wants to win badly enough that ${he} takes an extremely unpleasant shortcut to victory. The instant the fight starts, ${he} furiously goes for ${loser.slaveName}'s eyes${hasBothArms(winner) ? `, hands forming claws` : hasAnyArms(winner) ? `, ${his} hand forming a claw` : ``}. ${loser.slaveName} ${hasAnyArms(loser) ? `defends ${himself2} with ${his2} ${hasBothArms(loser) ? `arms` : `arm`}` : `tries to defend ${himself} as best ${he} can`}, at which point ${winner.slaveName} delivers a mighty cunt punt. ${loser.slaveName} goes straight down, ${his2} mouth soundlessly opening and closing and tears leaking from ${his2} closed eyes${hasAnyArms(loser) ? ` while ${his} ${hasBothArms(loser) ? `hands` : `hand`} desperately shield${!hasBothArms(loser) ? `s` : ``} ${his2} outraged pussy` : ``}. ${winner.slaveName} follows ${him2} down and puts the unresisting ${girl2}'s head in a simple lock.`);
 
 				if (V.pit.audience === "free") {
 					r.push(`The audience is `, App.UI.DOM.makeElement("span", `not very impressed`, ["reputation", "inc"]), ` by this easy win.`);
diff --git a/src/events/scheduled/seFCTVinstall.js b/src/events/scheduled/seFCTVinstall.js
index 2f3c66f004f3946a81c5fd95afe081e1edd89f8f..02f2001995d5449412c5af58b7c596265cdfe154 100644
--- a/src/events/scheduled/seFCTVinstall.js
+++ b/src/events/scheduled/seFCTVinstall.js
@@ -1,4 +1,4 @@
-App.Events.SEFctvInstall = class SEHuskSlaveDelivery extends App.Events.BaseEvent {
+App.Events.SEFctvInstall = class SEFctvInstall extends App.Events.BaseEvent {
 	eventPrerequisites() {
 		return [
 			() => App.Events.effectiveWeek() >= 5,
diff --git a/src/events/scheduled/seFctvRemote.js b/src/events/scheduled/seFctvRemote.js
index 834a418f6097a2c9fa20bb2173bf855e699fb68d..f87d454d221c2c7342ab39db98bdbe2318a0d47c 100644
--- a/src/events/scheduled/seFctvRemote.js
+++ b/src/events/scheduled/seFctvRemote.js
@@ -286,7 +286,7 @@ App.Events.SEfctvRemote = class SEfctvRemote extends App.Events.BaseEvent {
 				r = [];
 				r.push(
 					Spoken(customer, `"Uh, that`),
-					App.UI.DOM.makeElement("span", Spoken(customer, `virgin ass!"`), "virginity loss"),
+					App.UI.DOM.makeElement("span", Spoken(customer, `virgin ass!"`), ["virginity", "loss"]),
 					`the customer exclaims.`,
 					Spoken(customer, `"How's THIS for an upgraded package. Last time I had a billing problem you folks told me where to shove it. Well. Here! It! Goes!"`),
 					`From the way they collapse over each other, it seems they orgasmed at about the same time.`
diff --git a/src/events/scheduled/seFctvWatch.js b/src/events/scheduled/seFctvWatch.js
index f001ded827e3c3497be266e005ae3c68e7424de2..5b4a72a55330de16f98efe4042902b5e3e601b7a 100644
--- a/src/events/scheduled/seFctvWatch.js
+++ b/src/events/scheduled/seFctvWatch.js
@@ -25,7 +25,7 @@ App.Events.SEfctvWatch = class SEfctvWatch extends App.Events.BaseEvent {
 			let div;
 			let span;
 			V.FCTV.pcViewership.count = V.FCTV.pcViewership.frequency;
-			let _possibleChannels = FCTV.channels();
+			let possibleChannels = FCTV.channels();
 
 			p = document.createElement("p");
 
@@ -113,7 +113,7 @@ App.Events.SEfctvWatch = class SEfctvWatch extends App.Events.BaseEvent {
 				let span;
 				const buttons = [];
 
-				for (const i of _possibleChannels) {
+				for (const i of possibleChannels) {
 					if (showChannel(i).canSelect > 0) {
 						if (selectedChannel !== i) { // Selected button
 							buttons.push(
diff --git a/src/events/scheduled/seHuskSlaveDelivery.js b/src/events/scheduled/seHuskSlaveDelivery.js
index 8f4b03d03b7fb0fa5b8be2247c587ade2134cd2a..1fc8b295e0ef6d6005b9c0912bda7e40d5021608 100644
--- a/src/events/scheduled/seHuskSlaveDelivery.js
+++ b/src/events/scheduled/seHuskSlaveDelivery.js
@@ -33,7 +33,7 @@ App.Events.SEHuskSlaveDelivery = class SEHuskSlaveDelivery extends App.Events.Ba
 		husk.slaveSurname = "";
 		husk.birthSurname = "";
 		husk.origin = "You reserved a mindless slave like $him from the Flesh Heap.";
-		applyMindbroken(husk);
+		applyMindbroken(husk, -100);
 		husk.career = "a Fuckdoll";
 
 		if (V.huskSlave.sex === 3) {
diff --git a/src/events/scheduled/sePlayerBirth.js b/src/events/scheduled/sePlayerBirth.js
index 07183058c3ade9db9a952464c99059da1f80637a..ad84394c81047c449437e7797343c3292534d0c2 100644
--- a/src/events/scheduled/sePlayerBirth.js
+++ b/src/events/scheduled/sePlayerBirth.js
@@ -10,121 +10,121 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 		V.nextLink = "Scheduled Event";
 		/** @type {boolean} */
 		let playerDead;
-		let _PCDegree = 0;
-		let _pregTypeDecrecement = WombReserveCount(V.PC, "incubator");
-		let _pregTypeDecrecementNursery = WombReserveCount(V.PC, "incubator");
-		let _concubinePresent;
-		let _seed;
+		let PCDegree = 0;
+		let pregTypeDecrecement = WombReserveCount(V.PC, "incubator");
+		let pregTypeDecrecementNursery = WombReserveCount(V.PC, "incubator");
+		let concubinePresent;
+		let seed;
 
-		let _identicalChildGen; // TODO: remove me
+		let identicalChildGen; // TODO: remove me
 
 		/* expand me with new variables to behave like slave birth */
-		let _badBirth;
+		let badBirth;
 		if (V.PC.counter.birthsTotal === 0) {
-			_badBirth = 30 + (V.PC.pregType * 4);
+			badBirth = 30 + (V.PC.pregType * 4);
 		} else {
-			_badBirth = 10;
+			badBirth = 10;
 		}
-		let _wounded = 0;
+		let wounded = 0;
 		const birthed = WombBirth(V.PC, 35);
 		/** @type {number} count of live babies after birth */
-		let _curBabies = birthed.length;
+		let curBabies = birthed.length;
 		/** @type {number} currently not used - it's just for future improvements. */
-		let _stillBirth = V.PC.womb.length;
+		let stillBirth = V.PC.womb.length;
 
 
-		let _gender;
-		if (_curBabies === 1) {
+		let gender;
+		if (curBabies === 1) {
 			if (birthed[0].genetics.gender === "XX") {
-				_gender = "XX";
+				gender = "XX";
 			} else {
-				_gender = "XY";
+				gender = "XY";
 			}
 		}
 
 		/* Difference in code below:
-		 * _curBabies - count of live babies after birth
+		 * curBabies - count of live babies after birth
 		 * V.PC.pregType = all babies in PC.
 		 * I assume that dead fetuses do not count to reputation, etc., and PC manages to hide them. This mainly for future possibilities, or early birth triggers.
 		 * PC will not support partial birth - even if she happens to be pregnant at different stages at once, undeveloped babies will be dead as result.
-		 * _stillBirth currently not used - it's just for future improvements. */
+		 * stillBirth currently not used - it's just for future improvements. */
 		V.PC.preg = 0;
 		V.PC.pregKnown = 0;
 		V.PC.labor = 0;
-		V.PC.counter.birthsTotal += _curBabies;
+		V.PC.counter.birthsTotal += curBabies;
 
 		/* setting the tallies for each type of child born */
-		let _others = 0;
-		let _self = 0;
-		let _citizens = 0;
-		let _oldMaster = 0;
-		let _arcOwner = 0;
-		let _clients = 0;
-		let _elite = 0;
-		let _lab = 0;
-		let _futaS = 0;
-		let _slavesLength = 0;
-		let _babies = [];
+		let others = 0;
+		let self = 0;
+		let citizens = 0;
+		let oldMaster = 0;
+		let arcOwner = 0;
+		let clients = 0;
+		let elite = 0;
+		let lab = 0;
+		let futaS = 0;
+		let slavesLength = 0;
+		let babies = [];
 		for (const baby of birthed) {
 			if (baby.fatherID === 0) {
-				_others++;
-				_babies.push("some guy");
+				others++;
+				babies.push("some guy");
 			} else if (baby.fatherID === -1) {
-				_self++;
-				_babies.push("your own");
+				self++;
+				babies.push("your own");
 			} else if (baby.fatherID === -2) {
-				_citizens++;
-				_babies.push("an arcology citizen");
+				citizens++;
+				babies.push("an arcology citizen");
 			} else if (baby.fatherID === -3) {
-				_oldMaster++;
-				_babies.push("your Master");
+				oldMaster++;
+				babies.push("your Master");
 			} else if (baby.fatherID === -4) {
-				_arcOwner++;
-				_babies.push("another arcology owner");
+				arcOwner++;
+				babies.push("another arcology owner");
 			} else if (baby.fatherID === -5) {
-				_clients++;
-				_babies.push("your client");
+				clients++;
+				babies.push("your client");
 			} else if (baby.fatherID === -6) {
-				_elite++;
-				_babies.push("the Societal Elite");
+				elite++;
+				babies.push("the Societal Elite");
 			} else if (baby.fatherID === -7) {
-				_lab++;
-				_babies.push("designer");
+				lab++;
+				babies.push("designer");
 			} else if (baby.fatherID === -9) {
-				_futaS++;
-				_babies.push("a Futanari Sister");
+				futaS++;
+				babies.push("a Futanari Sister");
 			} else {
-				const _babyDaddy = getSlave(baby.fatherID);
-				if (_babyDaddy) {
-					_slavesLength++;
-					_babies.push(String(_babyDaddy.slaveName));
+				const babyDaddy = getSlave(baby.fatherID);
+				if (babyDaddy) {
+					slavesLength++;
+					babies.push(String(babyDaddy.slaveName));
 				} else {
-					_others++;
-					_babies.push("some guy");
+					others++;
+					babies.push("some guy");
 				}
 			}
 		}
-		const _babiesReduced = removeDuplicates(_babies);
+		const babiesReduced = removeDuplicates(babies);
 
 		let r = [];
 
-		if ((_elite > 0 || _self > 0) && V.arcologies[0].FSRestart !== "unset") { /* for simplicity's sake, not going to allow other embryos to be added during an elite pregnancy */
+		if ((elite > 0 || self > 0) && V.arcologies[0].FSRestart !== "unset") { /* for simplicity's sake, not going to allow other embryos to be added during an elite pregnancy */
 			r.push(`Since you are heavily pregnant with`);
-			if (_elite + _self >= 2) {
+			if (elite + self >= 2) {
 				r.push(`children`);
 			} else {
 				r.push(`a child`);
 			}
 			r.push(`of the Societal Elite, you are quickly taken to the finest clinic the arcology has to offer. After a quick sedation, you awake to find your belly no longer round with child; that, and a note stating your next breeding partner and a notice that ${cashFormat(50000)} has been added to your account. The Societal Elite are <span class="green">very pleased</span> at their new addition to the ranks. You just wish you could have seen your`);
-			if (_curBabies === 1) {
+			if (curBabies === 1) {
 				r.push(`little`);
-				if (_gender === "XX") {
+				if (gender === "XX") {
 					r.push(`girl`);
 				} else {
 					r.push(`boy`);
 				}
 				r.push(`before they took`);
-				if (_gender === "XX") {
+				if (gender === "XX") {
 					r.push(`her`);
 				} else {
 					r.push(`him`);
@@ -133,16 +133,16 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 				r.push(`babies before they took them`);
 			}
 			r.push(`away to be raised into`);
-			if (_curBabies > 1) {
+			if (curBabies > 1) {
 				r.push(`proper members`);
 			} else {
 				r.push(`a proper member`);
 			}
 			r.push(`of the future world.`);
-			V.PC.counter.birthElite += _elite;
+			V.PC.counter.birthElite += elite;
 			if (V.PC.ovaryAge >= 47 && V.playerAging === 2) {
 				r.push(`You are getting too old to have children; you feel like`);
-				if (_curBabies > 1) {
+				if (curBabies > 1) {
 					r.push(`they`);
 				} else {
 					r.push(`this`);
@@ -173,7 +173,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 			} = getPronouns(S.Concubine ? S.Concubine : {pronoun: App.Data.Pronouns.Kind.plural}).appendSuffix("2");
 			if (V.PC.belly < 100000) {
 				if (S.Concubine) {
-					_concubinePresent = 1;
+					concubinePresent = 1;
 				}
 				r.push(`After what feels like a`);
 				if (V.showInches === 2) {
@@ -185,7 +185,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 				if (S.Nurse) {
 					const {he} = getPronouns(S.Nurse);
 					r.push(`<span class="pink">${S.Nurse.slaveName}</span> waiting for you with everything ${he} needs to be a capable midwife to you.`);
-					if (_concubinePresent === 1) {
+					if (concubinePresent === 1) {
 						r.push(`<span class="pink">${S.Concubine.slaveName}</span>`);
 						if (hasAnyArms(S.Concubine)) {
 							r.push(`wraps ${his2} ${hasBothArms(S.Concubine) ? "arms" : "arm"} around`);
@@ -207,7 +207,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 						r.push(`ren`);
 					}
 					r.push(`from any dangers.`);
-					if (_concubinePresent === 1) {
+					if (concubinePresent === 1) {
 						r.push(`<span class="pink">${S.Concubine.slaveName}</span>`);
 						if (hasAnyArms(S.Concubine)) {
 							r.push(`wraps ${his2} ${hasBothArms(S.Concubine) ? "arms" : "arm"} around`);
@@ -219,7 +219,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 				} else if (V.HeadGirlID !== 0) {
 					const {He, he} = getPronouns(S.HeadGirl);
 					r.push(`<span class="pink">${S.HeadGirl.slaveName}</span> is waiting for you. ${He} promises to do everything ${he} can to help you.`);
-					if (_concubinePresent === 1) {
+					if (concubinePresent === 1) {
 						r.push(`<span class="pink">${S.Concubine.slaveName}</span>`);
 						if (hasAnyArms(S.Concubine)) {
 							r.push(`wraps ${his2} ${hasBothArms(S.Concubine) ? "arms" : "arm"} around`);
@@ -228,7 +228,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 						}
 						r.push(`you from behind, letting you know ${he2}'ll be here to comfort you while you labor.`);
 					}
-				} else if (_concubinePresent === 1) {
+				} else if (concubinePresent === 1) {
 					r.push(`<span class="pink">${S.Concubine.slaveName}</span> is waiting for you. ${He2} believes, if anything, that ${he2} could at least comfort you while you give birth.`);
 				} else {
 					r.push(`it quite empty. At least ${V.assistant.name} knows where you are should anything go wrong.`);
@@ -236,16 +236,16 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 			} else {
 				if (S.Concubine) {
 					if (!canWalk(S.Concubine)) {
-						_concubinePresent = 2;
+						concubinePresent = 2;
 					} else {
-						_concubinePresent = 1;
+						concubinePresent = 1;
 					}
 				}
 				r.push(`You barely make it half-way down the hall before you feel the first of your many children drop into position at the entrance to your birth canal. You try to keep going, but as it forces its way through your pelvis, spreading it wider, you're forced to the ground. Fortunately the penthouse is littered with supply rooms and closets, so you drag your laboring body into the nearest one instead. Fortunately, ${V.assistant.name} discretely directs`);
 				if (S.Nurse) {
 					const {he, him} = getPronouns(S.Nurse);
 					r.push(`<span class="pink">${S.Nurse.slaveName}</span> to you with everything ${he}'ll need to deliver your ${(V.PC.pregType > 1) ? "children" : "child"}.`);
-					if (_concubinePresent === 1) {
+					if (concubinePresent === 1) {
 						r.push(`<span class="pink">${S.Concubine.slaveName}</span> bursts in after ${him} and circles around behind you before`);
 						if (hasAnyArms(S.Concubine)) {
 							r.push(`wrapping ${his2} ${hasAnyArms(S.Concubine) ? "arms" : "arm"} around`);
@@ -257,7 +257,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 				} else if (V.BodyguardID !== 0) {
 					const {He, he, his, him} = getPronouns(S.Bodyguard);
 					r.push(`<span class="pink">${S.Bodyguard.slaveName}</span> to your location. Ever since ${he} realized ${he} was protecting for not only you, but the lives you bear too, ${he} made sure to hone ${his} skills as a midwife to make sure ${he} could protect you and your unborn ${(V.PC.pregType > 1) ? "children" : "child"} from any dangers. ${He} apologizes profusely for not being there when you needed ${him} most; ${he} wanted to make sure everything was ready for your arrival.`);
-					if (_concubinePresent === 1) {
+					if (concubinePresent === 1) {
 						r.push(`<span class="pink">${S.Concubine.slaveName}</span> bursts in after ${him} and circles around behind you before`);
 						if (hasAnyArms(S.Concubine)) {
 							r.push(`wrapping ${his2} ${hasAnyArms(S.Concubine) ? "arms" : "arm"} around`);
@@ -269,7 +269,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 				} else if (V.HeadGirlID !== 0) {
 					const {He, he, him} = getPronouns(S.HeadGirl);
 					r.push(`<span class="pink">${S.HeadGirl.slaveName}</span> to your location. ${He} promises to do everything ${he} can to help you.`);
-					if (_concubinePresent === 1) {
+					if (concubinePresent === 1) {
 						r.push(`<span class="pink">${S.Concubine.slaveName}</span> bursts in after ${him} and circles around behind you before`);
 						if (hasAnyArms(S.Concubine)) {
 							r.push(`wrapping ${his2} ${hasAnyArms(S.Concubine) ? "arms" : "arm"} around`);
@@ -278,7 +278,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 						}
 						r.push(`your contraction wracked middle. ${He2}'ll be here to comfort you while you labor.`);
 					}
-				} else if (_concubinePresent === 1) {
+				} else if (concubinePresent === 1) {
 					r.push(`<span class="pink">${S.Concubine.slaveName}</span> to your location. ${He2} believes, if anything, that ${he2} could at least comfort you while you give birth.`);
 				} else {
 					r.push(`a camera on the room you crawled into. At least ${V.assistant.name} knows where you are should anything go wrong.`);
@@ -287,7 +287,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 			App.Events.addParagraph(node, r);
 			r = [];
 			r.push(`You arrange yourself to give birth, relaxing until your body urges you to begin bearing down and pushing your child into the world.`);
-			if (_concubinePresent === 1) {
+			if (concubinePresent === 1) {
 				r.push(`${S.Concubine.slaveName} settles in beside you, one hand soothing your contraction wracked middle and the other`);
 				if (V.PC.dick !== 0) {
 					r.push(`stroking your hardening dick.`);
@@ -295,15 +295,15 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 					r.push(`teasing your stiffening clit.`);
 				}
 			}
-			if (_badBirth > random(1, 100)) { /* shits going wrong */
+			if (badBirth > random(1, 100)) { /* shits going wrong */
 				if (S.Nurse) {
 					const {he, his} = getPronouns(S.Nurse);
 					r.push(`You keep pushing and pushing, but your child is not coming out.`);
-					if (_concubinePresent === 1) {
+					if (concubinePresent === 1) {
 						r.push(`${S.Concubine.slaveName} shifts to massaging your gravid middle${canTalk(S.Concubine) ? ", while whispering words of encouragement into your ear" : ""} until ${S.Nurse.slaveName} shoos ${him2} away so ${he} can take over and get this baby out of you.`);
 					}
 					r.push(`${S.Nurse.slaveName} was prepared for this possibility, adjusts your position and timings, and before long is holding your <span class="lime">new baby`);
-					if (_gender === "XX") {
+					if (gender === "XX") {
 						r.push(`girl`);
 					} else {
 						r.push(`boy`);
@@ -321,7 +321,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 				} else if (V.BodyguardID !== 0) {
 					const {he, his} = getPronouns(S.Bodyguard);
 					r.push(`You keep pushing and pushing, but your child is not coming out.`);
-					if (_concubinePresent === 1) {
+					if (concubinePresent === 1) {
 						r.push(`${S.Concubine.slaveName} shifts to massaging your gravid middle${canTalk(S.Concubine) ? ", while whispering words of encouragement into your ear" : ""}. ${He2} begins to worry as ${his2} lover weakens in front of ${him2}. ${S.Bodyguard.slaveName} quickly pulls ${him2} away from you, fearing the worst.`);
 					}
 					r.push(`${S.Bodyguard.slaveName} read about this possibility and tries everything ${he} can to coax your child out. As time passes, ${he} notices your consciousness begin to fade as exhaustion kicks in. Fearing for your lives, and desperate to save you, ${he} draws ${his} sword from its sheath, hands unsteady from what ${he} is about to do. Carefully, ${he} slits your lower abdomen, allowing your baby-`);
@@ -342,25 +342,25 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 					App.Events.addParagraph(node, r);
 					r = [];
 					r.push(`You awake some time later in the remote surgery, your stomach extremely sore; you quickly realize you're no longer round with child. As you try to rise, ${S.Bodyguard.slaveName} stops you; ${he} hefts you into a bridal carry and takes you to a recovery room, before gently placing you into a warm bed, tucking you in, and hurrying out of the room. Before you can call out, ${he} returns carrying`);
-					if (_curBabies === 1) {
+					if (curBabies === 1) {
 						r.push(`<span class="lime">your baby`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`girl`);
 						} else {
 							r.push(`boy`);
 						}
 						r.push(`</span>`);
-					} else if (_curBabies < 6) {
-						r.push(`<span class="lime">your newborn ${pregNumberName(_curBabies, 2)}</span>`);
+					} else if (curBabies < 6) {
+						r.push(`<span class="lime">your newborn ${pregNumberName(curBabies, 2)}</span>`);
 					} else {
-						r.push(`a big bassinet containing <span class="lime">your newborn pregNumberName(_curBabies, 2)</span>`);
+						r.push(`a big bassinet containing <span class="lime">your newborn ${pregNumberName(curBabies, 2)}</span>`);
 					}
 					r.push(`in ${his} arms.`);
-					_wounded = 1;
+					wounded = 1;
 				} else if (V.HeadGirlID !== 0) {
 					const {he, his, him} = getPronouns(S.HeadGirl);
 					r.push(`You keep pushing and pushing, but your child is not coming out.`);
-					if (_concubinePresent === 1) {
+					if (concubinePresent === 1) {
 						r.push(`${S.Concubine.slaveName} shifts to massaging your gravid middle${canTalk(S.Concubine) ? ", while whispering words of encouragement into your ear" : ""}. ${He2} begins to worry as ${his2} lover weakens in front of ${him2}. ${S.HeadGirl.slaveName} quickly pulls ${him2} to`);
 						if (hasBothLegs(S.Concubine)) {
 							r.push(`${his2} feet`);
@@ -393,10 +393,10 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 					}
 					App.Events.addParagraph(node, r);
 					r = [];
-					r.push(`You awake some time later in a recovery room${(_concubinePresent > 0) ? `, ${S.Concubine.slaveName} beside you` : ""}, your stomach extremely sore; a quick glance at the prominent scar tells you everything you need to know. Seeing you're awake, ${S.HeadGirl.slaveName} catches your attention. In ${his} arms`);
-					if (_curBabies === 1) {
+					r.push(`You awake some time later in a recovery room${(concubinePresent > 0) ? `, ${S.Concubine.slaveName} beside you` : ""}, your stomach extremely sore; a quick glance at the prominent scar tells you everything you need to know. Seeing you're awake, ${S.HeadGirl.slaveName} catches your attention. In ${his} arms`);
+					if (curBabies === 1) {
 						r.push(`is <span class="lime">your baby`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`girl,</span>`);
 						} else {
 							r.push(`boy,</span>`);
@@ -405,14 +405,14 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							r.push(`happily nursing from ${his} breast,`);
 						}
 					} else {
-						r.push(`are <span class="lime">your newborn ${pregNumberName(_curBabies, 2)},</span>`);
+						r.push(`are <span class="lime">your newborn ${pregNumberName(curBabies, 2)},</span>`);
 						if (S.HeadGirl.lactation > 0) {
 							r.push(`happily nursing from ${his} breasts,`);
 						}
 					}
 					r.push(`alive and well.`);
-					_wounded = 1;
-				} else if (_concubinePresent === 1) {
+					wounded = 1;
+				} else if (concubinePresent === 1) {
 					r.push(`You keep pushing and pushing, but your child is not coming out.`);
 					if (canWalk(S.Concubine)) {
 						r.push(`In a panic, ${S.Concubine.slaveName} carries you to the remote surgery.`);
@@ -422,9 +422,9 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 					App.Events.addParagraph(node, r);
 					r = [];
 					r.push(`You awake some time later in a recovery room, your stomach extremely sore; a quick glance at the prominent scar tells you everything you need to know. A content sigh comes from beside you; ${S.Concubine.slaveName} is snuggled next to you, snoozing with`);
-					if (_curBabies === 1) {
+					if (curBabies === 1) {
 						r.push(`<span class="lime">your baby`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`girl`);
 						} else {
 							r.push(`boy`);
@@ -434,7 +434,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							r.push(`Your child has managed to free one of ${S.Concubine.slaveName}'s breasts and is eagerly suckling from its milky nipple.`);
 						}
 					} else {
-						r.push(`<span class="lime">your newborn ${pregNumberName(_curBabies, 2)}</span> in ${his2} arms.`);
+						r.push(`<span class="lime">your newborn ${pregNumberName(curBabies, 2)}</span> in ${his2} arms.`);
 						if (S.Concubine.lactation > 0) {
 							r.push(`Your children have managed to free ${S.Concubine.slaveName}'s breasts and are eagerly suckling from their milky nipples.`);
 						}
@@ -458,7 +458,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							r.push(`You don't know how ${he2} managed to get you here, since ${he2} can't walk${(V.PC.pregType >= 8) ? ", especially with how heavy your pregnancy was" : ""}, but you're thankful either way.`);
 						}
 					}
-					_wounded = 1;
+					wounded = 1;
 				} else {
 					r.push(`You keep pushing and pushing, but your child is not coming out. <span class="red">Something is wrong,</span> but you keep persisting.`);
 					playerDead = true;
@@ -471,20 +471,20 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 				if (S.Nurse) {
 					r.push(`Under ${S.Nurse.slaveName}'s guidance, childbirth is a breeze for you.`);
 					if (V.PC.pregType === 1) {
-						if (_concubinePresent === 1) {
+						if (concubinePresent === 1) {
 							r.push(`Or it would have been, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your child entered the world.`);
 							if (V.PC.balls >= 9) {
 								r.push(`An orgasm that resulted in ${S.Concubine.slaveName}, ${S.Nurse.slaveName}, and your newborn getting sprayed with cum.`);
 							}
 						}
 						r.push(`${S.Nurse.slaveName} cuts the cord, swaddles your child, and hands you <span class="lime">your new baby`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`girl.</span>`);
 						} else {
 							r.push(`boy.</span>`);
 						}
 					} else {
-						if (_concubinePresent === 1) {
+						if (concubinePresent === 1) {
 							r.push(`Or it would have been, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your first child entered the world.`);
 							if (V.PC.balls >= 9) {
 								r.push(`An orgasm that resulted in ${S.Concubine.slaveName},${S.Nurse.slaveName}, and your newborn getting sprayed with cum.`);
@@ -500,7 +500,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							} else {
 								r.push(`canal`);
 							}
-							r.push(`and immediately pushes you back over the edge. In minutes, after ${num(_curBabies)} children and ${num(_curBabies)} intense orgasms, you're barely conscious. ${S.Concubine.slaveName} slides in behind you to snuggle with you as you return to your senses.`);
+							r.push(`and immediately pushes you back over the edge. In minutes, after ${num(curBabies)} children and ${num(curBabies)} intense orgasms, you're barely conscious. ${S.Concubine.slaveName} slides in behind you to snuggle with you as you return to your senses.`);
 						} else {
 							r.push(`With one out, you realize`);
 							if (V.PC.pregType >= 6) {
@@ -522,26 +522,26 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							}
 							r.push(`descent; you'll be at this for awhile. With ${S.Nurse.slaveName} around, you aren't worried at all.`);
 						}
-						r.push(`${S.Nurse.slaveName} cuts the cords, swaddles your children, and hands you <span class="lime">your new ${pregNumberName(_curBabies, 2)}.</span>`);
+						r.push(`${S.Nurse.slaveName} cuts the cords, swaddles your children, and hands you <span class="lime">your new ${pregNumberName(curBabies, 2)}.</span>`);
 					}
 				} else if (V.BodyguardID !== 0) {
 					const {his} = getPronouns(S.Bodyguard);
 					r.push(`With ${S.Bodyguard.slaveName} watching over you, you feel safe enough to let your guard down and focus on giving birth. Once you are relaxed, you feel your child begin to inch down your birth canal. Before long you've completed the job without any trouble.`);
 					if (V.PC.pregType === 1) {
-						if (_concubinePresent === 1) {
+						if (concubinePresent === 1) {
 							r.push(`Or it would have, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your child entered the world.`);
 							if (V.PC.balls >= 9) {
 								r.push(`An orgasm that resulted in ${S.Concubine.slaveName},${S.Bodyguard.slaveName}, and your newborn getting sprayed with cum.`);
 							}
 						}
 						r.push(`${S.Bodyguard.slaveName} cuts the cord with ${his} blade, and hands you <span class="lime">your new baby`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`girl.</span>`);
 						} else {
 							r.push(`boy.</span>`);
 						}
 					} else {
-						if (_concubinePresent === 1) {
+						if (concubinePresent === 1) {
 							r.push(`Or you would have, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your child entered the world.`);
 							if (V.PC.balls >= 9) {
 								r.push(`An orgasm that resulted in ${S.Concubine.slaveName}, ${S.Bodyguard.slaveName}, and your newborn getting sprayed with cum.`);
@@ -557,7 +557,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							} else {
 								r.push(`canal`);
 							}
-							r.push(`and immediately pushes you back over the edge. In minutes, after ${num(_curBabies)} children and ${num(_curBabies)} intense orgasms, you're barely conscious, nearly panicking ${S.Bodyguard.slaveName}. ${S.Concubine.slaveName} slides in behind you to snuggle with you as you return to your senses.`);
+							r.push(`and immediately pushes you back over the edge. In minutes, after ${num(curBabies)} children and ${num(curBabies)} intense orgasms, you're barely conscious, nearly panicking ${S.Bodyguard.slaveName}. ${S.Concubine.slaveName} slides in behind you to snuggle with you as you return to your senses.`);
 						} else {
 							r.push(`With one out, you realize`);
 							if (V.PC.pregType >= 6) {
@@ -579,25 +579,25 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							}
 							r.push(`descent; you'll be at this for awhile. With ${S.Bodyguard.slaveName} around, you feel completely safe.`);
 						}
-						r.push(`${S.Bodyguard.slaveName} cuts the cords with ${his} blade, and hands you <span class="lime">your new ${pregNumberName(_curBabies, 2)}.</span>`);
+						r.push(`${S.Bodyguard.slaveName} cuts the cords with ${his} blade, and hands you <span class="lime">your new ${pregNumberName(curBabies, 2)}.</span>`);
 					}
 				} else if (V.HeadGirlID !== 0) {
 					r.push(`With ${S.HeadGirl.slaveName} waiting with everything you need, childbirth goes by without a hitch.`);
 					if (V.PC.pregType === 1) {
-						if (_concubinePresent === 1) {
+						if (concubinePresent === 1) {
 							r.push(`Or it would have been, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your child entered the world.`);
 							if (V.PC.balls >= 9) {
 								r.push(`An orgasm that resulted in ${S.Concubine.slaveName},${S.HeadGirl.slaveName}, and your newborn getting sprayed with cum.`);
 							}
 						}
 						r.push(`${S.HeadGirl.slaveName} cuts the cord, swaddles your child, and hands you <span class="lime">your new baby`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`girl.</span>`);
 						} else {
 							r.push(`boy.</span>`);
 						}
 					} else {
-						if (_concubinePresent === 1) {
+						if (concubinePresent === 1) {
 							r.push(`Or it would have been, had ${S.Concubine.slaveName} not driven you to an intense orgasm right as your first child entered the world.`);
 							if (V.PC.balls >= 9) {
 								r.push(`An orgasm that resulted in ${S.Concubine.slaveName},${S.HeadGirl.slaveName}, and your newborn getting sprayed with cum.`);
@@ -613,7 +613,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							} else {
 								r.push(`canal`);
 							}
-							r.push(`and immediately pushes you back over the edge. In minutes, after ${num(_curBabies)} children and ${num(_curBabies)} intense orgasms, you're barely conscious. ${S.Concubine.slaveName} slides in behind you to snuggle with you as you return to your senses.`);
+							r.push(`and immediately pushes you back over the edge. In minutes, after ${num(curBabies)} children and ${num(curBabies)} intense orgasms, you're barely conscious. ${S.Concubine.slaveName} slides in behind you to snuggle with you as you return to your senses.`);
 						} else {
 							r.push(`With one out, you realize`);
 							if (V.PC.pregType >= 6) {
@@ -635,11 +635,11 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							}
 							r.push(`descent; you'll be at this for awhile. With ${S.HeadGirl.slaveName} around, you know everything is under control.`);
 						}
-						r.push(`${S.HeadGirl.slaveName} cuts the cords, swaddles your children, and hands you <span class="lime">your new ${pregNumberName(_curBabies, 2)}.</span>`);
+						r.push(`${S.HeadGirl.slaveName} cuts the cords, swaddles your children, and hands you <span class="lime">your new ${pregNumberName(curBabies, 2)}.</span>`);
 					}
-				} else if (_concubinePresent === 1) {
+				} else if (concubinePresent === 1) {
 					r.push(`${S.Concubine.slaveName} alternates between calming your nerves and driving your to orgasm. It works fairly well, as your child rapidly enters the world alongside a particularly powerful climax. You reach down and draw <span class="lime">your new baby`);
-					if (_gender === "XX") {
+					if (gender === "XX") {
 						r.push(`girl`);
 					} else {
 						r.push(`boy`);
@@ -668,7 +668,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 					}
 				} else {
 					r.push(`You keep pushing and pushing, your child slowly working its way from your body. With the last of your strength, you bear down, freeing your child from your body at last. Panting, you gather <span class="lime">your new baby`);
-					if (_gender === "XX") {
+					if (gender === "XX") {
 						r.push(`girl`);
 					} else {
 						r.push(`boy`);
@@ -715,7 +715,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 						if (V.PC.pregType >= 6) {
 							r.push(`thoroughly`);
 						}
-						r.push(`exhausted by the time you've pushed out your ${pregNumberName(_curBabies, 2)},`);
+						r.push(`exhausted by the time you've pushed out your ${pregNumberName(curBabies, 2)},`);
 						if (V.PC.pregType >= 8) {
 							r.push(`unable to even`);
 						} else {
@@ -729,70 +729,70 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 			App.Events.addParagraph(node, r);
 			r = [];
 			if (!playerDead) {
-				V.PC.counter.birthOther += _others;
-				V.PC.counter.birthSelf += _self;
-				V.PC.counter.birthCitizen += _citizens;
-				V.PC.counter.birthMaster += _oldMaster;
-				V.PC.counter.birthArcOwner += _arcOwner;
-				V.PC.counter.birthClient += _clients;
-				V.PC.counter.birthElite += _elite;
-				V.PC.counter.birthLab += _lab;
-				V.PC.counter.birthDegenerate += _slavesLength;
+				V.PC.counter.birthOther += others;
+				V.PC.counter.birthSelf += self;
+				V.PC.counter.birthCitizen += citizens;
+				V.PC.counter.birthMaster += oldMaster;
+				V.PC.counter.birthArcOwner += arcOwner;
+				V.PC.counter.birthClient += clients;
+				V.PC.counter.birthElite += elite;
+				V.PC.counter.birthLab += lab;
+				V.PC.counter.birthDegenerate += slavesLength;
 
-				if (_curBabies === 1) {
-					let _p = 0;
-					if (birthed[_p].genetics.race === V.PC.origRace) {
-						_PCDegree++;
+				if (curBabies === 1) {
+					let p = 0;
+					if (birthed[p].genetics.race === V.PC.origRace) {
+						PCDegree++;
 					}
-					if (birthed[_p].genetics.hColor === V.PC.hColor) {
-						_PCDegree++;
+					if (birthed[p].genetics.hColor === V.PC.hColor) {
+						PCDegree++;
 					}
-					if (birthed[_p].genetics.skin === V.PC.skin) {
-						_PCDegree++;
+					if (birthed[p].genetics.skin === V.PC.skin) {
+						PCDegree++;
 					}
-					if (birthed[_p].genetics.eyeColor === V.PC.eye.origColor) {
-						_PCDegree++;
+					if (birthed[p].genetics.eyeColor === V.PC.eye.origColor) {
+						PCDegree++;
 					}
 
 					r.push(`Your little`);
-					if (_gender === "XX") {
+					if (gender === "XX") {
 						r.push(`girl`);
 					} else {
 						r.push(`boy`);
 					}
 					if (V.PC.pregSource === -1) {
 						r.push(`looks exactly like you, in fact, the resemblance seems uncanny. Since`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`she`);
 						} else {
 							r.push(`he`);
 						}
 						r.push(`has the exact same genetics as you,`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`she'll`);
 						} else {
 							r.push(`he'll`);
 						}
 						r.push(`likely look almost identical to you when`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`she's`);
 						} else {
 							r.push(`he's`);
 						}
 						r.push(`your age.`);
-					} else if (_PCDegree === 4) {
+					} else if (PCDegree === 4) {
 						r.push(`looks just like you;`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`she`);
 						} else {
 							r.push(`he`);
 						}
 						r.push(`will likely grow up to closely resemble yourself.`);
-					} else if (birthed[_p].genetics.eyeColor === V.PC.eye.origColor) {
+					} else if (birthed[p].genetics.eyeColor === V.PC.eye.origColor) {
 						r.push(`has your lovely ${V.PC.eye.origColor} eyes.`);
-					} else if (_PCDegree > 0) {
+					} else if (PCDegree > 0) {
 						r.push(`looks a little like you, enough that`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`she'll`);
 						} else {
 							r.push(`he'll`);
@@ -800,7 +800,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 						r.push(`be recognizable as yours.`);
 					} else {
 						r.push(`looks nothing like you; it's hard to believe`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`she's your daughter`);
 						} else {
 							r.push(`he's you son`);
@@ -809,7 +809,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 
 					if (birthed[0].reserve === "incubator") {
 						r.push(`<span class="pink">You set`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`her`);
 						} else {
 							r.push(`him`);
@@ -820,7 +820,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 						}
 					} else if (birthed[0].reserve === "nursery") {
 						r.push(`<span class="pink">You set`);
-						if (_gender === "XX") {
+						if (gender === "XX") {
 							r.push(`her`);
 						} else {
 							r.push(`him`);
@@ -831,54 +831,54 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 						}
 					}
 					birthed.shift();
-				} else if (_curBabies > 1) {
-					let _firstChild = 1;
-					for (let _p = 0; _p < _curBabies; _p++) {
-						_PCDegree = 0;
+				} else if (curBabies > 1) {
+					let firstChild = 1;
+					for (let p = 0; p < curBabies; p++) {
+						PCDegree = 0;
 						if (birthed[0].genetics.race === V.PC.origRace) { // TODO: Fixme "0" is from TW; error?
-							_PCDegree++;
+							PCDegree++;
 						}
-						if (birthed[_p].genetics.hColor === V.PC.hColor) {
-							_PCDegree++;
+						if (birthed[p].genetics.hColor === V.PC.hColor) {
+							PCDegree++;
 						}
-						if (birthed[_p].genetics.skin === V.PC.skin) {
-							_PCDegree++;
+						if (birthed[p].genetics.skin === V.PC.skin) {
+							PCDegree++;
 						}
-						if (birthed[_p].genetics.eyeColor === V.PC.eye.origColor) {
-							_PCDegree++;
+						if (birthed[p].genetics.eyeColor === V.PC.eye.origColor) {
+							PCDegree++;
 						}
 
-						if (_firstChild === 1) {
+						if (firstChild === 1) {
 							r.push(`Your first`);
-							_firstChild = 0;
+							firstChild = 0;
 						} else {
 							r.push(`The next`);
 						}
 						r.push(`little`);
-						if (birthed[_p].genetics.gender === "XX") {
+						if (birthed[p].genetics.gender === "XX") {
 							r.push(`girl`);
 						} else {
 							r.push(`boy`);
 						}
-						if (_identicalChildGen === 1) { // TODO: fixme: completely unique variable. -_-
+						if (identicalChildGen === 1) { // TODO: fixme: completely unique variable. -_-
 							r.push(`looks exactly like the previous; they're identical twins.`);
 						} else if (V.PC.pregSource === -1) {
 							r.push(`looks exactly like`);
-							if (_p === 0) {
+							if (p === 0) {
 								r.push(`you, in fact, the resemblance seems uncanny. Since`);
-								if (birthed[_p].genetics.gender === "XX") {
+								if (birthed[p].genetics.gender === "XX") {
 									r.push(`she`);
 								} else {
 									r.push(`he`);
 								}
 								r.push(`has the exact same genetics as you,`);
-								if (birthed[_p].genetics.gender === "XX") {
+								if (birthed[p].genetics.gender === "XX") {
 									r.push(`she'll`);
 								} else {
 									r.push(`he'll`);
 								}
 								r.push(`likely look almost identical to you when`);
-								if (birthed[_p].genetics.gender === "XX") {
+								if (birthed[p].genetics.gender === "XX") {
 									r.push(`she's`);
 								} else {
 									r.push(`he's`);
@@ -888,19 +888,19 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 								r.push(`you.`);
 							}
 							r.push(`Every one of your children look this way; it's kind of hard to tell them apart.`);
-						} else if (_PCDegree === 4) {
+						} else if (PCDegree === 4) {
 							r.push(`looks just like you;`);
-							if (birthed[_p].genetics.gender === "XX") {
+							if (birthed[p].genetics.gender === "XX") {
 								r.push(`she`);
 							} else {
 								r.push(`he`);
 							}
 							r.push(`will likely grow up to closely resemble yourself.`);
-						} else if (birthed[_p].genetics.eyeColor === V.PC.eye.origColor) {
+						} else if (birthed[p].genetics.eyeColor === V.PC.eye.origColor) {
 							r.push(`has your lovely ${V.PC.eye.origColor} eyes.`);
-						} else if (_PCDegree > 0) {
+						} else if (PCDegree > 0) {
 							r.push(`looks a little like you, enough that`);
-							if (birthed[_p].genetics.gender === "XX") {
+							if (birthed[p].genetics.gender === "XX") {
 								r.push(`she'll`);
 							} else {
 								r.push(`he'll`);
@@ -908,71 +908,71 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							r.push(`be recognizable as yours.`);
 						} else {
 							r.push(`looks nothing like you; it's hard to believe`);
-							if (birthed[_p].genetics.gender === "XX") {
+							if (birthed[p].genetics.gender === "XX") {
 								r.push(`she's your daughter`);
 							} else {
 								r.push(`he's your son`);
 							}
 						}
-						if (birthed[_p].reserve === "incubator") {
+						if (birthed[p].reserve === "incubator") {
 							r.push(`<span class="pink">You set`);
-							if (birthed[_p].genetics.gender === "XX") {
+							if (birthed[p].genetics.gender === "XX") {
 								r.push(`her`);
 							} else {
 								r.push(`him`);
 							}
 							r.push(`aside for incubation.</span>`);
 							if (V.incubator.tanks.length < V.incubator.capacity) {
-								App.Facilities.Incubator.newChild(generateChild(V.PC, birthed[_p], true));
+								App.Facilities.Incubator.newChild(generateChild(V.PC, birthed[p], true));
 							}
-							birthed.splice(birthed[_p], 1);
-							_p--;
-							_curBabies--;
-						} else if (birthed[_p].reserve === "nursery") {
+							birthed.splice(birthed[p], 1);
+							p--;
+							curBabies--;
+						} else if (birthed[p].reserve === "nursery") {
 							r.push(`<span class="pink">You set`);
-							if (birthed[_p].genetics.gender === "XX") {
+							if (birthed[p].genetics.gender === "XX") {
 								r.push(`her`);
 							} else {
 								r.push(`him`);
 							}
 							r.push(`aside to be raised in the penthouse.</span>`);
 							if (V.cribs.length < V.nursery) {
-								App.Facilities.Nursery.newChild(generateChild(V.PC, birthed[_p]));
+								App.Facilities.Nursery.newChild(generateChild(V.PC, birthed[p]));
 							}
-							birthed.splice(birthed[_p], 1);
-							_p--;
-							_curBabies--;
+							birthed.splice(birthed[p], 1);
+							p--;
+							curBabies--;
 						}
 					}
 
 					r.push(`All in all, you've bought a healthy group of`);
-					if (_babiesReduced.length > 2) {
-						for (let _spb = 0; _spb < _babiesReduced.length; _spb++) {
-							if (_spb < _babiesReduced.length - 1) {
-								r.push(`${_babiesReduced[_spb]},`);
+					if (babiesReduced.length > 2) {
+						for (let spb = 0; spb < babiesReduced.length; spb++) {
+							if (spb < babiesReduced.length - 1) {
+								r.push(`${babiesReduced[spb]},`);
 							} else {
-								r.push(`and${_babiesReduced[_spb]}'s`);
+								r.push(`and${babiesReduced[spb]}'s`);
 							}
 						}
-					} else if (_babiesReduced.length > 1) {
-						r.push(`${_babiesReduced[0]} and ${_babiesReduced[1]}'s`);
+					} else if (babiesReduced.length > 1) {
+						r.push(`${babiesReduced[0]} and ${babiesReduced[1]}'s`);
 					} else {
-						if (_babiesReduced[0] !== "your own" && _babiesReduced[0] !== "designer") {
-							r.push(`${_babiesReduced[0]}'s`);
+						if (babiesReduced[0] !== "your own" && babiesReduced[0] !== "designer") {
+							r.push(`${babiesReduced[0]}'s`);
 						} else {
-							r.push(_babiesReduced[0]);
+							r.push(babiesReduced[0]);
 						}
 					}
 					r.push(`babies into the world.`);
 				}
 
 
-				if (V.PC.pregSource > 0 && _curBabies > 0) {
-					let _pb = findFather(V.PC.pregSource);
-					if (_pb) {
+				if (V.PC.pregSource > 0 && curBabies > 0) {
+					let pb = findFather(V.PC.pregSource);
+					if (pb) {
 						if (V.arcologies[0].FSRestartDecoration === 100 && V.eugenicsFullControl !== 1) {
 							r.push(`Word spreads fast through your peers that you gave birth to`);
-							if (_curBabies > 1) {
+							if (curBabies > 1) {
 								r.push(`low class infants`);
 							} else {
 								r.push(`a low class child`);
@@ -980,11 +980,11 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							r.push(`<span class="red">utterly devastating your standing among the Elite.</span>`);
 							V.failedElite += 200;
 						} else if (V.arcologies[0].FSChattelReligionistLaw === 1) {
-							r.push(`Rumors spread that The Prophet gave birth to a slave's ${(_curBabies > 1) ? "children" : "child"}.`);
+							r.push(`Rumors spread that The Prophet gave birth to a slave's ${(curBabies > 1) ? "children" : "child"}.`);
 							if (V.arcologies[0].FSSupremacist !== "unset") {
-								if (_pb.race !== V.arcologies[0].FSSupremacistRace) {
+								if (pb.race !== V.arcologies[0].FSSupremacistRace) {
 									r.push(`Word is that your child`);
-									if (_curBabies > 1) {
+									if (curBabies > 1) {
 										r.push(`ren were`);
 									} else {
 										r.push(`was`);
@@ -994,14 +994,14 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 								}
 							}
 							if (V.arcologies[0].FSSubjugationist !== "unset") {
-								if (_pb.race === V.arcologies[0].FSSubjugationistRace) {
-									r.push(`In addition, The Prophet's womb bore ${V.arcologies[0].FSSubjugationistRace} ${(_curBabies > 1) ? "children" : "a child"}, surely a sign to <span class="red">reject ${V.arcologies[0].FSSubjugationistRace} subjugation.</span>`);
+								if (pb.race === V.arcologies[0].FSSubjugationistRace) {
+									r.push(`In addition, The Prophet's womb bore ${V.arcologies[0].FSSubjugationistRace} ${(curBabies > 1) ? "children" : "a child"}, surely a sign to <span class="red">reject ${V.arcologies[0].FSSubjugationistRace} subjugation.</span>`);
 									V.arcologies[0].FSSubjugationist -= 120;
 								}
 							}
 						} else {
 							r.push(`Rumors spread that your child`);
-							if (_curBabies > 1) {
+							if (curBabies > 1) {
 								r.push(`ren were`);
 							} else {
 								r.push(`was`);
@@ -1009,9 +1009,9 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 							r.push(`fathered by a slave, <span class="red">harming your lasting reputation.</span>`);
 							V.PC.degeneracy += 20;
 							if (V.arcologies[0].FSSupremacist !== "unset") {
-								if (_pb.race !== V.arcologies[0].FSSupremacistRace) {
+								if (pb.race !== V.arcologies[0].FSSupremacistRace) {
 									r.push(`Furthermore, word is that your child`);
-									if (_curBabies > 1) {
+									if (curBabies > 1) {
 										r.push(`ren were`);
 									} else {
 										r.push(`was`);
@@ -1021,8 +1021,8 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 								}
 							}
 							if (V.arcologies[0].FSSubjugationist !== "unset") {
-								if (_pb.race === V.arcologies[0].FSSubjugationistRace) {
-									r.push(`In addition, there is a nasty rumor that you gave birth to ${V.arcologies[0].FSSubjugationistRace} ${(_curBabies > 1) ? "children" : "a child"}, <span class="red">devastating your lasting reputation.</span>`);
+								if (pb.race === V.arcologies[0].FSSubjugationistRace) {
+									r.push(`In addition, there is a nasty rumor that you gave birth to ${V.arcologies[0].FSSubjugationistRace} ${(curBabies > 1) ? "children" : "a child"}, <span class="red">devastating your lasting reputation.</span>`);
 									V.PC.degeneracy += 50;
 								}
 							}
@@ -1031,19 +1031,19 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 				}
 
 				/* -------------------- Now curBabies counts live, birthed babies who haven't been placed in the incubator. */
-				_curBabies = birthed.length;
+				curBabies = birthed.length;
 
-				if (_curBabies > 0) {
+				if (curBabies > 0) {
 					App.Events.addParagraph(node, r);
 					r = [];
 					r.push(`Now you are faced with a decision of what to do with your`);
-					if (_pregTypeDecrecement > 0) {
+					if (pregTypeDecrecement > 0) {
 						r.push(`remaining`);
 					} else {
 						r.push(`new`);
 					}
-					r.push(`${(_curBabies > 1) ? "children" : "child"}. You're far too busy to keep`);
-					if (_curBabies > 1) {
+					r.push(`${(curBabies > 1) ? "children" : "child"}. You're far too busy to keep`);
+					if (curBabies > 1) {
 						r.push(`them`);
 					} else {
 						r.push(`it`);
@@ -1051,8 +1051,8 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 					r.push(`yourself, but you could <span class="orange">send them to a boarding school to be raised until they are of age to serve as your heir.</span> Other options include sending them to <span class="orange">become a slave at a slave orphanage,</span> sending them to <span class="orange">a citizen school,</span> to be brought up coequal with the arcology's other young people, or sending them to be <span class="orange">raised privately,</span> with expert care and tutoring.`);
 					if (V.arcologies[0].FSRepopulationFocus > 40) {
 						r.push(`Of course, there are also the <span class="orange">breeding schools,</span> where your`);
-						if (_curBabies === 1) {
-							if (_gender === "XX") {
+						if (curBabies === 1) {
+							if (gender === "XX") {
 								r.push(`daughter will be taught the joys of motherhood up until she is around`);
 								if (V.minimumSlaveAge > V.fertilityAge) {
 									r.push(`${V.minimumSlaveAge}`);
@@ -1064,7 +1064,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 								r.push(`son will be taught it is his duty to fuck every slavegirl he sees without a baby bump pregnant.`);
 							}
 						} else {
-							if (_gender === "XX") {
+							if (gender === "XX") {
 								r.push(`daughters will be taught the joys of motherhood up until they are around`);
 								if (V.minimumSlaveAge > V.fertilityAge) {
 									r.push(`${V.minimumSlaveAge}`);
@@ -1072,7 +1072,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 									r.push(`${V.fertilityAge}`);
 								}
 								r.push(`years old, when they will be impregnated for the first time.`);
-								if (_curBabies > 1) {
+								if (curBabies > 1) {
 									r.push(`They say multiples run in families, so your daughters should blossom into quite the fertile breeders.`);
 								}
 							} else {
@@ -1081,7 +1081,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 						}
 					}
 					if (V.policies.cash4Babies === 1) {
-						_seed = random(1, 10);
+						seed = random(1, 10);
 						r.push(`Alternatively, since it is <span class="orange">legal to sell slave babies,</span> your child should be worth quite a pretty ¤ at auction.`);
 					}
 					if (((V.eliteFail > 0 || V.eugenicsFullControl > 0) && V.PC.pregSource === -1) || V.PC.pregSource === -6) {
@@ -1108,7 +1108,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 						choices.push(new App.Events.Result(`Auction Them`, auction));
 					}
 					if (((V.eliteFail > 0 || V.eugenicsFullControl > 0) && V.PC.pregSource === -1) || V.PC.pregSource === -6) {
-						choices.push(new App.Events.Result(`Societal Elite`, elite));
+						choices.push(new App.Events.Result(`Societal Elite`, eliteRaise));
 					}
 					if (V.PC.pregSource === -9) {
 						choices.push(new App.Events.Result(`Futanari Sisters`, futa));
@@ -1123,7 +1123,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 					V.PC.preg = -2;
 				}
 
-				if (_wounded === 1) {
+				if (wounded === 1) {
 					r.push(`Things didn't quite go as planned, leaving you <span class="health.dec">weak and wounded.</span> You'll need a couple weeks to recover from the ordeal before you're back on your feet.`);
 					healthDamage(V.PC, 40);
 				}
@@ -1131,7 +1131,7 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 		}/* closes SE*/
 
 		/* belly sag is a thing now, USE IT! */
-		_badBirth = 0;
+		badBirth = 0;
 		WombFlush(V.PC);
 		if (V.PC.geneticQuirks.fertility + V.PC.geneticQuirks.hyperFertility >= 4) {
 			V.PC.pregWeek = -2;
@@ -1147,34 +1147,34 @@ App.Events.SEPlayerBirth = class SEPlayerBirth extends App.Events.BaseEvent {
 		}
 
 		function orphanage() {
-			V.slaveOrphanageTotal += _curBabies;
+			V.slaveOrphanageTotal += curBabies;
 			return `You have decided to send them to a slave orphanage to be raised to ${V.minimumSlaveAge} and sold. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.`;
 		}
 
 		function citizenSchool() {
-			V.citizenOrphanageTotal += _curBabies;
+			V.citizenOrphanageTotal += curBabies;
 			return "You have decided to send them to a citizen school to become a future citizen. Perhaps you'll even see them again, though you are unlikely to recognize them if you do.";
 		}
 
 		function privateSchool() {
-			V.privateOrphanageTotal += _curBabies;
+			V.privateOrphanageTotal += curBabies;
 			return `You have decided to send them to be privately raised. Perhaps you'll even see them again, though it's unlikely that there will be any connection between you. At least you'll know they've been properly reared.`;
 		}
 
 		function breeding() {
-			V.breederOrphanageTotal += _curBabies;
+			V.breederOrphanageTotal += curBabies;
 			return `You have decided to send them to be raised into a proper breeder. Perhaps you'll even see them again, though it's unlikely you'll recognize them with their reproduction focused body.`;
 		}
 
 		function auction() {
-			cashX((1000 * _seed * _curBabies), "babyTransfer");
-			return `You send the ${(_curBabies > 1) ? "children" : "child"} to be sold at auction amongst other prestigious slaves. The winning bid for your offspring came in at <span class="yellowgreen">${cashFormat(1000 * _seed * _curBabies)}.</span>"`;
+			cashX((1000 * seed * curBabies), "babyTransfer");
+			return `You send the ${(curBabies > 1) ? "children" : "child"} to be sold at auction amongst other prestigious slaves. The winning bid for your offspring came in at <span class="yellowgreen">${cashFormat(1000 * seed * curBabies)}.</span>"`;
 		}
 
-		function elite() {
+		function eliteRaise() {
 			r = [];
 			r.push(`You have decided to gift them to the Societal Elite to be raised as`);
-			if (_curBabies > 1) {
+			if (curBabies > 1) {
 				r.push(`proper members`);
 			} else {
 				r.push(`a proper member`);
diff --git a/src/events/scheduled/seRecruiterSuccess.js b/src/events/scheduled/seRecruiterSuccess.js
index 66c6219a216bba1b34c6556b1d119d466972d959..8e2e4654adb05c8009a63a839623b82bed0ebc3b 100644
--- a/src/events/scheduled/seRecruiterSuccess.js
+++ b/src/events/scheduled/seRecruiterSuccess.js
@@ -151,7 +151,7 @@ App.Events.SERecruiterSuccess = class SERecruiterSuccess extends App.Events.Base
 		}
 
 		const contractCost = 1000;
-		const _slaveCost = slaveCost(slave) - contractCost;
+		const cost = slaveCost(slave) - contractCost;
 		const {
 			He,
 			he, him, his
@@ -180,7 +180,7 @@ App.Events.SERecruiterSuccess = class SERecruiterSuccess extends App.Events.Base
 		const choices = [];
 		if (V.cash >= contractCost) {
 			choices.push(new App.Events.Result(`Enslave ${him}`, enslave, `This will cost ${cashFormat(contractCost)}`));
-			choices.push(new App.Events.Result(`Sell ${him} immediately`, sell, `This will bring in ${cashFormat(_slaveCost)}`));
+			choices.push(new App.Events.Result(`Sell ${him} immediately`, sell, `This will bring in ${cashFormat(cost)}`));
 		} else {
 			choices.push(new App.Events.Result(null, null, `You lack the necessary funds to enslave ${him}.`));
 			V.recruiterProgress = 7;
@@ -193,7 +193,7 @@ App.Events.SERecruiterSuccess = class SERecruiterSuccess extends App.Events.Base
 		}
 
 		function sell() {
-			cashX(_slaveCost, "slaveTransfer", S.Recruiter);
+			cashX(cost, "slaveTransfer", S.Recruiter);
 			return `${slave.slaveName} accepts being resold without much fuss. ${He}'s merely exchanged one unknown owner for another. For all ${he} knows ${his} new buyer will be less abusive than you would have been. ${He} would be less complacent if ${he} knew who ${his} buyers are; ${he}'ll be immured in an arcade within the hour.`;
 		}
 
diff --git a/src/events/scheduled/seTheSirenStrikesBack.js b/src/events/scheduled/seTheSirenStrikesBack.js
index 7892dc4536a71c38fef64664d05c751d4dfe7546..de613c14be073035cff39e0303822aab33bfc59a 100644
--- a/src/events/scheduled/seTheSirenStrikesBack.js
+++ b/src/events/scheduled/seTheSirenStrikesBack.js
@@ -5,6 +5,10 @@ App.Events.SETheSirenStrikesBack = class SETheSirenStrikesBack extends App.Event
 		];
 	}
 
+	castActors() {
+		return (this.actors.length > 0); // this event must be cast when queued
+	}
+
 	execute(node) {
 		let r = [];
 
diff --git a/src/events/scheduled/seWedding.js b/src/events/scheduled/seWedding.js
index 2d3799790d973b1590351a1991dec46d22c70b4a..a4a2a9c304a6f9d6cebe8e1c522d572e47579b91 100644
--- a/src/events/scheduled/seWedding.js
+++ b/src/events/scheduled/seWedding.js
@@ -1629,20 +1629,20 @@ App.Events.SEWedding = class SEWedding extends App.Events.BaseEvent {
 				() => {
 					const el = new DocumentFragment();
 					const r = [];
-					let _c = 0;
-					let _h = 0;
+					let c = 0;
+					let h = 0;
 					r.push(`You also proclaim your new slave ${wivesC} ${namesString} ${V.PC.slaveSurname}.`);
 					for (const slave of brides) {
-						_c += 1;
+						c += 1;
 						if (canHear(slave)) {
-							_h += 1;
+							h += 1;
 						}
 					}
-					r.push(`The new Mrs. ${V.PC.slaveSurname}${(_c > 1) ? `s` : ``}`);
-					if (_h > 0) {
-						r.push((_c === 1) ? `hears` : `hear`);
+					r.push(`The new Mrs. ${V.PC.slaveSurname}${(c > 1) ? `s` : ``}`);
+					if (h > 0) {
+						r.push((c === 1) ? `hears` : `hear`);
 					} else {
-						r.push((_c === 1) ? `understands` : `understand`);
+						r.push((c === 1) ? `understands` : `understand`);
 					}
 					r.push(`this, of course, and`);
 					const nameCheck = !solo && brides.every(b => b.slaveSurname !== V.PC.slaveSurname);
diff --git a/src/events/schools/resFailure.js b/src/events/schools/resFailure.js
index d8157ac29e59d370bea02e6cc2e48c0f8bb24f61..d105078b44fc29bb2c648df7f17fe5c25467c1d1 100644
--- a/src/events/schools/resFailure.js
+++ b/src/events/schools/resFailure.js
@@ -16,7 +16,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 		V.nextLink = "Scheduled Event";
 
 		const failedSchool = Array.from(App.Data.misc.schools.keys()).find(s => V[s].schoolPresent && V[s].schoolProsperity <= -10);
-		const _SCH = App.Data.misc.schools.get(failedSchool);
+		const SCH = App.Data.misc.schools.get(failedSchool);
 
 		repX(-200, "event");
 		V.arcologies[0].prosperity -= 2;
@@ -28,7 +28,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 		/** @type {App.Entity.SlaveState[]} */
 		const slaveArray = [];
 		if (failedSchool === "TSS") {
-			for (let _i = 0; _i < slavesToAdd-1; _i++) {
+			for (let i = 0; i < slavesToAdd-1; i++) {
 				const slave = GenerateNewSlave("XX", {ageOverridesPedoMode: 1});
 				slave.career = "a slave";
 				slave.butt = either(1, 2, 2, 3);
@@ -70,7 +70,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				slaveArray.push(slave);
 			}
 		} else if (failedSchool === "TUO") {
-			for (let _i = 0; _i < slavesToAdd; _i++) {
+			for (let i = 0; i < slavesToAdd; i++) {
 				const slave = GenerateNewSlave(null, {minAge: V.minimumSlaveAge, maxAge: V.fertilityAge, disableDisability: 1});
 				slave.origin = "$He was given to you by a failed branch of The Utopian Orphanage right after $his graduation.";
 				slave.career = "a slave";
@@ -102,7 +102,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				slaveArray.push(slave);
 			}
 		} else if (failedSchool === "TCR") {
-			for (let _i = 0; _i < slavesToAdd; _i++) {
+			for (let i = 0; i < slavesToAdd; i++) {
 				const slave = GenerateNewSlave("XX", {
 					minAge: V.fertilityAge+6, maxAge: 32, disableDisability: 1, ageOverridesPedoMode: 1
 				});
@@ -135,7 +135,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				slave.pubicHStyle = "waxed";
 				slave.underArmHStyle = "waxed";
 				slave.heels = 1;
-				applyMindbroken(slave);
+				applyMindbroken(slave, either(-100, -100, -100, -96, -80, -70, -50));
 				slave.hStyle = "neat";
 				slave.collar = "leather with cowbell";
 				slave.brand["right thigh"] = "the logo of the Cattle Ranch";
@@ -152,7 +152,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				slaveArray.push(slave);
 			}
 		} else if (failedSchool === "GRI") {
-			for (let _i = 0; _i < slavesToAdd; _i++) {
+			for (let i = 0; i < slavesToAdd; i++) {
 				const slave = GenerateNewSlave("XX", {disableDisability: 1});
 				slave.origin = "$He was given to you by a failed subsidiary lab of the Growth Research Institute right after $his use as a test subject ended.";
 				slave.career = "a slave";
@@ -198,7 +198,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				slaveArray.push(slave);
 			}
 		} else if (failedSchool === "SCP") {
-			for (let _i = 0; _i < slavesToAdd; _i++) {
+			for (let i = 0; i < slavesToAdd; i++) {
 				const slave = GenerateNewSlave("XX", {disableDisability: 1});
 				slave.origin = "$He was given to you by a failed branch campus of St. Claver Preparatory after $he served as a plastic surgeon's passing final exam.";
 				slave.chem = 20;
@@ -258,7 +258,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				slaveArray.push(slave);
 			}
 		} else if (failedSchool === "LDE") {
-			for (let _i = 0; _i < slavesToAdd; _i++) {
+			for (let i = 0; i < slavesToAdd; i++) {
 				const slave = GenerateNewSlave("XY", {disableDisability: 1});
 				slave.origin = "$He was given to you by a failed branch campus of the innovative École des Enculées right after $his graduation.";
 				slave.career = "a slave";
@@ -314,7 +314,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				slaveArray.push(slave);
 			}
 		} else if (failedSchool === "NUL") {
-			for (let _i = 0; _i < slavesToAdd; _i++) {
+			for (let i = 0; i < slavesToAdd; i++) {
 				const slave = GenerateNewSlave(null, {minAge: 16, maxAge: 24, disableDisability: 1});
 				slave.origin = "$He was given to you by a failed branch campus of Nueva Universidad de Libertad right after $his graduation.";
 				slave.career = "a slave";
@@ -346,7 +346,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				slaveArray.push(slave);
 			}
 		} else if (failedSchool === "TGA") {
-			for (let _i = 0; _i < slavesToAdd; _i++) {
+			for (let i = 0; i < slavesToAdd; i++) {
 				const slave = GenerateNewSlave("XY", {disableDisability: 1});
 				slave.origin = "$He was given to you by a failed branch campus of the intense Gymnasium-Academy right after $his majority.";
 				slave.career = "a slave";
@@ -392,7 +392,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				slaveArray.push(slave);
 			}
 		} else if (failedSchool === "HA") {
-			for (let _i = 0; _i < slavesToAdd; _i++) {
+			for (let i = 0; i < slavesToAdd; i++) {
 				const slave = GenerateNewSlave("XX", {disableDisability: 1});
 				slave.origin = "$He was given to you by a failed branch campus of the Hippolyta Academy right after $his majority.";
 				slave.career = "a slave";
@@ -420,8 +420,8 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				SetBellySize(slave);
 				setHealth(slave, jsRandom(60, 80), 0, 0, 0);
 				slave.muscles = random(40, 60);
-				const _minHeight = random(170, 180);
-				slave.height = Math.clamp(Height.random(slave, {limitMult: [2, 15], spread: .1}), _minHeight, 274);
+				const minHeight = random(170, 180);
+				slave.height = Math.clamp(Height.random(slave, {limitMult: [2, 15], spread: .1}), minHeight, 274);
 				slave.waist = -15;
 				slave.shoulders = 0;
 				slave.skill.vaginal = 10;
@@ -440,7 +440,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				slaveArray.push(slave);
 			}
 		} else if (failedSchool === "TFS") {
-			for (let _i = 0; _i < slavesToAdd-1; _i++) {
+			for (let i = 0; i < slavesToAdd-1; i++) {
 				const slaveGenRange = random(1, 4);
 				let slave;
 				if (V.TFS.schoolUpgrade === 3 && V.TFS.compromiseWeek+15 <= V.week) {
@@ -708,9 +708,9 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 		const {
 			He, His,
 			he, his, him, himself, girl
-		} =getPronouns(slaveArray[0]);
-		const _he = (failedSchool !== "NUL" ? "he" : "they");
-		const _He = capFirstChar(_he);
+		} = getPronouns(slaveArray[0]);
+		const he2 = (failedSchool !== "NUL" ? "he" : "they");
+		const He2 = capFirstChar(he2);
 		const {title: Master} = getEnunciation(slaveArray[0]);
 
 		if (failedSchool === "TFS") {
@@ -735,29 +735,29 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 				new App.Events.Result(`Rape ${him}`, TFSRape, `This will cost ${cashFormat(10000)}`)
 			]);
 		} else {
-			r.push(`You receive a personal call from a senior representative of ${_SCH.title} as you've been expecting since their second missed rent payment. "I apologize," ${_he} says with some embarrassment, "but it seems our expansion into your arcology was a mistake. It's strange — the business climate seemed excellent, and other corporations are doing well."`);
-			r.push(`${_He} sighs "Nevertheless, nothing ever seemed to go as planned. We'll be shutting our ${_SCH.branchName} down immediately. In fact, it should be shut down within the hour.`);
+			r.push(`You receive a personal call from a senior representative of ${SCH.title} as you've been expecting since their second missed rent payment. "I apologize," ${he2} says with some embarrassment, "but it seems our expansion into your arcology was a mistake. It's strange — the business climate seemed excellent, and other corporations are doing well."`);
+			r.push(`${He2} sighs "Nevertheless, nothing ever seemed to go as planned. We'll be shutting our ${SCH.branchName} down immediately. In fact, it should be shut down within the hour.`);
 			if (failedSchool === "TCR") {
-				r.push(`However, we lack the funds to remove some of our finest ${_SCH.slaveNoun} and since we still owe you a little... We'd like to you to have them; we'll even have them delivered to your penthouse with the last of our credits."`);
+				r.push(`However, we lack the funds to remove some of our finest ${SCH.slaveNoun} and since we still owe you a little... We'd like to you to have them; we'll even have them delivered to your penthouse with the last of our credits."`);
 			} else {
-				r.push(`I regret to add," ${_he} says nervously, "that we're experiencing continued difficulty finding the liquidity to pay what we owe you.`);
+				r.push(`I regret to add," ${he2} says nervously, "that we're experiencing continued difficulty finding the liquidity to pay what we owe you.`);
 				if (failedSchool === "GRI") {
-					r.push(`The lab we're closing has five solid ${_SCH.slaveNoun}.`);
+					r.push(`The lab we're closing has five solid ${SCH.slaveNoun}.`);
 				} else {
-					r.push(`The branch campus we're closing has five recent ${_SCH.slaveNoun}.`);
+					r.push(`The branch campus we're closing has five recent ${SCH.slaveNoun}.`);
 				}
 				r.push(`We'd like to transfer them to you in lieu of payment."`);
-				r.push(`${_He} hurriedly ends the call.`);
+				r.push(`${He2} hurriedly ends the call.`);
 			}
 			App.Events.addParagraph(node, r);
 			r = [];
 		}
 
-		r.push(`The failure of a prominent organization within your arcology has <span class="red">affected your reputation</span> and <span class="red">your arcology's prosperity</span> slightly, but you've come out a long way ahead. You can acquire these excellent ${_SCH.slaveNoun} for a pitiful fraction of their fair price.`);
+		r.push(`The failure of a prominent organization within your arcology has <span class="red">affected your reputation</span> and <span class="red">your arcology's prosperity</span> slightly, but you've come out a long way ahead. You can acquire these excellent ${SCH.slaveNoun} for a pitiful fraction of their fair price.`);
 		App.Events.addParagraph(node, r);
 
 		App.Events.addResponses(node, [
-			new App.Events.Result(`Enslave the ${_SCH.slaveNoun} for no cost`, enslave),
+			new App.Events.Result(`Enslave the ${SCH.slaveNoun} for no cost`, enslave),
 			new App.Events.Result(`Sell your prizes immediately`, sell)
 		]);
 
@@ -768,7 +768,7 @@ App.Events.RESFailure = class RESFailure extends App.Events.BaseEvent {
 					V.REFutaSisterCheckinIDs.push(slave.ID);
 				}
 			}
-			return `${capFirstChar(_SCH.slaveNoun)} acquired.`;
+			return `${capFirstChar(SCH.slaveNoun)} acquired.`;
 		}
 
 		function sell() {
diff --git a/src/facilities/ads.js b/src/facilities/ads.js
index 6312c99e3d6900ade0f4984fd19be72be68064c3..f120aaabfa0b8f05417be78dda40f506560ac563 100644
--- a/src/facilities/ads.js
+++ b/src/facilities/ads.js
@@ -159,7 +159,7 @@ App.Ads.getMatchedCategoryCount = function(slave, facility) {
 	return matchedCategories;
 };
 
-/** Manages the ads for a facility. Use example: <<set _adMgr = new App.Ads.AdManager("brothel")>> */
+/** Manages the ads for a facility. Use example: adMgr = new App.Ads.AdManager("brothel") */
 App.Ads.AdManager = class {
 	constructor(facility) {
 		this.varPrefix = `${facility}Ads`;
diff --git a/src/facilities/armory/BGSelect.js b/src/facilities/armory/BGSelect.js
index 6cf9ca64096a92726a6286549959b7c5211eb78d..4f8e58c763e182a878b635dda80d0e15fd88b139 100644
--- a/src/facilities/armory/BGSelect.js
+++ b/src/facilities/armory/BGSelect.js
@@ -11,7 +11,7 @@ App.Facilities.BGSelect = function() {
 		},
 		[], "Main"
 		));
-		
+
 		div.append(App.UI.DOM.makeCheckbox("bodyguardTrains"), " Can train potential successors.");
 		f.append(div);
 	} else {
diff --git a/src/facilities/bodyModification/bodyModification.js b/src/facilities/bodyModification/bodyModification.js
index 673b6b1a184a1a46890ff5aa091cb05b5e59c868..6df116ffc667083ecee42499b19c174f1802478c 100644
--- a/src/facilities/bodyModification/bodyModification.js
+++ b/src/facilities/bodyModification/bodyModification.js
@@ -402,8 +402,9 @@ App.UI.bodyModification = function(slave, cheat = false) {
 		if (slave.anusTat === 0) {
 			tattooChoiceNames.add("bleached");
 		}
+		const sortedTattooChoiceNames = Array.from(tattooChoiceNames).sort((a, b) => a > b ? 1 : -1);
 		let linkArray = [];
-		for (const style of tattooChoiceNames) {
+		for (const style of sortedTattooChoiceNames) {
 			if (tattooChoice === style) {
 				linkArray.push(App.UI.DOM.disabledLink(capFirstChar(style), ["Currently selected"]));
 			} else {
@@ -859,15 +860,15 @@ App.UI.bodyModification = function(slave, cheat = false) {
 		let r = [];
 		const bodyPartData = App.Data.Slave.body.get(V.scarTarget.local);
 
-		for (const _scarName in slave.scar) {
+		for (const scarName in slave.scar) {
 			const scarDiv = document.createElement("div");
-			scarDiv.append(`${His} ${_scarName} is marked with ${App.Desc.expandScarString(slave, _scarName)}: `);
+			scarDiv.append(`${His} ${scarName} is marked with ${App.Desc.expandScarString(slave, scarName)}: `);
 			scarDiv.append(
 				App.UI.DOM.link(
 					"Remove Scar",
 					() => {
 						scarApplied = false;
-						delete slave.scar[_scarName];
+						delete slave.scar[scarName];
 						billSurgery();
 						degradation -= 10;
 						refresh();
@@ -894,8 +895,8 @@ App.UI.bodyModification = function(slave, cheat = false) {
 					r.push(`${He} already has ${V.scarDesign.local} scars on ${his} ${V.scarTarget.local}. You can make it worse.`);
 				} else {
 					// check how much scarring is on this part
-					const _scarTotalValue = (Object.values(slave.scar[V.scarTarget.local])).reduce((a, b) => a + b, 0);
-					if (_scarTotalValue) {
+					const scarTotalValue = (Object.values(slave.scar[V.scarTarget.local])).reduce((a, b) => a + b, 0);
+					if (scarTotalValue) {
 						r.push(`That would be a new kind of scar to add to the growing collection on ${his} ${V.scarTarget.local}. Life can always be worse for a slave.`);
 					}
 				}
@@ -904,30 +905,30 @@ App.UI.bodyModification = function(slave, cheat = false) {
 				App.UI.DOM.link(
 					"Scar",
 					() => {
-						let _scarArray;
+						let scarArray;
 						if (V.scarTarget.local === "entire body" && V.scarDesign.local.includes("whip")) {
 							// Special case for whipping scene, produces two kinds of scars
 							App.Medicine.Modification.addScourged(slave);
 						} else {
 							// Normal entire body scarring
 							if (V.scarTarget.local === "entire body") {
-								_scarArray = ["left breast", "right breast", "back", "lower back", "left buttock", "right buttock"];
+								scarArray = ["left breast", "right breast", "back", "lower back", "left buttock", "right buttock"];
 								if (getLeftArmID(slave) === 0) {
-									_scarArray.push("left upper arm");
+									scarArray.push("left upper arm");
 								}
 								if (getRightArmID(slave) === 0) {
-									_scarArray.push("right upper arm");
+									scarArray.push("right upper arm");
 								}
 								if (getLeftLegID(slave) === 0) {
-									_scarArray.push("left thigh");
+									scarArray.push("left thigh");
 								}
 								if (getRightLegID(slave) === 0) {
-									_scarArray.push("right thigh");
+									scarArray.push("right thigh");
 								}
 							} else { // Single scar
-								_scarArray = [V.scarTarget.local];
+								scarArray = [V.scarTarget.local];
 							}
-							for (const scar of _scarArray) {
+							for (const scar of scarArray) {
 								App.Medicine.Modification.addScar(slave, scar, V.scarDesign.local);
 								degradation += 10;
 							}
@@ -1125,8 +1126,9 @@ App.UI.brandSelect = function(category, slave, cheat = false) {
 
 	function symbolOptions(brandList) {
 		const list = App.Medicine.Modification.Brands[brandList];
-		const array = [];
-		for (const brand in list) {
+		const sortedKeys = Object.keys(list).sort((a, b) => list[a].displayName > list[b].displayName ? 1 : -1);
+		const linkArray = [];
+		for (const brand of sortedKeys) {
 			const frag = new DocumentFragment();
 			if (!cheat && list[brand].hasOwnProperty("requirements")) {
 				if (!isOfficial && !list[brand].requirements(slave)) {
@@ -1145,9 +1147,9 @@ App.UI.brandSelect = function(category, slave, cheat = false) {
 					}
 				)
 			);
-			array.push(frag);
+			linkArray.push(frag);
 		}
-		return App.UI.DOM.generateLinksStrip(array);
+		return App.UI.DOM.generateLinksStrip(linkArray);
 	}
 
 	function check(brand) {
diff --git a/src/facilities/brothel/brothel.js b/src/facilities/brothel/brothel.js
index 8606ad827531cfdfd965aa6acca96cb5591500ec..5cd3e2d0567fa08e90b70a3068f0c50b01e3b84c 100644
--- a/src/facilities/brothel/brothel.js
+++ b/src/facilities/brothel/brothel.js
@@ -111,11 +111,11 @@ App.Facilities.Brothel.brothel = class Brothel extends App.Facilities.Facility {
 						: V.brothelAdsXX
 							? `sucking cock and being assfucked while their dicks flop around.`
 							: `sucking dick and taking anal, and the ones that have pussies are being fucked there, too.`} The ads are shown on media across ${V.arcologies[0].name}. ${V.brothelAdsXX === 1 && V.brothelAdsImplanted === 1 && V.brothelAdsStacked === 1
-					? `As a result, ${V.brothelName} is known as the place to go if you want to rent a${V.brothelAdsPreg ? `pregnant` : ``} bimbo's pussy.`
+					? `As a result, ${V.brothelName} is known as the place to go if you want to rent a${V.brothelAdsPreg ? ` pregnant` : ``} bimbo's pussy.`
 					: V.brothelAdsXX === 1 && V.brothelAdsOld === 1
-						? `As a result, ${V.brothelName} is known as the place to go if you want to rent a${V.brothelAdsPreg ? `pregnant` : ``} MILF's tits.`
+						? `As a result, ${V.brothelName} is known as the place to go if you want to rent a${V.brothelAdsPreg ? ` pregnant` : ``} MILF's tits.`
 						: V.brothelAdsXX === 1 && V.brothelAdsOld === -3
-							? `As a result, ${V.brothelName} is known as the place to go if you want to rent${V.brothelAdsPreg ? ` a pregnant` : ``}${V.brothelAdsStacked ? V.brothelAdsPreg !== 1 ? `an` : `` : `oppai`} loli.`
+							? `As a result, ${V.brothelName} is known as the place to go if you want to rent${V.brothelAdsPreg ? ` a pregnant` : ``}${V.brothelAdsStacked ? V.brothelAdsPreg !== 1 ? ` an` : `` : `oppai`} loli.`
 							: V.brothelAdsXX === 1 && V.brothelAdsPreg === 1
 								? `As a result, ${V.brothelName} is known as the place to go if you want to pound some pregnant pussy.`
 								: V.brothelAdsXX === -1 && V.brothelAdsStacked === 1
diff --git a/src/facilities/brothel/brothelAds.js b/src/facilities/brothel/brothelAds.js
index ffe8b39335fdcdcf86487c635d7e7c0b607d1897..1be152743ce848b53129df7f3b270cffe3aa1287 100644
--- a/src/facilities/brothel/brothelAds.js
+++ b/src/facilities/brothel/brothelAds.js
@@ -174,15 +174,15 @@ App.Facilities.Brothel.ads = function() {
 
 	function spending() {
 		const div = App.UI.DOM.makeElement("div", null, ['margin-bottom']);
-		const text = [];
+		let text = [];
 		const links = [];
 
 		if (V.brothelAdsSpending >= 5000) {
-			text.push(`Advertisements based on these scenes run constantly in media across the arcology, and there's an active merchandising campaign underway to promote your whores.`);
+			text.push(`Advertisements based on these scenes run constantly in media across ${V.arcologies[0].name}, and there's an active merchandising campaign underway to promote your whores.`);
 		} else if (V.brothelAdsSpending >= 4000) {
-			text.push(`Advertisements based on these scenes run constantly in media across the arcology.`);
+			text.push(`Advertisements based on these scenes run constantly in media across ${V.arcologies[0].name}.`);
 		} else if (V.brothelAdsSpending >= 3000) {
-			text.push(`Advertisements based on these scenes are run in media across the arcology.`);
+			text.push(`Advertisements based on these scenes are run in media across ${V.arcologies[0].name}.`);
 		} else if (V.brothelAdsSpending >= 2000) {
 			text.push(`Advertisements based on these scenes run regularly in arcology media.`);
 		} else if (V.brothelAdsSpending >= 1000) {
@@ -190,8 +190,10 @@ App.Facilities.Brothel.ads = function() {
 		} else {
 			text.push(`${V.arcologies[0].name} has a robust internal media that could be used to bring customers into the brothel.`);
 		}
+		App.Events.addNode(div, text, "p", "scene-intro");
 
-		text.push(`You are spending ${cashFormatColor(V.brothelAdsSpending)} each week to advertise ${V.brothelName}.`);
+		text = [];
+		text.push(`You are spending ${cashFormatColor(V.brothelAdsSpending, true)} each week to advertise ${V.brothelName}.`);
 
 		if (V.lastWeeksCashIncome.brothelAds > 0) {
 			text.push(`Last week's ads increased profits by ${cashFormatColor(V.lastWeeksCashIncome.brothelAds)}${App.Entity.facilities.brothel.hostedSlaves > 1 ? ` and increased business for your whores` : ``}, and cost ${cashFormatColor(V.lastWeeksCashExpenses.brothelAds)}.`);
@@ -202,7 +204,6 @@ App.Facilities.Brothel.ads = function() {
 		if (V.brothelAdsSpending >= 1000) {
 			links.push(App.UI.DOM.link(`Decrease`, () => {
 				V.brothelAdsSpending -= 1000;
-
 				App.UI.reload();
 			}));
 		} else {
@@ -211,7 +212,6 @@ App.Facilities.Brothel.ads = function() {
 		if (V.brothelAdsSpending < 5000) {
 			links.push(App.UI.DOM.link(`Increase`, () => {
 				V.brothelAdsSpending += 1000;
-
 				App.UI.reload();
 			}));
 		} else {
diff --git a/src/facilities/club/club.js b/src/facilities/club/club.js
index c05c8034aaf936b5ec5218c623b690da90d8bd30..356fc76f5ef67554f676e227065de533ea5afe78 100644
--- a/src/facilities/club/club.js
+++ b/src/facilities/club/club.js
@@ -38,7 +38,7 @@ App.Facilities.Club.club = class Club extends App.Facilities.Facility {
 		}
 
 		if (V.clubAdsSpending > 0) {
-			text.push(`Screens outside the entrance are showing softcore music videos to advertise _clubNameCaps.`);
+			text.push(`Screens outside the entrance are showing softcore music videos to advertise ${V.clubName}.`);
 
 			if (V.clubAdsOld === 1) {
 				text.push(`The featured strippers are all MILFs.`);
diff --git a/src/facilities/club/clubAdvertisement.js b/src/facilities/club/clubAdvertisement.js
index 429ae6fa901c9a37a0ebd382146317a8677230bc..a0646b53b2c297bf2ef11ef511525b841d18ff19 100644
--- a/src/facilities/club/clubAdvertisement.js
+++ b/src/facilities/club/clubAdvertisement.js
@@ -167,29 +167,28 @@ App.Facilities.Club.ads = function() {
 	}
 	App.Events.addNode(node, r, "p", "scene-intro");
 
-	App.UI.DOM.appendNewElement("div", node, `You are spending ${cashFormatColor(forceNeg(V.clubAdsSpending))} each week to advertise ${V.clubName}.`);
+	App.Events.addNode(node, [`You are spending ${cashFormatColor(V.clubAdsSpending, true)} each week to advertise ${V.clubName}.`]);
 
 	const linkArray = [];
-	if (V.clubAdsSpending > 900) {
-		linkArray.push(App.UI.DOM.link(
-			"Decrease",
-			() => {
-				V.clubAdsSpending -= 1000;
-				App.UI.reload();
-			}
-		));
+	if (V.clubAdsSpending >= 1000) {
+		linkArray.push(App.UI.DOM.link(`Decrease`, () => {
+			V.clubAdsSpending -= 1000;
+			App.UI.reload();
+		}));
+	} else {
+		linkArray.push(App.UI.DOM.disabledLink(`Decrease`, [`Minimum reached`]));
 	}
 	if (V.clubAdsSpending < 5000) {
-		linkArray.push(App.UI.DOM.link(
-			"Increase",
-			() => {
-				V.clubAdsSpending += 1000;
-				App.UI.reload();
-			}
-		));
+		linkArray.push(App.UI.DOM.link(`Increase`, () => {
+			V.clubAdsSpending += 1000;
+			App.UI.reload();
+		}));
+	} else {
+		linkArray.push(App.UI.DOM.disabledLink(`Increase`, [`Maximum reached`]));
 	}
 
-	App.UI.DOM.appendNewElement("div", node, App.UI.DOM.generateLinksStrip(linkArray));
+
+	App.UI.DOM.appendNewElement("div", node, App.UI.DOM.generateLinksStrip(linkArray), ['indent']);
 
 	App.UI.DOM.appendNewElement("h2", node, `Design ${clubNameCaps} Ad Campaign`);
 
diff --git a/src/facilities/dairy/freeRangeDairyAssignmentScene.js b/src/facilities/dairy/freeRangeDairyAssignmentScene.js
index 21e57308ec483ecea14cf0b98a8125c849381324..4e8a41577862b1d8e939530121e010134daeb224 100644
--- a/src/facilities/dairy/freeRangeDairyAssignmentScene.js
+++ b/src/facilities/dairy/freeRangeDairyAssignmentScene.js
@@ -38,7 +38,7 @@ App.Facilities.Dairy.freeRangeAssignmentScene = function(slave) {
 			aroused = true;
 			r.push(`${He} cannot help but to feel aroused at the view of all those udders being thoroughly milked.`);
 			if (slave.sexualFlaw === "breast growth") {
-				r.push(`${He} is already fantasizing of having ${his} breasts expanded to ridiculous proportions${(slave.lactation > 0) ? `so ${he} can produce even more milk` : ""}.`);
+				r.push(`${He} is already fantasizing of having ${his} breasts expanded to ridiculous proportions${(slave.lactation > 0) ? ` so ${he} can produce even more milk` : ""}.`);
 			}
 		} else if (slave.fetish === "pregnancy" && V.dairyPregSetting === 1) {
 			aroused = true;
diff --git a/src/facilities/dairy/industrialDairyAssignmentScene.js b/src/facilities/dairy/industrialDairyAssignmentScene.js
index d50fed9fd816b4499338a790403c3e76d30d03d9..7af753cbc09e66b6c32b27d184186af1348ae73b 100644
--- a/src/facilities/dairy/industrialDairyAssignmentScene.js
+++ b/src/facilities/dairy/industrialDairyAssignmentScene.js
@@ -1,5 +1,4 @@
 App.Facilities.Dairy.industrialAssignmentScene = function(slave) {
-// :: Industrial Dairy Assignment Scene [nobr]
 	const node = new DocumentFragment();
 
 	V.nextButton = "Continue";
@@ -16,7 +15,7 @@ App.Facilities.Dairy.industrialAssignmentScene = function(slave) {
 	App.Events.drawEventArt(node, slave);
 
 
-	r.push(`When ${slave.slaveName}reports to the dairy, it's to the`);
+	r.push(`When ${slave.slaveName} reports to the dairy, it's to the`);
 	if (canSee(slave)) {
 		r.push(`sight of an unoccupied milking machine waiting for ${him},`);
 	} else {
diff --git a/src/facilities/farmyard/shows/saFarmyardShows.js b/src/facilities/farmyard/shows/saFarmyardShows.js
index e264ddd7baf74266905bee2f709aca8b65303efc..0c98ea20140204b511fc9147f24ce70084477332 100644
--- a/src/facilities/farmyard/shows/saFarmyardShows.js
+++ b/src/facilities/farmyard/shows/saFarmyardShows.js
@@ -8,8 +8,8 @@ App.Facilities.Farmyard.putOnShows = function(slave) {
 	const {he, him, his, hers, He, His} = getPronouns(slave);
 	const incomeStats = getSlaveStatisticData(slave, V.facility.farmyard);
 	const arcology = V.arcologies[0];
-	const _beautiful = beautiful(slave);
-	const _pretty = pretty(slave);
+	const beautyString = beautiful(slave);
+	const prettyString = pretty(slave);
 
 	const heavyMods = SlaveStatsChecker.modScore(slave).total > 20;
 
@@ -288,9 +288,9 @@ App.Facilities.Farmyard.putOnShows = function(slave) {
 	// TODO: add checks for family and relationships
 
 	if (slave.face > 40) {
-		r.push(`${He} is so ${_beautiful} that ${his} audience is willing to pay more to watch ${him} put on shows.`);
+		r.push(`${He} is so ${beautyString} that ${his} audience is willing to pay more to watch ${him} put on shows.`);
 	} else if (slave.face > 10) {
-		r.push(`${He} is so ${_pretty} that ${his} audience is willing to pay more to watch ${him} put on shows.`);
+		r.push(`${He} is so ${prettyString} that ${his} audience is willing to pay more to watch ${him} put on shows.`);
 	} else if (slave.face < -10) {
 		r.push(`${His} audience isn't willing to pay as much because of how unattractive ${his} face is.`);
 	} else if (slave.face < -40) {
diff --git a/src/facilities/geneLab.js b/src/facilities/geneLab.js
index 6b4260d5557b3eff7773fa12640cfde4b5dea5b0..bb9e9b908ef614b401635ee631d05142c520253c 100644
--- a/src/facilities/geneLab.js
+++ b/src/facilities/geneLab.js
@@ -1,6 +1,6 @@
 App.UI.geneLab = function() {
 	const node = new DocumentFragment();
-	const _PCSkillCheck = Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier);
+	const PCSkillCheck = Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier);
 
 	App.UI.DOM.appendNewElement("h2", node, `The Gene Lab`);
 
@@ -47,7 +47,7 @@ App.UI.geneLab = function() {
 		}
 		if (V.geneticMappingUpgrade >= 2) {
 			if (V.geneticFlawLibrary !== 1) {
-				const anomaliesCost = 100000 * _PCSkillCheck;
+				const anomaliesCost = 100000 * PCSkillCheck;
 				App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link(
 					"Purchase designs for inducing genetic anomalies",
 					() => {
@@ -63,7 +63,7 @@ App.UI.geneLab = function() {
 		}
 		if (V.seeCats === 1) {
 			if (V.geneticMappingUpgrade >= 2 && V.projectN.status === 0) {
-				const catCost = 150000 * _PCSkillCheck;
+				const catCost = 150000 * PCSkillCheck;
 				App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link(
 					"Hire a team of renowned bioengineers and geneticists to splice the human genome with cat DNA and fulfill the destiny of mankind - creating catgirls",
 					() => {
@@ -92,7 +92,7 @@ App.UI.geneLab = function() {
 			if (V.projectN.status === 6) {
 				App.UI.DOM.appendNewElement("div", node, `Project N is complete. Dr. Nieskowitz and his team are currently monitoring various functions of the genetic laboratory, though you could set them to work engineering another catgirl if you give them the funding to do so. It will take approximately a month to create another catgirl. The genetic engineering tube is currently empty.`);
 			}
-			const engineerCatCost = 20000 * _PCSkillCheck;
+			const engineerCatCost = 20000 * PCSkillCheck;
 			if (V.projectN.status === 6 && V.seeCats === 1) {
 				App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link(
 					"Engineer me a Catgirl",
@@ -145,10 +145,10 @@ App.UI.geneLab = function() {
 
 	App.UI.DOM.appendNewElement("h2", node, `Genetic Harvesting`);
 
-	const humanCloning = 100000 * _PCSkillCheck;
-	if (V.cloningSystem !== 1 && V.rep <= 18000 * _PCSkillCheck) {
+	const humanCloning = 100000 * PCSkillCheck;
+	if (V.cloningSystem !== 1 && V.rep <= 18000 * PCSkillCheck) {
 		App.UI.DOM.appendNewElement("div", node, `You lack the reputation needed to access methods for human cloning`, "note");
-	} else if ((V.cloningSystem !== 1) && (V.rep > 18000 * _PCSkillCheck)) {
+	} else if ((V.cloningSystem !== 1) && (V.rep > 18000 * PCSkillCheck)) {
 		if (V.organFarmUpgrade === 0) {
 			App.UI.DOM.appendNewElement("div", node, `An organ farm is needed to grow the blank embryo to serve as a clone base`, "note");
 		} else {
diff --git a/src/facilities/nursery/utils/nurseryUtils.js b/src/facilities/nursery/utils/nurseryUtils.js
index d6e5b13bc1af82a796709c713ff3a89d7252a808..616f13542dd39c5faecb42931acff435d3d1157c 100644
--- a/src/facilities/nursery/utils/nurseryUtils.js
+++ b/src/facilities/nursery/utils/nurseryUtils.js
@@ -508,7 +508,7 @@ App.Facilities.Nursery.nameChild = function nameChild(child) {
 		const {He2, he2, his2} = getPronouns(mother).appendSuffix('2');
 		if (mother.ID === V.ConcubineID) {
 			r += `<br>
-			<<link "Permit your Concubine to name _his2 daughter">>
+			<<link "Permit your Concubine to name ${his2} daughter">>
 				<<replace "#naming">>`;
 			parentNames(mother, child);
 			child.birthName = child.slaveName;
diff --git a/src/facilities/organFarmPassage.js b/src/facilities/organFarmPassage.js
index 071370e6aa4afc6da6443155ba7b66b6feeade10..b7a3c5d773c6d7977c2f098b0fde808b9b8b8c01 100644
--- a/src/facilities/organFarmPassage.js
+++ b/src/facilities/organFarmPassage.js
@@ -1,6 +1,6 @@
 App.UI.organFarm = function() {
 	const node = new DocumentFragment();
-	const _PCSkillCheck = Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier);
+	const PCSkillCheck = Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier);
 
 	App.UI.DOM.appendNewElement("h1", node, "The Organ Farm");
 
@@ -12,7 +12,7 @@ App.UI.organFarm = function() {
 		App.UI.DOM.appendNewElement("div", node, `The organ farm is running smoothly. It can grow tailored organs for implantation in slaves. It can easily produce altered variants should you obtain the data necessary to create them.`, "scene-intro");
 	}
 
-	if (V.organFarmUpgrade < 3 && V.rep <= 10000 * _PCSkillCheck) {
+	if (V.organFarmUpgrade < 3 && V.rep <= 10000 * PCSkillCheck) {
 		App.UI.DOM.appendNewElement("div", node, "You lack the reputation to access experimental organ farm parts.", "note");
 	} else if (V.dispensary === 0 && V.organFarmUpgrade === 2) {
 		App.UI.DOM.appendNewElement("div", node, "An upgraded pharmaceutical fabricator is required by the perfected organ farm.", "note");
@@ -22,26 +22,26 @@ App.UI.organFarm = function() {
 		App.UI.DOM.appendNewElement("div", node, "The pharmaceutical fabricator must be upgraded in order to produce the drugs required by the perfected organ farm.", "note");
 	} else if (V.organs.length > 0) {
 		App.UI.DOM.appendNewElement("div", node, "The organ farm cannot be upgraded while it is use.", "note");
-	} else if (V.rep > 10000 * _PCSkillCheck) {
+	} else if (V.rep > 10000 * PCSkillCheck) {
 		if (V.organFarmUpgrade === 2) {
 			App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link(
 				"Upgrade the organ farm to the cutting edge model",
 				() => {
-					cashX(forceNeg(150000 * _PCSkillCheck), "capEx");
+					cashX(forceNeg(150000 * PCSkillCheck), "capEx");
 					V.organFarmUpgrade = 3;
 					App.UI.reload();
 				}, [], "",
-				`Costs ${cashFormat(150000 * _PCSkillCheck)}. Will allow the organ farm to rapidly grow organs without risk to the implantee's health.`
+				`Costs ${cashFormat(150000 * PCSkillCheck)}. Will allow the organ farm to rapidly grow organs without risk to the implantee's health.`
 			));
 		} else if (V.organFarmUpgrade === 1) {
 			App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link(
 				"Upgrade the organ farm with an experimental growth accelerator",
 				() => {
-					cashX(forceNeg(75000 * _PCSkillCheck), "capEx");
+					cashX(forceNeg(75000 * PCSkillCheck), "capEx");
 					V.organFarmUpgrade = 2;
 					App.UI.reload();
 				}, [], "",
-				`Costs ${cashFormat(75000 * _PCSkillCheck)}. Will allow the organ farm to quickly grow organs. Implanted organs may cause health issues.`
+				`Costs ${cashFormat(75000 * PCSkillCheck)}. Will allow the organ farm to quickly grow organs. Implanted organs may cause health issues.`
 			));
 		}
 	}
@@ -49,17 +49,17 @@ App.UI.organFarm = function() {
 	if (V.youngerOvaries > 0) {
 		App.UI.DOM.appendNewElement("div", node, "The organ farm is capable of growing fertile ovaries for postmenopausal slaves.");
 	} else {
-		if (V.rep <= 10000 * _PCSkillCheck) {
+		if (V.rep <= 10000 * PCSkillCheck) {
 			App.UI.DOM.appendNewElement("div", node, "You lack the reputation to access designs for cloning fertile ovaries for menopausal slaves.", "note");
 		} else {
 			App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link(
 				"Purchase designs for cloning fertile ovaries for menopausal slaves",
 				() => {
-					cashX(forceNeg(30000 * _PCSkillCheck), "capEx");
+					cashX(forceNeg(30000 * PCSkillCheck), "capEx");
 					V.youngerOvaries = 1;
 					App.UI.reload();
 				}, [], "",
-				`Costs ${cashFormat(30000 * _PCSkillCheck)}. Will allow the growth of younger, fertile ovaries for menopausal slaves. Restored fertility will only last for a couple years at most.`
+				`Costs ${cashFormat(30000 * PCSkillCheck)}. Will allow the growth of younger, fertile ovaries for menopausal slaves. Restored fertility will only last for a couple years at most.`
 			));
 		}
 	}
@@ -99,15 +99,15 @@ App.UI.organFarm = function() {
 	if (V.seePreg !== 0) {
 		if (V.arcologies[0].FSGenderRadicalistDecoration === 100) {
 			if (V.arcologies[0].FSGenderRadicalistResearch === 0) {
-				if (V.rep >= 10000 * _PCSkillCheck) {
+				if (V.rep >= 10000 * PCSkillCheck) {
 					App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link(
 						"Fund research into developing male pregnancy methods",
 						() => {
-							cashX(forceNeg(50000 * _PCSkillCheck), "capEx");
+							cashX(forceNeg(50000 * PCSkillCheck), "capEx");
 							V.arcologies[0].FSGenderRadicalistResearch = 1;
 							App.UI.reload();
 						}, [], "",
-						`Costs ${cashFormat(50000 * _PCSkillCheck)}. Will allow cloning and production of anal uteri and ovaries.`
+						`Costs ${cashFormat(50000 * PCSkillCheck)}. Will allow cloning and production of anal uteri and ovaries.`
 					));
 				} else {
 					App.UI.DOM.appendNewElement("div", node, "You lack the reputation to access the research necessary to develop anal uteri and ovaries.", "note");
diff --git a/src/facilities/penthouse/HGSelect.js b/src/facilities/penthouse/HGSelect.js
index 1edf1ac610825548a7d8c4680d1466a39c890579..ff8fc97c4511b233f7a7b4b04f18f25181705ffb 100644
--- a/src/facilities/penthouse/HGSelect.js
+++ b/src/facilities/penthouse/HGSelect.js
@@ -27,7 +27,8 @@ App.Facilities.HGSelect = function() {
 		[], "Main"
 		));
 
-		App.UI.DOM.appendNewElement("div", f, `Slave training	${HGName} will prioritize enabled items in the following order`, "bold");
+		App.UI.DOM.appendNewElement("div", f, `Slave training`, "bold");
+		App.UI.DOM.appendNewElement("div", f, `${HGName} will prioritize enabled items in the following order`, "note");
 
 		div.append(App.UI.DOM.makeCheckbox("headGirlTrainsHealth"), " Health");
 		App.UI.DOM.appendNewElement("div", f, div, "indent");
@@ -37,30 +38,30 @@ App.Facilities.HGSelect = function() {
 		App.UI.DOM.appendNewElement("div", f, div, "indent");
 
 		if (V.headGirlTrainsFlaws) {
-			r.push(`${HGName} will train flaws.`,);
+			r.push(`${HGName} will remove flaws.`,);
 		} else if (V.headGirlSoftensFlaws) {
-			r.push(`${HGName} will softern flaws into quirks.`);
+			r.push(`${HGName} will soften flaws into quirks.`);
 		} else if (V.headGirlOverridesQuirks) {
 			r.push(`${HGName} will override quirks.`);
 		} else {
 			r.push(`${HGName} will ignore flaws.`);
 		}
 
-		links.push(App.UI.DOM.link(" Override quirks", () => {
+		links.push(App.UI.DOM.link("Override quirks", () => {
 			V.headGirlTrainsFlaws = 0;
 			V.headGirlSoftensFlaws = 0;
 			V.headGirlOverridesQuirks = 1;
 		},
 		[], passage()
 		));
-		links.push(App.UI.DOM.link(" Soften flaws", () => {
+		links.push(App.UI.DOM.link("Soften flaws", () => {
 			V.headGirlTrainsFlaws = 0;
 			V.headGirlSoftensFlaws = 1;
 			V.headGirlOverridesQuirks = 0;
 		},
 		[], passage()
 		));
-		links.push(App.UI.DOM.link(" Train flaws", () => {
+		links.push(App.UI.DOM.link("Remove flaws", () => {
 			V.headGirlTrainsFlaws = 1;
 			V.headGirlSoftensFlaws = 0;
 			V.headGirlOverridesQuirks = 0;
@@ -68,7 +69,7 @@ App.Facilities.HGSelect = function() {
 		[], passage()
 		));
 
-		links.push(App.UI.DOM.link(" Ignore flaws", () => {
+		links.push(App.UI.DOM.link("Ignore flaws", () => {
 			V.headGirlTrainsFlaws = 0;
 			V.headGirlSoftensFlaws = 0;
 			V.headGirlOverridesQuirks = 0;
@@ -92,7 +93,7 @@ App.Facilities.HGSelect = function() {
 		r = [];
 		if (V.HGSeverity === 1) {
 			r.push(`${HGName} will be <span class="bold">aggressive</span> when punishing, with rape strongly encouraged.`);
-			r.push(App.UI.DOM.link(" Moderate", () => {
+			r.push(App.UI.DOM.link("Moderate", () => {
 				V.HGSeverity = 0;
 			},
 			[], passage()
@@ -100,12 +101,12 @@ App.Facilities.HGSelect = function() {
 		} else if (V.HGSeverity === 0) {
 			links = [];
 			r.push(`${HGName} will be <span class="bold">moderate</span> when punishing, carefully selecting appropriate consequences.`);
-			links.push(App.UI.DOM.link(" Be aggressive", () => {
+			links.push(App.UI.DOM.link("Be aggressive", () => {
 				V.HGSeverity = 1;
 			},
 			[], passage()
 			));
-			links.push(App.UI.DOM.link(` Apply restrictions`, () => {
+			links.push(App.UI.DOM.link(`Apply restrictions`, () => {
 				V.HGSeverity = -1;
 			},
 			[], passage()
@@ -113,7 +114,7 @@ App.Facilities.HGSelect = function() {
 			r.push(App.UI.DOM.generateLinksStrip(links));
 		} else if (V.HGSeverity === -1) {
 			r.push(`${HGName} will be <span class="bold">respectful</span> when punishing, treating slaves decently.`);
-			r.push(App.UI.DOM.link(" Be stricter", () => {
+			r.push(App.UI.DOM.link("Be stricter", () => {
 				V.HGSeverity = 0;
 			},
 			[], passage()
@@ -124,14 +125,14 @@ App.Facilities.HGSelect = function() {
 		r = [];
 		if (V.HGPiercings === 1) {
 			r.push(`${HGName} is <span class="bold">allowed</span> to use piercings as a tool to improve slaves' attitudes.`);
-			r.push(App.UI.DOM.link(" Disallow", () => {
+			r.push(App.UI.DOM.link("Disallow", () => {
 				V.HGPiercings = 0;
 			},
 			[], passage()
 			));
 		} else {
 			r.push(`${HGName} is <span class="bold">not allowed</span> to use piercings as a tool to improve slaves' attitudes.`);
-			r.push(App.UI.DOM.link(" Allow", () => {
+			r.push(App.UI.DOM.link("Allow", () => {
 				V.HGPiercings = 1;
 			},
 			[], passage()
@@ -143,14 +144,14 @@ App.Facilities.HGSelect = function() {
 		App.UI.DOM.appendNewElement("div", f, "Behavior towards you: ", "underline");
 		if (V.HGFormality === 1) {
 			r.push(`${HGName} will be <span class="bold">formal:</span> you will always be called ${getWrittenTitle(S.HeadGirl)}, just like any other slave.`);
-			r.push(App.UI.DOM.link(" Allow private informality", () => {
+			r.push(App.UI.DOM.link("Allow private informality", () => {
 				V.HGFormality = 0;
 			},
 			[], passage()
 			));
 		} else {
 			r.push(`${HGName} is allowed to be <span class="bold">informal:</span> in private, you can be called ${properTitle()}.`);
-			r.push(App.UI.DOM.link(" Maintain complete formality", () => {
+			r.push(App.UI.DOM.link("Maintain complete formality", () => {
 				V.HGFormality = 1;
 			},
 			[], passage()
diff --git a/src/facilities/penthouse/penthousePassage.js b/src/facilities/penthouse/penthousePassage.js
index 281b29509d94abda5dc41ed114ec6af248703284..4f0237d3a37148fc064c85191bb88e38a39dd95e 100644
--- a/src/facilities/penthouse/penthousePassage.js
+++ b/src/facilities/penthouse/penthousePassage.js
@@ -415,14 +415,14 @@ App.UI.managePenthouse = function() {
 
 		r = [];
 		if (V.boobAccessibility > 0 || V.pregAccessibility > 0 || V.dickAccessibility > 0 || V.ballsAccessibility > 0 || V.buttAccessibility > 0) {
-			const _removeCost = Math.trunc((5000 * (V.boobAccessibility + V.pregAccessibility + V.dickAccessibility + V.ballsAccessibility + V.buttAccessibility)) * V.upgradeMultiplierArcology);
+			const removeCost = Math.trunc((5000 * (V.boobAccessibility + V.pregAccessibility + V.dickAccessibility + V.ballsAccessibility + V.buttAccessibility)) * V.upgradeMultiplierArcology);
 			App.UI.DOM.appendNewElement(
 				"div",
 				el,
 				App.UI.DOM.link(
 					"Remove the accessibility renovations",
 					() => {
-						cashX(forceNeg(_removeCost), "capEx");
+						cashX(forceNeg(removeCost), "capEx");
 						V.boobAccessibility = 0;
 						V.pregAccessibility = 0;
 						V.dickAccessibility = 0;
@@ -431,7 +431,7 @@ App.UI.managePenthouse = function() {
 					},
 					[],
 					"Manage Penthouse",
-					`Will cost ${cashFormat(_removeCost)}`
+					`Will cost ${cashFormat(removeCost)}`
 				),
 				"detail"
 			);
diff --git a/src/facilities/salon/salonPassage.js b/src/facilities/salon/salonPassage.js
index 613f26197664ab7096a6c606a9d688d774d6c5c2..d3e87143beb432230929f06a364a740664404ac0 100644
--- a/src/facilities/salon/salonPassage.js
+++ b/src/facilities/salon/salonPassage.js
@@ -440,12 +440,12 @@ App.UI.salon = function(slave, cheat = false) {
 		}
 
 		// Pubic hair
-		const _pubertyAge = Math.min(slave.pubertyAgeXX, slave.pubertyAgeXY);
+		const pubertyAge = Math.min(slave.pubertyAgeXX, slave.pubertyAgeXY);
 		r = [];
-		const hasPubes = (slave.pubicHStyle !== "bald" && slave.pubicHStyle !== "hairless" && slave.physicalAge >= _pubertyAge - 1);
+		const hasPubes = (slave.pubicHStyle !== "bald" && slave.pubicHStyle !== "hairless" && slave.physicalAge >= pubertyAge - 1);
 		if (hasPubes) {
 			r.push(`${His}`);
-			if (slave.physicalAge < _pubertyAge) {
+			if (slave.physicalAge < pubertyAge) {
 				r.push(`wispy pubic hair, which is just starting to grow in,`);
 			} else if (slave.pubicHStyle === "in a strip") {
 				r.push(`pubic hair, which is shaved into a strip,`);
@@ -483,10 +483,10 @@ App.UI.salon = function(slave, cheat = false) {
 
 		// Armpit hair
 		r = [];
-		const hasPitHair = (slave.underArmHStyle !== "bald" && slave.underArmHStyle !== "hairless" && slave.physicalAge >= _pubertyAge - 1);
+		const hasPitHair = (slave.underArmHStyle !== "bald" && slave.underArmHStyle !== "hairless" && slave.physicalAge >= pubertyAge - 1);
 		if (hasPitHair) {
 			r.push(`${His}`);
-			if (slave.physicalAge < _pubertyAge) {
+			if (slave.physicalAge < pubertyAge) {
 				r.push(`wispy underarm hair`);
 			} else {
 				r.push(`${slave.underArmHStyle} underarm hair`);
diff --git a/src/facilities/surgery/analyzePlayerPregnancy.js b/src/facilities/surgery/analyzePlayerPregnancy.js
index 809cadc7cc45064e0c3eb4112683a06521d6b69b..4812d2792430edecbf3f2fe186ca9312fd63ff32 100644
--- a/src/facilities/surgery/analyzePlayerPregnancy.js
+++ b/src/facilities/surgery/analyzePlayerPregnancy.js
@@ -1,5 +1,4 @@
 App.UI.analyzePCPregnancy = function() {
-	//:: Analyze PC Pregnancy [nobr]
 	const node = new DocumentFragment();
 
 	if (lastVisited("Incubator") === 1) {
@@ -10,16 +9,16 @@ App.UI.analyzePCPregnancy = function() {
 	V.nextButton = "Continue";
 	V.nextLink = V.storedLink;
 
-	const _WL = V.PC.womb.length;
-	const _incubatorReservations = WombReserveCount(V.PC, "incubator");
-	const _nurseryReservations = WombReserveCount(V.PC, "nursery");
-	const _freeTanks = V.incubator.capacity - V.incubator.tanks.length;
-	const _freeCribs = V.nursery - V.cribs.length;
-	const _reservedChildren = FetusGlobalReserveCount("incubator");
-	const _reservedChildrenNursery = FetusGlobalReserveCount("nursery");
+	const WL = V.PC.womb.length;
+	const incubatorReservations = WombReserveCount(V.PC, "incubator");
+	const nurseryReservations = WombReserveCount(V.PC, "nursery");
+	const freeTanks = V.incubator.capacity - V.incubator.tanks.length;
+	const freeCribs = V.nursery - V.cribs.length;
+	const reservedChildren = FetusGlobalReserveCount("incubator");
+	const reservedChildrenNursery = FetusGlobalReserveCount("nursery");
 	let linkArray = [];
 
-	if (_WL === 0) {
+	if (WL === 0) {
 		setTimeout(() => Engine.play("Manage Personal Affairs"), Engine.minDomActionDelay);
 	} else {
 		App.UI.DOM.appendNewElement("p", node, `You make yourself comfortable and prep your stomach for examination.`, "scene-intro");
@@ -33,7 +32,7 @@ App.UI.analyzePCPregnancy = function() {
 		if (V.incubator.capacity > 0 || V.nursery > 0) {
 			let div = App.UI.DOM.appendNewElement("div", p);
 			if (V.incubator.capacity > 0) {
-				if (_incubatorReservations > 0) {
+				if (incubatorReservations > 0) {
 					linkArray.push(App.UI.DOM.link(
 						`Remove all of your children from ${V.incubator.name}`,
 						() => {
@@ -43,7 +42,7 @@ App.UI.analyzePCPregnancy = function() {
 						"Analyze PC Pregnancy"
 					));
 				}
-				if (_incubatorReservations < _WL && (_reservedChildren + _WL - _incubatorReservations <= _freeTanks)) {
+				if (incubatorReservations < WL && (reservedChildren + WL - incubatorReservations <= freeTanks)) {
 					linkArray.push(App.UI.DOM.link(
 						`Keep all of your children in ${V.incubator.name}`,
 						() => {
@@ -53,7 +52,7 @@ App.UI.analyzePCPregnancy = function() {
 						[],
 						"Analyze PC Pregnancy"
 					));
-				} else if (_incubatorReservations < _WL) {
+				} else if (incubatorReservations < WL) {
 					App.UI.DOM.appendNewElement("span", div, `There is not enough free space in ${V.incubator.name} for the rest of your children.`);
 				}
 				div.append(App.UI.DOM.generateLinksStrip(linkArray));
@@ -62,7 +61,7 @@ App.UI.analyzePCPregnancy = function() {
 			linkArray = [];
 			div = App.UI.DOM.appendNewElement("div", p);
 			if (V.nursery > 0) {
-				if (_nurseryReservations > 0) {
+				if (nurseryReservations > 0) {
 					linkArray.push(App.UI.DOM.link(
 						`Remove all of your children from ${V.nurseryName}`,
 						() => {
@@ -72,7 +71,7 @@ App.UI.analyzePCPregnancy = function() {
 						"Analyze Pregnancy"
 					));
 				}
-				if (_nurseryReservations < _WL && (_reservedChildrenNursery + _WL - _nurseryReservations <= _freeCribs)) {
+				if (nurseryReservations < WL && (reservedChildrenNursery + WL - nurseryReservations <= freeCribs)) {
 					linkArray.push(App.UI.DOM.link(
 						`Keep all of your children in ${V.incubator.name}`,
 						() => {
@@ -82,7 +81,7 @@ App.UI.analyzePCPregnancy = function() {
 						[],
 						"Analyze Pregnancy"
 					));
-				} else if (_nurseryReservations < _WL) {
+				} else if (nurseryReservations < WL) {
 					App.UI.DOM.appendNewElement("span", div, `There is not enough free space in ${V.nurseryName} for the rest of your children.`);
 				}
 				div.append(App.UI.DOM.generateLinksStrip(linkArray));
diff --git a/src/facilities/surgery/analyzePregnancy.js b/src/facilities/surgery/analyzePregnancy.js
index 08229f5d8584fef10c42032c9864866e27bf6778..1326fc33646c4f2e2a9d3fb927257afc8c7c8f8b 100644
--- a/src/facilities/surgery/analyzePregnancy.js
+++ b/src/facilities/surgery/analyzePregnancy.js
@@ -250,13 +250,12 @@ App.UI.analyzePregnancy = function() {
 	V.nextLink = V.storedLink;
 	const slave = getSlave(V.AS);
 
-	const _WL = slave.womb.length;
-	const _incubatorReservations = WombReserveCount(slave, "incubator");
-	const _nurseryReservations = WombReserveCount(slave, "nursery");
-	const _freeTanks = V.incubator.capacity - V.incubator.tanks.length;
-	const _freeCribs = V.nursery - V.cribs.length;
-	const _reservedChildren = FetusGlobalReserveCount("incubator");
-	const _reservedChildrenNursery = FetusGlobalReserveCount("nursery");
+	const WL = slave.womb.length;
+	const incubatorReservations = WombReserveCount(slave, "incubator");
+	const nurseryReservations = WombReserveCount(slave, "nursery");
+	const freeTanks = V.incubator.capacity - V.incubator.tanks.length;
+	const freeCribs = V.nursery - V.cribs.length;
+	const reservedChildren = FetusGlobalReserveCount("incubator");
 	let linkArray = [];
 
 	const {
@@ -270,15 +269,15 @@ App.UI.analyzePregnancy = function() {
 
 	App.UI.DOM.appendNewElement("h2", node, "Overall statistics");
 	let p = App.UI.DOM.appendNewElement("p", node);
-	const _cc = Math.round(slave.bellyPreg);
-	const _safeCC = Math.round(slave.pregAdaptation * 2000);
+	const cc = Math.round(slave.bellyPreg);
+	const safeCC = Math.round(slave.pregAdaptation * 2000);
 	if (V.geneticMappingUpgrade > 0) {
 		App.UI.DOM.appendNewElement("div", p, `Estimated physical degree of pregnancy adaptation: ${num(Math.round(slave.pregAdaptation))}`);
-		App.UI.DOM.appendNewElement("div", p, `Estimated safe ${(slave.ovaries === 1 || slave.mpreg === 1) ? `womb` : `abdominal`} volume: ${num(_safeCC)}cc`);
+		App.UI.DOM.appendNewElement("div", p, `Estimated safe ${(slave.ovaries === 1 || slave.mpreg === 1) ? `womb` : `abdominal`} volume: ${num(safeCC)}cc`);
 	}
 	App.UI.DOM.appendNewElement("div", p, `Current fetal count: ${slave.womb.length}`);
 	App.Events.addNode(p, [
-		`Estimated ${(slave.ovaries === 1 || slave.mpreg === 1) ? `womb` : `abdominal`} volume: ${(_safeCC < _cc && V.geneticMappingUpgrade > 0) ? `<span class="red">${num(_cc)}</span>` : num(_cc)}cc`
+		`Estimated ${(slave.ovaries === 1 || slave.mpreg === 1) ? `womb` : `abdominal`} volume: ${(safeCC < cc && V.geneticMappingUpgrade > 0) ? `<span class="red">${num(cc)}</span>` : num(cc)}cc`
 	], "div");
 
 
@@ -290,7 +289,7 @@ App.UI.analyzePregnancy = function() {
 		if (V.incubator.capacity > 0 || V.nursery > 0) {
 			let div = App.UI.DOM.appendNewElement("div", p);
 			if (V.incubator.capacity > 0) {
-				if (_incubatorReservations > 0) {
+				if (incubatorReservations > 0) {
 					linkArray.push(App.UI.DOM.link(
 						`Remove all of ${his} children from ${V.incubator.name}`,
 						() => WombChangeReserveType(slave, "incubator", ""),
@@ -298,7 +297,7 @@ App.UI.analyzePregnancy = function() {
 						"Analyze Pregnancy"
 					));
 				}
-				if (_incubatorReservations < _WL && (_reservedChildren + _WL - _incubatorReservations <= _freeTanks)) {
+				if (incubatorReservations < WL && (reservedChildren + WL - incubatorReservations <= freeTanks)) {
 					linkArray.push(App.UI.DOM.link(
 						`Keep all of ${his} children in ${V.incubator.name}`,
 						() => {
@@ -308,7 +307,7 @@ App.UI.analyzePregnancy = function() {
 						[],
 						"Analyze Pregnancy"
 					));
-				} else if (_incubatorReservations < _WL) {
+				} else if (incubatorReservations < WL) {
 					App.UI.DOM.appendNewElement("span", div, `There is not enough free space in ${V.incubator.name} for the rest of ${his} children.`);
 				}
 				div.append(App.UI.DOM.generateLinksStrip(linkArray));
@@ -317,7 +316,7 @@ App.UI.analyzePregnancy = function() {
 			linkArray = [];
 			div = App.UI.DOM.appendNewElement("div", p);
 			if (V.nursery > 0) {
-				if (_nurseryReservations > 0) {
+				if (nurseryReservations > 0) {
 					linkArray.push(App.UI.DOM.link(
 						`Remove all of ${his} children from ${V.nurseryName}`,
 						() => WombChangeReserveType(slave, "nursery", ""),
@@ -325,7 +324,7 @@ App.UI.analyzePregnancy = function() {
 						"Analyze Pregnancy"
 					));
 				}
-				if (_nurseryReservations < _WL && (FetusGlobalReserveCount("nursery") + _WL - _nurseryReservations <= _freeCribs)) {
+				if (nurseryReservations < WL && (FetusGlobalReserveCount("nursery") + WL - nurseryReservations <= freeCribs)) {
 					linkArray.push(App.UI.DOM.link(
 						`Keep all of ${his} children in ${V.incubator.name}`,
 						() => {
@@ -335,7 +334,7 @@ App.UI.analyzePregnancy = function() {
 						[],
 						"Analyze Pregnancy"
 					));
-				} else if (_nurseryReservations < _WL) {
+				} else if (nurseryReservations < WL) {
 					App.UI.DOM.appendNewElement("span", div, `There is not enough free space in ${V.nurseryName} for the rest of ${his} children.`);
 				}
 				div.append(App.UI.DOM.generateLinksStrip(linkArray));
diff --git a/src/facilities/surgery/surgeryPassageFaceAndHair.js b/src/facilities/surgery/surgeryPassageFaceAndHair.js
index d9acf4ae813a773f7500e77e8766d28a22f95d0b..42718b8ad68d104d36359d0f295c453c246c1383 100644
--- a/src/facilities/surgery/surgeryPassageFaceAndHair.js
+++ b/src/facilities/surgery/surgeryPassageFaceAndHair.js
@@ -13,12 +13,12 @@ App.UI.surgeryPassageHairAndFace = function(slave, refreshParent, cheat = false)
 
 	function content() {
 		const frag = new DocumentFragment();
-		const _pubertyAge = Math.min(slave.pubertyAgeXX, slave.pubertyAgeXY);
+		const pubertyAge = Math.min(slave.pubertyAgeXX, slave.pubertyAgeXY);
 		const {
 			His, He,
 			his, him
 		} = getPronouns(slave);
-		const _artificiality = faceSurgeryArtificiality();
+		const artificiality = faceSurgeryArtificiality();
 
 		App.UI.DOM.appendNewElement("h3", frag, `Hair:`);
 		frag.append(
@@ -71,9 +71,9 @@ App.UI.surgeryPassageHairAndFace = function(slave, refreshParent, cheat = false)
 			const r = [];
 			if ((slave.underArmHStyle !== "bald" && slave.underArmHStyle !== "hairless") || (slave.pubicHStyle !== "bald" && slave.pubicHStyle !== "hairless")) {
 				r.push(`${He}`);
-				if (slave.physicalAge >= _pubertyAge) {
+				if (slave.physicalAge >= pubertyAge) {
 					r.push(`naturally grows`);
-				} else if (slave.physicalAge >= _pubertyAge - 1) {
+				} else if (slave.physicalAge >= pubertyAge - 1) {
 					r.push(`is beginning to grow`);
 				} else {
 					r.push(`will someday grow`);
@@ -158,13 +158,13 @@ App.UI.surgeryPassageHairAndFace = function(slave, refreshParent, cheat = false)
 				} else if (V.surgeryUpgrade) {
 					r.push(`The advanced surgical suite will reduce this effect.`);
 				}
-				if (slave.faceImplant + _artificiality > 95) {
+				if (slave.faceImplant + artificiality > 95) {
 					r.push(App.UI.DOM.makeElement("span", `${(slave.faceImplant !== 0) ? `Further facial` : `Facial`} surgery will create a severe uncanny valley effect.`, "yellow"));
-				} else if (slave.faceImplant + _artificiality > 60 && slave.faceImplant <= 60) {
+				} else if (slave.faceImplant + artificiality > 60 && slave.faceImplant <= 60) {
 					r.push(App.UI.DOM.makeElement("span", `${(slave.faceImplant !== 0) ? `Further facial` : `Facial`}surgery will be extremely obvious.`, "yellow"));
-				} else if (slave.faceImplant + _artificiality > 30 && slave.faceImplant <= 30) {
+				} else if (slave.faceImplant + artificiality > 30 && slave.faceImplant <= 30) {
 					r.push(App.UI.DOM.makeElement("span", `${(slave.faceImplant !== 0) ? `Further facial` : `Facial`} surgery will eliminate a natural appearance.`, "yellow"));
-				} else if (slave.faceImplant + _artificiality > 5 && slave.faceImplant <= 5) {
+				} else if (slave.faceImplant + artificiality > 5 && slave.faceImplant <= 5) {
 					r.push(App.UI.DOM.makeElement("span", `${(slave.faceImplant !== 0) ? `Further facial` : `Facial`} surgery will disturb a perfectly natural appearance.`, "yellow"));
 				} else {
 					r.push(`A single facial surgery is not projected to significantly impact artificiality.`);
diff --git a/src/facilities/surgery/surgeryPassageLower.js b/src/facilities/surgery/surgeryPassageLower.js
index 3a112227152f20177b01588fbc04466214434093..1473a3ab3b98ead5487ee20dfaedc69f276513c0 100644
--- a/src/facilities/surgery/surgeryPassageLower.js
+++ b/src/facilities/surgery/surgeryPassageLower.js
@@ -12,12 +12,12 @@ App.UI.surgeryPassageLower = function(slave, cheat = false) {
 
 	function content() {
 		const frag = new DocumentFragment();
-		// const _pubertyAge = Math.min(slave.pubertyAgeXX, slave.pubertyAgeXY);
+		// const pubertyAge = Math.min(slave.pubertyAgeXX, slave.pubertyAgeXY);
 		const {
 			His, He,
 			his, he, him
 		} = getPronouns(slave);
-		// const _artificiality = 25 - (5 * Math.trunc(V.PC.skill.medicine / 50)) - (5 * V.surgeryUpgrade);
+		// const artificiality = 25 - (5 * Math.trunc(V.PC.skill.medicine / 50)) - (5 * V.surgeryUpgrade);
 
 		App.UI.DOM.appendNewElement("h3", frag, `Butt:`);
 		frag.append(butt(), asshole());
diff --git a/src/facilities/surgery/surgeryPassageUpper.js b/src/facilities/surgery/surgeryPassageUpper.js
index 1bf50a55a5fcefdfdc116c18caff7b561243ce79..1a4cb7a288738f9715332e94534e0db6617bd4a3 100644
--- a/src/facilities/surgery/surgeryPassageUpper.js
+++ b/src/facilities/surgery/surgeryPassageUpper.js
@@ -121,9 +121,9 @@ App.UI.surgeryPassageUpper = function(slave, cheat = false) {
 				r.push(`no implants.`);
 			}
 			App.Events.addNode(el, r, "div");
-			const _surgeries = App.Medicine.Surgery.sizingProcedures.boobs(slave, App.Medicine.Surgery.allSizingOptions());
-			const _surgeryLinks = _surgeries.map(s => App.Medicine.Surgery.makeObjectLink("Surgery Degradation", s, slave));
-			App.UI.DOM.appendNewElement("div", el, (App.UI.DOM.generateLinksStrip(_surgeryLinks)), "choices");
+			const surgeries = App.Medicine.Surgery.sizingProcedures.boobs(slave, App.Medicine.Surgery.allSizingOptions());
+			const surgeryLinks = surgeries.map(s => App.Medicine.Surgery.makeObjectLink("Surgery Degradation", s, slave));
+			App.UI.DOM.appendNewElement("div", el, (App.UI.DOM.generateLinksStrip(surgeryLinks)), "choices");
 
 			r = [];
 			const linkArray = [];
diff --git a/src/futureSocieties/fsPassage.js b/src/futureSocieties/fsPassage.js
index b7e8e2a7e9429b0d32b70e44fc721f03f5eab3c8..6073f0de91a3fbb052585dc684bb2fba6f3b9d0a 100644
--- a/src/futureSocieties/fsPassage.js
+++ b/src/futureSocieties/fsPassage.js
@@ -1,7 +1,7 @@
 App.UI.fsPassage = function() {
 	const arc = V.arcologies[0];
 	V.FSReminder = 0;
-	const _FSCredits = FutureSocieties.availCredits();
+	const FSCredits = FutureSocieties.availCredits();
 	setup();
 
 	V.nextButton = "Back";
@@ -124,7 +124,7 @@ App.UI.fsPassage = function() {
 	function overview() {
 		const el = new DocumentFragment();
 		const r = [];
-		if (_FSCredits > 0) {
+		if (FSCredits > 0) {
 			r.push(App.UI.DOM.makeElement("span", `${arc.name}'s society is ready to begin accepting a new societal direction.`, "yellow"));
 		} else if (V.FSGotRepCredits >= 3) {
 			r.push(`Your society is so radically changed that it is starting to take on a life of its own. The major decisions about its direction have been made.`);
@@ -356,7 +356,7 @@ App.UI.fsPassage = function() {
 			r.push(`${arc.FSSupremacistRace} superiority.`);
 			r.push(activeFS("FSSupremacist"));
 		} else {
-			if (_FSCredits > 0) {
+			if (FSCredits > 0) {
 				r.push(
 					App.UI.DOM.link(
 						"Racial Supremacism",
@@ -399,7 +399,7 @@ App.UI.fsPassage = function() {
 			r.push(`${arc.FSSubjugationistRace} inferiority.`);
 			r.push(activeFS("FSSubjugationist"));
 		} else {
-			if (_FSCredits > 0) {
+			if (FSCredits > 0) {
 				r.push(
 					App.UI.DOM.link(
 						"Racial Subjugationism",
@@ -449,7 +449,7 @@ App.UI.fsPassage = function() {
 					r.push(`the belief that mass breeding will save humanity.`);
 					r.push(activeFS("FSRepopulationFocus", ["boughtItem.clothing.maternityLingerie", "boughtItem.clothing.maternityDress", "boughtItem.clothing.belly"]));
 				} else {
-					if (_FSCredits > 0) {
+					if (FSCredits > 0) {
 						r.push(
 							App.UI.DOM.link(
 								"Repopulation Efforts",
@@ -482,7 +482,7 @@ App.UI.fsPassage = function() {
 						r.push(`The Societal Elite exist as the highest class, allowing you access to all manner of benefits`);
 					}
 				} else {
-					if (_FSCredits > 0) {
+					if (FSCredits > 0) {
 						r.push(
 							App.UI.DOM.link(
 								"Eugenics",
@@ -513,7 +513,7 @@ App.UI.fsPassage = function() {
 				r.push(`intellectual dependency, a belief that slaves should be airheaded, horny and fully dependent on their owners.`);
 				r.push(activeFS("FSIntellectualDependency", ["boughtItem.clothing.bimbo"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Intellectual Dependency",
@@ -537,7 +537,7 @@ App.UI.fsPassage = function() {
 				r.push(`slave professionalism, a focus on smart, refined, altogether perfect slaves.`);
 				r.push(activeFS("FSSlaveProfessionalism", ["boughtItem.clothing.courtesan"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Slave Professionalism",
@@ -566,7 +566,7 @@ App.UI.fsPassage = function() {
 					r.push(`a radical redefinition of gender that identifies powerful people as male, and everyone else as female.`);
 					r.push(activeFS("FSGenderRadicalist"));
 				} else {
-					if (_FSCredits > 0) {
+					if (FSCredits > 0) {
 						r.push(
 							App.UI.DOM.link(
 								"Gender radicalism",
@@ -591,7 +591,7 @@ App.UI.fsPassage = function() {
 				r.push(`gender traditionalism, including a societal preference for feminine slaves ${(V.seePreg !== 0) ? ` and support for slave pregnancy` : ``}.`);
 				r.push(activeFS("FSGenderFundamentalist", ["boughtItem.clothing.bunny"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Gender traditionalism",
@@ -623,7 +623,7 @@ App.UI.fsPassage = function() {
 				r.push(`a vision of slave improvement, including slaves' health, mental well-being, and education.`);
 				r.push(activeFS("FSPaternalist", ["boughtItem.clothing.conservative"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Paternalism",
@@ -647,7 +647,7 @@ App.UI.fsPassage = function() {
 				r.push(`slave degradation, a belief that slaves are not human and should not be treated decently.`);
 				r.push(activeFS("FSDegradationist", ["boughtItem.clothing.chains"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Degradationism",
@@ -675,7 +675,7 @@ App.UI.fsPassage = function() {
 				r.push(`societal disapproval of implant surgery.`);
 				r.push(activeFS("FSBodyPurist"));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Body Purism",
@@ -699,7 +699,7 @@ App.UI.fsPassage = function() {
 				r.push(`societal fetishization of implant surgery.`);
 				r.push(activeFS("FSTransformationFetishist"));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Transformation Fetishism",
@@ -727,7 +727,7 @@ App.UI.fsPassage = function() {
 				r.push(`an accentuated societal preference for younger slaves.`);
 				r.push(activeFS("FSYouthPreferentialist"));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Youth Preferentialism",
@@ -751,7 +751,7 @@ App.UI.fsPassage = function() {
 				r.push(`a societal preference for older women.`);
 				r.push(activeFS("FSMaturityPreferentialist"));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Maturity Preferentialism",
@@ -779,7 +779,7 @@ App.UI.fsPassage = function() {
 				r.push(`an accentuated societal preference for short slaves.`);
 				r.push(activeFS("FSPetiteAdmiration"));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Petite Admiration",
@@ -803,7 +803,7 @@ App.UI.fsPassage = function() {
 				r.push(`a societal fixation on tallness.`);
 				r.push(activeFS("FSStatuesqueGlorification"));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Statuesque Glorification",
@@ -831,7 +831,7 @@ App.UI.fsPassage = function() {
 				r.push(`enthusiasm for slaves with girlish figures.`);
 				r.push(activeFS("FSSlimnessEnthusiast"));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Slimness Enthusiasm",
@@ -855,7 +855,7 @@ App.UI.fsPassage = function() {
 				r.push(`societal hunger for huge assets.`);
 				r.push(activeFS("FSAssetExpansionist"));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Asset Expansionism",
@@ -881,7 +881,7 @@ App.UI.fsPassage = function() {
 			r.push(`societal normalization of slave milking.`);
 			r.push(activeFS("FSPastoralist", ["boughtItem.clothing.western"]));
 		} else {
-			if (_FSCredits > 0) {
+			if (FSCredits > 0) {
 				r.push(
 					App.UI.DOM.link(
 						"Slave Pastoralism",
@@ -907,7 +907,7 @@ App.UI.fsPassage = function() {
 				r.push(`societal reverence for the idealized human form, including height, health and muscle.`);
 				r.push(activeFS("FSPhysicalIdealist", ["boughtItem.clothing.oil"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Physical Idealism",
@@ -931,7 +931,7 @@ App.UI.fsPassage = function() {
 				r.push(`societal normalization of overindulgence and immediate gratification. Be it food, drink, sex, drugs or whatever one's desire may be.`);
 				r.push(activeFS("FSHedonisticDecadence"));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Hedonistic Decadence",
@@ -959,7 +959,7 @@ App.UI.fsPassage = function() {
 				r.push(`a new strain of religion that emphasizes the slaveholding portions of religious history.`);
 				r.push(activeFS("FSChattelReligionist", ["boughtItem.clothing.habit"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Chattel Religionism",
@@ -1000,13 +1000,13 @@ App.UI.fsPassage = function() {
 					} else {
 						r.push(withdrawRel(25));
 					}
-					if (_FSCredits > 0) {
+					if (FSCredits > 0) {
 						if (arc.FSNull < V.FSLockinLevel) {
 							r.push(advanceRel(25));
 						}
 					}
 				} else {
-					if (_FSCredits > 0) {
+					if (FSCredits > 0) {
 						r.push(MulticulturalismRel(25));
 					}
 				}
@@ -1017,13 +1017,13 @@ App.UI.fsPassage = function() {
 					} else {
 						r.push(withdrawRel(17));
 					}
-					if (_FSCredits > 0) {
+					if (FSCredits > 0) {
 						if (arc.FSNull < V.FSLockinLevel) {
 							r.push(advanceRel(17));
 						}
 					}
 				} else {
-					if (_FSCredits > 0) {
+					if (FSCredits > 0) {
 						r.push(MulticulturalismRel(17));
 					}
 				}
@@ -1034,13 +1034,13 @@ App.UI.fsPassage = function() {
 					} else {
 						r.push(withdrawRel(15));
 					}
-					if (_FSCredits > 0) {
+					if (FSCredits > 0) {
 						if (arc.FSNull < V.FSLockinLevel) {
 							r.push(advanceRel(15));
 						}
 					}
 				} else {
-					if (_FSCredits > 0) {
+					if (FSCredits > 0) {
 						r.push(MulticulturalismRel(15));
 					}
 				}
@@ -1051,13 +1051,13 @@ App.UI.fsPassage = function() {
 					} else {
 						r.push(withdrawRel(20));
 					}
-					if (_FSCredits > 0) {
+					if (FSCredits > 0) {
 						if (arc.FSNull < V.FSLockinLevel) {
 							r.push(advanceRel(20));
 						}
 					}
 				} else {
-					if (_FSCredits > 0) {
+					if (FSCredits > 0) {
 						r.push(MulticulturalismRel(20));
 					}
 				}
@@ -1130,7 +1130,7 @@ App.UI.fsPassage = function() {
 				r.push(`a vision of a new Rome.`);
 				r.push(activeFS("FSRomanRevivalist", ["boughtItem.clothing.toga"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Roman Revivalism",
@@ -1154,7 +1154,7 @@ App.UI.fsPassage = function() {
 				r.push(`a vision of a new Imperial Society.`);
 				r.push(activeFS("FSNeoImperialist", ["boughtItem.clothing.imperialarmor", "boughtItem.clothing.imperialsuit"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Neo-Imperialism",
@@ -1178,7 +1178,7 @@ App.UI.fsPassage = function() {
 				r.push(`a vision of a new Aztec Empire.`);
 				r.push(activeFS("FSAztecRevivalist", ["boughtItem.clothing.huipil"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Aztec Revivalism",
@@ -1202,7 +1202,7 @@ App.UI.fsPassage = function() {
 				r.push(`a vision of Pharaoh's Egypt.`);
 				r.push(activeFS("FSEgyptianRevivalist", ["boughtItem.clothing.egypt"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Egyptian Revivalism",
@@ -1227,7 +1227,7 @@ App.UI.fsPassage = function() {
 				r.push(`a vision of Edo Japan.`);
 				r.push(activeFS("FSEdoRevivalist", ["boughtItem.clothing.kimono"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Edo Revivalism",
@@ -1251,7 +1251,7 @@ App.UI.fsPassage = function() {
 				r.push(`a vision of the Sultanate of old.`);
 				r.push(activeFS("FSArabianRevivalist", ["boughtItem.clothing.harem"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Arabian Revivalism",
@@ -1275,7 +1275,7 @@ App.UI.fsPassage = function() {
 				r.push(`a vision of ancient China.`);
 				r.push(activeFS("FSChineseRevivalist", ["boughtItem.clothing.qipao"]));
 			} else {
-				if (_FSCredits > 0) {
+				if (FSCredits > 0) {
 					r.push(
 						App.UI.DOM.link(
 							"Chinese Revivalism",
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index 4f6155cb7bfba0db57020f5b3076d8a1dcc534db..74e3cedb49582e3e63d28637e00310160e14ba22 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -68,169 +68,44 @@ SLAVE ASSIGNMENTS:
 <<case "Career Experience">>
 	Slaves may retain useful experience from their lives before enslavement. Freedom and slavery are so different that the bonuses slaves get are minor. Careers fall into categories, each with its own bonus; these are:
 
-	<br><br><br>__Grateful__ (offering a potential bonus to @@.mediumaquamarine;<<= App.Encyclopedia.Dialog.linkSC("trust", "Trust")>>@@), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.General.grateful.length; $i++>>
-		<<if $i == App.Data.Careers.General.grateful.length-1>>
-			and <<print App.Data.Careers.General.grateful[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.General.grateful[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Menial__ (offering a potential bonus to @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.General.menial.length; $i++>>
-		<<if $i == App.Data.Careers.General.menial.length-1>>
-			and <<print App.Data.Careers.General.menial[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.General.menial[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Servant__ (offering a bonus to <<= App.Encyclopedia.Dialog.linkSC("keeping your estate", "Servitude")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.servant.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.servant.length-1>>
-			and <<print App.Data.Careers.Leader.servant[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.servant[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Entertainment__ (offering a bonus to <<= App.Encyclopedia.Dialog.linkSC("public service", "Public Service")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.General.entertainment.length; $i++>>
-		<<if $i == App.Data.Careers.General.entertainment.length-1>>
-			and <<print App.Data.Careers.General.entertainment[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.General.entertainment[$i]>>,
-		<</if>>
-	<</for>>
-	If a slave has been in the arcology for a long time and is intelligent, she can qualify for this bonus without career experience.
-
-	<br><br><br>__Sex work__ (offering a bonus to <<= App.Encyclopedia.Dialog.linkSC("whoring", "Whoring")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.General.whore.length; $i++>>
-		<<if $i == App.Data.Careers.General.whore.length-1>>
-			and <<print App.Data.Careers.General.whore[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.General.whore[$i]>>,
-		<</if>>
-	<</for>>
+	<br><br><br>__Grateful__ (offering a potential bonus to @@.mediumaquamarine;<<= App.Encyclopedia.Dialog.linkSC("trust", "Trust")>>@@), including slaves who were <<print toSentence(App.Data.Careers.General.grateful)>>.
+
+	<br><br><br>__Menial__ (offering a potential bonus to @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@), including slaves who were <<print toSentence(App.Data.Careers.General.menial)>>.
+
+	<br><br><br>__Servant__ (offering a bonus to <<= App.Encyclopedia.Dialog.linkSC("keeping your estate", "Servitude")>>), including slaves who were <<print toSentence(App.Data.Careers.General.servant)>>.
+
+	<br><br><br>__Entertainment__ (offering a bonus to <<= App.Encyclopedia.Dialog.linkSC("public service", "Public Service")>>), including slaves who were <<print toSentence(App.Data.Careers.General.entertainment)>>.
+	If a slave has a lot of entertainment experience, she can qualify for this bonus without career experience.
+
+	<br><br><br>__Sex work__ (offering a bonus to <<= App.Encyclopedia.Dialog.linkSC("whoring", "Whoring")>>), including slaves who were <<print toSentence(App.Data.Careers.General.whore)>>.
 	If a slave is very sexually experienced, she can qualify for this bonus without career experience.
 
-	<br><br><br>__Leadership__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Head Girl", "Head Girl")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.HG.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.HG.length-1>>
-			and <<print App.Data.Careers.Leader.HG[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.HG[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Procuring__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Madam", "Madam")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.madam.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.madam.length-1>>
-			and <<print App.Data.Careers.Leader.madam[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.madam[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Musical__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("DJ", "DJ")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.DJ.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.DJ.length-1>>
-			and <<print App.Data.Careers.Leader.DJ[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.DJ[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Defensive__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Bodyguard", "Bodyguard")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.bodyguard.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.bodyguard.length-1>>
-			and <<print App.Data.Careers.Leader.bodyguard[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.bodyguard[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Convincing__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Recruiter", "Recruiter")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.recruiter.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.recruiter.length-1>>
-			and <<print App.Data.Careers.Leader.recruiter[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.recruiter[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Security__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Wardeness", "Wardeness")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.wardeness.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.wardeness.length-1>>
-			and <<print App.Data.Careers.Leader.wardeness[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.wardeness[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Medical__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Nurse", "Nurse")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.nurse.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.nurse.length-1>>
-			and <<print App.Data.Careers.Leader.nurse[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.nurse[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Counseling__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.attendant.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.attendant.length-1>>
-			and <<print App.Data.Careers.Leader.attendant[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.attendant[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Nannying__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Matron", "Matron")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.matron.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.matron.length-1>>
-			and <<print App.Data.Careers.Leader.matron[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.matron[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Accounting__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Stewardess", "Stewardess")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.stewardess.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.stewardess.length-1>>
-			and <<print App.Data.Careers.Leader.stewardess[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.stewardess[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Husbandry__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Milkmaid", "Milkmaid")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.milkmaid.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.milkmaid.length-1>>
-			and <<print App.Data.Careers.Leader.milkmaid[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.milkmaid[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Farming__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Farmer", "Farmer")>>), including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.farmer.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.farmer.length-1>>
-			and <<print App.Data.Careers.Leader.farmer[$i]>>.
-		<<else>>
-			<<print App.Data.Careers.Leader.farmer[$i]>>,
-		<</if>>
-	<</for>>
-
-	<br><br><br>__Teaching__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Schoolteacher", "Schoolteacher")>>, including slaves who were
-	<<for $i = 0; $i < App.Data.Careers.Leader.schoolteacher.length; $i++>>
-		<<if $i == App.Data.Careers.Leader.schoolteacher.length-1>>
-			and <<print App.Data.Careers.Leader.schoolteacher[$i]>>,
-		<<else>>
-			<<print App.Data.Careers.Leader.schoolteacher[$i]>>,
-		<</if>>
-	<</for>>
+	<br><br><br>__Leadership__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Head Girl", "Head Girl")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.HG)>>.
+
+	<br><br><br>__Procuring__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Madam", "Madam")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.madam)>>.
+
+	<br><br><br>__Musical__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("DJ", "DJ")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.DJ)>>.
+
+	<br><br><br>__Defensive__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Bodyguard", "Bodyguard")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.bodyguard)>>.
+
+	<br><br><br>__Convincing__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Recruiter", "Recruiter")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.recruiter)>>.
+
+	<br><br><br>__Security__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Wardeness", "Wardeness")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.wardeness)>>.
+
+	<br><br><br>__Medical__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Nurse", "Nurse")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.nurse)>>.
+
+	<br><br><br>__Counseling__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.attendant)>>.
+
+	<br><br><br>__Nannying__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Matron", "Matron")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.matron)>>.
+
+	<br><br><br>__Accounting__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Stewardess", "Stewardess")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.stewardess)>>.
+
+	<br><br><br>__Husbandry__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Milkmaid", "Milkmaid")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.milkmaid)>>.
+
+	<br><br><br>__Farming__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Farmer", "Farmer")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.farmer)>>.
+
+	<br><br><br>__Teaching__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Schoolteacher", "Schoolteacher")>>), including slaves who were <<print toSentence(App.Data.Careers.Leader.schoolteacher)>>.
+
 	<br><br>Slaves who have been in slavery long enough that it is effectively their career get a bonus to @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "Devotion")>>.@@ Slaves can forget their career experience in an industrialized Dairy, but if they do so and remain sane, they will get a special bonus to both @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "Devotion")>>@@ and @@.mediumaquamarine;<<= App.Encyclopedia.Dialog.linkSC("trust", "Trust")>>.@@
 
 	<br><br>Facility heads and working slaves can gain work experience to provide the same benefit as having a relevant career. Intelligence is the deciding factor in how long this will take, brilliant slaves can achieve this ideally in about fourteen weeks, while borderline retarded slaves can take up two hundred weeks (Assuming that the slave's intelligence doesn't change at all and the dice roll is consistent).
diff --git a/src/gui/options/optionsGroup.js b/src/gui/options/optionsGroup.js
index 8c74fc90916a0033944ffcc7649b589e9336ee0b..6e5ea6fedc63249bbdadc8e1d133f635f0fd20f7 100644
--- a/src/gui/options/optionsGroup.js
+++ b/src/gui/options/optionsGroup.js
@@ -103,7 +103,7 @@ App.UI.OptionsGroup = (function() {
 		}
 
 		/**
-		 * @param {string|HTMLElement} comment string can be HTML
+		 * @param {string|DocumentFragment|HTMLElement} comment string can be HTML
 		 * @returns {OptionButtonRow}
 		 */
 		addComment(comment) {
diff --git a/src/gui/storyCaption.js b/src/gui/storyCaption.js
index 34a34abf4505bee3f03bb10e7c728a2f6a04ece7..3b7faf0c43d6d5cbb9bbfb8a0a3cffd28f40581f 100644
--- a/src/gui/storyCaption.js
+++ b/src/gui/storyCaption.js
@@ -468,20 +468,20 @@ App.UI.storyCaption = function() {
 
 	function startingGirls() {
 		// @ts-ignore // In starting girls we know that there is always an active slave
-		let _slaveCost = startingSlaveCost(V.activeSlave);
+		let cost = startingSlaveCost(V.activeSlave);
 		const p = document.createElement("p");
 
-		if (_slaveCost > V.cash) {
+		if (cost > V.cash) {
 			const div = document.createElement("div");
 			div.classList.add("cash", "dec");
 			div.append("This slave will cost ",
-				App.UI.DOM.makeElement("span", cashFormat(_slaveCost), "bold"), ".",
+				App.UI.DOM.makeElement("span", cashFormat(cost), "bold"), ".",
 				App.UI.DOM.makeElement("div", `You only have: ${cashFormat(V.cash)}.`));
 			p.append(div);
 		} else {
 			const div = document.createElement("div");
 			div.append("This slave will cost ",
-				App.UI.DOM.makeElement("span", cashFormat(_slaveCost), "cash"), ".",
+				App.UI.DOM.makeElement("span", cashFormat(cost), "cash"), ".",
 				App.UI.DOM.makeElement("div", `You have ${cashFormat(V.cash)}.`));
 			p.append(div);
 		}
diff --git a/src/interaction/artificialInsemination.js b/src/interaction/artificialInsemination.js
index f438f81bb5f259115c9d623c5cb7d912d6d00c7f..03a5c2cf719d1918f904590200485eef5a5ed49f 100644
--- a/src/interaction/artificialInsemination.js
+++ b/src/interaction/artificialInsemination.js
@@ -44,11 +44,11 @@ App.UI.SlaveInteract.artificialInsemination = function() {
 		App.UI.DOM.appendNewElement("p", f, "Incubator settings are resulting in large-scale fluid secretion.", "scene-intro");
 		r = [];
 		any = false;
-		for (const _tank of V.incubator.tanks) {
-			if (_tank.balls > 0 && _tank.dick > 0 && canBreed(getSlave(V.AS), _tank)) {
+		for (const tank of V.incubator.tanks) {
+			if (tank.balls > 0 && tank.dick > 0 && canBreed(getSlave(V.AS), tank)) {
 				r.push(App.UI.DOM.makeElement("div",
-					App.UI.DOM.passageLink(_tank.slaveName, "Surgery Degradation", () => {
-						inseminate(getSlave(V.AS), _tank);
+					App.UI.DOM.passageLink(tank.slaveName, "Surgery Degradation", () => {
+						inseminate(getSlave(V.AS), tank);
 					})
 				));
 				any = true;
diff --git a/src/interaction/policies/coursingAssociation.js b/src/interaction/policies/coursingAssociation.js
index e91237452fdecf9a2fb5401d489bbbe28444a4c2..aaa780153aa066133ed061d2c8fe0e7a506c0ac9 100644
--- a/src/interaction/policies/coursingAssociation.js
+++ b/src/interaction/policies/coursingAssociation.js
@@ -1,5 +1,4 @@
 App.UI.coursingAssociation = function() {
-	//	:: Coursing Association [nobr]
 	const node = new DocumentFragment();
 
 	App.Events.addParagraph(node, [`You are a member of ${V.arcologies[0].name}'s Coursing Association. Coursing is a Free Cities revival of the old sport of hunting rabbits and hares with sighthounds, with the typically Free Cities amendments that the hares are replaced by newly enslaved people, the sighthounds are replaced by trained slaves, and the killing of the hare is replaced by rape. Truly, a sport of gentlemen.`]);
diff --git a/src/interaction/prostheticConfig.js b/src/interaction/prostheticConfig.js
index 29ac95ee6722cfc96375527a19aedbf4a1209984..60ecd99005b8afd647e4c58bf27dece9cc1d6540 100644
--- a/src/interaction/prostheticConfig.js
+++ b/src/interaction/prostheticConfig.js
@@ -54,14 +54,14 @@ App.UI.prostheticsConfig = function(slave) {
 			const eyeContainer = document.createElement("div");
 			eyeContainer.classList.add("eyeContainer", "choices");
 
-			let _on = 0;
-			let _blur = 0;
-			let _off = 0;
+			let on = 0;
+			let blur = 0;
+			let off = 0;
 			if (getLeftEyeType(slave) === 3) {
 				App.UI.DOM.appendNewElement("div", eyeContainer, "Left:");
 				let div = document.createElement("div");
 				if (getLeftEyeVision(slave) !== 2) {
-					_on++;
+					on++;
 					div.append(App.UI.DOM.passageLink("[ON]", "Prosthetics Configuration", () => eyeSurgery(slave, "left", "fix")));
 				} else {
 					div.append("[ON]");
@@ -70,7 +70,7 @@ App.UI.prostheticsConfig = function(slave) {
 				div = document.createElement("div");
 
 				if (getLeftEyeVision(slave) !== 1) {
-					_blur++;
+					blur++;
 					div.append(App.UI.DOM.passageLink("[BLUR]", "Prosthetics Configuration", () => eyeSurgery(slave, "left", "blur")));
 				} else {
 					div.append("[BLUR]");
@@ -78,7 +78,7 @@ App.UI.prostheticsConfig = function(slave) {
 				eyeContainer.append(div);
 				div = document.createElement("div");
 				if (getLeftEyeVision(slave) !== 0) {
-					_off++;
+					off++;
 					div.append(App.UI.DOM.passageLink("[OFF]", "Prosthetics Configuration", () => eyeSurgery(slave, "left", "blind")));
 				} else {
 					div.append("[OFF]");
@@ -89,7 +89,7 @@ App.UI.prostheticsConfig = function(slave) {
 				App.UI.DOM.appendNewElement("div", eyeContainer, "Right:");
 				let div = document.createElement("div");
 				if (getRightEyeVision(slave) !== 2) {
-					_on++;
+					on++;
 					div.append(App.UI.DOM.passageLink("[ON]", "Prosthetics Configuration", () => eyeSurgery(slave, "right", "fix")));
 				} else {
 					div.append("[ON]");
@@ -98,7 +98,7 @@ App.UI.prostheticsConfig = function(slave) {
 				div = document.createElement("div");
 
 				if (getRightEyeVision(slave) !== 1) {
-					_blur++;
+					blur++;
 					div.append(App.UI.DOM.passageLink("[BLUR]", "Prosthetics Configuration", () => eyeSurgery(slave, "right", "blur")));
 				} else {
 					div.append("[BLUR]");
@@ -106,7 +106,7 @@ App.UI.prostheticsConfig = function(slave) {
 				eyeContainer.append(div);
 				div = document.createElement("div");
 				if (getRightEyeVision(slave) !== 0) {
-					_off++;
+					off++;
 					div.append(App.UI.DOM.passageLink("[OFF]", "Prosthetics Configuration", () => eyeSurgery(slave, "right", "blind")));
 				} else {
 					div.append("[OFF]");
@@ -116,7 +116,7 @@ App.UI.prostheticsConfig = function(slave) {
 			if (hasBothCyberneticEyes(slave)) {
 				App.UI.DOM.appendNewElement("div", eyeContainer, "Both:");
 				let div = document.createElement("div");
-				if (_on > 0) {
+				if (on > 0) {
 					div.append(App.UI.DOM.passageLink("[ON]", "Prosthetics Configuration", () => eyeSurgery(slave, "both", "fix")));
 				} else {
 					div.append("[ON]");
@@ -124,14 +124,14 @@ App.UI.prostheticsConfig = function(slave) {
 				eyeContainer.append(div);
 				div = document.createElement("div");
 
-				if (_blur > 0) {
+				if (blur > 0) {
 					div.append(App.UI.DOM.passageLink("[BLUR]", "Prosthetics Configuration", () => eyeSurgery(slave, "both", "blur")));
 				} else {
 					div.append("[BLUR]");
 				}
 				eyeContainer.append(div);
 				div = document.createElement("div");
-				if (_off > 0) {
+				if (off > 0) {
 					div.append(App.UI.DOM.passageLink("[OFF]", "Prosthetics Configuration", () => eyeSurgery(slave, "both", "blind")));
 				} else {
 					div.append("[OFF]");
diff --git a/src/interaction/prostheticLabPassage.js b/src/interaction/prostheticLabPassage.js
index 80770e48122410aab6ef8fdf2de93bb6a6abcec1..bc3b76f0ee5e08dae170b8e346e463540eb78ae5 100644
--- a/src/interaction/prostheticLabPassage.js
+++ b/src/interaction/prostheticLabPassage.js
@@ -1,5 +1,4 @@
 App.UI.prostheticLab = function() {
-	// :: Prosthetic Lab [nobr jump-to-safe jump-from-safe]
 	const node = new DocumentFragment();
 
 	let r = [];
@@ -12,10 +11,10 @@ App.UI.prostheticLab = function() {
 	if (V.adjustProsthetics.length > V.adjustProstheticsCompleted) {
 		App.UI.DOM.appendNewElement("h2", node, "External contract workers");
 		App.UI.DOM.appendNewElement("div", node, `Currently adjusting these prosthetics:`);
-		for (const _p of V.adjustProsthetics) {
-			if (_p.workLeft > 0) {
+		for (const p of V.adjustProsthetics) {
+			if (p.workLeft > 0) {
 				App.UI.DOM.appendNewElement("div", node,
-					`${capFirstChar(App.Data.prosthetics[_p.id].name)} for ${SlaveFullName(V.slaves[V.slaveIndices[_p.slaveID]])}`,
+					`${capFirstChar(App.Data.prosthetics[p.id].name)} for ${SlaveFullName(V.slaves[V.slaveIndices[p.slaveID]])}`,
 					"indent"
 				);
 			}
@@ -174,19 +173,19 @@ App.UI.prostheticLab = function() {
 		App.UI.DOM.appendNewElement("h3", node, "Tasks");
 
 		if (V.researchLab.tasks.length > 0) {
-			let _j = 0;
+			let j = 0;
 			if (V.researchLab.speed > 0) {
 				App.UI.DOM.appendNewElement("div", node, `The following tasks are queued:`);
 			} else {
 				App.UI.DOM.appendNewElement("div", node, `You have projects planned but without researchers you won't be able to work on them:`);
 			}
 
-			for (let _i = 0; _i < V.researchLab.tasks.length; _i++) {
+			for (let i = 0; i < V.researchLab.tasks.length; i++) {
 				const r = [];
-				switch (V.researchLab.tasks[_i].type) {
+				switch (V.researchLab.tasks[i].type) {
 					case "research":
 						r.push(`You`);
-						if (_i === 0) {
+						if (i === 0) {
 							r.push(`are researching`);
 						} else {
 							r.push(`plan to research`);
@@ -194,36 +193,36 @@ App.UI.prostheticLab = function() {
 						break;
 					case "craft":
 						r.push(`You`);
-						if (_i === 0) {
+						if (i === 0) {
 							r.push(`are constructing`);
 						} else {
 							r.push(`plan to construct`);
 						}
 						break;
 					case "craftFit":
-						r.push(`For <span class="noteworthy">${SlaveFullName(V.slaves[V.slaveIndices[V.researchLab.tasks[_i].slaveID]])}</span> you`);
-						if (_i === 0) {
+						r.push(`For <span class="noteworthy">${SlaveFullName(V.slaves[V.slaveIndices[V.researchLab.tasks[i].slaveID]])}</span> you`);
+						if (i === 0) {
 							r.push(`are constructing`);
 						} else {
 							r.push(`plan to construct`);
 						}
 						break;
 					default:
-						r.push(`<span class="error">Error: Unknown V.researchLab.tasks[_i].type: ${V.researchLab.tasks[_i].type}</span > `);
+						r.push(`<span class="error">Error: Unknown V.researchLab.tasks[_i].type: ${V.researchLab.tasks[i].type}</span > `);
 				}
-				_j += V.researchLab.tasks[_i].workLeft;
-				r.push(`<span class="noteworthy">${capFirstChar(App.Data.prosthetics[V.researchLab.tasks[_i].id].name)}.</span>`);
+				j += V.researchLab.tasks[i].workLeft;
+				r.push(`<span class="noteworthy">${capFirstChar(App.Data.prosthetics[V.researchLab.tasks[i].id].name)}.</span>`);
 				if (V.researchLab.speed > 0) {
-					r.push(`Finished in approximately ${(Math.floor(_j / V.researchLab.speed) + 1)} week(s).`);
+					r.push(`Finished in approximately ${(Math.floor(j / V.researchLab.speed) + 1)} week(s).`);
 				}
 
 				r.push(App.UI.DOM.link(
-					(V.researchLab.tasks[_i].type === "research") ? "Cancel: Will not return investments." : "Cancel",
+					(V.researchLab.tasks[i].type === "research") ? "Cancel: Will not return investments." : "Cancel",
 					() => {
-						if (V.researchLab.tasks[_i].type === "research") {
-							V.prosthetics[V.researchLab.tasks[_i].id].research = 0;
+						if (V.researchLab.tasks[i].type === "research") {
+							V.prosthetics[V.researchLab.tasks[i].id].research = 0;
 						}
-						V.researchLab.tasks.deleteAt(_i);
+						V.researchLab.tasks.deleteAt(i);
 						App.UI.reload();
 					}
 				));
@@ -236,22 +235,23 @@ App.UI.prostheticLab = function() {
 		App.UI.DOM.appendNewElement("h3", node, "Research");
 
 		App.UI.DOM.appendNewElement("div", node, `Available research projects:`);
-		for (let _p of App.Data.prostheticIDs) {
-			if (V.prosthetics[_p].research === 0) {
-				if (_p !== "erectile") { /* excludes erectile */
+		for (let p of App.Data.prostheticIDs) {
+			if (V.prosthetics[p].research === 0) {
+				if (p !== "erectile") { /* excludes erectile */
 					// <div class="indent">
-					if (App.Data.prosthetics[_p].level <= V.prostheticsUpgrade) {
+					if (App.Data.prosthetics[p].level <= V.prostheticsUpgrade) {
 						App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link(
-							`Reverse engineer ${addA(App.Data.prosthetics[_p].name)}`,
+							`Reverse engineer ${addA(App.Data.prosthetics[p].name)}`,
 							() => {
-								cashX(forceNeg(App.Data.prosthetics[_p].costs), "labResearch");
-								V.prosthetics[_p].research = -1;
-								V.researchLab.tasks.push({type: "research", id: _p, workLeft: App.Data.prosthetics[_p].research});
+								cashX(forceNeg(App.Data.prosthetics[p].costs), "labResearch");
+								V.prosthetics[p].research = -1;
+								V.researchLab.tasks.push({type: "research", id: p, workLeft: App.Data.prosthetics[p].research});
+								App.UI.reload();
 							}, [], "",
-							`Costs ${cashFormat(App.Data.prosthetics[_p].costs)} of initial investment.`
+							`Costs ${cashFormat(App.Data.prosthetics[p].costs)} of initial investment.`
 						), "indent");
 					} else {
-						App.UI.DOM.appendNewElement("div", node, `You need better contracts to get the required research material for reverse engineering ${addA(App.Data.prosthetics[_p].name)}.`, "note");
+						App.UI.DOM.appendNewElement("div", node, `You need better contracts to get the required research material for reverse engineering ${addA(App.Data.prosthetics[p].name)}.`, "note");
 					}
 				}
 			}
@@ -260,13 +260,13 @@ App.UI.prostheticLab = function() {
 		App.UI.DOM.appendNewElement("h3", node, "Manufacture");
 
 		r.push(`Available building projects:`);
-		for (let _p of App.Data.prostheticIDs) {
-			if (V.prosthetics[_p].research === 1) {
-				if (_p !== "erectile") { /* excludes erectile*/
+		for (let p of App.Data.prostheticIDs) {
+			if (V.prosthetics[p].research === 1) {
+				if (p !== "erectile") { /* excludes erectile*/
 					App.UI.DOM.appendNewElement("div", node, App.UI.DOM.link(
-						`Build ${addA(App.Data.prosthetics[_p].name)}`,
+						`Build ${addA(App.Data.prosthetics[p].name)}`,
 						() => {
-							V.researchLab.tasks.push({type: "craft", id: _p, workLeft: App.Data.prosthetics[_p].craft});
+							V.researchLab.tasks.push({type: "craft", id: p, workLeft: App.Data.prosthetics[p].craft});
 							App.UI.reload();
 						}
 					), "indent");
diff --git a/src/interaction/sellSlave.js b/src/interaction/sellSlave.js
index dcd96b949d677144831db76df159ae4ea1560274..cadfaacd5043554819a8d5d7dae338540b80a388 100644
--- a/src/interaction/sellSlave.js
+++ b/src/interaction/sellSlave.js
@@ -52,8 +52,8 @@ App.Interact.sellSlave = function(slave) {
 			t.push(`${He} tries to conceal ${his} terror at going from a trustworthy slave master to the cruel and uncertain world outside your penthouse, but ${he} fails.`);
 		}
 	}
-
-	cost = slaveCost(slave);
+	const costObj = slaveCost(slave, false, false, false, true);
+	cost = costObj.cost;
 	cost = (random(70, 80) * Math.trunc(cost / 100));
 
 	if (slave.breedingMark === 1 && V.propOutcome === 1 && V.arcologies[0].FSRestart !== "unset") {
@@ -341,7 +341,7 @@ App.Interact.sellSlave = function(slave) {
 					t.push(`${His} background should make ${him} a bit more trusting.`);
 				} else if (App.Data.Careers.General.menial.includes(slave.career)) {
 					t.push(`${His} background should make ${him} a bit more tractable.`);
-				} else if (App.Data.Careers.Leader.servant.includes(slave.career)) {
+				} else if (App.Data.Careers.General.servant.includes(slave.career)) {
 					t.push(`${His} background should make ${him} a good servant.`);
 				}
 			}
@@ -397,7 +397,7 @@ App.Interact.sellSlave = function(slave) {
 			if (slave.skill.wardeness >= V.masteredXP && !App.Data.Careers.Leader.wardeness.includes(slave.career)) {
 				careers.push("Wardeness");
 			}
-			if (slave.skill.servant >= V.masteredXP && !App.Data.Careers.Leader.servant.includes(slave.career)) {
+			if (slave.skill.servant >= V.masteredXP && !App.Data.Careers.General.servant.includes(slave.career)) {
 				careers.push("Servant");
 			}
 			if (slave.skill.entertainer >= V.masteredXP && !App.Data.Careers.General.entertainment.includes(slave.career)) {
@@ -903,7 +903,7 @@ App.Interact.sellSlave = function(slave) {
 		App.UI.DOM.appendNewElement("span", relist, ` This will cost ${cashFormat(500)}`);
 	}
 	if (V.debugMode) {
-		App.UI.DOM.appendNewElement("div", scene, `Base slave cost: `).append(App.UI.DOM.cashFormat(cost));
+		App.UI.DOM.appendNewElement("div", scene, `Estimated value: `).append(costObj.report);
 	}
 	const buyerKeys = [];
 	for (const [key, obj] of buyers) {
diff --git a/src/interaction/siPhysicalRegimen.js b/src/interaction/siPhysicalRegimen.js
index 6792d0d8d4b525c9d9993fe77c5de96b022b8d34..1736d8532eb7a5bb9bae1f09290945a23cba2d7b 100644
--- a/src/interaction/siPhysicalRegimen.js
+++ b/src/interaction/siPhysicalRegimen.js
@@ -546,9 +546,9 @@ App.UI.SlaveInteract.physicalRegimen = function(slave, refresh) {
 
 	function incubator() {
 		const reservedChildren = FetusGlobalReserveCount("incubator");
-		let _reservedIncubator = WombReserveCount(slave, "incubator");
-		let _reservedNursery = WombReserveCount(slave, "nursery");
-		let _WL = slave.womb.length;
+		let reservedIncubator = WombReserveCount(slave, "incubator");
+		let reservedNursery = WombReserveCount(slave, "nursery");
+		let WL = slave.womb.length;
 		let el = document.createElement('div');
 		const linkArray = [];
 
@@ -556,46 +556,46 @@ App.UI.SlaveInteract.physicalRegimen = function(slave, refresh) {
 			if (slave.preg > 0 && slave.broodmother === 0 && slave.pregKnown === 1 && slave.eggType === "human") {
 				if ((slave.assignment !== Job.DAIRY || V.dairyPregSetting === 0) && (slave.assignment !== Job.FARMYARD || V.farmyardBreeding === 0)) {
 					let title = document.createElement('div');
-					if (_WL - _reservedNursery === 0) {
+					if (WL - reservedNursery === 0) {
 						title.textContent = `${His} children are already reserved for ${V.nurseryName}`;
 						title.style.fontStyle = "italic";
 					} else {
 						const freeTanks = (V.incubator.capacity - V.incubator.tanks.length);
-						if (_reservedIncubator > 0) {
-							if (_WL === 1) {
+						if (reservedIncubator > 0) {
+							if (WL === 1) {
 								title.textContent = `${His} child `;
-							} else if (_reservedIncubator < _WL) {
-								title.textContent = `${_reservedIncubator} of ${his} children `;
-							} else if (_WL === 2) {
+							} else if (reservedIncubator < WL) {
+								title.textContent = `${reservedIncubator} of ${his} children `;
+							} else if (WL === 2) {
 								title.textContent = `Both of ${his} children `;
 							} else {
-								title.textContent = `All ${_reservedIncubator} of ${his} children `;
+								title.textContent = `All ${reservedIncubator} of ${his} children `;
 							}
 							title.textContent += ` will be placed in ${V.incubator.name}. `;
-							if ((_reservedIncubator + _reservedNursery < _WL) && (reservedChildren < freeTanks)) {
+							if ((reservedIncubator + reservedNursery < WL) && (reservedChildren < freeTanks)) {
 								linkArray.push(
 									App.UI.DOM.link(`Keep another child`, () => wombUpdateIncubator(1, true))
 								);
-								if (_reservedIncubator > 0) {
+								if (reservedIncubator > 0) {
 									linkArray.push(
 										App.UI.DOM.link(`Keep one less child`, () => wombUpdateIncubator(1, false))
 									);
 								}
-								if (_reservedIncubator > 1) {
+								if (reservedIncubator > 1) {
 									linkArray.push(
 										App.UI.DOM.link(`Keep none of ${his} children`, () => wombUpdateIncubator(9999, false))
 									);
 								}
-								if ((reservedChildren + _WL - _reservedIncubator) <= freeTanks) {
+								if ((reservedChildren + WL - reservedIncubator) <= freeTanks) {
 									linkArray.push(
 										App.UI.DOM.link(`Keep the rest of ${his} children`, () => wombUpdateIncubator(9999, true))
 									);
 								}
-							} else if ((_reservedIncubator === _WL) || (reservedChildren === freeTanks) || (_reservedIncubator - _reservedNursery >= 0)) {
+							} else if ((reservedIncubator === WL) || (reservedChildren === freeTanks) || (reservedIncubator - reservedNursery >= 0)) {
 								linkArray.push(
 									App.UI.DOM.link(`Keep one less child`, () => wombUpdateIncubator(1, false))
 								);
-								if (_reservedIncubator > 1) {
+								if (reservedIncubator > 1) {
 									linkArray.push(
 										App.UI.DOM.link(`Keep none of ${his} children`, () => wombUpdateIncubator(9999, false))
 									);
@@ -613,12 +613,12 @@ App.UI.SlaveInteract.physicalRegimen = function(slave, refresh) {
 								tank.textContent += `s`;
 							}
 							tank.textContent += `.`;
-							let _cCount = (_WL > 1 ? "a" : "the");
+							let cCount = (WL > 1 ? "a" : "the");
 							linkArray.push(
-								App.UI.DOM.link(`Keep ${_cCount} child`, () => wombUpdateIncubator(1, true))
+								App.UI.DOM.link(`Keep ${cCount} child`, () => wombUpdateIncubator(1, true))
 							);
 							title.appendChild(tank);
-							if ((_WL > 1) && (reservedChildren + _WL) <= freeTanks) {
+							if ((WL > 1) && (reservedChildren + WL) <= freeTanks) {
 								linkArray.push(
 									App.UI.DOM.link(`Keep all of ${his} children`, () => wombUpdateIncubator(9999, true))
 								);
@@ -651,27 +651,27 @@ App.UI.SlaveInteract.physicalRegimen = function(slave, refresh) {
 			const reservedChildrenNursery = FetusGlobalReserveCount("nursery");
 			let reservedIncubator = WombReserveCount(slave, "incubator");
 			let reservedNursery = WombReserveCount(slave, "nursery");
-			let _WL = slave.womb.length;
+			let WL = slave.womb.length;
 			if (slave.preg > 0 && slave.broodmother === 0 && slave.pregKnown === 1 && slave.eggType === "human") {
 				if ((slave.assignment !== Job.DAIRY || V.dairyPregSetting === 0) && (slave.assignment !== Job.FARMYARD || V.farmyardBreeding === 0)) {
 					let title = document.createElement('div');
 					const linkArray = [];
-					if (_WL - reservedIncubator === 0) {
+					if (WL - reservedIncubator === 0) {
 						title.textContent = `${His} children are already reserved for ${V.incubator.name}`;
 						title.style.fontStyle = "italic";
 					} else {
 						const freeCribs = (V.nursery - V.cribs.length);
 						if (reservedNursery > 0) {
-							if (_WL === 1) {
+							if (WL === 1) {
 								title.textContent = `${His} child will be placed in ${V.nurseryName}. `;
-							} else if (reservedNursery < _WL) {
+							} else if (reservedNursery < WL) {
 								title.textContent = `_reservedNursery of ${his} children will be placed in ${V.nurseryName}.`;
-							} else if (_WL === 2) {
+							} else if (WL === 2) {
 								title.textContent = `Both of ${his} children will be placed in ${V.nurseryName}. `;
 							} else {
 								title.textContent = `All ${reservedNursery} of ${his} children will be placed in ${V.nurseryName}. `;
 							}
-							if ((reservedIncubator + reservedNursery < _WL) && (reservedChildrenNursery < freeCribs)) {
+							if ((reservedIncubator + reservedNursery < WL) && (reservedChildrenNursery < freeCribs)) {
 								linkArray.push(
 									App.UI.DOM.link(`Keep another child`, () => wombUpdateNursery(1, true))
 								);
@@ -686,12 +686,12 @@ App.UI.SlaveInteract.physicalRegimen = function(slave, refresh) {
 										App.UI.DOM.link(`Keep none of ${his} children`, () => wombUpdateNursery(9999, false))
 									);
 								}
-								if ((reservedChildrenNursery + _WL - reservedNursery) <= freeCribs) {
+								if ((reservedChildrenNursery + WL - reservedNursery) <= freeCribs) {
 									linkArray.push(
 										App.UI.DOM.link(`Keep the rest of ${his} children`, () => wombUpdateNursery(9999, true))
 									);
 								}
-							} else if ((reservedNursery === _WL) || (reservedChildrenNursery === freeCribs) || (reservedNursery - reservedIncubator >= 0)) {
+							} else if ((reservedNursery === WL) || (reservedChildrenNursery === freeCribs) || (reservedNursery - reservedIncubator >= 0)) {
 								linkArray.push(
 									App.UI.DOM.link(`Keep one less child`, () => wombUpdateNursery(1, false))
 								);
@@ -714,12 +714,12 @@ App.UI.SlaveInteract.physicalRegimen = function(slave, refresh) {
 								crib.textContent += `s`;
 							}
 							crib.textContent += `.`;
-							let _cCount = (_WL > 1 ? "a" : "the");
+							let cCount = (WL > 1 ? "a" : "the");
 							linkArray.push(
-								App.UI.DOM.link(`Keep ${_cCount} child`, () => wombUpdateNursery(1, true))
+								App.UI.DOM.link(`Keep ${cCount} child`, () => wombUpdateNursery(1, true))
 							);
 							title.appendChild(crib);
-							if ((_WL > 1) && (reservedChildrenNursery + _WL) <= freeCribs) {
+							if ((WL > 1) && (reservedChildrenNursery + WL) <= freeCribs) {
 								linkArray.push(
 									App.UI.DOM.link(`Keep all of ${his} children`, () => wombUpdateNursery(9999, true))
 								);
diff --git a/src/interaction/siRules.js b/src/interaction/siRules.js
index 38dec6cc4d89dad50327ce1f548d4e537eb00d5c..32d9c50c8993d8eaeaa9ac259a19878c9159b6de 100644
--- a/src/interaction/siRules.js
+++ b/src/interaction/siRules.js
@@ -181,10 +181,10 @@ App.UI.SlaveInteract.rules = function(slave, refresh) {
 		div = document.createElement("div");
 		div.append("Typical punishment: ");
 		choices = [
-			{value: "confinement"},
-			{value: "whipping"},
-			{value: "chastity"},
-			{value: "situational"},
+			{value: "confinement", tooltip: App.UI.DOM.combineNodes(`Increases `, App.UI.DOM.makeElement("span", `fear`, ["trust", "dec"]), ` when the slave is punished.`)},
+			{value: "whipping", tooltip: App.UI.DOM.combineNodes(`Significantly increases `, App.UI.DOM.makeElement("span", `fear`, ["trust", "dec"]), ` at the cost of `, App.UI.DOM.makeElement("span", `health`, ["health", "dec"]), ` when the slave is punished.`)},
+			{value: "chastity", tooltip: App.UI.DOM.combineNodes(`Increases both `, App.UI.DOM.makeElement("span", `fear`, ["trust", "dec"]), ` and `, App.UI.DOM.makeElement("span", `devotion`, ["devotion", "inc"]),  ` at the cost of `, App.UI.DOM.makeElement("span", `libido`, ["libido", "dec"]), ` when the slave is punished.`)},
+			{value: "situational", tooltip: App.UI.DOM.combineNodes(`Increases `, App.UI.DOM.makeElement("span", `fear`, ["trust", "dec"]), ` when the slave is punished.`)},
 		];
 		div.append(listChoices(choices, "punishment"));
 		p.append(div);
@@ -193,10 +193,10 @@ App.UI.SlaveInteract.rules = function(slave, refresh) {
 		div = document.createElement("div");
 		div.append("Typical reward: ");
 		choices = [
-			{value: "relaxation"},
-			{value: "drugs"},
-			{value: "orgasm"},
-			{value: "situational"},
+			{value: "relaxation", tooltip: App.UI.DOM.combineNodes(`Improves `, App.UI.DOM.makeElement("span", `health`, ["health", "inc"]), ` when a reward is earned.`)},
+			{value: "drugs", tooltip: App.UI.DOM.combineNodes(`Significantly improves `, App.UI.DOM.makeElement("span", `devotion`, ["devotion", "inc"]), ` at the cost of `, App.UI.DOM.makeElement("span", `health`, ["health", "dec"]), ` when a reward is earned.`)},
+			{value: "orgasm", tooltip: App.UI.DOM.combineNodes(`Improves `, App.UI.DOM.makeElement("span", `devotion`, ["devotion", "inc"]), ` and raises `, App.UI.DOM.makeElement("span", `libido`, ["libido", "inc"]), ` when a reward is earned.`)},
+			{value: "situational", tooltip: App.UI.DOM.combineNodes(`Improves `, App.UI.DOM.makeElement("span", `devotion`, ["devotion", "inc"]), ` when a reward is earned.`)},
 		];
 		div.append(listChoices(choices, "reward"));
 		p.append(div);
@@ -272,7 +272,7 @@ App.UI.SlaveInteract.rules = function(slave, refresh) {
 	 * @typedef {Object} listChoice
 	 * @property {string} value
 	 * @property {string} [title]
-	 * @property {string} [tooltip]
+	 * @property {string|HTMLElement|DocumentFragment} [tooltip]
 	 * @property {Array<string>} [disabled]
 	 */
 
@@ -295,7 +295,7 @@ App.UI.SlaveInteract.rules = function(slave, refresh) {
 				links.push(
 					App.UI.DOM.disabledLink(
 						title,
-						["Current Setting"]
+						c.tooltip ? ["Current Setting", c.tooltip] : ["Current Setting"]
 					)
 				);
 			} else {
diff --git a/src/interaction/subordinateTargeting.js b/src/interaction/subordinateTargeting.js
index a16d660adc3d2199df0ed1e5948724b568d1941c..39314d625557b6ef67eccf4a183f175ba09acae2 100644
--- a/src/interaction/subordinateTargeting.js
+++ b/src/interaction/subordinateTargeting.js
@@ -16,10 +16,10 @@ App.UI.subordinateTargeting = function() {
 	if (slave.assignment !== "be a subordinate slave") {
 		assignJob(slave, "be a subordinate slave");
 	}
-	const _st = V.slaveIndices[slave.subTarget];
+	const st = getSlave(slave.subTarget);
 	r.push(slave.slaveName);
-	if (_st) {
-		r.push(`will submit to <span class='slave-name'>${V.slaves[_st].slaveName}</span> this week.`);
+	if (st) {
+		r.push(`will submit to <span class='slave-name'>${st.slaveName}</span> this week.`);
 	} else if (slave.subTarget === -1) {
 		r.push(`is acting as your Stud and is tasked with keeping your chattel pregnant.`);
 	} else {
@@ -56,7 +56,7 @@ App.UI.subordinateTargeting = function() {
 			}
 		));
 		App.UI.DOM.appendNewElement("h2", node, `Select a slave for ${him} to submit to, sexually:`);
-		r.push(App.UI.SlaveList.slaveSelectionList(
+		node.append(App.UI.SlaveList.slaveSelectionList(
 			s => s.devotion >= -20 && s.fuckdoll === 0 && V.AS !== s.ID &&
 			(!isAmputee(getSlave(V.AS)) || !isAmputee(s)),
 			(s) => App.UI.DOM.passageLink(SlaveFullName(s), 'Subordinate Targeting', () => { getSlave(V.AS).subTarget = s.ID; }),
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index 701e7878aa843a3f9c1534823100f1d8c006af4e..596863bca5b2d7b14fd6a77804bc57dc6c18d053 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -1310,22 +1310,22 @@ globalThis.DefaultRules = (function() {
 		}
 
 		/** @type {{drug: FC.Drug, weight: number}[]} */
-		let _priorities = [];
-		drugs(slave, "boobs", rule.growth.boobs, _priorities, 200);
-		drugs(slave, "butt", rule.growth.butt, _priorities, 1);
-		drugs(slave, "lips", rule.growth.lips, _priorities, 1);
-		drugs(slave, "dick", rule.growth.dick, _priorities, 1);
-		drugs(slave, "balls", rule.growth.balls, _priorities, 1);
-
-		if (_priorities.length > 0) {
-			const action = _priorities.reduce((acc, cur) => (acc.weight > cur.weight) ? acc : cur);
+		let priorities = [];
+		drugs(slave, "boobs", rule.growth.boobs, priorities, 200);
+		drugs(slave, "butt", rule.growth.butt, priorities, 1);
+		drugs(slave, "lips", rule.growth.lips, priorities, 1);
+		drugs(slave, "dick", rule.growth.dick, priorities, 1);
+		drugs(slave, "balls", rule.growth.balls, priorities, 1);
+
+		if (priorities.length > 0) {
+			const action = priorities.reduce((acc, cur) => (acc.weight > cur.weight) ? acc : cur);
 			if (slave.drugs !== action.drug) {
 				slave.drugs = action.drug;
 				r += `<br>${slave.slaveName} has been put on ${slave.drugs}, since `;
 				if (action.drug.startsWith("intensive")) {
 					r += `${he}'s healthy enough to take them, and `;
 				}
-				if (_priorities.length > 1) {
+				if (priorities.length > 1) {
 					r += `that part of ${his} body is `;
 					if (!isNaN(action.weight)) {
 						r += `${Math.trunc(action.weight * 100)}% `;
@@ -1819,12 +1819,12 @@ globalThis.DefaultRules = (function() {
 			if (slave.balls === 0) {
 				if ((rule.gelding !== undefined) && (rule.gelding !== null)) {
 					if (slave.hormones !== rule.gelding) {
-						const _oldHormones = slave.hormones;
+						const oldHormones = slave.hormones;
 						slave.hormones = rule.gelding;
 						if (slave.indentureRestrictions >= 2) {
 							slave.hormones = Math.clamp(slave.hormones, -1, 1);
 						}
-						if (slave.hormones !== _oldHormones) {
+						if (slave.hormones !== oldHormones) {
 							r += `<br>${slave.slaveName} is a gelding, so ${he} has been put on the appropriate hormonal regime.`;
 						}
 					}
@@ -1832,12 +1832,12 @@ globalThis.DefaultRules = (function() {
 			} else if (slave.balls > 0) {
 				if ((rule.XY !== undefined) && (rule.XY !== null)) {
 					if (slave.hormones !== rule.XY) {
-						const _oldHormones = slave.hormones;
+						const oldHormones = slave.hormones;
 						slave.hormones = rule.XY;
 						if (slave.indentureRestrictions >= 2) {
 							slave.hormones = Math.clamp(slave.hormones, -1, 1);
 						}
-						if (slave.hormones !== _oldHormones) {
+						if (slave.hormones !== oldHormones) {
 							r += `<br>${slave.slaveName} is a shemale, so ${he} has been put on the appropriate hormonal regime.`;
 						}
 					}
@@ -1853,12 +1853,12 @@ globalThis.DefaultRules = (function() {
 	function ProcessFemaleHormones(slave, rule) {
 		if ((slave.vagina > -1) && (slave.dick === 0) && (rule.XX !== undefined) && (rule.XX !== null)) {
 			if (slave.hormones !== rule.XX) {
-				const _oldHormones = slave.hormones;
+				const oldHormones = slave.hormones;
 				slave.hormones = rule.XX;
 				if (slave.indentureRestrictions >= 2) {
 					slave.hormones = Math.clamp(slave.hormones, -1, 1);
 				}
-				if (slave.hormones !== _oldHormones) {
+				if (slave.hormones !== oldHormones) {
 					r += `<br>${slave.slaveName} is a female, so ${he} has been put on the appropriate hormonal regime.`;
 				}
 			}
diff --git a/src/js/SetBellySize.js b/src/js/SetBellySize.js
index 0e2218877886dc4777bd8144e39ef5deed4c1e49..f5189b82926ee5f3a97602eea198e58acec2c2a4 100644
--- a/src/js/SetBellySize.js
+++ b/src/js/SetBellySize.js
@@ -4,7 +4,7 @@
 globalThis.SetBellySize = function(slave) {
 	WombNormalizePreg(slave); /* now with support for legacy code that advances pregnancy by setting .preg++ */
 
-	const _implantSize = (slave.bellyImplant > 0) ? slave.bellyImplant : 0;
+	const implantSize = (slave.bellyImplant > 0) ? slave.bellyImplant : 0;
 
 	if (slave.inflation === 3) {
 		slave.bellyFluid = 10000;
@@ -16,5 +16,5 @@ globalThis.SetBellySize = function(slave) {
 		slave.bellyFluid = 0;
 	}
 
-	slave.belly = slave.bellyPreg + slave.bellyFluid + _implantSize;
+	slave.belly = slave.bellyPreg + slave.bellyFluid + implantSize;
 };
diff --git a/src/js/assignJS.js b/src/js/assignJS.js
index 8ef3d419636439ab1b813ddd8c39dc049058882e..c5be95ee701831ef63eee43b88a69fcb1e8ebdbe 100644
--- a/src/js/assignJS.js
+++ b/src/js/assignJS.js
@@ -473,8 +473,8 @@ globalThis.assignJobSafely = function(slave, assignmentStr) {
 globalThis.removeJob = function(slave, assignment, saveRecord = false) {
 	if (!slave) {
 		// it is well-formed, but does nothing, to remove an assignment from nobody.
-		// this lets us call <<run removeJob(_S.HeadGirl, Job.HEADGIRL)>> and similar,
-		// without first checking to see whether a slave is really assigned to _S.HeadGirl or not.
+		// this lets us call removeJob(S.HeadGirl, Job.HEADGIRL) and similar,
+		// without first checking to see whether a slave is really assigned to S.HeadGirl or not.
 		return '';
 	}
 
diff --git a/src/js/birth/birth.js b/src/js/birth/birth.js
index fab3eb3645bc727c429875c081b03a57fa6f993e..bec390fac9d8a2b3e35d70136c52663b49770bdc 100644
--- a/src/js/birth/birth.js
+++ b/src/js/birth/birth.js
@@ -2661,7 +2661,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false, artRen
 									r.push(`${He} begins desperately begging to be taken back to ${his} bed; instead you pull ${him} towards the couch and take a seat with ${him} in your lap, back against your front. Blushing thoroughly, ${he} gives a meek protest before focusing on the coming birth, rather than your wandering hands. ${He} begins to push out ${firstText} baby${UH}.`);
 									humiliation = 1;
 								}
-								r.push(`${His} child is promptly taken and, following a shower and a fresh change of clothes, ${he} is helped back to your office${(slave.devotion < -20) ? `where you are waiting to enjoy ${his} still very gravid body` : ``}.`);
+								r.push(`${His} child is promptly taken and, following a shower and a fresh change of clothes, ${he} is helped back to your office${(slave.devotion < -20) ? ` where you are waiting to enjoy ${his} still very gravid body` : ``}.`);
 							} else {
 								r.push(`While sitting nearby, ${slave.slaveName}'s water breaks, startling ${him}. ${He} looks to you for guidance and you shake your head "no". Without permission to leave ${he}`);
 								if (slave.devotion > 50) {
@@ -2695,7 +2695,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false, artRen
 									r.push(`${He} attempts to leave your office and return to ${his} bed, but you catch ${his} arm before ${he} slips out of reach. You order ${him} to strip and give you a show. Blushing thoroughly, ${he} gives a meek performance before falling to the floor. ${He} begins to push out ${firstText} baby${UH}.`);
 									humiliation = 1;
 								}
-								r.push(`${His} child is promptly taken and, following a shower and a fresh change of clothes, ${he} waddles back into your office${(slave.devotion < -20) ? `where you are waiting to enjoy ${his} still very gravid body` : ``}.`);
+								r.push(`${His} child is promptly taken and, following a shower and a fresh change of clothes, ${he} waddles back into your office${(slave.devotion < -20) ? ` where you are waiting to enjoy ${his} still very gravid body` : ``}.`);
 							} else {
 								r.push(`While standing nearby, ${slave.slaveName}'s water breaks, startling ${him}. ${He} looks to you for guidance and you shake your head "no". Without permission to leave ${he}`);
 								if (slave.devotion > 50) {
@@ -3425,7 +3425,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false, artRen
 				case Job.TEACHER:
 					if (!canWalk(slave)) {
 						if (random(1, 20) > suddenBirth) {
-							r.push(`${He} calls for ${his} teaching aid to help position ${him} so the class may receive a lesson on childbirth. ${He} begins working on birthing ${firstText} baby, fully aware of ${his} watching students. ${He} demonstrates the proper ways to labor and how to deliver a baby${(slave.geneticQuirks.uterineHypersensitivity === 2) ? `even if your body is wracked by nonstop orgasm` : ``}. ${He} explains the infant's future as ${his} child taken and excuses the class for a short break in order to freshen up. Upon their return, ${he} begins a lesson on being a broodmother, as there is always a curious face locked onto ${his} still very gravid middle.`);
+							r.push(`${He} calls for ${his} teaching aid to help position ${him} so the class may receive a lesson on childbirth. ${He} begins working on birthing ${firstText} baby, fully aware of ${his} watching students. ${He} demonstrates the proper ways to labor and how to deliver a baby${(slave.geneticQuirks.uterineHypersensitivity === 2) ? ` even if your body is wracked by nonstop orgasm` : ``}. ${He} explains the infant's future as ${his} child taken and excuses the class for a short break in order to freshen up. Upon their return, ${he} begins a lesson on being a broodmother, as there is always a curious face locked onto ${his} still very gravid middle.`);
 							humiliation = 1;
 						} else {
 							r.push(`While teaching a lesson, ${slave.slaveName}'s water breaks. Sensing ${he} wouldn't be able to make it to the birthing area, ${he} instead chooses to act on the opportunity. Today's lesson will be on childbirth.`);
@@ -3441,7 +3441,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false, artRen
 							} else {
 								r.push(`is`);
 							}
-							r.push(`a regular occurrence in ${his} life and it would be a waste to not work it into ${his} lesson plan. ${He} wiggles ${himself} into a comfortable spot and begins working on birthing ${firstText} baby, fully aware of ${his} watching students. ${He} demonstrates the proper ways to labor and how to deliver a baby${(slave.geneticQuirks.uterineHypersensitivity === 2) ? `even if your body is wracked by nonstop orgasm` : ``}. ${He} explains the infant's future as ${his} child is taken and excuses the class for a short break in order to freshen up. Upon their return, ${he} begins a lesson on being a broodmother, as there is always a curious face locked onto ${his} still very gravid middle.`);
+							r.push(`a regular occurrence in ${his} life and it would be a waste to not work it into ${his} lesson plan. ${He} wiggles ${himself} into a comfortable spot and begins working on birthing ${firstText} baby, fully aware of ${his} watching students. ${He} demonstrates the proper ways to labor and how to deliver a baby${(slave.geneticQuirks.uterineHypersensitivity === 2) ? ` even if your body is wracked by nonstop orgasm` : ``}. ${He} explains the infant's future as ${his} child is taken and excuses the class for a short break in order to freshen up. Upon their return, ${he} begins a lesson on being a broodmother, as there is always a curious face locked onto ${his} still very gravid middle.`);
 							humiliation = 1;
 						} else {
 							r.push(`While teaching a lesson, ${slave.slaveName}'s water breaks. Sensing ${he} wouldn't be able to make it to the birthing area, ${he} instead chooses to act on the opportunity. Today's lesson will be on childbirth.`);
@@ -5195,7 +5195,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false, artRen
 								r.push(`${He} begins desperately begging to be taken back to ${his} bed; instead you pull ${him} towards the couch and take a seat with ${him} in your lap, back against your front. Blushing thoroughly, ${he} gives a meek protest before focusing on the coming birth, rather than your wandering hands.`);
 								humiliation = 1;
 							}
-							r.push(`${He} begins to push out ${his} ${babies}${UH}. ${His} ${childrenAre} promptly taken and, following a shower and a fresh change of clothes, ${he} is helped back to your office${(slave.devotion < -20) ? `where you are waiting to enjoy ${his} exhausted body` : ``}.`);
+							r.push(`${He} begins to push out ${his} ${babies}${UH}. ${His} ${childrenAre} promptly taken and, following a shower and a fresh change of clothes, ${he} is helped back to your office${(slave.devotion < -20) ? ` where you are waiting to enjoy ${his} exhausted body` : ``}.`);
 						}
 					} else {
 						if (slave.fetish === "mindbroken") {
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index 66b120a0af2428319d61207e260097313ef9f9ff..21c3b37531e63426a3ccf40edd38e757a71940f1 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -871,7 +871,7 @@ globalThis.calculateCosts = (function() {
 		if (slave.assignment === Job.QUARTER) {
 			effectiveness *= 1.1;
 		}
-		if (App.Data.Careers.Leader.servant.includes(slave.career) || slave.skill.servant >= V.masteredXP) {
+		if (App.Data.Careers.General.servant.includes(slave.career) || slave.skill.servant >= V.masteredXP) {
 			effectiveness *= 1.1;
 		}
 		effectiveness = Math.trunc(effectiveness * restEffects(slave) / 10);
@@ -2199,7 +2199,7 @@ The new system will still happily spend your money, but it will also record it i
 
 Let's say you were going to spend 100 on your favorite slave with cashX. You might try:
 
-<<run cashX(-100, "slaveMod", _slave)>>
+<<run cashX(-100, "slaveMod", slave)>>
 
 There we go!
 1. -100 taken from your account
@@ -2210,7 +2210,7 @@ cashX can be used in JS as well, and can be included in [[]] style links.
 
 Make sure that expenses arrive in the COST slot as a negative, they are often positive in code. Use the new function forceNeg or pass it along on a temporary variable if needed.
 
-Costs don't have to be numbers either, you can use variables. <<run cashX(forceNeg(_ContractCost), "slaveTransfer", _slave)>>. forceNeg makes sure that whatever value _ContractCost has is negative, and will therefore be recorded as an expense. You don't have to use it if you're sure the number you are passing along is negative.
+Costs don't have to be numbers either, you can use variables. <<run cashX(forceNeg(ContractCost), "slaveTransfer", slave)>>. forceNeg makes sure that whatever value ContractCost has is negative, and will therefore be recorded as an expense. You don't have to use it if you're sure the number you are passing along is negative.
 
 A full list of categories (slaveMod, slaveTransfer, event) are in App.Data.Records.LastWeeksCash(). It's important to match your cost to one of those categories (or add a new one there, and display it in costsBudget.tw.)
 
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index ba91c31f00c6b6e3bbc786f9793cf476c4dd98c3..3bc5ac5536baf2e7ba79822317e3471bfa1a82a1 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -46,65 +46,7 @@ globalThis.generateRandomEventPool = function(eventSlave) {
 					}
 				}
 
-				if (V.HeadGirlID !== 0) {
-					if (eventSlave.assignment !== Job.QUARTER) {
-						if (eventSlave.ID === V.HeadGirlID) {
-							if (eventSlave.trust > 50) {
-								V.RESSevent.push("trusting HG");
-							}
-						}
-					}
-				}
-
-				if (eventSlave.assignment !== Job.QUARTER) {
-					if (eventSlave.devotion <= 50) {
-						if (eventSlave.devotion >= -20) {
-							if (eventSlave.weekAcquired > 0) {
-								if (V.week - eventSlave.weekAcquired < 10) {
-									if (eventSlave.energy > 20) {
-										if (eventSlave.anus !== 0) {
-											if (eventSlave.vagina !== 0) {
-												V.RESSevent.push("ignorant horny");
-											}
-										}
-									}
-								}
-							}
-						}
-					}
-				}
-
 				if (eventSlave.assignment !== Job.QUARTER) {
-					if (V.modRequestsAllowed > 0) {
-						if (eventSlave.trust > 50) {
-							if (eventSlave.devotion > 20) {
-								if (eventSlave.dick !== 0 || eventSlave.vagina !== -1) {
-									if (eventSlave.nipples !== "fuckable") {
-										if (eventSlave.rules.speech === "permissive") {
-											if (eventSlave.corsetPiercing === 0) {
-												if (eventSlave.tonguePiercing === 0) {
-													if (eventSlave.anusPiercing === 0) {
-														if (eventSlave.nipplesPiercing === 0) {
-															if (eventSlave.dickPiercing === 0) {
-																if (eventSlave.vaginaPiercing === 0) {
-																	if (eventSlave.lipsTat === 0 || eventSlave.lipsTat === "none") {
-																		if (eventSlave.vaginaTat === 0 || eventSlave.vaginaTat === "none") {
-																			V.RESSevent.push("mods please");
-																		}
-																	}
-																}
-															}
-														}
-													}
-												}
-											}
-										}
-									}
-								}
-							}
-						}
-					}
-
 					if (eventSlave.muscles > 5) {
 						if (eventSlave.devotion > 20) {
 							if (eventSlave.diet !== "slimming") {
@@ -162,28 +104,6 @@ if(eventSlave.drugs === "breast injections") {
 */
 				}
 
-				if (eventSlave.assignment !== Job.QUARTER) {
-					if (eventSlave.devotion < -50) {
-						if (eventSlave.trust >= -20) {
-							if (eventSlave.rules.speech === "restrictive") {
-								V.RESSevent.push("vocal disobedience");
-							}
-						}
-					}
-				}
-
-				if (V.boobAccessibility !== 1 && V.ballsAccessibility !== 1 && V.pregAccessibility !== 1) {
-					if (eventSlave.boobs > 10000) {
-						if (eventSlave.devotion >= -20) {
-							if (V.slaves.length > 2) {
-								if (canDoAnal(eventSlave) || canDoVaginal(eventSlave)) {
-									V.RESSevent.push("huge tits");
-								}
-							}
-						}
-					}
-				}
-
 				if (eventSlave.assignment !== Job.QUARTER) {
 					if (eventSlave.physicalAge > 30) {
 						if (eventSlave.ageImplant > 0) {
@@ -204,22 +124,6 @@ if(eventSlave.drugs === "breast injections") {
 					}
 				}
 
-				if (eventSlave.fetish === "humiliation" || eventSlave.energy > 95) {
-					if (eventSlave.devotion <= 50) {
-						if (eventSlave.devotion >= -20) {
-							if (canDoAnal(eventSlave) || canDoVaginal(eventSlave)) {
-								if (eventSlave.vagina !== 0) {
-									if (eventSlave.anus !== 0) {
-										if (eventSlave.fetishKnown === 1) {
-											V.RESSevent.push("fearful humiliation");
-										}
-									}
-								}
-							}
-						}
-					}
-				}
-
 				if (V.spa > 0) {
 					if (eventSlave.boobs > 2000) {
 						if (eventSlave.devotion > 20) {
@@ -345,31 +249,6 @@ if(eventSlave.drugs === "breast injections") {
 				}
 			}
 
-			if (V.seeAge === 1) {
-				if (eventSlave.actualAge < 18) {
-					if (eventSlave.devotion > 20) {
-						if (eventSlave.ovaries === 1) {
-							if (eventSlave.pubertyXX === 0) {
-								if (eventSlave.preg === 0) {
-									if (eventSlave.physicalAge + eventSlave.birthWeek / 52 >= eventSlave.pubertyAgeXX - 0.5) {
-										V.RESSevent.push(...Array.from({length: 10}, () => "first period"));
-									}
-								}
-							}
-						}
-						if (canPenetrate(eventSlave)) {
-							if (eventSlave.balls > 0) {
-								if (eventSlave.pubertyXY === 0) {
-									if (eventSlave.physicalAge + eventSlave.birthWeek / 52 >= eventSlave.pubertyAgeXY - 0.5) {
-										V.RESSevent.push(...Array.from({length: 10}, () => "wet dreams"));
-									}
-								}
-							}
-						}
-					}
-				}
-			} /* closes aging exemption */
-
 			if (eventSlave.assignment !== Job.QUARTER) {
 				if (eventSlave.boobs > 600) {
 					if (eventSlave.boobShape === "torpedo-shaped") {
@@ -424,22 +303,6 @@ if(eventSlave.drugs === "breast injections") {
 				}
 			}
 
-			if (eventSlave.balls > 0) {
-				if (eventSlave.scrotum > 0) {
-					if (eventSlave.chastityPenis === 1) {
-						if (eventSlave.devotion <= 95) {
-							if (eventSlave.energy > 50) {
-								if (eventSlave.energy < 95) {
-									if (eventSlave.devotion >= -20 || eventSlave.trust < -20) {
-										V.RESSevent.push("cage relief");
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-
 			if (eventSlave.trust <= 20) {
 				if (eventSlave.trust >= -75) {
 					if (eventSlave.devotion <= 30) {
@@ -489,18 +352,6 @@ if(eventSlave.drugs === "breast injections") {
 				}
 			}
 
-			if ([Job.PUBLIC, Job.WHORE].includes(eventSlave.assignment)) {
-				if (eventSlave.vagina !== 0) {
-					if (eventSlave.anus !== 0) {
-						if (canDoAnal(eventSlave)) {
-							if (eventSlave.devotion <= 50) {
-								V.RESSevent.push("used whore");
-							}
-						}
-					}
-				}
-			}
-
 			if (eventSlave.assignment === Job.PUBLIC) {
 				if (eventSlave.devotion >= -20) {
 					if (canDoAnal(eventSlave) || canDoVaginal(eventSlave)) {
@@ -538,16 +389,6 @@ if(eventSlave.drugs === "breast injections") {
 					}
 				}
 			}
-
-			if (eventSlave.assignment !== Job.QUARTER) {
-				if (eventSlave.rules.speech === "restrictive") {
-					if (eventSlave.devotion > 60) {
-						if (eventSlave.trust >= -20) {
-							V.RESSevent.push("restricted profession");
-						}
-					}
-				}
-			}
 		} /* closes mute exempt */
 		if (eventSlave.assignment !== Job.QUARTER) {
 			if (eventSlave.boobs > 25000) {
@@ -643,28 +484,6 @@ if(eventSlave.drugs === "breast injections") {
 			}
 		}
 
-		if (eventSlave.vaginaPiercing > 1) {
-			if (eventSlave.nipplesPiercing > 1) {
-				if (eventSlave.clitPiercing > 1) {
-					if (eventSlave.devotion > 20 || eventSlave.trust < -20) {
-						if (eventSlave.devotion <= 50) {
-							if (canDoAnal(eventSlave) || canDoVaginal(eventSlave)) {
-								V.RESSevent.push("heavy piercing");
-							}
-						}
-					}
-				}
-			}
-		}
-
-		if (eventSlave.anus === 0) {
-			if (eventSlave.devotion < -20) {
-				if (eventSlave.trust >= -20) {
-					V.RESSevent.push("resistant anal virgin");
-				}
-			}
-		}
-
 		if (V.PC.dick !== 0) {
 			if (eventSlave.bellyPreg >= 300000) {
 				V.RESSevent.push("hyperpreg stuck");
@@ -702,9 +521,6 @@ globalThis.populateEventArray = function(RESS = V.RESSevent.length, RESSTR = V.R
 	for (i = 0; i < RECI; i++) {
 		events.push("RECI");
 	}
-	if (events.length === 0) {
-		events.push("RE no event");
-	}
 
 	return events;
 };
diff --git a/src/js/ibcJS.js b/src/js/ibcJS.js
index 938c44a0cba32df56e31814fadc424ff173f6530..79be763d94e0f2da03d02644b8d31f739d43bea1 100644
--- a/src/js/ibcJS.js
+++ b/src/js/ibcJS.js
@@ -149,11 +149,11 @@ globalThis.ibc = (() => {
 	};
 
 	let kinship = (mother, father) => {
-		let _coeff = 0;
+		let coeffNum = 0;
 		if (!mother || !father) {
-			_coeff = 0;
+			coeffNum = 0;
 		} else if (mother === father) {
-			_coeff = 0.5 * (1 + coeff(mother));
+			coeffNum = 0.5 * (1 + coeff(mother));
 		} else {
 			let cf = 0;
 			let cmn = common(mother, father);
@@ -202,10 +202,10 @@ globalThis.ibc = (() => {
 				});
 			});
 
-			_coeff = cf;
+			coeffNum = cf;
 		}
 
-		return _coeff;
+		return coeffNum;
 	};
 
 	// Determine the coefficient of inbreeding of a node `n`
diff --git a/src/js/relationshipChecks.js b/src/js/relationshipChecks.js
index 86c50e712b0ffa71d35a5f63cb69f89cd23310eb..449e5a49db90f02c0a7415268c7e6e1b02a6a893 100644
--- a/src/js/relationshipChecks.js
+++ b/src/js/relationshipChecks.js
@@ -92,9 +92,9 @@ globalThis.contextualIntro = function(context, actor, asLink = false, insertComm
 		r += preamble() + rivalryTerm(context);
 	}
 
-	const _relative = relativeTerm(context, actor);
-	if (_relative) {
-		r += preamble() + _relative;
+	const relative = relativeTerm(context, actor);
+	if (relative) {
+		r += preamble() + relative;
 	}
 
 	if (r !== ``) {
diff --git a/src/js/removeSlave.js b/src/js/removeSlave.js
index 4dcacd4f845193792e3608552502fc67bfddd9fd..a2a818de48eff4372f50c809f627e098293759e7 100644
--- a/src/js/removeSlave.js
+++ b/src/js/removeSlave.js
@@ -183,16 +183,16 @@ globalThis.removeSlave = function(slave) {
 		V.organs.deleteWith(s => s.ID === AS_ID);
 		V.completedOrgans.deleteWith(s => s.ID === AS_ID);
 
-		for (let _o = 0; _o < V.adjustProsthetics.length; _o++) {
-			if (V.adjustProsthetics[_o].ID === AS_ID) {
-				V.adjustProsthetics.deleteAt(_o);
+		for (let o = 0; o < V.adjustProsthetics.length; o++) {
+			if (V.adjustProsthetics[o].ID === AS_ID) {
+				V.adjustProsthetics.deleteAt(o);
 				V.adjustProstheticsCompleted--;
-				_o--;
+				o--;
 			}
 		}
 
-		const _geneIndex = V.genePool.findIndex(s => s.ID === AS_ID);
-		if (_geneIndex !== -1) {
+		const geneIndex = V.genePool.findIndex(s => s.ID === AS_ID);
+		if (geneIndex !== -1) {
 			let keep = false;
 			if (V.traitor !== 0) {
 				if (isImpregnatedBy(V.traitor, slave) || V.traitor.ID === AS_ID) {
@@ -218,7 +218,7 @@ globalThis.removeSlave = function(slave) {
 				});
 			}
 			if (!keep) {
-				V.genePool.deleteAt(_geneIndex);
+				V.genePool.deleteAt(geneIndex);
 			}
 		}
 		Object.values(V.missingTable).forEach(s => {
diff --git a/src/js/salon.js b/src/js/salon.js
index 4b61934b1d1e48509ff7a27d9193935cfff450d5..b6e973a78c2c4eeddecc703ed6ceb9d12b92c590 100644
--- a/src/js/salon.js
+++ b/src/js/salon.js
@@ -69,8 +69,8 @@ App.Medicine.Modification.eyeSelector = function(entity, cheat = false) {
 	function assembleList(name, list, callback, selected) {
 		const links = [];
 
-		for (let i = 0; i < list.length; i++) {
-			addToggle(list[i], callback, links, list[i] === selected);
+		for (const item of list) {
+			addToggle(item, callback, links, item === selected);
 		}
 
 		const div = document.createElement("div");
@@ -344,7 +344,7 @@ App.Medicine.Salon.ears = function(slave, cheat = false) {
 	}
 
 	function apply() {
-		App.Event.refreshEventArt(slave);
+		App.Events.refreshEventArt(slave);
 		jQuery(container).empty().append(content());
 	}
 };
@@ -377,14 +377,11 @@ App.Medicine.Salon.tail = function(slave, cheat = false) {
 
 	function tailDye() {
 		const frag = new DocumentFragment();
-		let div;
-		let p;
+		let r = [];
 		frag.append(`${His} tail is ${slave.tailColor}.`);
 
-		div = document.createElement("div");
-		div.classList.add("choices");
 		if (slave.origHColor !== slave.hColor) {
-			div.append(
+			r.push(
 				App.UI.DOM.link(
 					"Match current hair",
 					() => {
@@ -394,31 +391,27 @@ App.Medicine.Salon.tail = function(slave, cheat = false) {
 						}
 						App.UI.reload();
 					}
-				)
+				),
+				"or",
+				App.UI.DOM.makeElement("span", "choose a new one: ", "note")
 			);
-			div.append(" or ");
-			App.UI.DOM.appendNewElement("span", div, "choose a new one: ", "note");
 		} else {
-			App.UI.DOM.appendNewElement("span", div, `Choose a dye color before dyeing ${his} tail:`, "note");
+			r.push(App.UI.DOM.makeElement("span", `Choose a dye color before dyeing ${his} tail:`, "note"));
 		}
-		frag.append(div);
+		App.Events.addNode(frag, r, "div", "choices");
 
-		div = document.createElement("div");
-		div.classList.add("choices");
-		div.append(`Colors: `);
-		div.append(createList(App.Medicine.Modification.Color.Primary, updatePrimary));
-		frag.append(div);
+		App.Events.addNode(frag, [
+			`Colors:`,
+			createList(App.Medicine.Modification.Color.Primary, updatePrimary)
+		], "div", "choices");
 
-		div = document.createElement("div");
-		div.classList.add("choices");
-		div.append(`Highlights: `);
-		div.append(createList(App.Medicine.Modification.Color.Secondary, updateSecondary));
-		frag.append(div);
+		App.Events.addNode(frag, [
+			`Highlights:`,
+			createList(App.Medicine.Modification.Color.Secondary, updateSecondary)
+		], "div", "choices");
 
 		if (primaryTailColor !== 0) {
-			p = document.createElement("p");
-			p.classList.add("choices");
-			p.append(
+			App.Events.addNode(frag, [
 				App.UI.DOM.link(
 					`Color ${his} tail`,
 					() => {
@@ -428,10 +421,9 @@ App.Medicine.Salon.tail = function(slave, cheat = false) {
 						}
 						App.UI.reload(); // discard selections after locking them in.
 					}
-				)
-			);
-			p.append(` ${primaryTailColor}${secondaryTailColor} now?`);
-			frag.append(p);
+				),
+				`${primaryTailColor}${secondaryTailColor} now?`
+			], "p", "choices");
 		}
 		return frag;
 	}
@@ -456,7 +448,7 @@ App.Medicine.Salon.tail = function(slave, cheat = false) {
 	}
 
 	function apply() {
-		App.Event.refreshEventArt(slave);
+		App.Events.refreshEventArt(slave);
 		jQuery(container).empty().append(tailDye());
 	}
 };
diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js
index 2436c2d11cfc1b3c84fb666ce724426b9c17ca42..37943e5eae6c2cbc2b1eb1e18fce3501c557ba31 100644
--- a/src/js/slaveCostJS.js
+++ b/src/js/slaveCostJS.js
@@ -1341,7 +1341,7 @@ globalThis.BeautyArray = (function() {
 		if (arcology.FSTransformationFetishist > 20) {
 			if (slave.lips > 70) {
 				if (slave.lipsImplant / slave.lips < 0.5) {
-					adjustBeauty("Lips: Transformation Fetishist", -(((slave.lips / 10) + (arcology.FSTransformationFetishist / 20))));
+					adjustBeauty("Lips: Transformation Fetishist", -((slave.lips / 10) + (arcology.FSTransformationFetishist / 20)));
 				}
 			}
 			if (slave.hips === 3) {
@@ -2271,15 +2271,120 @@ globalThis.FResultTooltip = function(slave, forSale = 0) {
  * @param {boolean} [isStartingSlave=false] is the slave a "starting slave"
  * @param {boolean} [followLaws=false] Apply cost variations from enacted Slave Market Regulations
  * @param {boolean} [isSpecial=false] is this slave a special/hero slave
- * @returns {number}
+ * @param {boolean} [returnDOM]
+ * @returns {number|Object}
  */
-globalThis.slaveCost = function(slave, isStartingSlave = false, followLaws = false, isSpecial = false) {
+globalThis.slaveCost = function(slave, isStartingSlave = false, followLaws = false, isSpecial = false, returnDOM = false) {
 	const milked = App.SlaveAssignment.getMilked(slave, 1.0, true);
-	const beauty = slaveCostBeauty(slave, isStartingSlave, followLaws, isSpecial);
-	if ((milked.cash * 52) > beauty && !isStartingSlave) { // Arbitrarily, let's say their milk worth is what they would make in a year. Blocking starting slave for now because milk makes so much money, the estimation makes game start impossible.
-		return milked.cash * 52;
+	const beautyObj = slaveCostBeauty(slave, isStartingSlave, followLaws, isSpecial);
+	const cost = beautyObj.cost;
+	/** Arbitrarily, let's say their milk worth is what they would make in a year. Blocking starting slave for now because milk makes so much money, the estimation makes game start impossible. */
+	const milkYear = milked.cash * 52;
+	if ((milkYear) > cost && !isStartingSlave) {
+		const milkSpan = App.UI.DOM.makeElement("span", cashFormat(milkYear));
+		if (V.cheatMode || V.debugMode) {
+			milkSpan.tabIndex = 0;
+			milkSpan.classList.add("has-tooltip");
+			tippy(milkSpan, {
+				content: `Value as a cow is greater than their value as a sex object.  Value is based on a year's fluids with current body.`,
+				placement: "right", interactive: true, trigger: "click"
+			});
+		}
+		return returnDOM ? {cost: milkYear, report: milkSpan} : milkYear;
 	} else {
-		return beauty;
+		return returnDOM ? {cost: cost, report: costTooltip()} : cost;
+	}
+
+	function costTooltip() {
+		// Make a link. Clicking the link will display detailed info about that over the top of the page (tooltip-style)
+		const span = App.UI.DOM.makeElement("span", cashFormat(cost));
+		if (V.cheatMode || V.debugMode) {
+			span.tabIndex = 0;
+			span.classList.add("has-tooltip");
+			tippy(span, {
+				content: costDisplay(),
+				placement: "right", interactive: true, trigger: "click"
+			});
+		}
+		return span;
+
+		/** Upon the link being clicked, set up some links to sort the info and a span to show it in
+		 * @returns {HTMLElement}
+		 */
+		function costDisplay() {
+			let criteria = "value";
+			let direction = "descending";
+
+			// Heading line that handles sorting
+			const el = document.createElement('div');
+			el.classList.add("tip-details");
+
+			el.appendChild(document.createTextNode(`Sort by: `));
+			el.appendChild(App.UI.DOM.generateLinksStrip([
+				App.UI.DOM.link("Text", () => {
+					criteria = "text";
+					jQuery(cheatFResultContents).empty().append(costFrame);
+				}, []),
+				App.UI.DOM.link("Value", () => {
+					criteria = "value";
+					jQuery(cheatFResultContents).empty().append(costFrame);
+				}, []),
+				App.UI.DOM.link("Ascending", () => {
+					direction = "ascending";
+					jQuery(cheatFResultContents).empty().append(costFrame);
+				}, []),
+				App.UI.DOM.link("Descending", () => {
+					direction = "descending";
+					jQuery(cheatFResultContents).empty().append(costFrame);
+				}, [])
+			]));
+
+			let cheatFResultContents = App.UI.DOM.appendNewElement("div", el, costFrame());
+
+			App.UI.DOM.appendNewElement("div", el, "A slave's base value is modified by an additive multiplier.", "note");
+
+			return el;
+
+			/** Set up the frame that contains the info
+			 * @returns {HTMLDivElement}
+			 */
+			function costFrame() {
+				let el = document.createElement("div");
+				el.classList.add("grid-2columns-auto");
+
+				let sortedBeautyMapKeys;
+				if (criteria === "text") {
+					if (direction === "descending") {
+						sortedBeautyMapKeys = Array.from(beautyObj.map.keys()).sort((a, b) => (a > b) ? 1 : -1);
+					} else {
+						sortedBeautyMapKeys = Array.from(beautyObj.map.keys()).sort((a, b) => (a < b) ? 1 : -1);
+					}
+				} else if (criteria === "value") {
+					if (direction === "descending") {
+						sortedBeautyMapKeys = Array.from(beautyObj.map.keys()).sort((a, b) => (beautyObj.map.get(a) < beautyObj.map.get(b)) ? 1 : -1);
+					} else {
+						sortedBeautyMapKeys = Array.from(beautyObj.map.keys()).sort((a, b) => (beautyObj.map.get(a) > beautyObj.map.get(b)) ? 1 : -1);
+					}
+				}
+
+				for (const key of sortedBeautyMapKeys) {
+					let value = beautyObj.map.get(key);
+					value = (Math.floor(value * 10) / 10);
+
+					let className;
+					if (value > 0) {
+						className = "green";
+					} else if (value < 0) {
+						className = "red";
+					}
+					App.UI.DOM.appendNewElement("div", el, value.toString(), className);
+
+					App.UI.DOM.appendNewElement("div", el, capFirstChar(key));
+				}
+
+				return el;
+			}
+		}
 	}
 };
 
@@ -2289,13 +2394,14 @@ globalThis.slaveCostBeauty = (function() {
 	let arcology;
 	let multiplier;
 	let cost;
+	const map = new Map([]);
 
 	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {boolean} isStartingSlave is the slave a "starting slave"
 	 * @param {boolean} followLaws Apply cost variations from enacted Slave Market Regulations
 	 * @param {boolean} isSpecial is this slave a special/hero slave
-	 * @returns {number}
+	 * @returns {Object}
 	 */
 	function slaveCost(slave, isStartingSlave, followLaws, isSpecial) {
 		arcology = V.arcologies[0];
@@ -2321,7 +2427,7 @@ globalThis.slaveCostBeauty = (function() {
 		if (isStartingSlave) {
 			calcStartingSlaveCost(slave);
 		}
-		return cost;
+		return {cost: cost, map: map};
 	}
 
 	/**
@@ -2329,32 +2435,32 @@ globalThis.slaveCostBeauty = (function() {
 	 */
 	function calcGenitalsCost(slave) {
 		if (slave.vagina === 0 && slave.counter.vaginal === 0) {
-			multiplier += 0.2;
+			updateMultiplyer(`virgin`, 0.2);
 		}
 		if (slave.anus === 0 && slave.counter.anal === 0) {
-			multiplier += 0.2;
+			updateMultiplyer(`anal virgin`, 0.2);
 		}
 		// Boosted these to 20% to account for the fact that it limits the skill that can be attained
 		if (slave.vagina > -1 && arcology.FSRestartSMR === 1) {
 			if (slave.dick > 0) {
 				if (slave.ovaries === 0 && slave.balls === 0) {
-					multiplier += 0.8;
+					updateMultiplyer(`castrated`, 0.8);
 				}
 			}
 		} else if (slave.vagina > -1) {
 			if (slave.dick > 0) {
 				if (V.ui !== "start" || V.PC.dick === 0 || V.PC.vagina === -1) {
-					multiplier += 0.2;
+					updateMultiplyer(`dick`, 0.2);
 					if (slave.ovaries > 0) {
 						if (slave.balls > 0) {
-							multiplier += 0.8;
+							updateMultiplyer(`futa`, 0.8);
 						}
 					}
 				} else {
-					multiplier += 0.1;
+					updateMultiplyer(`dick`, 0.1);
 					if (slave.ovaries > 0) {
 						if (slave.balls > 0) {
-							multiplier += 0.2;
+							updateMultiplyer(`futa`, 0.2);
 						}
 					}
 				}
@@ -2369,20 +2475,20 @@ globalThis.slaveCostBeauty = (function() {
 	function calcDevotionTrustCost(slave, isSpecial) {
 		if (isSpecial === true) {
 			if (slave.devotion > 50) {
-				multiplier += slave.devotion / 200;
+				updateMultiplyer(`special devotion`, slave.devotion / 200);
 			}
 			if (slave.trust > 50) {
-				multiplier += slave.trust / 200;
+				updateMultiplyer(`special trust`, slave.trust / 200);
 			}
 		} else {
-			multiplier += slave.devotion / 200;
+			updateMultiplyer(`devotion`, slave.devotion / 200);
 			if (slave.devotion < -20) {
 				if (slave.trust > 0) {
-					multiplier -= slave.trust / 200;
+					updateMultiplyer(`trust with low devotion`, -slave.trust / 200);
 				}
 			} else {
 				if (slave.trust > 0) {
-					multiplier += slave.trust / 200;
+					updateMultiplyer(`trust with devotion`, slave.trust / 200);
 				}
 			}
 		}
@@ -2393,31 +2499,31 @@ globalThis.slaveCostBeauty = (function() {
 	 */
 	function calcPreferencesCost(slave) {
 		if (slave.behavioralFlaw !== "none") {
-			multiplier -= 0.1;
+			updateMultiplyer(`behavioral flaw`, -0.1);
 		}
 		if (slave.behavioralQuirk !== "none") {
-			multiplier += 0.1;
+			updateMultiplyer(`behavioral quirk`, 0.1);
 		}
 		if (slave.sexualFlaw === "breeder" && arcology.FSRepopulationFocus !== "unset") {
-			multiplier += 0.3;
+			updateMultiplyer(`sexual flaw, but a breeder`, 0.3);
 		} else if (slave.sexualFlaw !== "none") {
-			multiplier -= 0.1;
+			updateMultiplyer(`sexual flaw`, -0.1);
 		}
 		if (slave.sexualQuirk !== "none") {
-			multiplier += 0.1;
+			updateMultiplyer(`sexual quirk`, 0.1);
 		}
 		if (slave.fetishKnown === 1) {
 			if (slave.fetish === "mindbroken") {
-				multiplier -= 0.3;
+				updateMultiplyer(`mindbroken`, -0.3);
 			} else if (slave.fetish !== "none") {
-				multiplier += slave.fetishStrength / 1000;
+				updateMultiplyer(`fetish`, slave.fetishStrength / 1000);
 			}
 		} else {
-			multiplier -= 0.1;
+			updateMultiplyer(`unknown fetish`, -0.1);
 		}
 		if (slave.attrKnown === 1) {
 			if (slave.energy > 95) {
-				multiplier += 0.2;
+				updateMultiplyer(`high attraction`, 0.2);
 			}
 		}
 	}
@@ -2427,37 +2533,37 @@ globalThis.slaveCostBeauty = (function() {
 	 */
 	function calcPregCost(slave) {
 		if (slave.mpreg === 1) {
-			multiplier += 0.2;
+			updateMultiplyer(`mpreg`, 0.2);
 		}
 		if (arcology.FSRepopulationFocusSMR === 1) {
 			if (slave.preg < -1) {
-				multiplier -= 0.5;
+				updateMultiplyer(`repopulationist sterile`, -0.5);
 			} else if (slave.bellyPreg >= 300000) {
-				multiplier += 1;
+				updateMultiplyer(`repopulationist mega preg`, 1);
 			} else if (slave.bellyPreg >= 120000) {
-				multiplier += 0.5;
+				updateMultiplyer(`repopulationist very preg`, 0.5);
 			} else if (slave.preg > slave.pregData.normalBirth / 4) {
-				multiplier += 0.1;
+				updateMultiplyer(`repopulationist showing`, 0.1);
 			}
 		} else if (arcology.FSRestartSMR === 1) {
 			if (slave.preg < -1) {
-				multiplier += 0.5;
+				updateMultiplyer(`restart sterile`, 0.5);
 			} else if (slave.bellyPreg >= 300000) {
-				multiplier -= 2.5;
+				updateMultiplyer(`restart mega preg`, -2.5);
 			} else if (slave.bellyPreg >= 30000) {
-				multiplier -= 1.5;
+				updateMultiplyer(`restart very preg`, -1.5);
 			} else if (slave.preg > slave.pregData.normalBirth / 4) {
-				multiplier -= 1.0;
+				updateMultiplyer(`restart showing`, -1.0);
 			}
 		} else {
 			if (slave.preg < -1) {
-				multiplier -= 0.1;
+				updateMultiplyer(`sterile`, -0.1);
 			} else if (slave.bellyPreg >= 300000) {
-				multiplier -= 1.5;
+				updateMultiplyer(`mega preg`, -1.5);
 			} else if (slave.bellyPreg >= 120000) {
-				multiplier -= 0.5;
+				updateMultiplyer(`very preg`, -0.5);
 			} else if (slave.bellyPreg >= 500 || slave.pregKnown === 1) {
-				multiplier -= 0.1;
+				updateMultiplyer(`restart showing`, -0.1);
 			}
 		}
 	}
@@ -2467,14 +2573,14 @@ globalThis.slaveCostBeauty = (function() {
 	 */
 	function calcPrestigeCost(slave) {
 		if (slave.prestige > 0) {
-			multiplier += 0.7 * slave.prestige;
+			updateMultiplyer(`prestige`, 0.7 * slave.prestige);
 		}
 		if (slave.porn.prestige === 3) {
-			multiplier += 1.5;
+			updateMultiplyer(`porn prestige`, 1.5);
 		} else if (slave.porn.prestige === 2) {
-			multiplier += 0.7;
+			updateMultiplyer(`porn prestige`, 0.7);
 		} else if (slave.porn.prestige === 1) {
-			multiplier += 0.2;
+			updateMultiplyer(`porn prestige`, 0.2);
 		}
 	}
 
@@ -2484,86 +2590,86 @@ globalThis.slaveCostBeauty = (function() {
 	function calcFSCost(slave) {
 		if (arcology.FSSupremacistLawME !== 0) {
 			if (slave.race !== arcology.FSSupremacistRace) {
-				multiplier -= 0.1;
+				updateMultiplyer(`supremacist race`, -0.1);
 			}
 		}
 		if (arcology.FSSubjugationistLawME !== 0) {
 			if (slave.race === arcology.FSSubjugationistRace) {
-				multiplier -= 0.2;
+				updateMultiplyer(`subjugationist race`, -0.2);
 			}
 		}
 		if (V.seeCats === 1 && slave.race === "catgirl") {
 			if (arcology.FSBodyPurist === "unset" && V.projectN.techReleased === 1) {
-				multiplier += 0.5;
+				updateMultiplyer(`catgirl`, 0.5);
 			} else if (arcology.FSBodyPurist === "unset" && V.projectN.techReleased === 0) {
-				multiplier += 0.9;
+				updateMultiplyer(`catgirl`, 0.9);
 			} else if (arcology.FSBodyPurist !== "unset" && arcology.FSBodyPuristCatLaw === 0) {
-				multiplier -= 0.5;
+				updateMultiplyer(`catgirl`, -0.5);
 			} else if (arcology.FSBodyPurist !== "unset" && arcology.FSBodyPuristCatLaw === 1 && V.projectN.techreleased === 1) {
-				multiplier += 0.5;
+				updateMultiplyer(`catgirl`, 0.5);
 			} else if (arcology.FSBodyPurist !== "unset" && arcology.FSBodyPuristCatLaw === 1 && V.projectN.techreleased === 0) {
-				multiplier += 0.9;
+				updateMultiplyer(`catgirl`, 0.9);
 			}
 			if (arcology.FSEgyptianRevivalist !== "unset") {
-				multiplier += 0.2;
+				updateMultiplyer(`egyptian catgirl`, 0.2);
 			}
 			if (arcology.FSTransformationFetishist !== "unset") {
-				multiplier += 0.2;
+				updateMultiplyer(`transformation catgirl`, 0.2);
 			}
 		}
 		if (arcology.FSRepopulationFocusSMR !== 0) {
 			if (slave.preg > 0) {
-				multiplier += 0.1;
+				updateMultiplyer(`repopulationist preg`, 0.1);
 			}
 		} else if (arcology.FSRestartSMR !== 0) {
 			if (slave.dick > 0) {
-				multiplier -= 0.1;
+				updateMultiplyer(`restart smr dick`, -0.1);
 			}
 			if (slave.balls > 0) {
-				multiplier -= 0.2;
+				updateMultiplyer(`restart smr balls`, -0.2);
 			}
 			if (slave.vagina > 0) {
-				multiplier -= 0.1;
+				updateMultiplyer(`restart smr vagina`, -0.1);
 			}
 			if (slave.ovaries > 0) {
-				multiplier -= 0.5;
+				updateMultiplyer(`restart smr ovaries`, -0.5);
 			}
 		}
 		if (arcology.FSGenderFundamentalistSMR !== 0) {
 			if (slave.dick > 0) {
-				multiplier -= 0.1;
+				updateMultiplyer(`gender fundamentalist smr dick`, -0.1);
 			}
 			if (slave.balls > 0) {
-				multiplier -= 0.1;
+				updateMultiplyer(`gender fundamentalist smr balls`, -0.1);
 			}
 		} else if (arcology.FSGenderRadicalist !== "unset") {
 			if (slave.dick > 0) {
-				multiplier += 0.1;
+				updateMultiplyer(`gender radicalist dick`, 0.1);
 			}
 			if (slave.balls > 0 && arcology.FSGenderRadicalistLawFuta !== 2 && arcology.FSGenderRadicalistLawFuta !== 4) {
-				multiplier -= 0.1;
+				updateMultiplyer(`gender radicalist balls`, -0.1);
 			}
 		}
 		if (arcology.FSPetiteAdmirationSMR !== 0 || arcology.FSStatuesqueGlorificationSMR !== 0) {
 			if (heightPass(slave)) {
-				multiplier += 0.1;
+				updateMultiplyer(`petite admiration smr`, 0.1);
 			} else {
-				multiplier -= 0.1;
+				updateMultiplyer(`petite admiration smr`, -0.1);
 			}
 		}
 		if (arcology.FSSlaveProfessionalism !== "unset") {
-			multiplier += 0.1 * (slave.intelligence / 20);
+			updateMultiplyer(`slave professionalism`, 0.1 * (slave.intelligence / 20));
 		}
 		if (arcology.FSHedonisticDecadenceSMR !== 0) {
 			if (slave.weight > 60 && slave.muscles < 5) {
-				multiplier += 0.1;
+				updateMultiplyer(`hedonistic decadence smr`, 0.1);
 			}
 		}
 		if (arcology.FSArabianRevivalist > 50) {
-			multiplier += 0.1;
+			updateMultiplyer(`arabian revivalist`, 0.1);
 		}
 		if (arcology.FSNeoImperialist > 40) {
-			multiplier += 0.1;
+			updateMultiplyer(`neo imperialist`, 0.1);
 		}
 	}
 
@@ -2573,21 +2679,18 @@ globalThis.slaveCostBeauty = (function() {
 	function calcAgeCost(slave) {
 		if (slave.physicalAge === V.minimumSlaveAge && slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset")) {
 			if (slave.birthWeek === 0) {
-				multiplier += 0.4;
+				updateMultiplyer(`birthWeek`, 0.4);
 			} else if (slave.birthWeek < 4) {
-				multiplier += 0.1;
+				updateMultiplyer(`birthWeek`, 0.1);
 			}
-		} else if (slave.physicalAge === V.minimumSlaveAge) {
-			if (slave.birthWeek === 0) {
-				multiplier += 0.2;
-			} else if (slave.birthWeek < 4) {
-				multiplier += 0.05;
-			}
-		} else if (slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset")) {
+		} else if (
+			slave.physicalAge === V.minimumSlaveAge ||
+			(slave.physicalAge === V.fertilityAge && canGetPregnant(slave) && (arcology.FSRepopulationFocus !== "unset" || arcology.FSGenderFundamentalist !== "unset"))
+		) {
 			if (slave.birthWeek === 0) {
-				multiplier += 0.2;
+				updateMultiplyer(`birthWeek`, 0.2);
 			} else if (slave.birthWeek < 4) {
-				multiplier += 0.05;
+				updateMultiplyer(`birthWeek`, 0.05);
 			}
 		}
 	}
@@ -2598,102 +2701,102 @@ globalThis.slaveCostBeauty = (function() {
 	function calcCareersCost(slave) {
 		if (slave.career !== 0) {
 			if (slave.career === "a slave") {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.attendant.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.nurse.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.matron.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.madam.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.DJ.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.HG.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) {
-				multiplier += 0.1;
+				updateMultiplyer(`career`, 0.1);
 			} else if (App.Data.Careers.General.entertainment.includes(slave.career)) {
-				multiplier += 0.05;
+				updateMultiplyer(`career`, 0.05);
 			} else if (App.Data.Careers.General.whore.includes(slave.career)) {
-				multiplier += 0.05;
+				updateMultiplyer(`career`, 0.05);
 			} else if (App.Data.Careers.General.grateful.includes(slave.career)) {
-				multiplier += 0.05;
+				updateMultiplyer(`career`, 0.05);
 			} else if (App.Data.Careers.General.menial.includes(slave.career)) {
-				multiplier += 0.05;
-			} else if (App.Data.Careers.Leader.servant.includes(slave.career)) {
-				multiplier += 0.05;
+				updateMultiplyer(`career`, 0.05);
+			} else if (App.Data.Careers.General.servant.includes(slave.career)) {
+				updateMultiplyer(`career`, 0.05);
 			}
 		}
 		if (V.week - slave.weekAcquired >= 20 && slave.skill.entertainment >= 100) {
 			if (!App.Data.Careers.General.entertainment.includes(slave.career)) {
-				multiplier += 0.05;
+				updateMultiplyer(`entertainment career`, 0.05);
 			}
 		}
 		if (slave.counter.oral + slave.counter.anal + slave.counter.vaginal + slave.counter.mammary + slave.counter.penetrative > 1000) {
 			if (!App.Data.Careers.General.whore.includes(slave.career)) {
-				multiplier += 0.05;
+				updateMultiplyer(`whore career`, 0.05);
 			}
 		}
 		if (!App.Data.Careers.Leader.bodyguard.includes(slave.career) && slave.skill.bodyguard >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good bodyguard`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.wardeness.includes(slave.career) && slave.skill.wardeness >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good wardeness`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.attendant.includes(slave.career) && slave.skill.attendant >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good attendant`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.nurse.includes(slave.career) && slave.skill.nurse >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good nurse`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.matron.includes(slave.career) && slave.skill.matron >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good matron`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.schoolteacher.includes(slave.career) && slave.skill.teacher >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good teacher`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.stewardess.includes(slave.career) && slave.skill.stewardess >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good stewardess`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.milkmaid.includes(slave.career) && slave.skill.milkmaid >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good milkmaid`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.farmer.includes(slave.career) && slave.skill.farmer >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good farmer`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.madam.includes(slave.career) && slave.skill.madam >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good madam`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.DJ.includes(slave.career) && slave.skill.DJ >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good DJ`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.HG.includes(slave.career) && slave.skill.headGirl >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good headGirl`, 0.1);
 		}
 		if (!App.Data.Careers.Leader.recruiter.includes(slave.career) && slave.skill.recruiter >= V.masteredXP) {
-			multiplier += 0.1;
+			updateMultiplyer(`good recruiter`, 0.1);
 		}
-		if (!App.Data.Careers.Leader.servant.includes(slave.career) && slave.skill.servant >= V.masteredXP) {
-			multiplier += 0.05;
+		if (!App.Data.Careers.General.servant.includes(slave.career) && slave.skill.servant >= V.masteredXP) {
+			updateMultiplyer(`good servant`, 0.05);
 		}
 		if (!App.Data.Careers.General.entertainment.includes(slave.career) && slave.skill.entertainer >= V.masteredXP) {
-			multiplier += 0.05;
+			updateMultiplyer(`good entertainer`, 0.05);
 		}
 		if (!App.Data.Careers.General.whore.includes(slave.career) && slave.skill.whore >= V.masteredXP) {
-			multiplier += 0.05;
+			updateMultiplyer(`good whore`, 0.05);
 		}
 	}
 
@@ -2704,24 +2807,24 @@ globalThis.slaveCostBeauty = (function() {
 		const totalInt = Math.clamp(slave.intelligence + slave.intelligenceImplant, -130, 130);
 		/* make absolutely certain we do not use +-131 in the next line
 		 */
-		multiplier += Math.floor((Math.asin(totalInt / 131)) * 50) / 50;
+		updateMultiplyer(`intelligence`, Math.floor((Math.asin(totalInt / 131)) * 50) / 50);
 		if (slave.pubertyXY === 0 && slave.physicalAge >= V.potencyAge && slave.genes === "XY" && arcology.FSGenderRadicalist === "unset") {
-			multiplier += 0.5;
+			updateMultiplyer(`child`, 0.5);
 		}
 		if (slave.geneticQuirks.albinism === 2) {
-			multiplier += 0.2;
+			updateMultiplyer(`albinism`, 0.2);
 		}
 		if (V.rep > 10000) {
-			multiplier += 0.1 * (Object.getOwnPropertyNames(slave.brand).length);
+			updateMultiplyer(`high rep brand`, 0.1 * (Object.getOwnPropertyNames(slave.brand).length));
 		} else if (V.rep < 5000) {
-			multiplier -= 0.1 * (Object.getOwnPropertyNames(slave.brand).length);
+			updateMultiplyer(`low rep brand`, -0.1 * (Object.getOwnPropertyNames(slave.brand).length));
 		}
-		multiplier -= getLimbCount(slave, 0) * 0.05;
+		updateMultiplyer(`limbs`, -getLimbCount(slave, 0) * 0.05);
 		if (!canSee(slave)) {
-			multiplier -= 0.2;
+			updateMultiplyer(`vision`, -0.2);
 		}
 		if (slave.hears === -2) {
-			multiplier -= 0.1;
+			updateMultiplyer(`hearing`, -0.1);
 		}
 	}
 
@@ -2730,13 +2833,13 @@ globalThis.slaveCostBeauty = (function() {
 	 */
 	function calcIndentureCost(slave) {
 		if (slave.indenture > -1) {
-			multiplier -= 0.1 * slave.indentureRestrictions;
-			multiplier -= (260 - slave.indenture) / 260;
+			updateMultiplyer(`indenture level`, -0.1 * slave.indentureRestrictions);
+			updateMultiplyer(`indenture time`, -(260 - slave.indenture) / 260);
 		} else if (V.seeAge === 1 && slave.actualAge >= (V.retirementAge - 5)) {
 			if (V.policies.retirement.physicalAgePolicy === 0) {
-				multiplier *= (V.retirementAge - slave.actualAge) / 5;
+				updateMultiplyer(`near retirement`, (multiplier - (V.retirementAge - slave.actualAge) / 5));
 			} else {
-				multiplier *= (V.retirementAge - slave.physicalAge) / 5;
+				updateMultiplyer(`near retirement`, (multiplier - (V.retirementAge - slave.physicalAge) / 5));
 			}
 		}
 	}
@@ -2807,11 +2910,18 @@ globalThis.slaveCostBeauty = (function() {
 		startingSlaveMultiplier = Math.clamp(startingSlaveMultiplier, 0, 10);
 		cost += cost * startingSlaveMultiplier;
 		cost = 500 * Math.trunc(cost / 500);
-		if (V.PC.career === "slaver" || V.PC.career === "slave overseer" || V.PC.career === "slave tender") {
+		if (isPCCareerInCategory("slaver")) {
 			cost /= 2;
 		}
 	}
 
+	function updateMultiplyer(string, value) {
+		if (value) {
+			map.set(string, value);
+			multiplier += value;
+		}
+	}
+
 	return slaveCost;
 })();
 
diff --git a/src/js/slaveExpenses.js b/src/js/slaveExpenses.js
index e05dbc1c30330ccd38efe74bd458aefb668cbe0f..7aa54a24094c1b50929a2992b07b230df8911736 100644
--- a/src/js/slaveExpenses.js
+++ b/src/js/slaveExpenses.js
@@ -59,9 +59,9 @@ globalThis.slaveImpactLongTerm = function(slave) {
 	let p;
 	let div;
 	let span;
-	let _Cost;
-	let _Expense;
-	let _Income;
+	let cost;
+	let expense;
+	let income;
 	let text;
 
 	// Background and original cost
@@ -71,13 +71,13 @@ globalThis.slaveImpactLongTerm = function(slave) {
 	div = document.createElement("div");
 	div.classList.add("indent");
 	if (slave.slaveCost < 0) {
-		const cost = App.UI.DOM.cashFormat(slave.slaveCost);
-		cost.textContent += `.`;
-		div.append(`You bought ${him} for `, cost);
-		_Cost = slave.slaveCost;
+		const costSpan = App.UI.DOM.cashFormat(slave.slaveCost);
+		costSpan.textContent += `.`;
+		div.append(`You bought ${him} for `, costSpan);
+		cost = slave.slaveCost;
 	} else if (slave.slaveCost === 0) {
 		div.append(`You spent nothing to acquire ${him}.`);
-		_Cost = slave.slaveCost;
+		cost = slave.slaveCost;
 	} else {
 		text = `You have no record of how much `;
 		if (slave.origin !== 0) {
@@ -87,21 +87,21 @@ globalThis.slaveImpactLongTerm = function(slave) {
 		}
 		text += ` cost.`;
 		div.append(text);
-		_Cost = 0;
+		cost = 0;
 	}
 	frag.append(div);
 
 	// Lifetime totals, assistant gated
 	if (V.assistant.power > 0) {
-		const _weeksOwned = V.week - slave.weekAcquired;
+		const weeksOwned = V.week - slave.weekAcquired;
 		// Lifetime expense
 		div = document.createElement("div");
 		div.classList.add("indent");
 		if (slave.lifetimeCashExpenses < 0) {
 			text = `In ${his} `;
-			if (_weeksOwned > 0) {
-				text += `${_weeksOwned} `;
-				if (_weeksOwned === 1) {
+			if (weeksOwned > 0) {
+				text += `${weeksOwned} `;
+				if (weeksOwned === 1) {
 					text += `week`;
 				} else {
 					text += `weeks`;
@@ -113,10 +113,10 @@ globalThis.slaveImpactLongTerm = function(slave) {
 			const cash = (App.UI.DOM.cashFormat(slave.lifetimeCashExpenses));
 			cash.textContent += `.`;
 			div.append(text, cash);
-			_Expense = slave.lifetimeCashExpenses;
+			expense = slave.lifetimeCashExpenses;
 		} else {
 			div.append(`You have no record of ${him} costing you any ¤.`);
-			_Expense = 0;
+			expense = 0;
 		}
 		frag.append(div);
 
@@ -125,9 +125,9 @@ globalThis.slaveImpactLongTerm = function(slave) {
 		div.classList.add("indent");
 		if (slave.lifetimeCashIncome > 0) {
 			text = `In ${his} `;
-			if (_weeksOwned > 0) {
-				text += `${_weeksOwned} `;
-				if (_weeksOwned === 1) {
+			if (weeksOwned > 0) {
+				text += `${weeksOwned} `;
+				if (weeksOwned === 1) {
 					text += `week`;
 				} else {
 					text += `weeks`;
@@ -139,10 +139,10 @@ globalThis.slaveImpactLongTerm = function(slave) {
 			const cash = App.UI.DOM.cashFormat(slave.lifetimeCashIncome);
 			cash.textContent += `.`;
 			div.append(text, cash);
-			_Income = slave.lifetimeCashIncome;
+			income = slave.lifetimeCashIncome;
 		} else {
 			div.append(`You have no record of ${him} making you any ¤.`);
-			_Income = 0;
+			income = 0;
 		}
 		frag.append(div);
 
@@ -150,15 +150,15 @@ globalThis.slaveImpactLongTerm = function(slave) {
 		div = document.createElement("div");
 		div.classList.add("indent");
 		div.append(`Overall, `);
-		if ((_Income + _Cost + _Expense) > 0) {
+		if ((income + cost + expense) > 0) {
 			div.append(`you have made `);
-			div.append(App.UI.DOM.cashFormat(_Income + _Cost + _Expense));
+			div.append(App.UI.DOM.cashFormat(income + cost + expense));
 			div.append(` net from ${his} labors.`);
-		} else if ((_Income + _Cost + _Expense) === 0) {
+		} else if ((income + cost + expense) === 0) {
 			div.append(`${he} is even in cost and income.`);
 		} else {
 			div.append(`${he} has cost you `);
-			const cash = App.UI.DOM.cashFormat(_Income + _Cost + _Expense);
+			const cash = App.UI.DOM.cashFormat(income + cost + expense);
 			cash.textContent += `.`;
 			div.append(cash);
 		}
@@ -167,7 +167,7 @@ globalThis.slaveImpactLongTerm = function(slave) {
 		// Reputation:
 		p = document.createElement("p");
 		if (slave.lifetimeRepIncome !== 0 || slave.lifetimeRepExpenses !== 0) {
-			let _repTotal = (slave.lifetimeRepIncome + slave.lifetimeRepExpenses);
+			let repTotal = (slave.lifetimeRepIncome + slave.lifetimeRepExpenses);
 			if (V.cheatMode === 1 || V.debugMode === 1) {
 				if (slave.lifetimeRepIncome !== 0) {
 					div = document.createElement("div");
@@ -205,12 +205,12 @@ globalThis.slaveImpactLongTerm = function(slave) {
 				div.classList.add("indent");
 				div.append(`Overall then, ${he} has changed your reputation by `);
 				span = document.createElement("span");
-				if (_repTotal > 0) {
+				if (repTotal > 0) {
 					span.classList.add("green");
-				} else if (_repTotal < 0) {
+				} else if (repTotal < 0) {
 					span.classList.add("red");
 				}
-				span.append(num(_repTotal));
+				span.append(num(repTotal));
 				div.append(span);
 				p.append(div);
 			} else {
@@ -218,11 +218,11 @@ globalThis.slaveImpactLongTerm = function(slave) {
 				div = document.createElement("div");
 				div.classList.add("indent");
 				div.append(`Overall, ${he} has `);
-				if (_repTotal === 0) {
+				if (repTotal === 0) {
 					div.append(`had no impact on `);
-				} else if (_repTotal > 0) {
+				} else if (repTotal > 0) {
 					App.UI.DOM.appendNewElement("span", div, `increased `, "green");
-				} else if (_repTotal < 0) {
+				} else if (repTotal < 0) {
 					App.UI.DOM.appendNewElement("span", div, `decreased `, "red");
 				}
 				div.append(`your reputation.`);
diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js
index f7f7396916c5974f0a30bbb0e62de2bf6d1e1b16..0ed4b483aa0567f186ac4a928eae1c2d84309869 100644
--- a/src/js/slaveListing.js
+++ b/src/js/slaveListing.js
@@ -75,10 +75,10 @@ App.UI.SlaveList.render = function() {
 			}
 		}
 
-		for (const _sid of IDs) {
-			let ss = renderSlave(_sid, interactionLink, showTransfers, postNote);
+		for (const sid of IDs) {
+			let ss = renderSlave(sid, interactionLink, showTransfers, postNote);
 			let slaveDiv = document.createElement("div");
-			slaveDiv.id = `slave-${_sid}`;
+			slaveDiv.id = `slave-${sid}`;
 			slaveDiv.classList.add("slaveSummary");
 			if (V.slavePanelStyle === 2) {
 				slaveDiv.classList.add("card");
@@ -365,14 +365,14 @@ App.UI.SlaveList.render = function() {
 		const res = document.createDocumentFragment();
 
 		/* Useful for finding weird combinations — usages of this passage that don't yet generate the quick index.
-		*	<<print 'pass/count/indexed/flag::[' + passageName + '/' + _Count + '/' + _indexed + '/' + V.SlaveSummaryFiler + ']'>>
+		*	<<print 'pass/count/indexed/flag::[' + passageName + '/' + Count + '/' + indexed + '/' + V.SlaveSummaryFiler + ']'>>
 		*/
 
 		if (IDs.length > 1 && passageName === "Main") {
-			const _buttons = [];
-			let _offset = -50;
+			const buttons = [];
+			let offset = -50;
 			if (/Select/i.test(passageName)) {
-				_offset = -25;
+				offset = -25;
 			}
 			/*
 			 * we want <button data-quick-index="<<= listID>>">...
@@ -393,20 +393,20 @@ App.UI.SlaveList.render = function() {
 			listIndex.id = `list_index${listID}`;
 
 			for (const sID of IDs) {
-				const _IndexSlave = slaveStateById(sID);
-				const _indexSlaveName = SlaveFullName(_IndexSlave);
-				const _devotionClass = getSlaveDevotionClass(_IndexSlave);
-				const _trustClass = getSlaveTrustClass(_IndexSlave);
-				_buttons.push({
-					"data-name": _indexSlaveName,
-					"data-scroll-to": `#slave-${_IndexSlave.ID}`,
-					"data-scroll-offset": _offset,
-					"data-devotion": _IndexSlave.devotion,
-					"data-trust": _IndexSlave.trust,
-					"class": `${_devotionClass} ${_trustClass}`
+				const IndexSlave = slaveStateById(sID);
+				const indexSlaveName = SlaveFullName(IndexSlave);
+				const devotionClass = getSlaveDevotionClass(IndexSlave);
+				const trustClass = getSlaveTrustClass(IndexSlave);
+				buttons.push({
+					"data-name": indexSlaveName,
+					"data-scroll-to": `#slave-${IndexSlave.ID}`,
+					"data-scroll-offset": offset,
+					"data-devotion": IndexSlave.devotion,
+					"data-trust": IndexSlave.trust,
+					"class": `${devotionClass} ${trustClass}`
 				});
 			}
-			if (_buttons.length > 0) {
+			if (buttons.length > 0) {
 				V.sortQuickList = V.sortQuickList || 'Devotion';
 				makeElement(listIndex, "em", "Sorting: ");
 				const qlSort = makeElement(listIndex, "span", V.sortQuickList, "strong");
@@ -432,8 +432,8 @@ App.UI.SlaveList.render = function() {
 				makeElement(listIndex, "br");
 				const qlWrapper = makeElement(listIndex, "div", undefined, ["quick-list", "devotion"]);
 				qlWrapper.id = "qlWrapper";
-				for (const _button of _buttons) {
-					const btn = makeElement(listIndex, 'button', _button['data-name'], undefined, _button);
+				for (const button of buttons) {
+					const btn = makeElement(listIndex, 'button', button['data-name'], undefined, button);
 					btn.onclick = App.UI.quickBtnScrollToHandler;
 				}
 			}
diff --git a/src/js/slaveSummaryHelpers.js b/src/js/slaveSummaryHelpers.js
index 1e1048b8b327e212f390123acb37fc66adbc472b..db6bfbd4cda085cd1d3bcc3f0c97d058d914b628 100644
--- a/src/js/slaveSummaryHelpers.js
+++ b/src/js/slaveSummaryHelpers.js
@@ -270,12 +270,12 @@ App.UI.SlaveSummaryImpl = function() {
 			const block = makeBlock();
 			const cssClassName = "lightgreen";
 			if (slave.mother > 0) {
-				const _ssj = V.slaves.find(s => s.ID === slave.mother);
-				if (_ssj) {
-					helpers.referenceSlaveWithPreview(block, _ssj, SlaveFullName(_ssj));
+				const ssj = V.slaves.find(s => s.ID === slave.mother);
+				if (ssj) {
+					helpers.referenceSlaveWithPreview(block, ssj, SlaveFullName(ssj));
 					addText(block, "'s ");
 					let spanText = getPronouns(slave).daughter;
-					if (slave.relationshipTarget === _ssj.ID) {
+					if (slave.relationshipTarget === ssj.ID) {
 						spanText += `${bits.and}${relationshipTerm(slave)}`;
 						handled = 1;
 					}
@@ -294,12 +294,12 @@ App.UI.SlaveSummaryImpl = function() {
 				makeSpan(block, bits.makeBit(getPronouns(slave).daughter), cssClassName);
 			}
 			if (slave.father > 0 && slave.father !== slave.mother) {
-				const _ssj = V.slaves.find(s => s.ID === slave.father);
-				if (_ssj) {
-					helpers.referenceSlaveWithPreview(block, _ssj, SlaveFullName(_ssj));
+				const ssj = V.slaves.find(s => s.ID === slave.father);
+				if (ssj) {
+					helpers.referenceSlaveWithPreview(block, ssj, SlaveFullName(ssj));
 					addText(block, "'s ");
 					let spanText = getPronouns(slave).daughter;
-					if (slave.relationshipTarget === _ssj.ID) {
+					if (slave.relationshipTarget === ssj.ID) {
 						spanText += `${bits.and}${relationshipTerm(slave)}`;
 						handled = 1;
 					}
@@ -327,12 +327,12 @@ App.UI.SlaveSummaryImpl = function() {
 				}
 			}
 			if (slave.daughters === 1) {
-				const _ssj = V.slaves.find(s => s.mother === slave.ID || s.father === slave.ID);
-				if (_ssj) {
-					helpers.referenceSlaveWithPreview(block, _ssj, SlaveFullName(_ssj));
+				const ssj = V.slaves.find(s => s.mother === slave.ID || s.father === slave.ID);
+				if (ssj) {
+					helpers.referenceSlaveWithPreview(block, ssj, SlaveFullName(ssj));
 					addText(block, "'s ");
-					let spanText = relativeTerm(_ssj, slave);
-					if (slave.relationshipTarget === _ssj.ID) {
+					let spanText = relativeTerm(ssj, slave);
+					if (slave.relationshipTarget === ssj.ID) {
 						spanText += `${bits.and}${relationshipTerm(slave)}`;
 						handled = 1;
 					}
@@ -348,12 +348,12 @@ App.UI.SlaveSummaryImpl = function() {
 				}
 			}
 			if (slave.sisters === 1) {
-				const _ssj = V.slaves.find(s => areSisters(s, slave) > 0);
-				if (_ssj) {
-					helpers.referenceSlaveWithPreview(block, _ssj, SlaveFullName(_ssj));
+				const ssj = V.slaves.find(s => areSisters(s, slave) > 0);
+				if (ssj) {
+					helpers.referenceSlaveWithPreview(block, ssj, SlaveFullName(ssj));
 					addText(block, "'s ");
 					let spanText = getPronouns(slave).sister;
-					if (slave.relationshipTarget === _ssj.ID) {
+					if (slave.relationshipTarget === ssj.ID) {
 						spanText += `${bits.and}${relationshipTerm(slave)}`;
 						handled = 1;
 					}
@@ -369,9 +369,9 @@ App.UI.SlaveSummaryImpl = function() {
 				}
 			}
 			if (slave.relationship > 0 && handled !== 1) {
-				const _ssj = V.slaves.find(s => s.ID === slave.relationshipTarget);
-				if (_ssj) {
-					helpers.referenceSlaveWithPreview(block, _ssj, SlaveFullName(_ssj));
+				const ssj = V.slaves.find(s => s.ID === slave.relationshipTarget);
+				if (ssj) {
+					helpers.referenceSlaveWithPreview(block, ssj, SlaveFullName(ssj));
 					addText(block, "'s ");
 					makeSpan(block, bits.makeBit(relationshipTerm(slave)), cssClassName);
 				}
@@ -1020,12 +1020,12 @@ App.UI.SlaveSummaryImpl = function() {
 		 */
 		function short_skills(slave, c) {
 			const sd = data.short.skills;
-			let _SSkills = (slave.skill.anal + slave.skill.oral);
-			if (((_SSkills + slave.skill.whoring + slave.skill.entertainment) >= 400) && ((slave.vagina < 0) || (slave.skill.vaginal >= 100))) {
+			let SSkills = (slave.skill.anal + slave.skill.oral);
+			if (((SSkills + slave.skill.whoring + slave.skill.entertainment) >= 400) && ((slave.vagina < 0) || (slave.skill.vaginal >= 100))) {
 				helpers.makeStyledSpan(c, sd.mss);
 			} else {
-				_SSkills += slave.skill.vaginal;
-				helpers.makeStyledSpan(c, helpers.getMultiNumericRating(sd.sex, [_SSkills, slave.vagina >= 0 ? 1 : 0]), Math.trunc(_SSkills), true);
+				SSkills += slave.skill.vaginal;
+				helpers.makeStyledSpan(c, helpers.getMultiNumericRating(sd.sex, [SSkills, slave.vagina >= 0 ? 1 : 0]), Math.trunc(SSkills), true);
 				helpers.makeRatedStyledSpan(c, sd.whoring, slave.skill.whoring, 0, true);
 				helpers.makeRatedStyledSpan(c, sd.entertainment, slave.skill.entertainment, 0, true);
 			}
@@ -1074,12 +1074,12 @@ App.UI.SlaveSummaryImpl = function() {
 		 */
 		function long_skills(slave, c) {
 			const sd = data.long.skills;
-			let _SSkills = (slave.skill.anal + slave.skill.oral);
-			if (((_SSkills + slave.skill.whoring + slave.skill.entertainment) >= 400) && ((slave.vagina < 0) || (slave.skill.vaginal >= 100))) {
+			let SSkills = (slave.skill.anal + slave.skill.oral);
+			if (((SSkills + slave.skill.whoring + slave.skill.entertainment) >= 400) && ((slave.vagina < 0) || (slave.skill.vaginal >= 100))) {
 				helpers.makeStyledSpan(c, sd.mss);
 			} else {
-				_SSkills += slave.skill.vaginal;
-				helpers.makeStyledSpan(c, helpers.getMultiNumericRating(sd.sex, [_SSkills, slave.vagina >= 0 ? 1 : 0]), Math.trunc(_SSkills), true);
+				SSkills += slave.skill.vaginal;
+				helpers.makeStyledSpan(c, helpers.getMultiNumericRating(sd.sex, [SSkills, slave.vagina >= 0 ? 1 : 0]), Math.trunc(SSkills), true);
 				helpers.makeRatedStyledSpan(c, sd.whoring, slave.skill.whoring, 0, true);
 				helpers.makeRatedStyledSpan(c, sd.entertainment, slave.skill.entertainment, 0, true);
 			}
@@ -1531,17 +1531,17 @@ App.UI.SlaveSummaryImpl = function() {
 		function short_rival(slave, c) {
 			if (slave.rivalry !== 0) {
 				const block = makeBlock(c, "lightsalmon");
-				const _ssj = V.slaves.find(s => s.ID === slave.rivalryTarget);
-				if (_ssj) {
+				const ssj = V.slaves.find(s => s.ID === slave.rivalryTarget);
+				if (ssj) {
 					if (slave.rivalry <= 1) {
 						block.textContent = 'Disl ';
-						helpers.referenceSlaveWithPreview(block, _ssj, SlaveFullName(_ssj));
+						helpers.referenceSlaveWithPreview(block, ssj, SlaveFullName(ssj));
 					} else if (slave.rivalry <= 2) {
-						helpers.referenceSlaveWithPreview(block, _ssj, SlaveFullName(_ssj));
+						helpers.referenceSlaveWithPreview(block, ssj, SlaveFullName(ssj));
 						addText(block, "'s rival");
 					} else {
 						block.textContent = 'Hates ';
-						helpers.referenceSlaveWithPreview(block, _ssj, SlaveFullName(_ssj));
+						helpers.referenceSlaveWithPreview(block, ssj, SlaveFullName(ssj));
 					}
 				}
 			}
@@ -1575,21 +1575,21 @@ App.UI.SlaveSummaryImpl = function() {
 		function long_rival(slave, c) {
 			if (slave.rivalry !== 0) {
 				const block = makeBlock(c);
-				const _ssj = V.slaves.find(s => s.ID === slave.rivalryTarget);
-				if (_ssj) {
+				const ssj = V.slaves.find(s => s.ID === slave.rivalryTarget);
+				if (ssj) {
 					if (slave.rivalry <= 1) {
 						makeSpan(block, "Dislikes", "lightsalmon");
 						addText(block, ' ');
-						helpers.referenceSlaveWithPreview(block, _ssj, SlaveFullName(_ssj));
+						helpers.referenceSlaveWithPreview(block, ssj, SlaveFullName(ssj));
 						addText(block, '.');
 					} else if (slave.rivalry <= 2) {
-						helpers.referenceSlaveWithPreview(block, _ssj, SlaveFullName(_ssj));
+						helpers.referenceSlaveWithPreview(block, ssj, SlaveFullName(ssj));
 						addText(block, "'s ");
 						makeSpan(block, "rival.", "lightsalmon");
 					} else {
 						makeSpan(block, "Hates", "lightsalmon");
 						addText(block, ' ');
-						helpers.referenceSlaveWithPreview(block, _ssj, SlaveFullName(_ssj));
+						helpers.referenceSlaveWithPreview(block, ssj, SlaveFullName(ssj));
 						addText(block, '.');
 					}
 				}
diff --git a/src/js/statsChecker/statsChecker.js b/src/js/statsChecker/statsChecker.js
index 34fa7e99894b25c2b81b22063346b1a8d34ec0d8..f6e7a907a9a175f3ed600ab6028293d74f2bb58e 100644
--- a/src/js/statsChecker/statsChecker.js
+++ b/src/js/statsChecker/statsChecker.js
@@ -1128,9 +1128,9 @@ globalThis.getGeneticSkinColor = function(slave) {
 };
 
 /**
- * 
+ *
  * @param {App.Entity.SlaveState} slave
- * @returns {Boolean}
+ * @returns {boolean}
  */
 globalThis.canBeReceptrix = function(slave) {
 	return (
diff --git a/src/js/utilsDOM.js b/src/js/utilsDOM.js
index 5d0bf4323822e5c6a8f7b3a44b410574e67e2dd7..9dc8690bcae36ea50fbe57514056e03af3079f6c 100644
--- a/src/js/utilsDOM.js
+++ b/src/js/utilsDOM.js
@@ -98,7 +98,7 @@ App.UI.DOM.link = function(linkText, handler, args = [], passage = "", tooltip =
 /**
  * Creates a span for an link with tooltip containing the reasons why it is disabled
  * @param {string} link
- * @param {string[]} reasons
+ * @param {(string|DocumentFragment|HTMLElement)[]} reasons
  * @returns {HTMLSpanElement}
  */
 App.UI.DOM.disabledLink = function(link, reasons) {
@@ -106,12 +106,12 @@ App.UI.DOM.disabledLink = function(link, reasons) {
 	let tooltip;
 	if (reasons.length === 1) {
 		tooltip = document.createElement("span");
-		tooltip.textContent = reasons[0];
+		tooltip.append(reasons[0]);
 	} else {
 		tooltip = document.createElement("ul");
 		for (const li of reasons.map(r => {
 			const li = document.createElement("li");
-			li.textContent = r;
+			li.append(r);
 			return li;
 		})) {
 			tooltip.appendChild(li);
@@ -425,12 +425,22 @@ Macro.add("includeDOM", {
 	}
 });
 
-App.UI.DOM.cashFormat = function(s) {
+/**
+ * Formats the given number as currency.
+ *
+ * Positive values returns in green, negative values return in red, unless the invert parameter is set.
+ * @param {number} s The number to format.
+ * @param {boolean} [invert] Whether or not to invert the numbers (i.e. display positive numbers in red, and negative numbers in green).
+ * @returns {HTMLSpanElement}
+ */
+App.UI.DOM.cashFormat = function(s, invert) {
 	const span = document.createElement("span");
-	if (s < 0) { // Display red if the value is negative, unless invert is true
-		span.classList.add("red");
-	} else if (s !== 0) { // Yellow for positive
-		span.classList.add("cash");
+	if ((invert && s > 0) || s < 0) {
+		// Display in red (WITHOUT a negative sign) if the value is negative, unless invert is true
+		span.classList.add("cash", "dec");
+	} else if (s !== 0) {
+		// Yellow for positive
+		span.classList.add("cash", "inc");
 	}
 	span.textContent = cashFormat(Math.trunc(s));
 	return span;
diff --git a/src/js/utilsSC.js b/src/js/utilsSC.js
index a2de774ae8c71356dedf8795e57079e29807ccd1..61f27b0f2881d2224bb5405821835c4bab179ed8 100644
--- a/src/js/utilsSC.js
+++ b/src/js/utilsSC.js
@@ -180,7 +180,7 @@ App.UI.tabBar = function() {
 		function selectTab() {
 			let tabBtn = document.getElementById(`tab ${selectedTab}`);
 			if (!tabBtn) {
-				tabBtn = /** @type {HTMLElement}*/(document.getElementsByClassName('tab-links').item(0));
+				tabBtn = /** @type {HTMLElement} */(document.getElementsByClassName('tab-links').item(0));
 			}
 			if (tabBtn) {
 				tabBtn.click();
diff --git a/src/js/utilsSlave.js b/src/js/utilsSlave.js
index 08e0f560bc8c0003c1eea87e83d7909dc72d27a8..05f7401ddcc8774b3d990b2d516ab41031648c08 100644
--- a/src/js/utilsSlave.js
+++ b/src/js/utilsSlave.js
@@ -2055,6 +2055,11 @@ globalThis.newSlave = function(slave) {
 		V.REReductionCheckinIDs.push(slave.ID);
 	}
 
+	/* special case for MB slave genetic intellignece in slave acquisition */
+	if (slave.savedIntelligence !== undefined) {
+		slave.intelligence = slave.savedIntelligence;
+	}
+
 	generatePronouns(slave);
 	SetBellySize(slave);
 	V.slaveIndices[slave.ID] = V.slaves.push(slave) - 1;
@@ -2072,6 +2077,10 @@ globalThis.newSlave = function(slave) {
 		slave.intelligence = -100;
 		delete slave.dullIntelligence;
 	}
+	if (slave.savedIntelligence !== undefined) { // MB sets int to -75
+		slave.intelligence = -75;
+		delete slave.savedIntelligence;
+	}
 
 	if (slave.assignment) {
 		assignJob(slave, slave.assignment);
@@ -2135,20 +2144,20 @@ globalThis.SlaveFullBirthName = function(slave) {
  */
 globalThis.PoliteRudeTitle = function(slave) {
 	const PC = V.PC;
-	const {s, ss, title} = getEnunciation(slave);
+	const {title} = getEnunciation(slave);
 
 	let r = "";
 	if (slave.nationality === "Japanese") {
 		if (slave.trust > 0) {
 			r += `${PC.slaveName}${PC.title > 0 ? "kun" : "chan"}`;
 		} else {
-			r += (PC.slaveSurname ? PC.slaveSurname : `${PC.slaveName}${s}an`);
+			r += Spoken(slave, PC.slaveSurname ? PC.slaveSurname : `${PC.slaveName}san`);
 		}
 	} else {
 		if (slave.intelligence + slave.intelligenceImplant < -95) {
 			r += title;
 		} else if (slave.intelligence + slave.intelligenceImplant > 50) {
-			r += (PC.title > 0 ? `Ma${s}ter` : `Mi${s}tre${ss}`);
+			r += Spoken(slave, PC.title > 0 ? `Master` : `Mistress`);
 		} else if (slave.trust > 0) {
 			r += PC.slaveName;
 		} else {
@@ -3650,29 +3659,29 @@ globalThis.restoreTraitor = function() {
 		}
 	}
 	if (V.incubator.capacity > 0) {
-		for (const _pca of V.incubator.tanks) {
-			if (V.traitorStats.traitorMotherTank.includes(_pca.ID)) {
-				_pca.mother = V.traitor.ID;
+		for (const pca of V.incubator.tanks) {
+			if (V.traitorStats.traitorMotherTank.includes(pca.ID)) {
+				pca.mother = V.traitor.ID;
 			}
-			if (V.traitorStats.traitorFatherTank.includes(_pca.ID)) {
-				_pca.father = V.traitor.ID;
+			if (V.traitorStats.traitorFatherTank.includes(pca.ID)) {
+				pca.father = V.traitor.ID;
 			}
 		}
 	}
 	if (V.nursery > 0) {
-		for (const _pca of V.cribs) {
-			if (V.traitorStats.traitorMotherTank.includes(_pca.ID)) {
-				_pca.mother = V.traitor.ID;
+		for (const pca of V.cribs) {
+			if (V.traitorStats.traitorMotherTank.includes(pca.ID)) {
+				pca.mother = V.traitor.ID;
 			}
-			if (V.traitorStats.traitorFatherTank.includes(_pca.ID)) {
-				_pca.father = V.traitor.ID;
+			if (V.traitorStats.traitorFatherTank.includes(pca.ID)) {
+				pca.father = V.traitor.ID;
 			}
 		}
 	}
 	if (V.traitorStats.boomerangBody > 0) {
-		const _pca = getSlave(V.traitorStats.traitorBody);
-		if (_pca) {
-			_pca.origBodyOwnerID = V.traitor.ID;
+		const pca = getSlave(V.traitorStats.traitorBody);
+		if (pca) {
+			pca.origBodyOwnerID = V.traitor.ID;
 		}
 	}
 	for (const slave of V.slaves) {
@@ -3689,8 +3698,9 @@ globalThis.restoreTraitor = function() {
  * Sets a slave to default values for mindbroken.
  *
  * @param {App.Entity.SlaveState} slave
+ * @param {number} oldIntelligence Genetic intelligence for slavegen. Seriously, do not use outside of slavegen!
  */
-globalThis.applyMindbroken = function(slave) {
+globalThis.applyMindbroken = function(slave, oldIntelligence = -200) {
 	slave.fetish = "mindbroken";
 	slave.fetishStrength = 10;
 	slave.attrXY = 50;
@@ -3704,6 +3714,9 @@ globalThis.applyMindbroken = function(slave) {
 	slave.skill.combat = 0;
 	slave.skill.whoring = 0;
 	slave.skill.entertainment = 0;
+	if (oldIntelligence >= -100) {
+		slave.savedIntelligence = oldIntelligence;
+	}
 	slave.intelligence = -75;
 	slave.intelligenceImplant = 0;
 	slave.sexualFlaw = "none";
diff --git a/src/js/utilsUnits.js b/src/js/utilsUnits.js
index 5e5932b1d5d8545b063ff7fa39ccb74178c26822..3c952e3e581ee0c726f85340c14d781aaf3da94d 100644
--- a/src/js/utilsUnits.js
+++ b/src/js/utilsUnits.js
@@ -334,24 +334,21 @@ globalThis.cashFormat = function(s = 0) {
 /**
  * Formats the given number as currency.
  *
- * Positive values returns in green, negative values return in red.
+ * Positive values returns in green, negative values return in red, unless the invert parameter is set.
  * @param {number} s The number to format.
- * @param {boolean} invert Whether or not to invert the numbers.
- * @returns {string} Returns a string of the number formatted as a currency with different colors depending on the amount.
+ * @param {boolean} invert Whether or not to invert the numbers (i.e. display positive numbers in red, and negative numbers in green).
+ * @returns {string}
  */
 globalThis.cashFormatColor = function(s = 0, invert = false) {
-	if (invert) {
-		s = -1 * s;
-	}
-	// Display red if the value is negative, unless invert is true
-	if (s < 0) {
-		return `<span class='red'>${cashFormat(s)}</span>`;
-		// White for exactly zero
+	if ((invert && s > 0) || s < 0) {
+		// Display in red (WITHOUT a negative sign) if the value is negative, unless invert is true
+		return `<span class='cash dec'>${cashFormat(s)}</span>`;
 	} else if (s === 0) {
+		// White for exactly zero
 		return `<span>${cashFormat(s)}</span>`;
-		// Yellow for positive
 	} else {
-		return `<span class='cash'>${cashFormat(s)}</span>`;
+		// Yellow for positive
+		return `<span class='cash inc'>${cashFormat(s)}</span>`;
 	}
 };
 
diff --git a/src/js/wombJS.js b/src/js/wombJS.js
index 7a1cf00585da20ad7c359ae3ce51b912dfc29985..4a0a91d514a76f79783e825479208b891d0576ee 100644
--- a/src/js/wombJS.js
+++ b/src/js/wombJS.js
@@ -926,13 +926,6 @@ globalThis.WombCleanAllReserve = function(actor) {
  * - data.litters[x] = age (.realAge) of litter "x".
  * - data.litterData[x].length = count of fetuses in "x" litter.
  * - data.litterData[x] = array with actual fetuses that belong to a litter "x". Can be used to check anything related to fetus. (This is not a copy, but a reference to actual fetuses, so be careful with changes).
- *
- * Sample of usage in SugarScript:
- * ---
- * <<set _wd = WombGetLittersData(_slave)>>
- * $He is _wd.litters[0] weeks pregnant with $his first set of _wd.litterData[0].length children<<if _wd.litters > 1>>, _wd.litters[1] weeks along with $his second set<</if>><<if _wd.litters > 2>>, _wd.litters[2] and _wd.litters[2] weeks along with $his third<</if>>.
- * In summary $he carry _wd.litters.length separate sets of children. $His most progressed fetus of second pregnancy is already reached _wd.litterData[1][0].age biological week of gestation.
- * ---
  */
 globalThis.WombGetLittersData = function(actor) {
 	let unicLiters = []; // array with realAges of separate litters.
diff --git a/src/markets/bulkSlave/bulkSlaveIntro.js b/src/markets/bulkSlave/bulkSlaveIntro.js
index 3409530dfdeff8b80272c0931922adae0beb2d14..51763c1254b7b3061721adfbbb4a73f0aab2cbe9 100644
--- a/src/markets/bulkSlave/bulkSlaveIntro.js
+++ b/src/markets/bulkSlave/bulkSlaveIntro.js
@@ -83,12 +83,12 @@ App.Markets.bulkSlaveIntro = function() {
 		}
 
 		/* Set slave to the desired newSlave so that existing code can be used */
-		const _slave = V.market.newSlaves[V.market.newSlaveIndex];
+		const slave = V.market.newSlaves[V.market.newSlaveIndex];
 
-		el.append(App.Desc.longSlave(_slave, {market: V.market.slaveMarket}));
+		el.append(App.Desc.longSlave(slave, {market: V.market.slaveMarket}));
 
 		/* Use existing New Slave Intro */
-		el.append(App.UI.newSlaveIntro(_slave));
+		el.append(App.UI.newSlaveIntro(slave));
 
 		/* Override nextButton setting from New Slave Intro */
 		V.nextButton = "Continue";
@@ -128,38 +128,38 @@ App.Markets.bulkSlaveIntro = function() {
 		V.market.newSlavesDone = 0;
 		V.market.newSlaveIndex = 0;
 		V.market.introType = "bulk";
-		let _slaveCost;
+		let cost;
 		if (!V.market.numSlaves) {
 			V.market.numSlaves = 5;
 		}
 
-		for (let _i = 0; _i < V.market.numSlaves; _i++) {
+		for (let i = 0; i < V.market.numSlaves; i++) {
 			let slave = (generateMarketSlave(V.market.slaveMarket, V.market.numArcology)).slave;
 			V.slavesSeen++;
 			if (!App.Data.misc.lawlessMarkets.includes(V.market.slaveMarket)) {
 				App.Desc.lawCompliance(slave, V.market.slaveMarket); /* slave stats may change, affecting price */
 			}
-			_slaveCost = slaveCost(slave);
+			cost = slaveCost(slave);
 
-			/* Adjust _slaveCost according to V.slavesSeen */
+			/* Adjust cost according to V.slavesSeen */
 			if (V.slavesSeen > V.slaveMarketLimit) {
-				_slaveCost += _slaveCost * ((V.slavesSeen - V.slaveMarketLimit) * 0.1);
+				cost += cost * ((V.slavesSeen - V.slaveMarketLimit) * 0.1);
 				if (V.market.introType === "inStock") {
 					break;
 				}
 			}
 
 			/* Apply discount modifier */
-			_slaveCost = discount * Math.trunc(_slaveCost / 500);
+			cost = discount * Math.trunc(cost / 500);
 
 			/* Charge the Player for the slave, or break out if cannot afford */
-			if (V.cash < _slaveCost) {
-				_i = V.market.numSlaves;
+			if (V.cash < cost) {
+				i = V.market.numSlaves;
 				break;
 			} else {
-				cashX(forceNeg(_slaveCost), "slaveTransfer", slave);
+				cashX(forceNeg(cost), "slaveTransfer", slave);
 				V.market.newSlaves.push(slave);
-				V.market.totalCost += _slaveCost;
+				V.market.totalCost += cost;
 			}
 		}
 
diff --git a/src/markets/marketUI.js b/src/markets/marketUI.js
index 62a8a55c97112dfde15aa925e6f3256337e37522..981baec4b2e0a85ca42e932cb084708eb4eff5ad 100644
--- a/src/markets/marketUI.js
+++ b/src/markets/marketUI.js
@@ -9,7 +9,8 @@
 App.Markets.purchaseFramework = function(slaveMarket, {sTitleSingular = "slave", sTitlePlural = "slaves", costMod = 1} = {}) {
 	const el = new DocumentFragment();
 	const {slave, text} = generateMarketSlave(slaveMarket, (V.market.numArcology || 1));
-	const cost = getCost();
+	const costObj = getCost();
+	const cost = costObj.cost;
 	let prisonCrime = "";
 	if (slaveMarket === V.prisonCircuit[V.prisonCircuitIndex]) {
 		prisonCrime = pronounsForSlaveProp(slave, text);
@@ -17,16 +18,18 @@ App.Markets.purchaseFramework = function(slaveMarket, {sTitleSingular = "slave",
 		$(el).append(` ${text}`);
 	}
 
-	App.UI.DOM.appendNewElement("p",
-		el,
-		`The offered price is ${cashFormat(cost)}. ${(V.slavesSeen > V.slaveMarketLimit) ? `You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.` : ``}`
-	);
+	App.Events.addParagraph(el, [
+		`The offered price is`,
+		App.UI.DOM.combineNodes(costObj.report, "."),
+		V.slavesSeen > V.slaveMarketLimit ? `You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.` : ``
+	]);
 
 	el.append(choices());
 	return el;
 
 	function getCost() {
-		let cost = slaveCost(slave, false, !App.Data.misc.lawlessMarkets.includes(slaveMarket));
+		const costObj = slaveCost(slave, false, !App.Data.misc.lawlessMarkets.includes(slaveMarket), false, true);
+		let cost = costObj.cost;
 		if (V.slavesSeen > V.slaveMarketLimit) {
 			cost += cost * ((V.slavesSeen - V.slaveMarketLimit) * 0.1);
 		}
@@ -37,7 +40,7 @@ App.Markets.purchaseFramework = function(slaveMarket, {sTitleSingular = "slave",
 		}
 		console.log("CostMod: ", costMod);
 		cost = 500 * Math.trunc(cost / 500);
-		return cost;
+		return {cost, report: costObj.report};
 	}
 
 	function choices() {
diff --git a/src/markets/specificMarkets/householdLiquidator.js b/src/markets/specificMarkets/householdLiquidator.js
index d7f1262a2e54e559cbb3218d177e4e17a0338c32..bf14e7b98d81ea120f1606d2dda2356729e77458 100644
--- a/src/markets/specificMarkets/householdLiquidator.js
+++ b/src/markets/specificMarkets/householdLiquidator.js
@@ -5,8 +5,8 @@ App.Markets["Household Liquidator"] = function() {
 	const el = new DocumentFragment();
 	let slave;
 	let r = [];
-	const _newSlaves = [];
-	let _totalCost;
+	const newSlaves = [];
+	let totalCost;
 	if (jsRandom(1, 100) > 50) {
 		// Old enough to have a younger sibling who can be a slave.
 		slave = GenerateNewSlave(null, {
@@ -16,18 +16,18 @@ App.Markets["Household Liquidator"] = function() {
 		setMissingParents(slave);
 
 		// Create opposite sex chance of relative
-		const _oppositeSex = (slave.genes !== GenerateChromosome());
+		const oppositeSex = (slave.genes !== GenerateChromosome());
 		App.UI.DOM.appendNewElement("p", el, `The household liquidator is offering a set of siblings for sale. You are permitted to inspect both slaves.`);
 
-		const _relativeSlave = generateRelatedSlave(slave, "younger sibling", _oppositeSex);
-		_newSlaves.push(slave);
-		_newSlaves.push(_relativeSlave);
+		const relativeSlave = generateRelatedSlave(slave, "younger sibling", oppositeSex);
+		newSlaves.push(slave);
+		newSlaves.push(relativeSlave);
 
-		let _slaveCost = slaveCost(slave, false, true);
+		let cost = slaveCost(slave, false, true);
 		if (V.slavesSeen > V.slaveMarketLimit) {
-			_slaveCost += Math.trunc(_slaveCost * ((V.slavesSeen - V.slaveMarketLimit) * 0.1));
+			cost += Math.trunc(cost * ((V.slavesSeen - V.slaveMarketLimit) * 0.1));
 		}
-		_totalCost = _slaveCost * 3;
+		totalCost = cost * 3;
 	} else if (jsRandom(1, 100) > 20) {
 		// Old enough to have a child who can be a slave.
 		slave = GenerateNewSlave(null, {
@@ -45,56 +45,56 @@ App.Markets["Household Liquidator"] = function() {
 		}
 		finishSlave();
 		// Create opposite sex chance of relative
-		const _oppositeSex = (slave.genes !== GenerateChromosome());
+		const oppositeSex = (slave.genes !== GenerateChromosome());
 		const {his, mother} = getPronouns(slave);
 
-		const _relativeSlave = generateRelatedSlave(slave, "child", _oppositeSex);
-		const {daughter} = getPronouns(_relativeSlave);
+		const relativeSlave = generateRelatedSlave(slave, "child", oppositeSex);
+		const {daughter} = getPronouns(relativeSlave);
 
 		r.push(`The household liquidator is offering a ${mother} and ${his} ${daughter} for sale. You are permitted to inspect both slaves.`);
 		App.UI.DOM.appendNewElement("p", el, r.join(" "));
 
-		_newSlaves.push(slave);
-		_newSlaves.push(_relativeSlave);
+		newSlaves.push(slave);
+		newSlaves.push(relativeSlave);
 
-		let _slaveCost = slaveCost(slave, false, true);
+		let cost = slaveCost(slave, false, true);
 		if (V.slavesSeen > V.slaveMarketLimit) {
-			_slaveCost += Math.trunc(_slaveCost * ((V.slavesSeen - V.slaveMarketLimit) * 0.1));
+			cost += Math.trunc(cost * ((V.slavesSeen - V.slaveMarketLimit) * 0.1));
 		}
-		_totalCost = _slaveCost * 3;
+		totalCost = cost * 3;
 	} else {
 		slave = GenerateNewSlave(null, {disableDisability: 1});
 		finishSlave();
 		setMissingParents(slave);
 		App.UI.DOM.appendNewElement("p", el, `The household liquidator is offering something special: identical twins. The markup is huge, but the merchandise isn't something you see every day.`);
 
-		const _relativeSlave = generateRelatedSlave(slave, "twin");
-		_newSlaves.push(slave);
-		_newSlaves.push(_relativeSlave);
+		const relativeSlave = generateRelatedSlave(slave, "twin");
+		newSlaves.push(slave);
+		newSlaves.push(relativeSlave);
 
-		let _slaveCost = slaveCost(slave, false, true);
+		let cost = slaveCost(slave, false, true);
 		if (V.slavesSeen > V.slaveMarketLimit) {
-			_slaveCost += Math.trunc(_slaveCost * ((V.slavesSeen - V.slaveMarketLimit) * 0.1));
+			cost += Math.trunc(cost * ((V.slavesSeen - V.slaveMarketLimit) * 0.1));
 		}
-		_totalCost = _slaveCost * 4;
+		totalCost = cost * 4;
 	}
 
 	el.append(`The price is `);
-	el.append(App.UI.DOM.cashFormat(_totalCost));
+	el.append(App.UI.DOM.cashFormat(totalCost));
 	el.append(`.`);
 	if (V.slavesSeen > V.slaveMarketLimit) {
 		el.append(` You have cast such a wide net for slaves this week that it is becoming more expensive to find more for sale. Your reputation helps determine your reach within the slave market.`);
 	}
 
-	if (V.cash >= _totalCost) {
+	if (V.cash >= totalCost) {
 		App.UI.DOM.appendNewElement(
 			"div",
 			el,
 			App.UI.DOM.link(
 				`Buy their slave contract`,
 				() => {
-					V.market.newSlaves = _newSlaves;
-					V.market.newSlaves.forEach((s) => cashX(forceNeg(_totalCost / V.market.newSlaves.length), "slaveTransfer", s));
+					V.market.newSlaves = newSlaves;
+					V.market.newSlaves.forEach((s) => cashX(forceNeg(totalCost / V.market.newSlaves.length), "slaveTransfer", s));
 				},
 				[],
 				"Bulk Slave Intro"
@@ -115,7 +115,7 @@ App.Markets["Household Liquidator"] = function() {
 			"Market"
 		)
 	);
-	App.UI.DOM.appendNewElement("p", el, App.UI.MultipleInspect(_newSlaves, true, "Household Liquidators"));
+	App.UI.DOM.appendNewElement("p", el, App.UI.MultipleInspect(newSlaves, true, "Household Liquidators"));
 
 	return el;
 
diff --git a/src/markets/specificMarkets/slaveMarkets.js b/src/markets/specificMarkets/slaveMarkets.js
index 02115bdf164d18256d62be6a01e53cba3a526079..ba482e1abdfc258077e0c3f6347cf5206f17b56c 100644
--- a/src/markets/specificMarkets/slaveMarkets.js
+++ b/src/markets/specificMarkets/slaveMarkets.js
@@ -4,12 +4,12 @@ App.Markets.heap = function() {
 	r.push(`You visit the slave markets off the arcology plaza. It's always preferable to examine merchandise in person.`);
 	r.push(`You're in the corner of the slave market occupied by "The Flesh Heap", a dumping ground, of sorts, for broken slaves. Be it brain death, drug overdose, coma, or anything else, this market is willing to buy and sell them. Most of the worthwhile slaves have already been picked clean by pharmaceutical companies for drug testing, and the rest are practically nothing more than vegetables, but a handful remain just conscious enough to be profitable with effort as slaves. One should go in expecting only the worst quality possible, though if anything catches your eye, it will be rather cheap to purchase.`);
 
-	let _heap = jsRandom(1, 4);
-	if (_heap === 1) {
+	let heap = jsRandom(1, 4);
+	if (heap === 1) {
 		r.push(`"Looking for a warm body to use as furniture? Perhaps as a decorative, living sculpture? We got what you want!"`);
-	} else if (_heap === 2) {
+	} else if (heap === 2) {
 		r.push(`"I guarantee they are all alive, maybe not healthy, but alive. Well, except that one; just ignore that one."`);
-	} else if (_heap === 3) {
+	} else if (heap === 3) {
 		r.push(`"We ask that you don't use this merchandise for organ harvesting; we have plenty of nonfunctional ones for that."`);
 	} else {
 		r.push(`"If you are looking for a body to do unmentionable things to, you came to the right place! Though these in particular just barely fall under slave laws."`);
@@ -25,16 +25,16 @@ App.Markets.wetware = function() {
 	const {heU, hisU} = getNonlocalPronouns(V.seeDicks).appendSuffix('U');
 	r.push(`You're in the corner of the slave market occupied by scientists and programmers, pioneers in perfecting the skills of slaves by removing all external stimuli and subjecting them to an inhumane regimen of simulated sexual and career training. Although their bodies are ruined, these slaves are guaranteed to be intelligent, skilled and trained in a variety of jobs. If you're willing to perform extensive repairs${(V.bodyswapAnnounced) ? `, or have a spare body ready` : ``}, these slaves have high potential in almost any role in your arcology.`);
 
-	let _wetware = jsRandom(1, 4);
-	if (_wetware === 1) {
+	let wetware = jsRandom(1, 4);
+	if (wetware === 1) {
 		r.push(`Just past a scientist, you can see a`);
 		if (V.seeExtreme === 1) {
 			r.push(`limbless`);
 		}
 		r.push(`slave being extracted from a tank filled with fluid wearing a bizarre helmet. As the device is removed by a technician, the slave begins to panic as ${heU} is dragged from ${hisU} virtual life and realizes exactly what has happened to ${hisU} body.`);
-	} else if (_wetware === 2) {
+	} else if (wetware === 2) {
 		r.push(`A scientist turns to you and remarks "I almost envy the hardware. They believe they're having a fulfilling career with a loving family and meaningful relationships for a lifetime. Honestly, if the mental imprinting process wasn't so destructive to the human body, I'd probably hop in myself!"`);
-	} else if (_wetware === 3) {
+	} else if (wetware === 3) {
 		r.push(`Racks of ravaged bodies are laid across tables with plaques stating slave IQ, career, and sexual skill exam results.`);
 	} else {
 		r.push(`Curious, you ask a technician why it's necessary for the merchandise to be so badly treated. He replies "Forcing stimulus on the hardware takes an enormous toll on their nervous and circulatory system. The nonfunctional components are disabled and removed as necessary to ensure optimal response to the imprinting process."`);
@@ -52,13 +52,13 @@ App.Markets.kidnappers = function() {
 	if (V.arcologies[0].FSPaternalistSMR === 1) {
 		r.push(`Fortunately for them, such behavior is not permitted here. Though they remain frightened and angry, they are safe from rape, for now.`);
 	} else {
-		let _kidnappers = jsRandom(1, 4);
+		let kidnappers = jsRandom(1, 4);
 		r.push(`There's more merchandise out of sight in the holding areas. To go by what you can hear,`);
-		if (_kidnappers === 1 && jsRandom(1, 100) <= V.seeDicks) {
+		if (kidnappers === 1 && jsRandom(1, 100) <= V.seeDicks) {
 			r.push(`muffled insistence that the speaker is not a girl followed by struggling and then shrieks as a resistant dickgirl takes anal rape,`);
-		} else if ((_kidnappers === 2) && (jsRandom(0, 99) >= V.seeDicks)) {
+		} else if ((kidnappers === 2) && (jsRandom(0, 99) >= V.seeDicks)) {
 			r.push(`muffled begging followed by struggling and then crying as a new slave learns how it feels to have a slave's cunt,`);
-		} else if (_kidnappers === 3) {
+		} else if (kidnappers === 3) {
 			r.push(`muffled gagging followed gasping and sobbing as a new slave tries to get ${hisU} breath back after oral rape,`);
 		} else {
 			r.push(`the unmistakable slap of flesh on flesh,`);
@@ -83,13 +83,13 @@ App.Markets.indentures = function() {
 	if (V.arcologies[0].FSPaternalistSMR === 1) {
 		r.push(`The generous protections for slaves in your arcology lend this last group extra confidence.`);
 	} else {
-		let _indentures = jsRandom(1, 4);
+		let indentures = jsRandom(1, 4);
 		r.push(`The area is crowded, and more indentured servants are packed together in the holding areas. To go by what you can hear,`);
-		if (_indentures === 1 && jsRandom(1, 100) <= V.seeDicks) {
+		if (indentures === 1 && jsRandom(1, 100) <= V.seeDicks) {
 			r.push(`the unmistakable mixed shrieks, sobs, and slaps of anal rape,`);
-		} else if ((_indentures === 2) && (jsRandom(0, 99) >= V.seeDicks)) {
+		} else if ((indentures === 2) && (jsRandom(0, 99) >= V.seeDicks)) {
 			r.push(`the characteristic crying and gasping of an unwilling ${girlU} giving up ${hisU} cunt,`);
-		} else if (_indentures === 3) {
+		} else if (indentures === 3) {
 			r.push(`the gagging and expectoration of someone who has just gotten a mouthful of unwelcome cum,`);
 		} else {
 			r.push(`disconsolate sobbing interrupted by a gasp as something is stuffed inside someone's mouth, and followed by muffled screams,`);
@@ -110,13 +110,13 @@ App.Markets.hunters = function() {
 	if (V.arcologies[0].FSPaternalistSMR === 1) {
 		r.push(`Their methods are somewhat limited, as the rules in your arcology preclude the more effective methods of punishment.`);
 	} else {
-		let _hunters = jsRandom(1, 4);
+		let hunters = jsRandom(1, 4);
 		r.push(`The slave catchers consider their catches fair game, though they usually confine their amusements to the holding areas out of sight. Not out of earshot, though; to go by what you can hear,`);
-		if (_hunters === 1 && jsRandom(1, 100) <= V.seeDicks) {
+		if (hunters === 1 && jsRandom(1, 100) <= V.seeDicks) {
 			r.push(`vehement insistence that the speaker is not a girl followed by a beating and then shrieks as a rebellious dickgirl takes anal rape,`);
-		} else if (_hunters === 2 && jsRandom(0, 99) >= V.seeDicks) {
+		} else if (hunters === 2 && jsRandom(0, 99) >= V.seeDicks) {
 			r.push(`vehement protestations followed by a beating and then crying as a slave's cunt takes ${hisU} punishment for ${himU},`);
-		} else if (_hunters === 3) {
+		} else if (hunters === 3) {
 			r.push(`struggling and gagging followed gasping and angry swearing as a rebellious slave tries to get ${hisU} breath back after oral rape,`);
 		} else {
 			r.push(`struggling followed by the slap of flesh on flesh,`);
@@ -140,13 +140,13 @@ App.Markets["underage raiders"] = function() {
 	if (V.arcologies[0].FSPaternalistSMR === 1) {
 		r.push(`though they do obey the rules of your arcology that restrain them from abusing the slaves.`);
 	} else {
-		let _ur = jsRandom(1, 4);
+		let ur = jsRandom(1, 4);
 		r.push(`though they restrain themselves from reducing the value of their captures by taking virginities. They do have their fun, though; to go by what you can hear from the holding area where they keep underage slaves who can be sold,`);
-		if (_ur === 1 && jsRandom(1, 100) <= V.seeDicks) {
+		if (ur === 1 && jsRandom(1, 100) <= V.seeDicks) {
 			r.push(`a muffled but obviously sadistic description of feminization, and the desperate sobbing in response,`);
-		} else if ((_ur === 2) && (jsRandom(0, 99) >= V.seeDicks)) {
+		} else if ((ur === 2) && (jsRandom(0, 99) >= V.seeDicks)) {
 			r.push(`a muffled but obviously sadistic description of breeding, and the desperate sobbing in response,`);
-		} else if (_ur === 3) {
+		} else if (ur === 3) {
 			r.push(`faint struggling and crying that suggests that someone is being thoroughly groped and pinched,`);
 		} else {
 			r.push(`the lewd, lubricated noise of someone giving a reluctant handjob,`);
@@ -169,13 +169,13 @@ App.Markets.raiders = function() {
 	if (V.arcologies[0].FSPaternalistSMR === 1) {
 		r.push(`though they do obey the rules of your arcology that restrain them from abusing the slaves.`);
 	} else {
-		let _raiders = jsRandom(1, 4);
+		let raiders = jsRandom(1, 4);
 		r.push(`though they restrain themselves from reducing the value of their captures by taking virginities. They do have their fun, though; to go by what you can hear from the holding area where they keep slaves of age who can be sold,`);
-		if (_raiders === 1 && jsRandom(1, 100) <= V.seeDicks) {
+		if (raiders === 1 && jsRandom(1, 100) <= V.seeDicks) {
 			r.push(`a muffled but obviously sadistic description of feminization, and the desperate sobbing in response,`);
-		} else if (_raiders === 2 && jsRandom(0, 99) >= V.seeDicks) {
+		} else if (raiders === 2 && jsRandom(0, 99) >= V.seeDicks) {
 			r.push(`a muffled but obviously sadistic description of breeding, and the desperate sobbing in response,`);
-		} else if (_raiders === 3) {
+		} else if (raiders === 3) {
 			r.push(`faint struggling and crying that suggests that someone is being thoroughly groped and pinched,`);
 		} else {
 			r.push(`the lewd, lubricated noise of someone giving a reluctant handjob,`);
@@ -221,13 +221,13 @@ App.Markets.trainers = function() {
 	if (V.arcologies[0].FSPaternalistSMR === 1) {
 		r.push(`Though the rules of your arcology protected them from the worst excesses of the training profession, many of the slaves on sale have the haunted look of people still coming to terms with the idea that they no longer have any bodily autonomy.`);
 	} else {
-		let _trainers = jsRandom(1, 4);
+		let trainers = jsRandom(1, 4);
 		r.push(`The trainers are a competitive bunch, and to go by what you can hear,`);
-		if (_trainers === 1 && jsRandom(1, 100) <= V.seeDicks) {
+		if (trainers === 1 && jsRandom(1, 100) <= V.seeDicks) {
 			r.push(`moaning interspersed with lewd, well-lubricated noises coming from both anal sex and vigorous masturbation,`);
-		} else if (_trainers === 2 && jsRandom(0, 99) >= V.seeDicks) {
+		} else if (trainers === 2 && jsRandom(0, 99) >= V.seeDicks) {
 			r.push(`moaning and the distinctive slap of feminine buttocks on thighs beneath them as a ${girlU} rides a dick,`);
-		} else if (_trainers === 3) {
+		} else if (trainers === 3) {
 			r.push(`the lush, lewd sounds of diligent oral sex,`);
 		} else {
 			r.push(`the call-and-response of a trainer and a slave running through a memorized obedience exercise,`);
diff --git a/src/markets/specificMarkets/slaveShelter.js b/src/markets/specificMarkets/slaveShelter.js
index 4b8bd813215b59cfdb6a047af35d79451d47a088..a4ab86791cd7f65e2ed2d93d523e0e458771e3ca 100644
--- a/src/markets/specificMarkets/slaveShelter.js
+++ b/src/markets/specificMarkets/slaveShelter.js
@@ -52,7 +52,7 @@ App.Markets["Slave Shelter"] = function() {
 					V.shelterSlave.career = "a slave";
 					setHealth(V.shelterSlave, jsRandom(-30, -10));
 					V.shelterSlave.anus = 3;
-					applyMindbroken(V.shelterSlave);
+					applyMindbroken(V.shelterSlave, V.shelterSlave.intelligence);
 					break;
 				case "amputee":
 					V.shelterSlave = GenerateNewSlave(null, {disableDisability: 1});
@@ -100,7 +100,7 @@ App.Markets["Slave Shelter"] = function() {
 					V.shelterSlave.weight = -50;
 					V.shelterSlave.vagina = 9;
 					V.shelterSlave.bellySag = 20;
-					applyMindbroken(V.shelterSlave);
+					applyMindbroken(V.shelterSlave, V.shelterSlave.intelligence);
 					break;
 				case "cannibal victim male":
 					if (V.pedo_mode === 1) {
diff --git a/src/markets/theMarket/buySlaves.js b/src/markets/theMarket/buySlaves.js
index 5d83a8f14328b4c5649dbf5ab6552028ca718536..4672eec2eadfc1d33dde889a83496192e1b59bce 100644
--- a/src/markets/theMarket/buySlaves.js
+++ b/src/markets/theMarket/buySlaves.js
@@ -59,8 +59,8 @@ App.UI.buySlaves = function() {
 
 	function neighborsBlock() {
 		const el = new DocumentFragment();
-		for (let _i = 0; _i < V.arcologies.length; _i++) {
-			if (V.arcologies[_i].direction !== 0) {
+		for (let i = 0; i < V.arcologies.length; i++) {
+			if (V.arcologies[i].direction !== 0) {
 				linkArray = [];
 				const linkUnit = document.createElement("span");
 				linkUnit.append(
@@ -70,14 +70,14 @@ App.UI.buySlaves = function() {
 							V.market = new App.Markets.GlobalVariable();
 							V.market.slaveMarket = "neighbor";
 							V.market.newSlaves = [];
-							V.market.numArcology = _i;
+							V.market.numArcology = i;
 							updateNav();
 						},
 						[],
 						"Market"
 					)
 				);
-				App.UI.DOM.appendNewElement("span", linkUnit, ` ${V.arcologies[_i].name}`, "bold");
+				App.UI.DOM.appendNewElement("span", linkUnit, ` ${V.arcologies[i].name}`, "bold");
 				linkArray.push(linkUnit);
 				if (V.cash > (minCost * 5)) {
 					linkArray.push(
@@ -88,7 +88,7 @@ App.UI.buySlaves = function() {
 								V.market.slaveMarket = "neighbor";
 								V.market.introType = "bulk";
 								V.market.numSlaves = 5;
-								V.market.numArcology = _i;
+								V.market.numArcology = i;
 							},
 							[],
 							"Bulk Slave Intro"
@@ -104,7 +104,7 @@ App.UI.buySlaves = function() {
 								V.market.slaveMarket = "neighbor";
 								V.market.introType = "bulk";
 								V.market.numSlaves = 10;
-								V.market.numArcology = _i;
+								V.market.numArcology = i;
 							},
 							[],
 							"Bulk Slave Intro"
diff --git a/src/markets/theMarket/tradeMenials.js b/src/markets/theMarket/tradeMenials.js
index 90c3a30c6d3138e72af342435223fae09a49b25a..dce3d4dba5ecd9cff08fb3290b53eb4c1fc5d138 100644
--- a/src/markets/theMarket/tradeMenials.js
+++ b/src/markets/theMarket/tradeMenials.js
@@ -194,13 +194,13 @@ App.UI.tradeMenials = function(menialWorkersOnly) {
 				makeLink(100, buySomeMenials);
 			}
 			if (V.cash > (menialPrice + 1) * 2) {
-				let _menialBulkPremium = Math.trunc(1 + Math.clamp(V.cash / menialPrice, 0, bulkMax) / 400);
+				let menialBulkPremium = Math.trunc(1 + Math.clamp(V.cash / menialPrice, 0, bulkMax) / 400);
 				linkArray.push(
 					App.UI.DOM.link(
 						"max",
 						() => {
 							buySomeMenials(
-								Math.trunc(Math.clamp(V.cash / (menialPrice + _menialBulkPremium), 0, bulkMax))
+								Math.trunc(Math.clamp(V.cash / (menialPrice + menialBulkPremium), 0, bulkMax))
 							);
 							jQuery("#menial-span").empty().append(App.UI.tradeMenials(menialWorkersOnly));
 						},
@@ -387,13 +387,13 @@ App.UI.tradeMenials = function(menialWorkersOnly) {
 						makeLink(100, buySomeFuckdolls);
 					}
 					if (V.cash > (menialPrice + 1) * 2) {
-						let _menialBulkPremium = Math.trunc(1 + Math.clamp(V.cash / menialPrice, 0, bulkMax) / 400);
+						let menialBulkPremium = Math.trunc(1 + Math.clamp(V.cash / menialPrice, 0, bulkMax) / 400);
 						linkArray.push(
 							App.UI.DOM.link(
 								"max",
 								() => {
 									buySomeFuckdolls(
-										Math.trunc(Math.clamp(V.cash / (menialPrice + _menialBulkPremium), 0, bulkMax))
+										Math.trunc(Math.clamp(V.cash / (menialPrice + menialBulkPremium), 0, bulkMax))
 									);
 									jQuery("#menial-span").empty().append(App.UI.tradeMenials(menialWorkersOnly));
 								},
@@ -487,13 +487,13 @@ App.UI.tradeMenials = function(menialWorkersOnly) {
 						makeLink(100, buySomeBioreactors);
 					}
 					if (V.cash > (menialPrice - 99) * 2) {
-						let _bioreactorBulkPremium = Math.trunc(1 + Math.clamp(V.cash / (menialPrice - 99), 0, bulkMax) / 400);
+						let bioreactorBulkPremium = Math.trunc(1 + Math.clamp(V.cash / (menialPrice - 99), 0, bulkMax) / 400);
 						linkArray.push(
 							App.UI.DOM.link(
 								"max",
 								() => {
 									buySomeBioreactors(
-										Math.trunc(Math.clamp(V.cash / (menialPrice - 99 + _bioreactorBulkPremium), 0, bulkMax))
+										Math.trunc(Math.clamp(V.cash / (menialPrice - 99 + bioreactorBulkPremium), 0, bulkMax))
 									);
 									jQuery("#menial-span").empty().append(App.UI.tradeMenials(menialWorkersOnly));
 								},
diff --git a/src/neighbor/neighborDescription.js b/src/neighbor/neighborDescription.js
index 81200f8de7a69dcdd6ec6cc3c89b7f2a293e0497..b5340e3297981dd8f39c9be99cd9cc8420abbd75 100644
--- a/src/neighbor/neighborDescription.js
+++ b/src/neighbor/neighborDescription.js
@@ -33,16 +33,16 @@ App.UI.neighborDescription = function(i) {
 	} else {
 		r.push(`is your arcology.`);
 	}
-	let _economicUncertainty = App.Utils.economicUncertainty(i);
+	let economicUncertainty = App.Utils.economicUncertainty(i);
 	if (V.arcologies[i].direction === 0) {
 		r.push(`You control <span class="lime">${V.arcologies[i].ownership}%</span> of the arcology, and the largest minority holder controls <span class="orange">${V.arcologies[i].minority}%.</span>`);
 	} else if ((V.arcologies[i].government !== "your trustees") && (V.arcologies[i].government !== "your agent")) {
-		r.push(`Its leadership has control of approximately <span class="orange">${Math.trunc(V.arcologies[i].ownership*_economicUncertainty)}%</span> of the arcology${(V.arcologies[i].minority > V.arcologies[i].ownership-10) ? `, a dangerously narrow margin over competition with a <span class="tan">${Math.trunc(V.arcologies[i].minority*_economicUncertainty)}%</span> share` : ``}.`);
+		r.push(`Its leadership has control of approximately <span class="orange">${Math.trunc(V.arcologies[i].ownership*economicUncertainty)}%</span> of the arcology${(V.arcologies[i].minority > V.arcologies[i].ownership-10) ? `, a dangerously narrow margin over competition with a <span class="tan">${Math.trunc(V.arcologies[i].minority*economicUncertainty)}%</span> share` : ``}.`);
 	}
 	if (V.arcologies[i].PCminority > 0) {
-		r.push(`You own <span class="lime">${V.arcologies[i].PCminority}%</span> of this arcology${(((V.arcologies[i].government === "your trustees") || (V.arcologies[i].government === "your agent")) && V.arcologies[i].minority > V.arcologies[i].PCminority-10) ? `, a dangerously narrow margin over competition with a <span class="red">${Math.trunc(V.arcologies[i].minority*_economicUncertainty)}%</span> share` : ``}.`);
+		r.push(`You own <span class="lime">${V.arcologies[i].PCminority}%</span> of this arcology${(((V.arcologies[i].government === "your trustees") || (V.arcologies[i].government === "your agent")) && V.arcologies[i].minority > V.arcologies[i].PCminority-10) ? `, a dangerously narrow margin over competition with a <span class="red">${Math.trunc(V.arcologies[i].minority*economicUncertainty)}%</span> share` : ``}.`);
 	}
-	r.push(`The arcology has an estimated GSP of <span class="yellowgreen">${cashFormat(Math.trunc(0.1*V.arcologies[i].prosperity*_economicUncertainty))}m,</span>`);
+	r.push(`The arcology has an estimated GSP of <span class="yellowgreen">${cashFormat(Math.trunc(0.1*V.arcologies[i].prosperity*economicUncertainty))}m,</span>`);
 	if (Math.abs(V.arcologies[i].prosperity - averageProsperity) < 5) {
 		r.push(`average among`);
 	} else if (V.arcologies[i].prosperity > averageProsperity) {
@@ -53,7 +53,7 @@ App.UI.neighborDescription = function(i) {
 	r.push(`its neighbors.`);
 
 	let desc = "";
-	const _neighborDescription = [];
+	const neighborDescription = [];
 	if (V.arcologies[i].FSSubjugationist !== "unset") {
 		if (V.arcologies[i].FSSubjugationist > 80) {
 			desc = "committed to ";
@@ -70,7 +70,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `an excellent dumping ground for low quality ${V.arcologies[i].FSSubjugationistRace} slaves.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSSupremacist !== "unset") {
 		if (V.arcologies[i].FSSubjugationist > 80) {
@@ -88,7 +88,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `the site of a furious debate over existing ${V.arcologies[i].FSSupremacistRace} slaves.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSRepopulationFocus !== "unset") {
 		if (V.arcologies[i].FSRepopulationFocus > 80) {
@@ -106,7 +106,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `actively importing fertile slave girls.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSRestart !== "unset") {
 		if (V.arcologies[i].FSRestart > 80) {
@@ -124,7 +124,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `actively importing sterilization supplies.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSGenderRadicalist !== "unset") {
 		if (V.arcologies[i].FSGenderRadicalist > 80) {
@@ -142,7 +142,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `actively importing a wider variety of slave girls.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSGenderFundamentalist !== "unset") {
 		if (V.arcologies[i].FSGenderFundamentalist > 80) {
@@ -160,7 +160,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `importing increasing numbers of fertile slaves.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSPaternalist !== "unset") {
 		if (V.arcologies[i].FSPaternalist > 80) {
@@ -178,7 +178,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `starting to demand abused slaves whose lives can be turned around.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSDegradationist !== "unset") {
 		if (V.arcologies[i].FSDegradationist > 80) {
@@ -196,7 +196,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `importing a rapidly increasing number of slaves, for some reason.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSIntellectualDependency !== "unset") {
 		if (V.arcologies[i].FSIntellectualDependency > 80) {
@@ -214,7 +214,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `importing large quantities of aphrodisiacs and psychosuppressants.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSSlaveProfessionalism !== "unset") {
 		if (V.arcologies[i].FSSlaveProfessionalism > 80) {
@@ -232,7 +232,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `seeking out high-class slave trainers.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSBodyPurist !== "unset") {
 		if (V.arcologies[i].FSBodyPurist > 80) {
@@ -250,7 +250,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `setting up research programs to develop better slave drugs.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSTransformationFetishist !== "unset") {
 		if (V.arcologies[i].FSTransformationFetishist > 80) {
@@ -268,7 +268,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `receiving daily shipments of silicone and surgical necessities.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSYouthPreferentialist !== "unset") {
 		if (V.arcologies[i].FSYouthPreferentialist > 80) {
@@ -286,7 +286,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `starting to get a reputation as an excellent place to get a good price for a virgin.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSMaturityPreferentialist !== "unset") {
 		if (V.arcologies[i].FSMaturityPreferentialist > 80) {
@@ -304,7 +304,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `displaying an increasing demand for enslaved housewives and professional women.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSPetiteAdmiration !== "unset") {
 		if (V.arcologies[i].FSPetiteAdmiration > 80) {
@@ -322,7 +322,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `starting to accumulate an unusually large number of short slaves.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSStatuesqueGlorification !== "unset") {
 		if (V.arcologies[i].FSStatuesqueGlorification > 80) {
@@ -340,7 +340,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `starting to drive out its shorter citizenry.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSSlimnessEnthusiast !== "unset") {
 		if (V.arcologies[i].FSSlimnessEnthusiast > 80) {
@@ -358,7 +358,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `starting to display unusual fashions regarding breasts and butts.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSAssetExpansionist !== "unset") {
 		if (V.arcologies[i].FSAssetExpansionist > 80) {
@@ -376,7 +376,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `demanding fatter slaves, since its citizens are learning they absorb growth hormones better.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSPastoralist !== "unset") {
 		if (V.arcologies[i].FSPastoralist > 80) {
@@ -394,7 +394,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `displaying an increasing public appetite for dairy, and yet imports almost no true cow's milk.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSCummunism !== "unset") {
 		if (V.arcologies[i].FSCummunism > 80) {
@@ -412,7 +412,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `displaying an increasing public appetite for cum, and has begun importing more and more specialized milkers.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSPhysicalIdealist !== "unset") {
 		if (V.arcologies[i].FSPhysicalIdealist > 80) {
@@ -430,7 +430,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `the site of a musclegirl fetish community.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSHedonisticDecadence !== "unset") {
 		if (V.arcologies[i].FSHedonisticDecadence > 80) {
@@ -448,7 +448,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `the site of a large number of lazy individuals.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSIncestFetishist !== "unset") {
 		if (V.arcologies[i].FSIncestFetishist > 80) {
@@ -466,7 +466,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `devoting more and more of its resources into genealogy.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSChattelReligionist !== "unset") {
 		if (V.arcologies[i].FSChattelReligionist > 80) {
@@ -484,7 +484,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `in the throes of public dissension over its religious laws.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSRomanRevivalist !== "unset") {
 		if (V.arcologies[i].FSRomanRevivalist > 80) {
@@ -502,7 +502,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `working its way through sword and sandals fashion towards proper historicity.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSNeoImperialist !== "unset") {
 		if (V.arcologies[i].FSNeoImperialist > 80) {
@@ -520,7 +520,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `creating an extremely strict hierarchical system, with an elite caste of techno-nobility cementing itself through a series of complicated, emergent feudal dynamics.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSAztecRevivalist !== "unset") {
 		if (V.arcologies[i].FSAztecRevivalist > 80) {
@@ -538,7 +538,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `struggling to embrace the amount of blood sacrifice and prayer involved.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSEgyptianRevivalist !== "unset") {
 		if (V.arcologies[i].FSEgyptianRevivalist > 80) {
@@ -556,7 +556,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `struggling with the fashion implications of so much white linen everywhere.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSEdoRevivalist !== "unset") {
 		if (V.arcologies[i].FSEdoRevivalist > 80) {
@@ -574,7 +574,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `the object of considerable debate among socially awkward teenagers worldwide.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSArabianRevivalist !== "unset") {
 		if (V.arcologies[i].FSArabianRevivalist > 80) {
@@ -592,7 +592,7 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `eagerly reveling in the most romantic parts of superficial Arabian romanticism.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 	if (V.arcologies[i].FSChineseRevivalist !== "unset") {
 		if (V.arcologies[i].FSChineseRevivalist > 80) {
@@ -610,24 +610,24 @@ App.UI.neighborDescription = function(i) {
 		} else {
 			desc += `moving towards a stage of refinement that will allow it to present itself properly.`;
 		}
-		_neighborDescription.push(desc);
+		neighborDescription.push(desc);
 	}
 
-	if (_neighborDescription.length > 0) {
-		if (_neighborDescription.length > 2) {
-			r.push(`Its culture is complex. First, it is ${_neighborDescription[0]}`);
-			for (let j = 1; j < _neighborDescription.length; j++) {
-				if (j < _neighborDescription.length-1) {
+	if (neighborDescription.length > 0) {
+		if (neighborDescription.length > 2) {
+			r.push(`Its culture is complex. First, it is ${neighborDescription[0]}`);
+			for (let j = 1; j < neighborDescription.length; j++) {
+				if (j < neighborDescription.length-1) {
 					r.push(`It is`);
 				} else {
 					r.push(`Finally, the arcology is`);
 				}
-				r.push(`${_neighborDescription[j]}`);
+				r.push(`${neighborDescription[j]}`);
 			}
-		} else if (_neighborDescription.length === 2) {
-			r.push(`Its culture is developing along two lines. First, it is ${_neighborDescription[0]} Second, it is ${_neighborDescription[1]}`);
+		} else if (neighborDescription.length === 2) {
+			r.push(`Its culture is developing along two lines. First, it is ${neighborDescription[0]} Second, it is ${neighborDescription[1]}`);
 		} else {
-			r.push(`Its culture is diverging from the old world: it is ${_neighborDescription[0]}`);
+			r.push(`Its culture is diverging from the old world: it is ${neighborDescription[0]}`);
 		}
 	}
 	App.Events.addNode(el, r, "div");
diff --git a/src/neighbor/neighborInteract.js b/src/neighbor/neighborInteract.js
index 3c964d4f6aeb5522fc1d9c83819181d3fc178f1d..f11fc2810b3ad87fb1781569e3dfc668fc7d1dcb 100644
--- a/src/neighbor/neighborInteract.js
+++ b/src/neighbor/neighborInteract.js
@@ -7,14 +7,14 @@ App.Neighbor.Interact = function() {
 	let r = [];
 	App.UI.DOM.appendNewElement("p", node, `You have ${V.arcologies.length - 1} neighbors.`);
 
-	let _nei = V.arcologies.find(function(s) { return s.direction === V.arcologies[0].embargoTarget; });
-	if (!_nei) {
+	let nei = V.arcologies.find(function(s) { return s.direction === V.arcologies[0].embargoTarget; });
+	if (!nei) {
 		App.UI.DOM.appendNewElement("div", node, `You are not engaged in economic warfare against a neighboring arcology.`);
 	} else {
 		let linkArray = [];
 		App.Events.addNode(node, [
 			`You have targeted`,
-			App.UI.DOM.makeElement("span", _nei.name, "bold"),
+			App.UI.DOM.makeElement("span", nei.name, "bold"),
 			`for economic warfare.`
 		], "div");
 		r.push(`Its planned impacts will be`);
@@ -56,13 +56,13 @@ App.Neighbor.Interact = function() {
 		App.Events.addNode(node, r, "div", "indent");
 	}
 
-	_nei = V.arcologies.find(function(s) { return s.direction === V.arcologies[0].influenceTarget; });
-	if (!_nei) {
+	nei = V.arcologies.find(function(s) { return s.direction === V.arcologies[0].influenceTarget; });
+	if (!nei) {
 		App.UI.DOM.appendNewElement("div", node, `You are not using your arcology's culture to attempt to influence neighboring arcologies' development.`);
 	} else {
 		App.Events.addNode(node, [
 			`You have targeted`,
-			App.UI.DOM.makeElement("span", _nei.name, "bold"),
+			App.UI.DOM.makeElement("span", nei.name, "bold"),
 			`for cultural influence.`,
 			App.UI.DOM.link("Stop",
 				() => {
@@ -74,14 +74,14 @@ App.Neighbor.Interact = function() {
 	}
 
 	if (V.PC.skill.hacking > 0) {
-		_nei = V.arcologies.find(function(s) { return s.direction === V.arcologies[0].CyberEconomicTarget; });
-		if (!_nei) {
+		nei = V.arcologies.find(function(s) { return s.direction === V.arcologies[0].CyberEconomicTarget; });
+		if (!nei) {
 			App.UI.DOM.appendNewElement("div", node, `You are not engaged in cyber warfare against a neighboring arcology.`);
 		} else {
 			let linkArray = [];
 			App.Events.addNode(node, [
 				`You have targeted`,
-				App.UI.DOM.makeElement("span", _nei.name, "bold"),
+				App.UI.DOM.makeElement("span", nei.name, "bold"),
 				`for cyber economic warfare.`
 			], "div");
 			r.push(`Its planned impacts will be`);
@@ -123,14 +123,14 @@ App.Neighbor.Interact = function() {
 			App.Events.addNode(node, r, "div", "indent");
 		}
 
-		_nei = V.arcologies.find(function(s) { return s.direction === V.arcologies[0].CyberReputationTarget; });
-		if (!_nei) {
+		nei = V.arcologies.find(function(s) { return s.direction === V.arcologies[0].CyberReputationTarget; });
+		if (!nei) {
 			App.UI.DOM.appendNewElement("div", node, `You are not engaged in character assassination against a neighboring arcology.`);
 		} else {
 			let linkArray = [];
 			App.Events.addNode(node, [
 				`You have targeted the leadership of`,
-				App.UI.DOM.makeElement("span", _nei.name, "bold"),
+				App.UI.DOM.makeElement("span", nei.name, "bold"),
 				`for character assassination.`
 			], "div");
 			r.push(`Its planned impacts will be`);
diff --git a/src/npc/databases/dSlavesDatabase.js b/src/npc/databases/dSlavesDatabase.js
index 3babb1d13d5be621e53226035c6aa486d96b4c78..ad54ecb0f19c29801efaaf794927a85c11b04848 100644
--- a/src/npc/databases/dSlavesDatabase.js
+++ b/src/npc/databases/dSlavesDatabase.js
@@ -4716,5 +4716,5 @@ App.Data.HeroSlaves.Dextreme = [
 {
 	 App.Entity.SlaveState.makeSkeleton()},
 {
-	slaveName: "STANDARD", birthName: "STANDARD", ID: _i++, actualAge: 21, physicalAge: 21, visualAge: 21, ovaryAge: 21, health: {condition: 20}, devotion: 60, origHColor: "blonde", pubicHColor: "blonde", origSkin: "white", hStyle: "long", boobs: 500, butt: 3, vagina: 1, vaginaLube: 1, anus: 1, anusTat: "bleached", skill: {vaginal: 0, skill: {oral: 0, skill: {anal: 0, attrXY: 40, fetishKnown: 1},
+	slaveName: "STANDARD", birthName: "STANDARD", ID: i++, actualAge: 21, physicalAge: 21, visualAge: 21, ovaryAge: 21, health: {condition: 20}, devotion: 60, origHColor: "blonde", pubicHColor: "blonde", origSkin: "white", hStyle: "long", boobs: 500, butt: 3, vagina: 1, vaginaLube: 1, anus: 1, anusTat: "bleached", skill: {vaginal: 0, skill: {oral: 0, skill: {anal: 0, attrXY: 40, fetishKnown: 1},
 */
diff --git a/src/npc/databases/ddSlavesDatabase.js b/src/npc/databases/ddSlavesDatabase.js
index 0bc4e7c5aafba1bd0d6907bd7e846ad96f40c32f..b0a33c8f6d308f783baab53a22b0bf788cec976c 100644
--- a/src/npc/databases/ddSlavesDatabase.js
+++ b/src/npc/databases/ddSlavesDatabase.js
@@ -1,5 +1,4 @@
 /* eslint-disable camelcase */
-// _i = 800000},
 
 /**
  * @typedef {object} missingProperties
@@ -1727,5 +1726,5 @@ App.Data.HeroSlaves.DDextreme = [
 ];
 
 /*
-{slaveName = "STANDARD", birthName = "STANDARD", ID = _i++, actualAge = 21, physicalAge = 21, visualAge = 21, ovaryAge = 21, health: {condition: 20}, devotion = 60, origSkin = "white", origHColor = "blonde", pubicHColor = "blonde", hLength = 20, boobs = 300, butt = 1, vagina = -1, preg = -2, dick = 2, anus = 1, balls = 1, scrotum = 1, anusTat = "bleached", skill.oral = 15, skill.anal = 15, attrXX = 40, attrXY = 40, fetishKnown = 1},
+{slaveName = "STANDARD", birthName = "STANDARD", ID = i++, actualAge = 21, physicalAge = 21, visualAge = 21, ovaryAge = 21, health: {condition: 20}, devotion = 60, origSkin = "white", origHColor = "blonde", pubicHColor = "blonde", hLength = 20, boobs = 300, butt = 1, vagina = -1, preg = -2, dick = 2, anus = 1, balls = 1, scrotum = 1, anusTat = "bleached", skill.oral = 15, skill.anal = 15, attrXX = 40, attrXY = 40, fetishKnown = 1},
 */
diff --git a/src/npc/databases/dfSlavesDatabase.js b/src/npc/databases/dfSlavesDatabase.js
index f630aafa1e1f0ab543b8596a19cd49521e6eba78..8f7bda7f28c0cfecd1960a16f04547236ad43b8f 100644
--- a/src/npc/databases/dfSlavesDatabase.js
+++ b/src/npc/databases/dfSlavesDatabase.js
@@ -1,5 +1,4 @@
 /* eslint-disable camelcase */
-// _i: 700000},
 
 /**
  * @type {Partial<partialSlaveState>[]}
diff --git a/src/npc/descriptions/belly/belly.js b/src/npc/descriptions/belly/belly.js
index f2955f0358d7c4fd21d1d4117b7a84b376198859..0cb97ed2d93092160dadd203dea1ffca57c6d083 100644
--- a/src/npc/descriptions/belly/belly.js
+++ b/src/npc/descriptions/belly/belly.js
@@ -8,7 +8,7 @@
 App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 	const r = [];
 	const {
-		he, him, his, hers, himself, girl, He, His, loli
+		he, him, his, himself, girl, He, His, loli
 	} = getPronouns(slave);
 	const isBellyHeavy =
 		(slave.belly >= 100000 + (slave.muscles * 500) && slave.physicalAge <= 3) ||
@@ -174,6 +174,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 		const r = [];
 		if (slave.belly >= 1000000) {
 			if (isBellyFluidLargest) {
+				// TODO: write me
 			} else if (slave.bellyPreg > 0) {
 				r.push(`${He} is swollen beyond any reasonable description,`);
 				if (slave.physicalAge <= 3) {
@@ -272,6 +273,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 750000) {
 			if (isBellyFluidLargest) {
+				// TODO: write me
 			} else if (slave.bellyPreg > 0) {
 				r.push(`${He}`);
 				if (slave.belly > (slave.pregAdaptation * 1000)) {
@@ -470,6 +472,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 600000) {
 			if (isBellyFluidLargest) {
+				// TODO: write me
 			} else if (slave.bellyPreg > 0) {
 				r.push(`${He} is dangerously pregnant,`);
 				if (slave.physicalAge <= 3) {
@@ -697,6 +700,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 450000) {
 			if (isBellyFluidLargest) {
+				// TODO: write me
 			} else if (slave.bellyPreg > 0) {
 				r.push(`${He} is immensely pregnant,`);
 				if (slave.physicalAge <= 3) {
@@ -889,7 +893,8 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 300000) {
 			if (isBellyFluidLargest) {
-			} else if (slave.bellyPreg > 0) {
+				// TODO: write me
+			}  else if (slave.bellyPreg > 0) {
 				r.push(`${He} is massively pregnant, dwarfing any normal pregnancy,`);
 				if (slave.physicalAge <= 3) {
 					r.push(`and ${he} is nearly spherical. ${His} toddlerish form is utterly dwarfed by ${his} pregnancy, all ${he} can do is lean against it.`);
@@ -1047,6 +1052,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 150000) {
 			if (isBellyFluidLargest) {
+				// TODO: write me
 			} else if (slave.bellyPreg > 0) {
 				r.push(`${He} is massively pregnant, beyond any typical pregnancy,`);
 				if (slave.physicalAge <= 3) {
@@ -1224,6 +1230,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 120000) {
 			if (isBellyFluidLargest) {
+				// TODO: write me
 			} else if (slave.bellyPreg > 0) {
 				r.push(`${He} is massively pregnant,`);
 				if (slave.physicalAge <= 3) {
@@ -1358,7 +1365,8 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 105000) {
 			if (isBellyFluidLargest) {
-			} else if (slave.bellyPreg > 0) {
+				// TODO: write me
+			}  else if (slave.bellyPreg > 0) {
 				r.push(`${He} is enormously pregnant,`);
 				if (slave.physicalAge <= 3) {
 					r.push(`and ${his} toddlerish body is absolutely filled by ${his} womb making ${him} resemble an over inflated blow-up doll.`);
@@ -1494,6 +1502,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 90000) {
 			if (isBellyFluidLargest) {
+				// TODO: write me
 			} else if (slave.bellyPreg > 0) {
 				r.push(`${He} is enormously pregnant,`);
 				if (slave.physicalAge <= 3) {
@@ -1620,7 +1629,8 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 75000) {
 			if (isBellyFluidLargest) {
-			} else if (slave.bellyPreg > 0) {
+				// TODO: write me
+			}  else if (slave.bellyPreg > 0) {
 				r.push(`${He} is enormously pregnant,`);
 				if (slave.physicalAge <= 3) {
 					r.push(`and ${his} toddlerish body is absolutely filled by ${his} womb making ${him} resemble an over inflated blow-up doll.`);
@@ -1752,7 +1762,8 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 60000) {
 			if (isBellyFluidLargest) {
-			} else if (slave.bellyPreg > 0) {
+				// TODO: write me
+			}  else if (slave.bellyPreg > 0) {
 				r.push(`${He} is enormously pregnant,`);
 				if (slave.physicalAge <= 3) {
 					r.push(`and ${his} toddlerish body is absolutely filled by ${his} womb making ${him} resemble an over inflated blow-up doll.`);
@@ -1884,7 +1895,8 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 45000) {
 			if (isBellyFluidLargest) {
-			} else if (slave.bellyPreg > 0) {
+				// TODO: write me
+			}  else if (slave.bellyPreg > 0) {
 				r.push(`${He} is enormously pregnant,`);
 				if (slave.physicalAge <= 3) {
 					r.push(`and ${his} toddlerish body is absolutely filled by ${his} womb making ${him} resemble an over inflated blow-up doll.`);
@@ -1982,7 +1994,8 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 30000) {
 			if (isBellyFluidLargest) {
-			} else if (slave.bellyPreg > 0) {
+				// TODO: write me
+			}  else if (slave.bellyPreg > 0) {
 				r.push(`${He} is enormously pregnant,`);
 				if (slave.physicalAge <= 3) {
 					r.push(`and ${his} toddlerish body is absolutely filled by ${his} womb making ${him} resemble an over inflated blow-up doll.`);
@@ -2078,7 +2091,8 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.belly >= 15000) {
 			if (isBellyFluidLargest) {
-			} else if (slave.bellyPreg > 0) {
+				// TODO: write me
+			}  else if (slave.bellyPreg > 0) {
 				r.push(`${He} is enormously pregnant,`);
 				if (slave.physicalAge <= 3) {
 					r.push(`and ${his} toddlerish body is absolutely filled by ${his} womb making ${him} resemble an over inflated blow-up doll.`);
@@ -10983,6 +10997,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s titanic implant-filled belly takes advantage ${his} exposed midriff and unfastened jeans to massively jut out from ${his} body.`);
 						} else {
@@ -10990,6 +11005,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s gigantic implant-filled belly takes advantage ${his} exposed midriff and unfastened jeans to massively jut out from ${his} body.`);
 						} else {
@@ -10997,6 +11013,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s massive implant-filled belly takes advantage ${his} exposed midriff and unfastened jeans to hang heavily from ${his} body.`);
 						} else {
@@ -11004,6 +11021,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s giant implant-filled belly dominates ${his} exposed midriff and thwarts any efforts to zip up ${his} fly.`);
 						} else {
@@ -11015,6 +11033,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s exposed midriff and unfastened jeans fully display ${his} huge pregnancy.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s exposed midriff and unfastened jeans prominently display ${his} huge implant-filled belly.`);
 						} else {
@@ -11069,6 +11088,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 					// WIP//
 					} else if (slave.belly >= 750000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s monolithic implant-filled belly adds tremendously to ${his} slutty appearance.`);
 						} else {
@@ -11076,6 +11096,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s titanic implant-filled belly really adds to ${his} slutty appearance.`);
 						} else {
@@ -11083,6 +11104,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s gigantic implant-filled belly really adds to ${his} slutty appearance.`);
 						} else {
@@ -11090,6 +11112,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s massive implant-filled belly really adds to ${his} slutty appearance.`);
 						} else {
@@ -11097,6 +11120,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s giant implant-filled belly adds to ${his} slutty appearance.`);
 						} else {
@@ -11108,6 +11132,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a large empathy belly") {
 							r.push(`${slave.slaveName}'s huge pregnant belly adds to ${his} slutty appearance.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s huge implant-filled belly adds to ${his} slutty appearance.`);
 						} else {
@@ -11162,6 +11187,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 					// WIP//
 					} else if (slave.belly >= 750000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s monolithic implant-filled belly eclipses ${his} miniskirt and leaves little to hold up ${his} thong.`);
 						} else {
@@ -11169,6 +11195,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s titanic implant-filled belly eclipses ${his} miniskirt and leaves little to hold up ${his} thong.`);
 						} else {
@@ -11176,6 +11203,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s gigantic implant-filled belly eclipses ${his} miniskirt and leaves little to hold up ${his} thong.`);
 						} else {
@@ -11183,6 +11211,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s massive implant-filled belly eclipses ${his} miniskirt and leaves little to hold up ${his} thong.`);
 						} else {
@@ -11190,6 +11219,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s giant implant-filled belly forces ${his} thong strings to tightly hug its curvature as it hangs low enough to obscure ${his} miniskirt completely.`);
 						} else {
@@ -11201,6 +11231,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s miniskirt is trapped beneath ${his} huge pregnant belly.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s miniskirt is trapped beneath ${his} huge implant-filled belly and ${his} thong strings forced to caress its curves.`);
 						} else {
@@ -11255,6 +11286,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 					// WIP//
 					} else if (slave.belly >= 750000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s corset attempts to cradle, rather than bind, ${his} monolithic implant-filled belly, but the sheer size of ${his} artificial bump forces the ribs wide, exposing the thinning cloth beneath.`);
 						} else {
@@ -11262,6 +11294,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s corset attempts to cradle, rather than bind, ${his} titanic implant-filled belly, but the sheer size of ${his} artificial bump forces the ribs wide, exposing the thin cloth beneath.`);
 						} else {
@@ -11269,6 +11302,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s corset cradles, rather than binds, ${his} gigantic implant-filled belly, but the sheer size of ${his} artificial bump forces the ribs wide, exposing the thin cloth beneath.`);
 						} else {
@@ -11276,6 +11310,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s corset cradles, rather than binds, ${his} massive implant-filled belly, but the sheer size of ${his} artificial bump forces the ribs wide, exposing the thin cloth beneath.`);
 						} else {
@@ -11283,6 +11318,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s corset cradles, rather than binds, ${his} giant implant-filled belly.`);
 						} else {
@@ -11292,6 +11328,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						r.push(`${slave.slaveName}'s corset cradles, rather than binds, ${his} massively fat belly, though the ribs still create deep ravines of succulent flesh.`);
 					} else if (slave.belly >= 30000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s corset cradles, rather than binds, ${his} huge implant-filled belly.`);
 						} else {
@@ -11301,6 +11338,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s huge pregnant belly strains the ribs of ${his} corset.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s huge implant-filled belly strains the ribs of ${his} corset.`);
 						} else {
@@ -11369,6 +11407,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s titanic implant-filled stomach hangs out the front of ${his} suit jacket and blouse as there is no way ${he} could ever come close to closing them. ${His} skirt is shoved down by the heavy mass, but ${his} overfilled middle draws attention away from ${his} exposed nethers.`);
 						} else {
@@ -11376,6 +11415,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s gigantic implant-filled stomach hangs out the front of ${his} suit jacket and blouse as there is no way ${he} could ever come close to closing them. ${His} skirt is shoved down by the heavy mass, but ${his} overfilled middle draws attention away from ${his} exposed nethers.`);
 						} else {
@@ -11383,6 +11423,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s massive implant-filled stomach hangs out the front of ${his} suit jacket and blouse as there is no way ${he} could ever come close to closing them. ${His} skirt is shoved so low by the ponderous mass it barely hides ${his} crotch, though ${his} inflated middle more than covers for it.`);
 						} else {
@@ -11390,6 +11431,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s giant implant-filled stomach hangs out the front of ${his} suit jacket and blouse as there is no way ${he} could ever come close to closing them. ${He}'s so bulbous, ${his} skirt is forced scandalously low beneath ${his} inflated middle.`);
 						} else {
@@ -11401,6 +11443,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s huge pregnant stomach hangs out the front of ${his} suit jacket and blouse, as there is no way ${he} could close them.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s huge implant-filled belly hangs out the front of ${his} suit jacket and blouse, as there is no way ${he} could close them.`);
 						} else {
@@ -11469,6 +11512,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s titanic implant-filled stomach hangs out the front of ${his} specially tailored blouse and jacket as there is no way ${he} could ever come close to closing them. ${His} skirt is loosely held together by strained straps, as ${his} immensity guarantees ${he}'ll burst any seams on a proper garment.`);
 						} else {
@@ -11476,6 +11520,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s gigantic implant-filled stomach hangs out the front of ${his} specially tailored blouse and jacket as there is no way ${he} could ever come close to closing them. ${His} skirt is loosely held together by straps, as ${his} immensity guarantees ${he}'ll burst any seams on a proper garment.`);
 						} else {
@@ -11483,6 +11528,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s massive implant-filled stomach hangs out the front of ${his} specially tailored blouse and jacket as there is no way ${he} could ever come close to closing them. ${His} skirt is loosely held together by straps, as ${his} immensity guarantees ${he}'ll burst any seams on a proper garment.`);
 						} else {
@@ -11490,6 +11536,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s giant implant-filled stomach hangs out the front of ${his} specially tailored blouse and jacket as there is no way for ${him} to close them. ${He}'s so bulbous, ${his} maternity skirt has stretched to its limit.`);
 						} else {
@@ -11501,6 +11548,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s huge pregnant stomach hangs out the front of ${his} specially tailored blouse and jacket as there is no way for ${him} to close them. ${His} maternity skirt fits ${him} quite well, though.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s huge implant-filled belly hangs out the front of ${his} specially tailored blouse and jacket as there is no way for ${him} to close them. ${His} maternity skirt fits ${him} quite well, though.`);
 						} else {
@@ -11569,6 +11617,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s harem girl outfit has been specially tailored to drape over ${his} titanic, implant-filled belly and sensually accentuate its size and shape.`);
 						} else {
@@ -11576,6 +11625,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s harem girl outfit has been specially tailored to drape over ${his} gigantic implant-filled belly and sensually accentuate its size and shape.`);
 						} else {
@@ -11583,6 +11633,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s harem girl outfit sensually accentuates ${his} massive implant-filled belly and the unique motions it takes to move it.`);
 						} else {
@@ -11590,6 +11641,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s harem girl outfit sensually accentuates ${his} giant implant-filled belly and the wide movements ${he} makes with it.`);
 						} else {
@@ -11597,6 +11649,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 30000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s harem girl outfit sensually accentuates ${his} huge implant-filled belly and the wide movements ${he} makes with it.`);
 						} else {
@@ -11608,6 +11661,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s harem girl outfit sensually accentuates ${his} huge pregnant belly.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s harem girl outfit sensually accentuates ${his} huge implant-filled belly.`);
 						} else {
@@ -11672,6 +11726,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s bodysuit stretches across ${his} titanic implant-filled belly and draws the eye right to the small bump on its smooth surface, ${his} flattening navel.`);
 						} else {
@@ -11679,6 +11734,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s bodysuit stretches across ${his} gigantic implant-filled belly and draws the eye right to the deminishing bump on its smooth surface, ${his} navel.`);
 						} else {
@@ -11686,6 +11742,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s bodysuit stretches over ${his} massive implant-filled belly and draws the eye right to the sole bump on its smooth surface, ${his} navel.`);
 						} else {
@@ -11693,6 +11750,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s bodysuit stretches over ${his} giant implant-filled belly and draws the eye right to ${his} protruding navel.`);
 						} else {
@@ -11700,6 +11758,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 60000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s bodysuit stretches over ${his} huge implant-filled belly and draws the eye right to ${his} protruding navel.`);
 						} else {
@@ -11711,6 +11770,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} huge pregnant belly.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s bodysuit tightly clings to ${his} huge implant-filled belly, displaying ${his} popped navel.`);
 						} else {
@@ -11779,6 +11839,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s jacket fails to even come close to closing over ${his} titanic implant-filled belly, requiring ${him} to hold ${his} nurse's jacket together under ${his} breasts with a length of red silk ribbon. ${His} skirt is shoved down by the heavy mass, but ${his} overfilled middle draws attention away from ${his} exposed nethers.`);
 						} else {
@@ -11786,6 +11847,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s jacket fails to even come close to closing over ${his} gigantic implant-filled belly, requiring ${him} to hold ${his} nurse's jacket together under ${his} breasts with a length of red silk ribbon. ${His} skirt is shoved down by the heavy mass, but ${his} overfilled middle draws attention away from ${his} exposed nethers.`);
 						} else {
@@ -11793,6 +11855,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s jacket fails to even come close to closing over ${his} massive implant-filled belly, requiring ${him} to hold ${his} nurse's jacket together under ${his} breasts with a length of red silk ribbon. ${His} skirt is shoved so low by the ponderous mass it barely hides ${his} crotch, though ${his} inflated middle more than covers for it.`);
 						} else {
@@ -11800,6 +11863,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s jacket fails to even come close to closing over ${his} gaint implant-filled belly, leaving ${him} with only a single straining button to keep ${his} attire together. ${He}'s so bulbous, ${his} skirt is forced scandalously low beneath ${his} inflated middle.`);
 						} else {
@@ -11811,6 +11875,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s jacket fails to even come close to closing over ${his} huge pregnant belly, leaving ${him} with only the button below ${his} breasts done.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s jacket fails to even come close to closing over ${his} huge implant-filled belly, leaving ${him} with only the button below ${his} breasts done.`);
 						} else {
@@ -11879,6 +11944,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s blouse rests atop ${his} titanic implant-filled belly, showing off the result of ${his} promiscuity. ${His} skirt is shoved down by the heavy mass, but ${his} overfilled middle draws attention away from ${his} exposed nethers.`);
 						} else {
@@ -11886,6 +11952,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s gigantic implant-filled stomach hangs out the front of ${his} suit jacket and blouse as there is no way ${he} could ever come close to closing them. ${His} skirt is shoved down by the heavy mass, but ${his} overfilled middle draws attention away from ${his} exposed nethers.`);
 						} else {
@@ -11893,6 +11960,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s blouse meekly rests atop ${his} massive implant-filled belly. ${His} skirt is shoved so low by the ponderous mass it barely hides ${his} crotch, though ${his} inflated middle more than covers for it.`);
 						} else {
@@ -11900,6 +11968,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s blouse meekly rests atop ${his} giant implant-filled belly, while it itself forces ${his} skirt scandalously low.`);
 						} else {
@@ -11907,6 +11976,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 30000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s blouse can no longer stretch over ${his} huge implant-filled belly, while it itself forces ${his} skirt dangerously low, leaving ${him} looking the part of a school slut.`);
 						} else {
@@ -11918,6 +11988,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s blouse barely covers the top of ${his} huge pregnant belly, while it itself forces ${his} skirt dangerously low, leaving ${him} looking the part of a school slut.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s blouse barely covers the top of ${his} huge implant-filled belly, while it itself forces ${his} skirt dangerously low, leaving ${him} looking the part of a school slut.`);
 						} else {
@@ -11986,6 +12057,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s titanic implant-filled belly parts ${his} kimono, since it is impossible to fold over such a bulging swell, leaving it gracefully covering ${his} sides.`);
 						} else {
@@ -11993,6 +12065,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s gigantic implant-filled belly parts ${his} kimono, since it is impossible to fold over such a bulging swell, leaving it gracefully covering ${his} sides.`);
 						} else {
@@ -12000,6 +12073,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s massive implant-filled belly parts ${his} kimono, leaving it gracefully covering its sides.`);
 						} else {
@@ -12007,6 +12081,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 150000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s giant implant-filled belly has triumphed over ${his} kimono; ${he} has become so gravid it is simply no longer possible to properly fold the garment around ${himself}.`);
 						} else {
@@ -12014,6 +12089,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s giant implant-filled belly tests the limits of ${his} kimono; any larger and ${he} simply won't be capable of folding it over ${his} enormity.`);
 						} else {
@@ -12025,6 +12101,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s huge pregnant belly fills out ${his} kimono; ${his} obi is tied above its swell ${his} for convenience.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s huge implant-filled belly fills out ${his} kimono; ${his} obi tied above its swell ${his} for convenience.`);
 						} else {
@@ -12093,6 +12170,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tank top rests atop the titanic implant-filled belly bulging from ${his} fatigues, which are left unfastened to give ${his} overfilled implant the space it needs to hang heavily. ${He} clearly found it more productive to battle ${his} enemies in the bedroom than in the field.`);
 						} else {
@@ -12100,6 +12178,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tank top rests atop the gigantic implant-filled belly bulging from ${his} fatigues, which are left unfastened to give ${his} overfilled implant more room. ${He} clearly spent more time in bed than out in the field.`);
 						} else {
@@ -12107,6 +12186,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tank top rests atop the massive implant-filled belly bulging from ${his} unfastened fatigues, leaving ${him} looking like someone who fucked all the locals.`);
 						} else {
@@ -12114,6 +12194,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tank top rests atop the giant implant-filled belly bulging from ${his} unfastened fatigues, leaving it clear who the favorite recruit of the platoon was.`);
 						} else {
@@ -12125,6 +12206,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s tank top rests atop the huge pregnant belly bulging from ${his} unfastened fatigues, leaving ${him} looking like someone who had too much fun on shore leave.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tank top rests atop the huge implant-filled belly bulging from ${his} unfastened fatigues, leaving ${him} looking like someone who had too much fun on shore leave.`);
 						} else {
@@ -12179,6 +12261,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 					// WIP//
 					} else if (slave.belly >= 750000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s beautiful halter top dress is specially designed to flatter the massively gravid, even if they are just pretending. Its material tightly clings to ${his} monolithic implant-filled belly while offering a diamond window to display ${his} popped navel and a massive expanse of skin around it.`);
 						} else {
@@ -12186,6 +12269,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s beautiful halter top dress is specially designed to flatter the massively gravid, even if they are just pretending. Its material tightly clings to ${his} titanic implant-filled belly while offering a diamond window to display ${his} popped navel and an expanse of skin around it.`);
 						} else {
@@ -12193,6 +12277,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s beautiful halter top dress is specially designed to flatter the massively gravid, even if they are just pretending. Its material tightly clings to ${his} gigantic implant-filled belly while offering a diamond window to display ${his} popped navel and an expanse of skin around it.`);
 						} else {
@@ -12200,6 +12285,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s beautiful halter top dress is specially designed to flatter the hugely gravid, even if they are just pretending. Its material tightly clings to ${his} massive implant-filled belly while offering a diamond window to display ${his} popped navel and an expanse of skin around it.`);
 						} else {
@@ -12207,6 +12293,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s beautiful halter top dress is specially designed to flatter the hugely gravid, even if they are just pretending. Its material tightly hugs ${his} giant implant-filled belly while offering a diamond window to display ${his} popped navel and surrounding skin.`);
 						} else {
@@ -12214,6 +12301,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 30000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s beautiful halter top dress is specially designed to flatter the hugely gravid, even if they are just pretending. Its material tightly hugs ${his} huge implant-filled belly while offering a diamond window to display ${his} popped navel.`);
 						} else {
@@ -12225,6 +12313,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s beautiful halter top dress is strained by ${his} huge pregnant belly. ${His} popped navel prominently pokes through its front.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s beautiful halter top dress is strained by ${his} huge implant-filled belly. ${His} popped navel prominently pokes through its front.`);
 						} else {
@@ -12287,6 +12376,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s fabulous silken ball gown has been retailored to expose ${his} titanic implant-filled belly while giving it the attention it demands.`);
 						} else {
@@ -12294,6 +12384,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s fabulous silken ball gown has been retailored to expose ${his} gigantic implant-filled belly while still maintaining its beauty.`);
 						} else {
@@ -12301,6 +12392,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s fabulous silken ball gown is tailored to embrace a bulging middle, but ${his} massive implant-filled belly pushes it to its limit. It strains as it tightly hugs the sizeable mass extending from ${his} front.`);
 						} else {
@@ -12308,6 +12400,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s fabulous silken ball gown is tailored to not only embrace ${his} giant implant-filled belly, but draw attention to its sheer size.`);
 						} else {
@@ -12315,6 +12408,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 30000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s fabulous silken ball gown is tailored to not only embrace ${his} huge implant-filled belly, but draw attention to its size and shape.`);
 						} else {
@@ -12326,6 +12420,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s fabulous silken ball gown is tailored to not only fit ${his} huge pregnant belly, but draw attention to it.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s fabulous silken ball gown is tailored to not only fit ${his} huge implant-filled belly, but draw attention to it.`);
 						} else {
@@ -12388,6 +12483,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s bangles are linked by a dozen long golden chains to a ring around ${his} popped out belly button. The chains tinkle metallically as they shift with ${his} movements.`);
 						} else {
@@ -12395,6 +12491,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s bangles are linked by several long golden chains to a ring around ${his} popped out belly button. The chains tinkle metallically as they shift with ${his} movements.`);
 						} else {
@@ -12402,6 +12499,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s bangles are linked by a long golden chain to a ring around ${his} popped out belly button. The chain tinkles metallically as it shifts with ${his} movements.`);
 						} else {
@@ -12409,6 +12507,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s bangles include several long thin chains that drape across ${his} giant implant-filled belly.`);
 						} else {
@@ -12420,6 +12519,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s bangles include several long thin chains that drape across ${his} huge pregnant belly.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s bangles include several long thin chains that drape across ${his} huge implant-filled belly.`);
 						} else {
@@ -12482,6 +12582,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s specially tailored leotard can barely contain the curve of ${his} titanic implant-filled belly, clearly displaying ${his} popped navel. The material tightly clings to the center of ${his} gravidity, leaving ${his} sides completely exposed.`);
 						} else {
@@ -12489,6 +12590,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s specially tailored leotard highlights the curvature of ${his} gigantic implant-filled belly. The material tightly clings to ${his} popped navel and shows a lot of skin through the sides.`);
 						} else {
@@ -12496,6 +12598,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s specially tailored leotard highlights the curvature of ${his} massive implant-filled belly. The material tightly clings to ${his} popped navel and shows a lot of skin through the sides.`);
 						} else {
@@ -12503,6 +12606,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 150000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s specially tailored leotard highlights the curvature of ${his} giant implant-filled belly. The material tightly clings to ${his} popped navel and now only shows a little skin through the sides.`);
 						} else {
@@ -12510,6 +12614,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s leotard is stretched to its absolute limit trying to contain the swell of ${his} giant implant-filled belly, tightly clinging to what it can cover and prominently displaying ${his} popped navel. The sides of ${his} gravidity are completely exposed by the overwhelmed garment, and the sheer size of ${his} bulging middle threatens to pull the thin spandex away from ${his} crotch.`);
 						} else {
@@ -12517,6 +12622,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 30000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tight leotard can barely contain the curve of ${his} huge implant-filled belly, clearly displaying ${his} popped navel. The material tightly clings to the center of ${his} gravidity, leaving ${his} sides completely exposed.`);
 						} else {
@@ -12528,6 +12634,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s tight leotard highlights the curvature of ${his} huge pregnant belly. The material tightly clings to ${his} popped navel and shows a lot of skin through the sides.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tight leotard highlights the curvature of ${his} huge implant-filled belly. The material tightly clings to ${his} popped navel and shows a lot of skin through the sides.`);
 						} else {
@@ -12590,6 +12697,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tight bodysuit stretches across ${his} titanic implant-filled belly and draws the eye right to the small bump on its smooth surface, ${his} flattening navel.`);
 						} else {
@@ -12597,6 +12705,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tight bodysuit stretches across ${his} gigantic implant-filled belly and draws the eye right to the deminishing bump on its smooth surface, ${his} navel.`);
 						} else {
@@ -12604,6 +12713,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tight bodysuit stretches over ${his} massive implant-filled belly and draws the eye right to the sole bump on its smooth surface, ${his} navel.`);
 						} else {
@@ -12611,6 +12721,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tight bodysuit stretches over ${his} giant implant-filled belly and draws the eye right to ${his} protruding navel.`);
 						} else {
@@ -12618,6 +12729,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 60000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tight bodysuit stretches over ${his} huge implant-filled belly and draws the eye right to ${his} protruding navel.`);
 						} else {
@@ -12629,6 +12741,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s tight bodysuit shows off the curvature of ${his} huge pregnant belly.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s tight bodysuit clings to ${his} huge implant-filled belly, prominently displaying ${his} popped navel.`);
 						} else {
@@ -12796,6 +12909,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 					// WIP//
 					} else if (slave.belly >= 750000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`The strip of cloth running down ${his} front has a diamond-shaped hole for ${his} navel to poke through in the hopes of keeping material from slipping to the side of ${his} monolithic implant-filled belly. Since ${his} navel has begun to pull flat, however, the tension does that job instead.`);
 						} else {
@@ -12803,6 +12917,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`The strip of cloth running down ${his} front has a diamond-shaped hole for ${his} navel to poke through, keeping the material from slipping to the side of ${his} titanic implant-filled belly, though the tension does a good enough job on its own.`);
 						} else {
@@ -12810,6 +12925,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`The strip of cloth running down ${his} front has a diamond-shaped hole for ${his} navel to poke through, keeping the material from slipping to the side of ${his} gigantic implant-filled belly, though the tension does a good enough job on its own.`);
 						} else {
@@ -12817,6 +12933,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`The strip of cloth running down ${his} front has a diamond-shaped hole for ${his} navel to poke through, keeping the material from slipping to the side of ${his} massive implant-filled belly, though the tension does a good enough job on its own.`);
 						} else {
@@ -12824,6 +12941,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`The strip of cloth running down ${his} front has a diamond-shaped hole for ${his} navel to poke through, keeping the material from slipping to the side of ${his} giant implant-filled belly.`);
 						} else {
@@ -12831,6 +12949,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 30000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`The strip of cloth running down ${his} front has a diamond-shaped hole for ${his} navel to poke through, keeping the material from slipping to the side of ${his} huge implant-filled belly.`);
 						} else {
@@ -12842,6 +12961,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`The strip of cloth running down ${his} front has a diamond-shaped hole for ${his} navel to poke through, keeping the material from slipping to the side of ${his} huge pregnant belly.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`The strip of cloth running down ${his} front has a diamond-shaped hole for ${his} navel to poke through, keeping the material from slipping to the side of ${his} huge implant-filled belly.`);
 						} else {
@@ -12905,6 +13025,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s teddy is specially designed to accommodate such a absurdly swollen ${girl} and comes with a gap in the front for ${his} titanic implant-filled belly to bulge through.`);
 						} else {
@@ -12912,6 +13033,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s teddy is specially designed to accommodate such a massively swollen ${girl} and comes with a gap in the front for ${his} gigantic implant-filled belly to bulge through.`);
 						} else {
@@ -12919,6 +13041,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s teddy is specially designed to accommodate such a hugely swollen ${girl} and comes with a gap in the front for ${his} massive implant-filled belly to bulge through.`);
 						} else {
@@ -12926,6 +13049,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s teddy is specially designed with a gap in the front for ${his} giant implant-filled belly to bulge through.`);
 						} else {
@@ -12933,6 +13057,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 30000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s teddy is carefully fitted to contain ${his} huge implant-filled belly, but only emphasizes just how large ${he} has gotten.`);
 						} else {
@@ -12944,6 +13069,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s teddy is filled to its limit by ${his} huge pregnant belly. ${His} popped navel prominently pokes through the taut material.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s teddy is filled to its limit by ${his} huge implant-filled belly. ${His} popped navel prominently pokes through the taut material.`);
 						} else {
@@ -13012,6 +13138,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s titanic implant-filled belly completely hides ${his} silken panties and takes full advantage of its lack of restriction to bulge massively. ${His} silken vest sensually frames what little it can of ${his} immense middle.`);
 						} else {
@@ -13019,6 +13146,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s gigantic implant-filled belly completely hides ${his} silken panties and takes full advantage of its freedom to hang heavily. ${His} silken vest sensually frames what little it can of ${his} immense middle.`);
 						} else {
@@ -13026,6 +13154,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s massive implant-filled belly completely hides ${his} silken panties and takes full advantage of its freedom to hang heavily. ${His} silken vest sensually frames what it can of ${his} immense middle.`);
 						} else {
@@ -13033,6 +13162,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s giant implant-filled belly completely hides ${his} silken panties and bulges heavily from ${his} body. ${His} silken vest sensually frames ${his} ponderous middle.`);
 						} else {
@@ -13042,6 +13172,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						r.push(`${slave.slaveName}'s massively fat belly completely hides ${his} silken panties. ${His} silken vest struggles to sensually frame ${his} immense, jiggly gut while dwarfed by it.`);
 					} else if (slave.belly >= 15000 || (slave.bellyAccessory === "a huge empathy belly")) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s huge implant-filled belly completely hides ${his} silken panties. ${His} silken vest sensually frames ${his} ponderous stomach.`);
 						} else {
@@ -13110,6 +13241,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s titanic implant-filled belly stretches ${his} once loose dress into a more form fitting attire. It is specially tailored to be modest yet draw attention to ${his} abnormaly large middle.`);
 						} else {
@@ -13117,6 +13249,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s gigantic implant-filled belly completely fills ${his} once loose dress. It is specially tailored to be modest yet draw attention to ${his} abnormaly large middle.`);
 						} else {
@@ -13124,6 +13257,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s massive implant-filled belly fills ${his} once loose dress. It is specially tailored to be modest yet draw attention to ${his} spectacular middle.`);
 						} else {
@@ -13131,6 +13265,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s giant implant-filled belly fills out ${his} loose dress. It is specially tailored to be modest yet draw attention to ${his} expanded middle.`);
 						} else {
@@ -13142,6 +13277,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s huge pregnant belly fills out ${his} loose dress. It is specially tailored to be modest yet draw attention to ${his} pregnancy.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s huge implant-filled belly fills out ${his} loose dress. It is specially tailored to be modest yet draw attention to ${his} expanded middle.`);
 						} else {
@@ -13204,6 +13340,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 600000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s titanic implant-filled belly takes full advantage of ${his} exposed midriff to hang heavily from ${his} body.`);
 						} else {
@@ -13211,6 +13348,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 450000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s gigantic implant-filled belly takes full advantage of ${his} exposed midriff to hang heavily from ${his} body.`);
 						} else {
@@ -13218,6 +13356,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.bellyPreg >= 300000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s massive implant-filled belly takes full advantage of ${his} exposed midriff to hang heavily from ${his} body.`);
 						} else {
@@ -13225,6 +13364,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						}
 					} else if (slave.belly >= 120000) {
 						if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s giant implant-filled belly takes full advantage of ${his} exposed midriff to bulge heavily out from ${his} body while pushing ${his} stretch pants low.`);
 						} else {
@@ -13236,6 +13376,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						if (slave.bellyAccessory === "a huge empathy belly") {
 							r.push(`${slave.slaveName}'s huge pregnant belly takes full advantage of ${his} exposed midriff to hang freely and obscure ${his} stretch pants.`);
 						} else if (isBellyFluidLargest) {
+							// TODO: write me
 						} else if (slave.bellyImplant > 0) {
 							r.push(`${slave.slaveName}'s huge implant-filled belly takes full advantage of ${his} exposed midriff to hang freely and obscure ${his} stretch pants.`);
 						} else {
@@ -13306,6 +13447,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 							}
 						} else if (slave.bellyPreg >= 600000) {
 							if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`titanic implant-filled belly`);
 							} else {
@@ -13313,6 +13455,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 							}
 						} else if (slave.bellyPreg >= 450000) {
 							if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`gigantic implant-filled belly`);
 							} else {
@@ -13320,6 +13463,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 							}
 						} else if (slave.bellyPreg >= 300000) {
 							if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`massive implant-filled belly`);
 							} else {
@@ -13327,6 +13471,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 							}
 						} else if (slave.belly >= 120000) {
 							if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`giant implant-filled belly`);
 							} else {
@@ -13334,6 +13479,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 							}
 						} else if (slave.belly >= 30000) {
 							if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`huge implant-filled belly`);
 							} else {
@@ -13345,6 +13491,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 							if (slave.bellyAccessory === "a huge empathy belly") {
 								r.push(`huge pregnancy`);
 							} else if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`huge implant-filled belly`);
 							} else {
@@ -13408,6 +13555,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 						// wip
 						} else if (slave.belly >= 750000) {
 							if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`${slave.slaveName}'s top cannot even attempt to cover ${his} monolithic belly, only rest atop it, while ${his} spats struggle to stay up beneath the boundless mass.`);
 							} else {
@@ -13415,6 +13563,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 							}
 						} else if (slave.belly >= 600000) {
 							if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`${slave.slaveName}'s top cannot even attempt to cover ${his} titanic belly, only rest atop it, while ${his} spats are left to fend for themselves beneath the oppressive mass.`);
 							} else {
@@ -13422,6 +13571,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 							}
 						} else if (slave.belly >= 450000) {
 							if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`${slave.slaveName}'s top cannot even attempt to cover ${his} gigantic belly, only rest atop it, while ${his} spats are left to fend for themselves beneath the oppressive mass.`);
 							} else {
@@ -13429,6 +13579,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 							}
 						} else if (slave.bellyPreg >= 300000) {
 							if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`${slave.slaveName}'s top cannot even attempt to cover ${his} massive belly, only rest atop it, while ${his} spats are left to fend for themselves beneath the oppressive mass.`);
 							} else {
@@ -13436,6 +13587,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 							}
 						} else if (slave.belly >= 120000) {
 							if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`${slave.slaveName}'s top is currently making a laughable attempt at covering ${his} lewd, bulging belly. ${His} spats struggle to manage any of ${his} impressive bulk.`);
 							} else {
@@ -13447,6 +13599,7 @@ App.Desc.belly = function(slave, {market, eventDescription} = {}) {
 							if (slave.bellyAccessory === "a huge empathy belly") {
 								r.push(`${slave.slaveName}'s top is currently making a laughable attempt at covering ${his} lewd, bulging pregnancy, barely covering a fourth of its bulk while ${his} spats are stuck only coming up to its base.`);
 							} else if (isBellyFluidLargest) {
+								// TODO: write me
 							} else if (slave.bellyImplant > 0) {
 								r.push(`${slave.slaveName}'s top is currently making a laughable attempt at covering ${his} lewd, bulging belly, barely covering a fourth of its bulk while ${his} spats are stuck only coming up to its base.`);
 							} else {
diff --git a/src/npc/descriptions/career.js b/src/npc/descriptions/career.js
index 427f43796960d1635c88fda2b65898b1d3a1d4ef..c0878c988bdbb89086ee8d1252d9aa09700e0085 100644
--- a/src/npc/descriptions/career.js
+++ b/src/npc/descriptions/career.js
@@ -116,7 +116,7 @@ App.Desc.career = function(slave) {
 					}
 				} else if (App.Data.Careers.General.menial.includes(slave.career)) {
 					r.push(`${career}, giving ${him} experience following orders.`);
-				} else if (App.Data.Careers.Leader.servant.includes(slave.career)) {
+				} else if (App.Data.Careers.General.servant.includes(slave.career)) {
 					r.push(`${career}, giving ${him} a slight edge in housekeeping.`);
 				} else {
 					r.push(`${career}.`);
diff --git a/src/npc/descriptions/crotch/dick.js b/src/npc/descriptions/crotch/dick.js
index 71640d6b11cce2c43ba5d5329659638de96d00a6..a2690b9032d2646420bb13e79b9499644ee4ea68 100644
--- a/src/npc/descriptions/crotch/dick.js
+++ b/src/npc/descriptions/crotch/dick.js
@@ -1207,7 +1207,9 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 				}
 				r.push(`the hole.`);
 			} else if (slave.fetishKnown === 0) {
+				// TODO: write me
 			} else if (slave.fetishStrength <= 60) {
+				// TODO: write me
 			} else if (slave.fetish === "buttslut") {
 				r.push(`Judging by the`);
 				if (slave.prostate > 1) {
@@ -1389,7 +1391,9 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 				}
 				r.push(`the hole.`);
 			} else if (slave.fetishKnown === 0) {
+				// TODO: write me
 			} else if (slave.fetishStrength <= 60) {
+				// TODO: write me
 			} else if (slave.fetish === "buttslut") {
 				r.push(`Judging by the`);
 				if (slave.prostate > 1) {
diff --git a/src/npc/descriptions/crotch/vagina.js b/src/npc/descriptions/crotch/vagina.js
index 27166ef7533fe81de04e45a1986be128b62da4cd..6d9ad605f45b1e66e2b8e24fb38b6afebefba20f 100644
--- a/src/npc/descriptions/crotch/vagina.js
+++ b/src/npc/descriptions/crotch/vagina.js
@@ -635,7 +635,7 @@ App.Desc.vagina = function(slave) {
 
 	r.push(App.Desc.mods(slave, "pubic mound"));
 
-	const _pubertyAge = Math.min(slave.pubertyAgeXX, slave.pubertyAgeXY);
+	const pubertyAge = Math.min(slave.pubertyAgeXX, slave.pubertyAgeXY);
 
 	if (slave.race === "catgirl") {
 		if (slave.pubicHStyle === "hairless" || slave.pubicHStyle === "bald" || slave.pubicHStyle === "waxed" || slave.pubicHStyle === "shaved") {
@@ -649,7 +649,7 @@ App.Desc.vagina = function(slave) {
 		} else if (slave.pubicHStyle === "very bushy") {
 			r.push(`${He} has a veritable bush of ${slave.pubicHColor} fur around ${his} crotch that flares out to ${his} thighs.`);
 		}
-	} else if (slave.physicalAge < _pubertyAge - 2) {
+	} else if (slave.physicalAge < pubertyAge - 2) {
 		r.push(`${He} is too sexually immature to have pubic hair.`);
 	} else if (slave.pubicHStyle === "hairless") {
 		r.push(`${He}'s naturally smooth and hairless.`);
@@ -663,9 +663,9 @@ App.Desc.vagina = function(slave) {
 		} else {
 			r.push(`${He}'s waxed and smooth.`);
 		}
-	} else if (slave.physicalAge < _pubertyAge - 1) {
+	} else if (slave.physicalAge < pubertyAge - 1) {
 		r.push(`${He} has a few wisps of pubic hair.`);
-	} else if (slave.physicalAge < _pubertyAge) {
+	} else if (slave.physicalAge < pubertyAge) {
 		r.push(`${He} is on the verge of puberty and has a small patch of ${slave.pubicHColor} pubic hair above ${his}`);
 		if (slave.dick > 0) {
 			r.push(`cock.`);
diff --git a/src/npc/descriptions/descriptionWidgets.js b/src/npc/descriptions/descriptionWidgets.js
index 14fb5798d230b3bfc2c06ad45529cc240009f70d..2dd0a09739e246ea985f92b7c1f36917ca1c297e 100644
--- a/src/npc/descriptions/descriptionWidgets.js
+++ b/src/npc/descriptions/descriptionWidgets.js
@@ -97,7 +97,9 @@ App.Desc.eyes = function(slave, {market, eventDescription} = {}) {
 			}
 		}
 		r += `, `;
-		if (slave.intelligence > 95) {
+		if (slave.fetish === "mindbroken") {
+			r += `fitting for vacant expression constantly adorning ${his} face; ${his} broken mind lacks the ability to form higher thought and is completely reliant on others to think for ${him}.`;
+		} else if (slave.intelligence > 95) {
 			r += `but ${his} facial expressions reveal ${he} is incisive, quick, cunning; `;
 			if (slave.intelligence + slave.intelligenceImplant >= 130) {
 				r += `with ${his} education, ${he} is so far <span class="deepskyblue">beyond brilliant</span> that ${he} is nearly peerless. `;
@@ -223,7 +225,9 @@ App.Desc.eyes = function(slave, {market, eventDescription} = {}) {
 			}
 		}
 	} else {
-		if (slave.intelligence > 95) {
+		if (slave.fetish === "mindbroken") {
+			r += `${His} ${App.Desc.eyesColor(slave, "", "eye", "eyes", false)} ${hasBothEyes(slave) ? "are" : "is"} dull and vacant; ${his} broken mind lacks the capacity for higher thought.`;
+		} else if (slave.intelligence > 95) {
 			r += `${His} ${App.Desc.eyeColor(slave)}-eyed gaze is incisive, quick, cunning; `;
 			if (slave.intelligence + slave.intelligenceImplant >= 130) {
 				r += `with ${his} education, ${he} is so far <span class="deepskyblue">beyond brilliant</span> that ${he} is nearly peerless. `;
diff --git a/src/npc/descriptions/mind.js b/src/npc/descriptions/mind.js
index a78e387981b2714a90a1538cd37826c113a4aea6..0fbef348f6cf3f902aeb43293573b9510b015ab3 100644
--- a/src/npc/descriptions/mind.js
+++ b/src/npc/descriptions/mind.js
@@ -15,13 +15,13 @@ App.Desc.mind = function(slave, {market, eventDescription} = {}) {
 
 		if (slave.fetish === "mindbroken") {
 			r.push(`However, <span class="coral">${his} mind is fundamentally broken;</span> everything ${he} experiences will quickly be forgotten.`);
+		} else {
+			r.push(behavioralFlaws());
+			r.push(behavioralQuirks());
+			r.push(sexualFlaws());
+			r.push(sexualQuirk());
+			r.push(fetish());
 		}
-
-		r.push(behavioralFlaws());
-		r.push(behavioralQuirks());
-		r.push(sexualFlaws());
-		r.push(sexualQuirk());
-		r.push(fetish());
 		r.push(attraction());
 	} else {
 		r.push(`It's impossible to tell what intelligence or inclinations a Fuckdoll might have by looking at it, but the most recent records indicate that this one is`);
diff --git a/src/npc/descriptions/womb/pregnancy.js b/src/npc/descriptions/womb/pregnancy.js
index 82bda99e020dc76323da8629d359c352c31c44aa..fc3eaba0389b26f64a86bbae08ebc65b4253a094 100644
--- a/src/npc/descriptions/womb/pregnancy.js
+++ b/src/npc/descriptions/womb/pregnancy.js
@@ -23,6 +23,7 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 	}
 
 	if (slave.preg === -2 && slave.vagina < 0 && slave.mpreg === 0) {
+		// TODO: write me
 	} else if ((slave.preg <= -3) && (slave.ovaries === 1 || slave.mpreg === 1)) {
 		r.push(`${He} is sterilized.`);
 	} else if ((slave.preg <= -2) && (slave.ovaries === 1 || slave.mpreg === 1)) {
diff --git a/src/npc/generate/generateGenetics.js b/src/npc/generate/generateGenetics.js
index fd1fa8d5e0be8cad7fccf1b29be192932014f110..d423845424a4876d301ca205626e0f98ff984023 100644
--- a/src/npc/generate/generateGenetics.js
+++ b/src/npc/generate/generateGenetics.js
@@ -1273,7 +1273,7 @@ globalThis.generateChild = function(mother, ovum, incubator = false) {
 			child.tankBaby = 1;
 		} else {
 			child.origin = "$His brain is blank outside of the most basic of functions.";
-			applyMindbroken(child);
+			applyMindbroken(child, child.intelligence);
 			child.tankBaby = 3;
 		}
 		child.intelligenceImplant = 0;
diff --git a/src/npc/generate/generateMarketSlave.js b/src/npc/generate/generateMarketSlave.js
index d963c4ef384d8fb2cfd2d7c4df56b123c38af11c..f97424d4254c388c4910804d557fc56249588c10 100644
--- a/src/npc/generate/generateMarketSlave.js
+++ b/src/npc/generate/generateMarketSlave.js
@@ -1150,7 +1150,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 			}
 			slave.addict = jsEither([0, 0, 0, 10, 10, 20, 30]);
 			slave.chem = jsRandom(0, 1000);
-			applyMindbroken(slave);
+			applyMindbroken(slave, Intelligence.random({limitIntelligence: [-100, 0]}));
 			break;
 		}
 		case "wetware": {
@@ -1875,7 +1875,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 				slave.underArmHStyle = "waxed";
 				slave.heels = 1;
 				slave.energy = 100;
-				applyMindbroken(slave);
+				applyMindbroken(slave, -100);
 				slave.hStyle = "neat";
 				slave.brand["right thigh"] = "the logo of the Cattle Ranch";
 			} else {
@@ -1913,7 +1913,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 				slave.pubicHStyle = "waxed";
 				slave.underArmHStyle = "waxed";
 				slave.heels = 1;
-				applyMindbroken(slave);
+				applyMindbroken(slave, jsEither([-100, -100, -100, -100, -60, -60, -30]));
 				slave.hStyle = "neat";
 				slave.collar = "leather with cowbell";
 				slave.brand["right thigh"] = "the logo of the Cattle Ranch";
@@ -2894,7 +2894,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 					if (jsRandom(1, 100) > 70) {
 						slave.origin = "You purchased $his life at a prison sale. $He was locked away for murder. $His actions weigh heavily on $his conscience.";
 						setHealth(slave, jsRandom(-50, 20), Math.max(normalRandInt(0, 4), 0), Math.max(normalRandInt(0, 4), 0), undefined, jsRandom(40, 100));
-						applyMindbroken(slave);
+						applyMindbroken(slave, jsRandom(-80, 70));
 					} else {
 						slave.origin = "You purchased $his life at a prison sale. $He was locked away for murder.";
 						slave.devotion = jsRandom(-50, -20);
@@ -2911,7 +2911,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 					if (jsRandom(1, 100) > 50) {
 						slave.origin = "You purchased $his life at a prison sale. $He was locked away for arson. $His actions, and those $he inadvertently killed, weigh heavily on $his conscience.";
 						setHealth(slave, jsRandom(-50, 20), Math.max(normalRandInt(0, 4), 0), Math.max(normalRandInt(0, 4), 0), undefined, jsRandom(40, 100));
-						applyMindbroken(slave);
+						applyMindbroken(slave, jsRandom(-80, 70));
 					} else {
 						slave.origin = "You purchased $his life at a prison sale. $He was locked away for arson.";
 						slave.devotion = jsRandom(-70, -50);
@@ -2990,7 +2990,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 					if (jsRandom(1, 100) > 60) {
 						slave.origin = "You purchased $his life at a prison sale. $He was locked away for manslaughter. $His actions weigh heavily on $his conscience.";
 						setHealth(slave, jsRandom(-50, -20), Math.max(normalRandInt(0, 4), 0), Math.max(normalRandInt(0, 4), 0), undefined, jsRandom(40, 100));
-						applyMindbroken(slave);
+						applyMindbroken(slave, jsRandom(-80, 70));
 					} else {
 						slave.origin = "You purchased $his life at a prison sale. $He was locked away for manslaughter.";
 						slave.devotion = jsRandom(-70, -50);
diff --git a/src/npc/generate/newChildIntro.js b/src/npc/generate/newChildIntro.js
index d501e8c3e9976862eac1d7113739b7639c6b5b0a..763ce2783be107b570fb188e4be0232a8b94408f 100644
--- a/src/npc/generate/newChildIntro.js
+++ b/src/npc/generate/newChildIntro.js
@@ -23,7 +23,7 @@ App.UI.newChildIntro = function(slave) {
 		} else if (slave.geneticQuirks.neoteny && slave.actualAge > 12 && V.geneticMappingUpgrade < 2) {
 		}
 	} else if (slave.geneticQuirks.progeria && V.geneticMappingUpgrade < 2) {
-		r.push(`you barely manage to pull yourself together to catch ${him} in time. There must have been some mistake with the settings; ${he} should not be //this// old. You help ${him} to ${his} unstable feet and slowly walk ${him} to your penthouse.`);
+		r.push(`you barely manage to pull yourself together to catch ${him} in time. There must have been some mistake with the settings; ${he} should not be <i>this</i> old. You help ${him} to ${his} unstable feet and slowly walk ${him} to your penthouse.`);
 	} else if (slave.geneticQuirks.neoteny && slave.actualAge > 12 && V.geneticMappingUpgrade === 0) {
 		r.push(`you have to make sure the right ${girl} was released. ${He} was supposed to be ${slave.actualAge}, not this child sitting before you. You double check the machine's logs to be certain and it turns out ${he} really is ${slave.actualAge}, just abnormally young looking for ${his} age.`);
 	} else {
diff --git a/src/npc/generate/newSlaveIntro.js b/src/npc/generate/newSlaveIntro.js
index 659f8ca29cd4d3a41c7e60dde091be6c69a414f1..23b0fdf4223504d4bcfda118858fae19a7339c30 100644
--- a/src/npc/generate/newSlaveIntro.js
+++ b/src/npc/generate/newSlaveIntro.js
@@ -2212,7 +2212,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest =
 						} else {
 							r.push(`womb`);
 						}
-						r.push(`and ovaries are extracted${canSee(slave) ? `before ${his} eyes` : ``}.`);
+						r.push(`and ovaries are extracted${canSee(slave) ? ` before ${his} eyes` : ``}.`);
 
 						if (slave.fetish === "pregnancy" && slave.pregKnown === 1) {
 							if ((slave.preg > slave.pregData.normalBirth / 1.6) && (canSee(slave))) {
@@ -4292,7 +4292,7 @@ App.UI.newSlaveIntro = function(slave, slave2, {tankBorn = false, momInterest =
 					linkName: `Fill ${him} with cum`,
 					result(slave) {
 						const r = [];
-						r.push(`You securely restrain your new slave${(V.dairyRestraintsSetting > 1) ? `in a milking stall` : ``}. A quick finger check of ${his} holes allows you to choose wisely from a selection of hollow phalluses, which push into your helpless new slave's mouth,`);
+						r.push(`You securely restrain your new slave${(V.dairyRestraintsSetting > 1) ? ` in a milking stall` : ``}. A quick finger check of ${his} holes allows you to choose wisely from a selection of hollow phalluses, which push into your helpless new slave's mouth,`);
 						actX(slave, "oral");
 						if (slave.vagina > 0) {
 							r.push(`vagina,`);
diff --git a/src/npc/infants/infantSummary.js b/src/npc/infants/infantSummary.js
index 780bbe47d6fad954550ba41da8eccfa5f21e4b48..f7a51076d0d739abf38926d2b6f1cbaafc6b190f 100644
--- a/src/npc/infants/infantSummary.js
+++ b/src/npc/infants/infantSummary.js
@@ -1563,12 +1563,12 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		let r = ``;
 
 		if (child.mother > 0) {
-			const _ssj = V.slaves.findIndex(function(s) {
+			const ssj = V.slaves.findIndex(function(s) {
 				return s.ID === child.mother;
 			});
-			if (_ssj !== -1) {
-				r += `${SlaveFullName(V.slaves[_ssj])}'s ${daughter}`;
-				if (child.relationshipTarget === V.slaves[_ssj].ID) {
+			if (ssj !== -1) {
+				r += `${SlaveFullName(V.slaves[ssj])}'s ${daughter}`;
+				if (child.relationshipTarget === V.slaves[ssj].ID) {
 					const friendShipShort = relationshipTermShort(child);
 					r += ` & ${friendShipShort}`;
 					handled = 1;
@@ -1587,12 +1587,12 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		}
 
 		if (child.father > 0 && child.father !== child.mother) {
-			const _ssj = V.slaves.findIndex(function(s) {
+			const ssj = V.slaves.findIndex(function(s) {
 				return s.ID === child.father;
 			});
-			if (_ssj !== -1) {
-				r += `${SlaveFullName(V.slaves[_ssj])}'s ${daughter}`;
-				if (child.relationshipTarget === V.slaves[_ssj].ID && handled !== 1) {
+			if (ssj !== -1) {
+				r += `${SlaveFullName(V.slaves[ssj])}'s ${daughter}`;
+				if (child.relationshipTarget === V.slaves[ssj].ID && handled !== 1) {
 					const friendShipShort = relationshipTermShort(child);
 					r += ` & ${friendShipShort}`;
 					handled = 1;
@@ -1611,24 +1611,24 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		}
 
 		if (child.daughters === 1) {
-			let _ssj = V.slaves.findIndex(function(s) {
+			let ssj = V.slaves.findIndex(function(s) {
 				return s.mother === child.ID;
 			});
-			if (_ssj !== -1) {
-				r += `${SlaveFullName(V.slaves[_ssj])}'s mother`;
-				if (child.relationshipTarget === V.slaves[_ssj].ID) {
+			if (ssj !== -1) {
+				r += `${SlaveFullName(V.slaves[ssj])}'s mother`;
+				if (child.relationshipTarget === V.slaves[ssj].ID) {
 					const friendShipShort = relationshipTermShort(child);
 					r += ` & ${friendShipShort}`;
 					handled = 1;
 				}
 			}
 			r += " ";
-			_ssj = V.slaves.findIndex(function(s) {
+			ssj = V.slaves.findIndex(function(s) {
 				return s.father === child.ID;
 			});
-			if (_ssj !== -1) {
-				r += `${SlaveFullName(V.slaves[_ssj])}'s father`;
-				if (child.relationshipTarget === V.slaves[_ssj].ID && handled !== 1) {
+			if (ssj !== -1) {
+				r += `${SlaveFullName(V.slaves[ssj])}'s father`;
+				if (child.relationshipTarget === V.slaves[ssj].ID && handled !== 1) {
 					const friendShipShort = relationshipTermShort(child);
 					r += ` & ${friendShipShort}`;
 					handled = 1;
@@ -1640,12 +1640,12 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		}
 
 		if (child.sisters === 1) {
-			const _ssj = V.slaves.findIndex(function(s) {
+			const ssj = V.slaves.findIndex(function(s) {
 				return areSisters(s, child) > 0;
 			});
-			if (_ssj !== -1) {
-				r += `${SlaveFullName(V.slaves[_ssj])}'s ${sister}`;
-				if (child.relationshipTarget === V.slaves[_ssj].ID) {
+			if (ssj !== -1) {
+				r += `${SlaveFullName(V.slaves[ssj])}'s ${sister}`;
+				if (child.relationshipTarget === V.slaves[ssj].ID) {
 					const friendShipShort = relationshipTermShort(child);
 					r += `& ${friendShipShort}`;
 					handled = 1;
@@ -1657,11 +1657,11 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		}
 
 		if (child.relationship > 0 && handled !== 1) {
-			const _ssj = V.slaves.findIndex(function(s) {
+			const ssj = V.slaves.findIndex(function(s) {
 				return s.ID === child.relationshipTarget;
 			});
-			if (_ssj !== -1) {
-				r += `${SlaveFullName(V.slaves[_ssj])}'s`;
+			if (ssj !== -1) {
+				r += `${SlaveFullName(V.slaves[ssj])}'s`;
 				const friendShipShort = relationshipTermShort(child);
 				r += ` ${friendShipShort}`;
 			}
@@ -1683,12 +1683,12 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		let r = ``;
 
 		if (child.mother > 0) {
-			const _ssj = V.slaves.findIndex(function(s) {
+			const ssj = V.slaves.findIndex(function(s) {
 				return s.ID === child.mother;
 			});
-			if (_ssj !== -1) {
-				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">${daughter}`;
-				if (child.relationshipTarget === V.slaves[_ssj].ID) {
+			if (ssj !== -1) {
+				r += `${SlaveFullName(V.slaves[ssj])}'s <span class="lightgreen">${daughter}`;
+				if (child.relationshipTarget === V.slaves[ssj].ID) {
 					const friendShipShort = relationshipTerm(child);
 					r += ` and ${friendShipShort}`;
 					handled = 1;
@@ -1709,12 +1709,12 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		}
 
 		if (child.father > 0 && child.father !== child.mother) {
-			const _ssj = V.slaves.findIndex(function(s) {
+			const ssj = V.slaves.findIndex(function(s) {
 				return s.ID === child.father;
 			});
-			if (_ssj !== -1) {
-				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">${daughter}`;
-				if (child.relationshipTarget === V.slaves[_ssj].ID) {
+			if (ssj !== -1) {
+				r += `${SlaveFullName(V.slaves[ssj])}'s <span class="lightgreen">${daughter}`;
+				if (child.relationshipTarget === V.slaves[ssj].ID) {
 					const friendShipShort = relationshipTerm(child);
 					r += ` and ${friendShipShort}`;
 					handled = 1;
@@ -1734,24 +1734,24 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		}
 
 		if (child.daughters === 1) {
-			let _ssj = V.slaves.findIndex(function(s) {
+			let ssj = V.slaves.findIndex(function(s) {
 				return s.mother === child.ID;
 			});
-			if (_ssj !== -1) {
-				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">mother`;
-				if (child.relationshipTarget === V.slaves[_ssj].ID) {
+			if (ssj !== -1) {
+				r += `${SlaveFullName(V.slaves[ssj])}'s <span class="lightgreen">mother`;
+				if (child.relationshipTarget === V.slaves[ssj].ID) {
 					const friendShipShort = relationshipTerm(child);
 					r += ` and ${friendShipShort}`;
 					handled = 1;
 				}
 				r += `.</span> `;
 			}
-			_ssj = V.slaves.findIndex(function(s) {
+			ssj = V.slaves.findIndex(function(s) {
 				return s.father === child.ID;
 			});
-			if (_ssj !== -1) {
-				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">father`;
-				if (child.relationshipTarget === V.slaves[_ssj].ID) {
+			if (ssj !== -1) {
+				r += `${SlaveFullName(V.slaves[ssj])}'s <span class="lightgreen">father`;
+				if (child.relationshipTarget === V.slaves[ssj].ID) {
 					const friendShipShort = relationshipTerm(child);
 					r += ` and ${friendShipShort}`;
 					handled = 1;
@@ -1769,12 +1769,12 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		}
 
 		if (child.sisters === 1) {
-			const _ssj = V.slaves.findIndex(function(s) {
+			const ssj = V.slaves.findIndex(function(s) {
 				return areSisters(s, child) > 0;
 			});
-			if (_ssj !== -1) {
-				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">${sister}`;
-				if (child.relationshipTarget === V.slaves[_ssj].ID) {
+			if (ssj !== -1) {
+				r += `${SlaveFullName(V.slaves[ssj])}'s <span class="lightgreen">${sister}`;
+				if (child.relationshipTarget === V.slaves[ssj].ID) {
 					const friendShipShort = relationshipTerm(child);
 					r += ` and ${friendShipShort}`;
 					handled = 1;
@@ -1792,12 +1792,12 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 		}
 
 		if (child.relationship > 0 && handled !== 1) {
-			const _ssj = V.slaves.findIndex(function(s) {
+			const ssj = V.slaves.findIndex(function(s) {
 				return s.ID === child.relationshipTarget;
 			});
-			if (_ssj !== -1) {
+			if (ssj !== -1) {
 				const friendship = relationshipTerm(child);
-				r += `${SlaveFullName(V.slaves[_ssj])}'s `;
+				r += `${SlaveFullName(V.slaves[ssj])}'s `;
 				r += `<span class="lightgreen">${friendship}.</span> `;
 			}
 		} else if (child.relationship === -3 && child.mother !== -1 && child.father !== -1) {
@@ -1816,17 +1816,17 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 
 		if (child.rivalry !== 0) {
 			r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
-			const _ssj = V.slaves.findIndex(function(s) {
+			const ssj = V.slaves.findIndex(function(s) {
 				return s.ID === child.rivalryTarget;
 			});
-			if (_ssj !== -1) {
+			if (ssj !== -1) {
 				r += `<span class="lightsalmon">`;
 				if (child.rivalry <= 1) {
-					r += `Disl ${SlaveFullName(V.slaves[_ssj])}`;
+					r += `Disl ${SlaveFullName(V.slaves[ssj])}`;
 				} else if (child.rivalry <= 2) {
-					r += `${SlaveFullName(V.slaves[_ssj])}'s rival`;
+					r += `${SlaveFullName(V.slaves[ssj])}'s rival`;
 				} else {
-					r += `Hates ${SlaveFullName(V.slaves[_ssj])}`;
+					r += `Hates ${SlaveFullName(V.slaves[ssj])}`;
 				}
 				r += `</span> `;
 			}
@@ -1840,17 +1840,17 @@ App.Facilities.Nursery.InfantSummary = function(child) {
 
 		if (child.rivalry !== 0) {
 			r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
-			const _ssj = V.slaves.findIndex(function(s) {
+			const ssj = V.slaves.findIndex(function(s) {
 				return s.ID === child.rivalryTarget;
 			});
 
-			if (_ssj !== -1) {
+			if (ssj !== -1) {
 				if (child.rivalry <= 1) {
-					r += `<span class="lightsalmon">Dislikes</span> ${SlaveFullName(V.slaves[_ssj])}. `;
+					r += `<span class="lightsalmon">Dislikes</span> ${SlaveFullName(V.slaves[ssj])}. `;
 				} else if (child.rivalry <= 2) {
-					r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightsalmon">rival.</span> `;
+					r += `${SlaveFullName(V.slaves[ssj])}'s <span class="lightsalmon">rival.</span> `;
 				} else {
-					r += `<span class="lightsalmon">Hates</span> ${SlaveFullName(V.slaves[_ssj])}. `;
+					r += `<span class="lightsalmon">Hates</span> ${SlaveFullName(V.slaves[ssj])}. `;
 				}
 			}
 			r += " ";
diff --git a/src/npc/interaction/FFuckdollImpreg.js b/src/npc/interaction/FFuckdollImpreg.js
index 035f2250ffa0a39bcfb79c2cc939ada3ad622785..7ae1839ac119d210da994225ab9de9466a305637 100644
--- a/src/npc/interaction/FFuckdollImpreg.js
+++ b/src/npc/interaction/FFuckdollImpreg.js
@@ -13,14 +13,14 @@ App.Interact.fFuckdollImpreg = function(slave) {
 	} = getPronouns(slave);
 
 	addPartner(slave, -1);
-	const _bonus = random(6, 20);
+	const bonus = random(6, 20);
 
 	if (slave.mpreg === 1) {
-		slave.counter.anal += _bonus + 1;
-		V.analTotal += _bonus + 1;
+		slave.counter.anal += bonus + 1;
+		V.analTotal += bonus + 1;
 	} else {
-		slave.counter.vaginal += _bonus + 1;
-		V.vaginalTotal += _bonus + 1;
+		slave.counter.vaginal += bonus + 1;
+		V.vaginalTotal += bonus + 1;
 	}
 
 	r.push(`You decide to use the Fuckdoll's fertile womb to grow a child.`);
diff --git a/src/npc/interaction/FSuckle.js b/src/npc/interaction/FSuckle.js
index 956baac3067d3b354e3b444f1e491dcf1bc863c2..a59ba0ff2e02ef3b8caf1a620d0468142c9d76ea 100644
--- a/src/npc/interaction/FSuckle.js
+++ b/src/npc/interaction/FSuckle.js
@@ -15,19 +15,19 @@ App.Interact.fSuckle = function(slave) {
 	addPartner(slave, -1);
 
 	seX(slave, "mammary", V.PC, "oral");
-	let _mood;
+	let mood;
 	if (V.PC.pregMood === 0 || V.PC.preg < 28) {
-		_mood = 0;
+		mood = 0;
 	} else if (V.PC.pregMood === 1) {
-		_mood = 1;
+		mood = 1;
 	} else if (V.PC.pregMood === 2) {
-		_mood = 2;
+		mood = 2;
 	}
 
 	// still needed: breast implant support, nipple piercing support
 
 	r.push(`You`);
-	if (_mood === 2) {
+	if (mood === 2) {
 		r.push(`demand`);
 	} else {
 		r.push(`beckon`);
@@ -56,26 +56,26 @@ App.Interact.fSuckle = function(slave) {
 			r.push(`${He} complies without a thought.`);
 		} else if (slave.devotion > 20 && slave.trust > 20) {
 			r.push(`${He} complies,`);
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`knowing full well what you want.`);
 			} else {
 				r.push(`giddy with anticipation of your plans for ${him}.`);
 			}
 		} else if (slave.trust < -20) {
 			r.push(`${He} hurriedly complies,`);
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`fearful of the sudden shift in your demeanor.`);
 			} else {
 				r.push(`aware of the consequences of disobedience.`);
 			}
 		} else if (slave.devotion < -20) {
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`${He} is shaken by your tone, knowing that disobedience may lead to even worse matters for ${him}; ${he} complies without any further hassle.`);
 			} else {
 				r.push(`${He} begrudgingly complies, not understanding your intentions, but knowing worse things await at ${his} disobedience.`);
 			}
 		} else {
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`${He} is a little afraid of your sudden demanding tone, but steels ${himself} for whatever punishment you wish to mete out to ${him}.`);
 			} else {
 				r.push(`Though hesitant, ${he} complies without question.`);
@@ -86,26 +86,26 @@ App.Interact.fSuckle = function(slave) {
 			r.push(`${He} pays no attention as ${he} is carefully positioned for your use.`);
 		} else if (slave.devotion > 20 && slave.trust > 20) {
 			r.push(`Though ${he} has no agency over this,`);
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`${he} is somewhat confused by your sudden aggressive posture.`);
 			} else {
 				r.push(`${he} is visibly giddy with anticipation for your next course of action as ${he} is helped into position.`);
 			}
 		} else if (slave.trust < -20) {
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`${He} knows better than to struggle as ${he} is helped into position, though ${he} dreads what ${his} pregnant ${getWrittenTitle(slave)} has planned.`);
 			} else {
 				r.push(`${He} knows better than to struggle as ${he} is helped into position, well aware of the consequences it would bring.`);
 			}
 		} else if (slave.devotion < -20) {
 			r.push(`Though ${he} is rebellious,`);
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`seeing such a gravid person take such a predatory stance shakes ${him} and ${he} becomes more compliant.`);
 			} else {
 				r.push(`${his} inability to move and distaste for falling to the ground kept ${him} from giving ${his} help much trouble.`);
 			}
 		} else {
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`Though ${he} is frightened by your sudden aggressiveness, ${he} complies with ${his} helper as ${he} is positioned.`);
 			} else {
 				r.push(`Though hesitant, ${he} complies with ${his} helper as ${he} is positioned.`);
@@ -115,13 +115,13 @@ App.Interact.fSuckle = function(slave) {
 
 	if (slave.boobs >= 20000) {
 		r.push(`You`);
-		if (_mood === 1) {
+		if (mood === 1) {
 			r.push(`caress`);
 		} else {
 			r.push(`take note of`);
 		}
 		r.push(`${his} massive udders,`);
-		if (_mood === 2) {
+		if (mood === 2) {
 			if (slave.nipples === "puffy") {
 				r.push(`grabbing a puffy nipple, lifting it up and letting it drop back down with a loud plop and a spurt of milk. They are dripping with excess milk and the flurry of kicks in your middle tells you what you need to do.`);
 			} else if (slave.nipples === "inverted") {
@@ -186,7 +186,7 @@ App.Interact.fSuckle = function(slave) {
 				r.push(`overly exertive nipple already prodding at your mouth, as if begging to be suckled on.`);
 			}
 			r.push(`Though muffled, you`);
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`order ${him} to deal with`);
 				if (V.PC.dick !== 0) {
 					r.push(`the erect monster pressing uncomfortably against the underside of your belly.`);
@@ -290,7 +290,7 @@ App.Interact.fSuckle = function(slave) {
 			}
 		} else {
 			r.push(`exotic nipple brushing across your lips, as if wanting to have your tongue inside it, while ${his} other nipple`);
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`brushes across your`);
 				if (V.PC.dick !== 0) {
 					r.push(`penis, just begging to be penetrated. You struggle to shift yourself in such a way to penetrate ${his} nipple, before finally managing to slip the tip into ${him}`);
@@ -370,40 +370,40 @@ App.Interact.fSuckle = function(slave) {
 		}
 	} else if (slave.boobs >= 2000) {
 		r.push(`You`);
-		if (_mood === 1) {
+		if (mood === 1) {
 			r.push(`caress`);
-		} else if (_mood === 2) {
+		} else if (mood === 2) {
 			r.push(`hungrily eye`);
 		} else {
 			r.push(`eye`);
 		}
 		r.push(`${his} ${slave.nipples} nipples,`);
 		if (slave.nipples === "puffy") {
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`gripping the nipple with your hand and squeezing hard enough to force out a spurt of milk. A flurry of kicks tells you that you are to take one of those swollen, dripping beauties and have a drink.`);
 			} else {
 				r.push(`swollen and dripping with excess milk and calling on your instincts to suckle on them.`);
 			}
 		} else if (slave.nipples === "inverted") {
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`poking it with your finger as deep as you can. The inviting hole keeps all the delicious milk locked up, your instincts insisting that you pry out the flavor for yourself. The kicking in your middle settles it, you're taking a drink whether or not ${his} nipples agree.`);
 			} else {
 				r.push(`the inviting hole keeping all the delicious milk locked up, your instincts insisting that you pry out the flavor for yourself.`);
 			}
 		} else if (slave.nipples === "flat") {
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`pinching the nipple with your fingertips and squeezing hard enough to force out some drops of milk. A flurry of kicks demands you wrap you lips around it and take what little milk hides within.`);
 			} else {
 				r.push(`swollen and dripping with excess milk and calling on your instincts to suck on them.`);
 			}
 		} else if (slave.nipples === "fuckable") {
-			if (_mood === 2) {
-				r.push(`using two fingers to penetrate and spread apart to appreciate the insides. They are dripping with excess milk and resemble a tiny pussy; a series of kicks insist that you have a taste${(V.PC.dick !== 0) ? `and a little stress relief` : ``}.`);
+			if (mood === 2) {
+				r.push(`using two fingers to penetrate and spread apart to appreciate the insides. They are dripping with excess milk and resemble a tiny pussy; a series of kicks insist that you have a taste${(V.PC.dick !== 0) ? ` and a little stress relief` : ``}.`);
 			} else {
 				r.push(`dripping with excess milk and resembling a tiny pussy, your instincts doubly insisting that you have a taste.`);
 			}
 		} else {
-			if (_mood === 2) {
+			if (mood === 2) {
 				r.push(`pinching one between your thumb and forefinger with enough force to hurt. Excess milk drips from it as a rather forceful kick from your womb insists that you take your fill; you wouldn't mind a taste yourself.`);
 			} else {
 				r.push(`dripping with excess milk and calling on your instincts to suckle on them.`);
@@ -448,7 +448,7 @@ App.Interact.fSuckle = function(slave) {
 			r.push(`getting familiar with ${his} fat belly as`);
 		}
 		r.push(`${his} over-productive bosoms dripping sweet cream on your face${(slave.nipples === "inverted") ? `, the milk waiting to be sucked from the tight inverted holes above you` : ``}${(V.PC.belly >= 10000) ? ` and your belly brushing the undersides of ${his} tits` : ``}. You`);
-		if (_mood === 2) {
+		if (mood === 2) {
 			r.push(`order ${him} to deal with`);
 			if (V.PC.dick !== 0) {
 				r.push(`the erect monster pressing uncomfortably against the underside of your belly.`);
@@ -484,7 +484,7 @@ App.Interact.fSuckle = function(slave) {
 
 	if (slave.fetish === "mindbroken") {
 		r.push(`You`);
-		if (_mood === 1) {
+		if (mood === 1) {
 			r.push(`struggle to lean forward and wrap your lips gently around a nipple,`);
 		} else {
 			r.push(`lurch forward and engulf a nipple with your lips,`);
@@ -492,7 +492,7 @@ App.Interact.fSuckle = function(slave) {
 		r.push(`causing ${him} to shudder with arousal as the suction causes milk to gush into your mouth to sate your needs.`);
 	} else if (slave.devotion <= 20 || slave.trust < -20) {
 		r.push(`${He} braces ${himself} as you`);
-		if (_mood === 1) {
+		if (mood === 1) {
 			r.push(`struggle to lean forward and wrap your lips gently around a nipple,`);
 		} else {
 			r.push(`lurch forward and engulf a nipple with your lips,`);
@@ -500,18 +500,18 @@ App.Interact.fSuckle = function(slave) {
 		r.push(`cringing as the suction causes milk to gush into your mouth to sate your needs.`);
 	} else {
 		r.push(`You`);
-		if (_mood === 1) {
+		if (mood === 1) {
 			r.push(`struggle to lean forward and wrap your lips gently around a nipple,`);
 		} else {
 			r.push(`lurch forward and engulf a nipple with your lips,`);
 		}
 		r.push(`causing ${him} to coo with delight`);
-		if (_mood === 1) {
+		if (mood === 1) {
 			r.push(`and support your head`);
 		}
 		r.push(`as the suction causes milk to gush into your mouth to sate your needs.`);
 	}
-	if (_mood === 2) {
+	if (mood === 2) {
 		r.push(`Your`);
 		if (V.PC.pregType > 1) {
 			r.push(`babies calm`);
@@ -519,7 +519,7 @@ App.Interact.fSuckle = function(slave) {
 			r.push(`baby calms`);
 		}
 		r.push(`down as ${his} cream reaches your system.`);
-	} else if (_mood === 1) {
+	} else if (mood === 1) {
 		r.push(`Your`);
 		if (V.PC.pregType > 1) {
 			r.push(`babies kick`);
@@ -573,7 +573,7 @@ App.Interact.fSuckle = function(slave) {
 		} else {
 			r.push(`roll and prod`);
 		}
-		r.push(`with your tongue, trying to get the most out of ${his} mammaries, you hasten ${his} breath and bring ${him} further pleasure${(slave.nipples === "inverted") ? `as it slowly hardens and leaves its inverted state` : ``}.`);
+		r.push(`with your tongue, trying to get the most out of ${his} mammaries, you hasten ${his} breath and bring ${him} further pleasure${(slave.nipples === "inverted") ? ` as it slowly hardens and leaves its inverted state` : ``}.`);
 		if (slave.nipples === "puffy") {
 			r.push(`You note the texture of ${his} nipple: soft, more so even than the rest of ${his} boob. Your constant efforts of sucking and tongueplay are rewarded`);
 		} else if (slave.nipples === "flat") {
@@ -601,9 +601,9 @@ App.Interact.fSuckle = function(slave) {
 		r.push(`hardness,`);
 	}
 	r.push(`relishing the delicious treat one could have only received from a mother's bosom; at least, so was the case before modern medicine decided to say something about it. Though it may as well be artificial, the act of breastfeeding continues to appease a fundamental emotional need that is arguably unique to the action.`);
-	if (_mood === 2) {
+	if (mood === 2) {
 		r.push(`It gives you undeniable emotional respite despite the mood caused by your pregnancy, even if it will only last as long as you stay with ${him}.`);
-	} else if (_mood === 1) {
+	} else if (mood === 1) {
 		r.push(`You can only hope ${he}'ll return the favor when you yourself become too heavy with milk.`);
 	} else if (V.PC.preg > 30) {
 		r.push(`You know that you'll soon have your own child`);
@@ -668,7 +668,7 @@ App.Interact.fSuckle = function(slave) {
 	} else {
 		r.push(`onto`);
 	}
-	r.push(`${his} other breast${(V.PC.dick !== 0 && V.PC.balls >= 10) ? `and backflowing hard from your sheer volume` : ``}. You release ${his} nipple with a loud pop and lick your lips in delight.`);
+	r.push(`${his} other breast${(V.PC.dick !== 0 && V.PC.balls >= 10) ? ` and backflowing hard from your sheer volume` : ``}. You release ${his} nipple with a loud pop and lick your lips in delight.`);
 	if (slave.boobs >= 20000 && slave.nipples === "fuckable") {
 		r.push(`Your`);
 		if (V.PC.dick !== 0) {
@@ -689,9 +689,9 @@ App.Interact.fSuckle = function(slave) {
 			r.push(`nippleslit.`);
 		}
 	}
-	if (_mood === 2) {
+	if (mood === 2) {
 		r.push(`For a moment, ${he} thought you were finished, but with your hormone fueled libido, ${he}'ll be feeling a lot more than sore nipples but the time you tire of ${his} touch.`);
-	} else if (_mood === 1) {
+	} else if (mood === 1) {
 		r.push(`You cuddle up against ${him}, holding close to ${him} as you snooze off your milky meal.`);
 		if (slave.fetish === "mindbroken") {
 			r.push(`${He} struggles in discomfort at your pregnant weight pinning ${him} down until ${he} manages to rouse your child`);
@@ -722,7 +722,7 @@ App.Interact.fSuckle = function(slave) {
 	}
 
 	r.push(`Once you`);
-	if (_mood === 1) {
+	if (mood === 1) {
 		r.push(`wake and slowly rise to your feet, you help ${him} clean up`);
 	} else {
 		r.push(`are done, you allow ${him} to clean up`);
diff --git a/src/npc/interaction/fAbuse.js b/src/npc/interaction/fAbuse.js
index b93824aef30a6b81ceec074a5ab6a81eaf8f74f2..1d419218b90c67e469c976f3afe4241aeab02aef 100644
--- a/src/npc/interaction/fAbuse.js
+++ b/src/npc/interaction/fAbuse.js
@@ -28,7 +28,7 @@ App.Interact.fAbuse = function(slave) {
 		}
 	}
 
-	let _assPain = 0;
+	let assPain = 0;
 
 	if (!hasAnyLegs(slave)) {
 		r.push(`You set ${his} helpless form down for abuse. Brutalizing ${him} is almost childishly easy; ${his}`);
@@ -553,7 +553,7 @@ App.Interact.fAbuse = function(slave) {
 		}
 		r.push(`up ${his} butt. What surprises ${him} is when you slide a finger or two in alongside your dick to stretch ${him} to the point of pain.`);
 		r.push(VCheck.Anal(slave, 1));
-		_assPain = 1;
+		assPain = 1;
 	} else if (slave.vagina === 0) {
 		r.push(`The bitch's still a virgin and you don't mean to take that now, but you torture ${him} with the threat of raping ${his} virgin pussy for a while before settling for ${his} gagging throat.`);
 		seX(slave, "oral", V.PC, "penetrative");
@@ -611,7 +611,7 @@ App.Interact.fAbuse = function(slave) {
 		}
 		r.push(`${His} asshole spasms with the pain of the rape. You cum explosively.`);
 		r.push(VCheck.Anal(slave, 1));
-		_assPain = 1;
+		assPain = 1;
 	} else if (slave.dick > 0 && slave.scrotum > 0) {
 		r.push(`You ram`);
 		if (V.PC.dick === 0) {
@@ -631,7 +631,7 @@ App.Interact.fAbuse = function(slave) {
 		}
 		r.push(`You orgasm explosively.`);
 		r.push(VCheck.Anal(slave, 1));
-		_assPain = 1;
+		assPain = 1;
 	} else if (slave.dick > 0) {
 		r.push(`You ram`);
 		if (V.PC.dick === 0) {
@@ -645,7 +645,7 @@ App.Interact.fAbuse = function(slave) {
 		}
 		r.push(`${He}'s such a slut that ${he} shows signs of enjoyment, but you put a stop to that whenever it happens by slapping and flicking ${his} cock. You cum explosively.`);
 		r.push(VCheck.Anal(slave, 1));
-		_assPain = 1;
+		assPain = 1;
 	} else {
 		r.push(`${He}'s got no special physical targets for abuse, so you just rape ${him} hard and fast, raining stinging slaps down on ${him} as you do. ${He} cries and whimpers; you finish.`);
 		r.push(VCheck.Both(slave, 1));
@@ -665,7 +665,7 @@ App.Interact.fAbuse = function(slave) {
 
 	if (slave.assignment !== Job.BODYGUARD) {
 		if (slave.minorInjury === 0) {
-			if (_assPain === 1) {
+			if (assPain === 1) {
 				r.push(`The anal rape leaves ${him} with a sore butthole.`);
 			} else if (random(1, 100) > 50) {
 				slave.minorInjury = either("black eye", "bruise", "split lip");
@@ -721,27 +721,27 @@ App.Interact.fAbuse = function(slave) {
 
 	if (random(1, 100) > (20+slave.devotion+slave.trust)) {
 		if (slave.fetish !== "submissive" && slave.fetish !== "masochist" && slave.assignment !== Job.BODYGUARD) {
-			const _seed = random(1, 8);
+			const seed = random(1, 8);
 			r.push(`Brutal abuse has left ${him}`);
-			if (_seed === 1 && slave.behavioralFlaw !== "odd") {
+			if (seed === 1 && slave.behavioralFlaw !== "odd") {
 				r.push(`<span class="red">acting strangely.</span>`);
 				slave.behavioralFlaw = "odd";
-			} else if (_seed === 2 && slave.behavioralFlaw !== "anorexic") {
+			} else if (seed === 2 && slave.behavioralFlaw !== "anorexic") {
 				r.push(`<span class="red">starving ${himself}</span> in a crippling attempt to be pretty.`);
 				slave.behavioralFlaw = "anorexic";
-			} else if (_seed === 3 && slave.behavioralFlaw !== "gluttonous") {
+			} else if (seed === 3 && slave.behavioralFlaw !== "gluttonous") {
 				r.push(`<span class="red">stress eating</span> whenever ${he} can.`);
 				slave.behavioralFlaw = "gluttonous";
-			} else if (_seed === 4 && slave.behavioralFlaw !== "devout") {
+			} else if (seed === 4 && slave.behavioralFlaw !== "devout") {
 				r.push(`<span class="red">praying in private</span> whenever ${he} can.`);
 				slave.behavioralFlaw = "devout";
-			} else if (_seed === 5 && slave.sexualFlaw !== "apathetic") {
+			} else if (seed === 5 && slave.sexualFlaw !== "apathetic") {
 				r.push(`<span class="red">sexually apathetic,</span> since ${he} feels it cannot go well for ${him}.`);
 				slave.sexualFlaw = "apathetic";
-			} else if (_seed === 6 && slave.sexualFlaw !== "crude") {
+			} else if (seed === 6 && slave.sexualFlaw !== "crude") {
 				r.push(`<span class="red">sexually crude,</span> out of an unconscious belief that sex is ugly and unworthy of effort.`);
 				slave.sexualFlaw = "crude";
-			} else if (_seed === 7 && slave.sexualFlaw !== "judgemental") {
+			} else if (seed === 7 && slave.sexualFlaw !== "judgemental") {
 				r.push(`<span class="red">sexually judgemental,</span> out of an unconscious desire to disqualify people from being good enough to have sex with ${him}.`);
 				slave.sexualFlaw = "judgemental";
 			} else if (V.PC.dick !== -1) {
diff --git a/src/npc/interaction/fAnus.js b/src/npc/interaction/fAnus.js
index 4f6a40fafcc9f9dff96886d2a5a51ce545c0ba9f..b86b5b128fe7556d5d3643f3e49946f0e1e0e162 100644
--- a/src/npc/interaction/fAnus.js
+++ b/src/npc/interaction/fAnus.js
@@ -86,7 +86,7 @@ App.Interact.fAnus = function(slave) {
 			r.push(`fuck ${his} ass. You gently ease into ${his} butthole and slowly accelerate your thrusting into ${his} ass. However ${he} still squeals in pain as you continue pounding. <span class="virginity loss">${His} tight little ass has been broken in,</span> and ${he} <span class="trust dec">fears further anal pain.</span>`);
 			slave.trust -= 5;
 		} else {
-			r.push(`${He} is appalled at the idea of taking it up the ass${(V.PC.dick === 0) ? `and cries with fear as you don a strap-on` : ``}. ${He} does anyway though, sobbing into the cushions`);
+			r.push(`${He} is appalled at the idea of taking it up the ass${(V.PC.dick === 0) ? ` and cries with fear as you don a strap-on` : ``}. ${He} does anyway though, sobbing into the cushions`);
 			if (hasAnyArms(slave)) {
 				r.push(`while you hold ${his} ${hasBothArms(slave) ? `arms` : `arm`} behind ${him}`);
 			}
@@ -138,7 +138,7 @@ App.Interact.fAnus = function(slave) {
 		}
 	} else if (slave.devotion < -20) {
 		if (!isAmputee(slave)) {
-			r.push(`You instruct ${him} to present ${his} anus${V.PC.dick === 0 ? `as you don a strap-on` : ``}. Horrified, ${he} tries to back away, but you catch ${him} and throw ${him} on the couch next to your desk. ${He} tries to`);
+			r.push(`You instruct ${him} to present ${his} anus${V.PC.dick === 0 ? ` as you don a strap-on` : ``}. Horrified, ${he} tries to back away, but you catch ${him} and throw ${him} on the couch next to your desk. ${He} tries to`);
 			if (hasAnyArms(slave)) {
 				r.push(`shield ${his} asshole,`);
 			} else {
@@ -191,7 +191,7 @@ App.Interact.fAnus = function(slave) {
 		}
 	} else if (slave.devotion <= 20 && slave.vagina < 0) {
 		if (!isAmputee(slave)) {
-			r.push(`You instruct ${him} to present ${his} anus${V.PC.dick === 0 ? `as you don a strap-on` : ``}. ${He} knows a sissy slave takes it up the butt, and lies on the couch next to your desk with ${his}`);
+			r.push(`You instruct ${him} to present ${his} anus${V.PC.dick === 0 ? ` as you don a strap-on` : ``}. ${He} knows a sissy slave takes it up the butt, and lies on the couch next to your desk with ${his}`);
 			if (!hasAnyLegs(slave)) {
 				r.push(`hips`);
 			} else {
@@ -226,7 +226,7 @@ App.Interact.fAnus = function(slave) {
 			if (V.seeRace === 1) {
 				r.push(slave.race);
 			}
-			r.push(`anus${V.PC.dick === 0 ? `as you don a strap-on` : ``}. ${He} hesitates but eventually lies on the couch next to your desk with ${his}`);
+			r.push(`anus${V.PC.dick === 0 ? ` as you don a strap-on` : ``}. ${He} hesitates but eventually lies on the couch next to your desk with ${his}`);
 			if (!hasAnyLegs(slave)) {
 				r.push(`hips`);
 			} else {
diff --git a/src/npc/interaction/fBoobs.js b/src/npc/interaction/fBoobs.js
index a8e7ae399b814415f46fbf7de616a944f84e782c..019482829b1a63a702a6d587e631bd20b363a589 100644
--- a/src/npc/interaction/fBoobs.js
+++ b/src/npc/interaction/fBoobs.js
@@ -87,7 +87,7 @@ App.Interact.fBoobs = function(slave) {
 			} else if (slave.boobs >= 300) {
 				r.push(`You have to feel around under your pregnancy to hold your cock against ${his} tiny breasts. You thrust against them and your hand, while the other teases your middle, all the while rubbing your pussy against ${his} face. Between ${his} licking, and your own teasing, it doesn't take long for you to soak ${his} face and splatter your seed across ${his} front.`);
 			} else {
-				r.push(`You have to lean forward and pin your cock against ${his} flat chest with the underside of your own pregnancy to make any real channel to thrust into. You fondle your belly${(V.PC.boobs >= 300) ? `and breasts` : ``}, all the while rubbing your pussy against ${his} face. Between ${his} licking, and your own teasing, it doesn't take long for you to soak ${his} face and splatter your seed across your underbelly and ${his} front. You turn around and have ${his} lick you clean before pulling your gravid bulk off of ${him}.`);
+				r.push(`You have to lean forward and pin your cock against ${his} flat chest with the underside of your own pregnancy to make any real channel to thrust into. You fondle your belly${(V.PC.boobs >= 300) ? ` and breasts` : ``}, all the while rubbing your pussy against ${his} face. Between ${his} licking, and your own teasing, it doesn't take long for you to soak ${his} face and splatter your seed across your underbelly and ${his} front. You turn around and have ${his} lick you clean before pulling your gravid bulk off of ${him}.`);
 			}
 		} else {
 			r.push(`You lay ${him} down on the couch on ${his} back, lather oil onto ${his} breasts and gingerly straddle ${his} face; your needy cunt over ${his} mouth.`);
diff --git a/src/npc/interaction/fButt.js b/src/npc/interaction/fButt.js
index 26c7747368783adcf2212a94dc05b852e8187796..fd4c97964d93d3f08eda9e9ea059cee716d063c6 100644
--- a/src/npc/interaction/fButt.js
+++ b/src/npc/interaction/fButt.js
@@ -126,7 +126,7 @@ App.Interact.fButt = function(slave) {
 			r.push(`fuck ${his} ass. <span class="virginity loss">${His} tight little ass has been broken in,</span> and ${he} <span class="trust dec">fears further anal pain.</span>`);
 			slave.trust -= 5;
 		} else {
-			r.push(`${He} is appalled at the idea of taking it up the ass${(V.PC.dick === 0) ? `and cries with fear as you don a strap-on` : ``}. ${He} does anyway though, sobbing into the cushions`);
+			r.push(`${He} is appalled at the idea of taking it up the ass${(V.PC.dick === 0) ? ` and cries with fear as you don a strap-on` : ``}. ${He} does anyway though, sobbing into the cushions`);
 			if (hasAnyArms(slave)) {
 				r.push(`while you hold ${his} ${hasBothArms(slave) ? `arms` : `arm`} behind ${him}`);
 			}
diff --git a/src/npc/interaction/fDick.js b/src/npc/interaction/fDick.js
index ef9814f9054c52823a38a97fc79236da3187c755..aabba388b571b1c8cdb0fd00a512a20160f5c68a 100644
--- a/src/npc/interaction/fDick.js
+++ b/src/npc/interaction/fDick.js
@@ -17,50 +17,50 @@ App.Interact.fDick = function(slave) {
 	addPartner(slave, -1);
 
 	const cunt = V.PC.vagina !== -1 ? "cunt" : "rectal";
-	const _belly = bellyAdjective(slave);
-	const _amount = cumAmount(slave);
-	let _load;
-	if (_amount <= 30) {
-		_load = "a few timid spurts";
-	} else if (_amount <= 60) {
-		_load = "an average load";
-	} else if (_amount <= 80) {
-		_load = "a large load";
-	} else if (_amount <= 100) {
-		_load = "a massive spurt of seed";
-	} else if (_amount <= 140) {
-		_load = "a huge spurt of seed";
-	} else if (_amount <= 160) {
-		_load = "a giant and drawn out gush";
-	} else if (_amount <= 180) {
-		_load = "an enormous and belly swelling load";
-	} else if (_amount <= 200) {
-		_load = "a monstrous, drawn out and belly swelling load";
+	const belly = bellyAdjective(slave);
+	const amount = cumAmount(slave);
+	let load;
+	if (amount <= 30) {
+		load = "a few timid spurts";
+	} else if (amount <= 60) {
+		load = "an average load";
+	} else if (amount <= 80) {
+		load = "a large load";
+	} else if (amount <= 100) {
+		load = "a massive spurt of seed";
+	} else if (amount <= 140) {
+		load = "a huge spurt of seed";
+	} else if (amount <= 160) {
+		load = "a giant and drawn out gush";
+	} else if (amount <= 180) {
+		load = "an enormous and belly swelling load";
+	} else if (amount <= 200) {
+		load = "a monstrous, drawn out and belly swelling load";
 	} else {
-		_load = "an overly massive and unending gush of seed";
+		load = "an overly massive and unending gush of seed";
 	}
 
-	let _nutte;
+	let nutte;
 	if (slave.balls === 1) {
-		_nutte = "vestigial";
+		nutte = "vestigial";
 	} else if (slave.balls === 2) {
-		_nutte = "small";
+		nutte = "small";
 	} else if (slave.balls === 3) {
-		_nutte = "average";
+		nutte = "average";
 	} else if (slave.balls === 4) {
-		_nutte = "large";
+		nutte = "large";
 	} else if (slave.balls === 5) {
-		_nutte = "massive";
+		nutte = "massive";
 	} else if (slave.balls === 6) {
-		_nutte = "huge";
+		nutte = "huge";
 	} else if (slave.balls === 7) {
-		_nutte = "giant";
+		nutte = "giant";
 	} else if (slave.balls === 8) {
-		_nutte = "enormous";
+		nutte = "enormous";
 	} else if (slave.balls === 9) {
-		_nutte = "monstrous";
+		nutte = "monstrous";
 	} else {
-		_nutte = "overly massive";
+		nutte = "overly massive";
 	}
 
 	let dickAdj;
@@ -140,7 +140,7 @@ App.Interact.fDick = function(slave) {
 			r.push(`down`);
 		}
 		if (slave.scrotum > 0) {
-			r.push(`and stroke ${his} ${_nutte} balls,`);
+			r.push(`and stroke ${his} ${nutte} balls,`);
 		} else if (slave.vagina > -1) {
 			r.push(`and tease ${his} neglected pussy,`);
 		} else {
@@ -172,19 +172,19 @@ App.Interact.fDick = function(slave) {
 				if (V.PC.belly >= 5000) {
 					r.push(`your gravid bulk`);
 				}
-				r.push(`on ${his} obedient cock. ${He} timidly warns you that ${he} is about to cum; in response you speed up your pace and clamp down hard on ${his} throbbing shaft. ${He} squeaks lewdly, overwhelmed by your orgasmic ${cunt} spasms, and unloads ${_load} inside of you before apologizing submissively.`);
+				r.push(`on ${his} obedient cock. ${He} timidly warns you that ${he} is about to cum; in response you speed up your pace and clamp down hard on ${his} throbbing shaft. ${He} squeaks lewdly, overwhelmed by your orgasmic ${cunt} spasms, and unloads ${load} inside of you before apologizing submissively.`);
 			} else if (slave.trust <= 20) {
 				r.push(`Having followed your instructions quickly and obediently, ${he} tries ${his} best to please you while you bounce`);
 				if (V.PC.belly >= 5000) {
 					r.push(`your gravid bulk`);
 				}
-				r.push(`on ${his} eager cock. ${He} grabs your hips and warns you ${he} is about to cum; in response you speed up your pace, encouraging ${him} to impale you on ${his} throbbing shaft. ${He} squeals lewdly, overwhelmed by your orgasmic ${cunt} spasms, and unloads ${_load} into you before helping you up.`);
+				r.push(`on ${his} eager cock. ${He} grabs your hips and warns you ${he} is about to cum; in response you speed up your pace, encouraging ${him} to impale you on ${his} throbbing shaft. ${He} squeals lewdly, overwhelmed by your orgasmic ${cunt} spasms, and unloads ${load} into you before helping you up.`);
 			} else {
 				r.push(`Having followed your instructions with gusto, ${he} energetically pounds you while you bounce`);
 				if (V.PC.belly >= 5000) {
 					r.push(`your gravid bulk`);
 				}
-				r.push(`on ${his} eager cock. ${He} grabs your hips and desperately warns you ${he} can't hold out any longer; in response you speed up your pace, tipping ${him} over the edge and forcing ${him} to impale you on ${his} twitching shaft. ${He} moans loudly, overwhelmed by your orgasmic ${cunt} spasms, and unloads ${_load} into you before pulling you into a post coitus embrace.`);
+				r.push(`on ${his} eager cock. ${He} grabs your hips and desperately warns you ${he} can't hold out any longer; in response you speed up your pace, tipping ${him} over the edge and forcing ${him} to impale you on ${his} twitching shaft. ${He} moans loudly, overwhelmed by your orgasmic ${cunt} spasms, and unloads ${load} into you before pulling you into a post coitus embrace.`);
 			}
 		} else if (slave.devotion >= -20) {
 			if (slave.trust < -20) {
@@ -192,13 +192,13 @@ App.Interact.fDick = function(slave) {
 				if (V.PC.belly >= 5000) {
 					r.push(`your gravid bulk`);
 				}
-				r.push(`on ${his} terrified cock. While ${he} is too afraid to enjoy pleasuring you, ${he} obediently thrusts into you. ${He} timidly warns you that ${he} is about to cum; in response you speed up your pace and clamp down hard on ${his} throbbing shaft. ${He} cries out in surprise, overwhelmed by your orgasmic ${cunt} spasms, and blows ${_load} in you like a good little slave.`);
+				r.push(`on ${his} terrified cock. While ${he} is too afraid to enjoy pleasuring you, ${he} obediently thrusts into you. ${He} timidly warns you that ${he} is about to cum; in response you speed up your pace and clamp down hard on ${his} throbbing shaft. ${He} cries out in surprise, overwhelmed by your orgasmic ${cunt} spasms, and blows ${load} in you like a good little slave.`);
 			} else if (slave.trust <= 20) {
 				r.push(`Having obediently followed your instructions, ${he} lies as still as ${he} can beneath you while you bounce`);
 				if (V.PC.belly >= 5000) {
 					r.push(`your gravid bulk`);
 				}
-				r.push(`on ${his} willing cock. While ${he} is too uncertain of ${his} position in the hierarchy to really enjoy ${himself}, ${he} hesitatingly thrusts into you. When ${he} feels ${he} is nearing ${his} limit, ${he} gives you proper warning that ${he} is about to cum; in response you speed up your pace and clamp down hard on ${his} throbbing shaft. ${He} cries out in surprise, overwhelmed by your orgasmic ${cunt} spasms and boldness, and blows ${_load} in you during the confusion.`);
+				r.push(`on ${his} willing cock. While ${he} is too uncertain of ${his} position in the hierarchy to really enjoy ${himself}, ${he} hesitatingly thrusts into you. When ${he} feels ${he} is nearing ${his} limit, ${he} gives you proper warning that ${he} is about to cum; in response you speed up your pace and clamp down hard on ${his} throbbing shaft. ${He} cries out in surprise, overwhelmed by your orgasmic ${cunt} spasms and boldness, and blows ${load} in you during the confusion.`);
 			} else {
 				r.push(`Having obediently followed your instructions, ${he} energetically pounds you while you bounce`);
 				if (V.PC.belly >= 5000) {
@@ -212,18 +212,18 @@ App.Interact.fDick = function(slave) {
 				if (V.PC.belly >= 5000) {
 					r.push(`your gravid bulk`);
 				}
-				r.push(`on ${his} reluctant cock. While ${he} is too afraid to be an active participant in pleasuring you, you make do with what ${he}'s giving. ${He} timidly warns you that ${he} is about to cum; in response you speed up your pace and clamp down hard on ${his} throbbing shaft. ${He} cries out lewdly, overwhelmed by your orgasmic ${cunt} spasms, and unloads ${_load} inside of you despite ${his} fear.`);
+				r.push(`on ${his} reluctant cock. While ${he} is too afraid to be an active participant in pleasuring you, you make do with what ${he}'s giving. ${He} timidly warns you that ${he} is about to cum; in response you speed up your pace and clamp down hard on ${his} throbbing shaft. ${He} cries out lewdly, overwhelmed by your orgasmic ${cunt} spasms, and unloads ${load} inside of you despite ${his} fear.`);
 			} else if (slave.trust <= 20) {
 				r.push(`Having followed your instructions as quickly as ${he} could, ${he} lies as still as ${he} can beneath you while you bounce`);
 				if (V.PC.belly >= 5000) {
 					r.push(`your gravid bulk`);
 				}
-				r.push(`on ${his} reluctant cock. While ${he} is too hateful to be an active participant in pleasuring you, you make do with what ${he}'s got. ${He} cries out lewdly, overwhelmed by your orgasmic ${cunt} spasms, and unloads ${_load} deep inside you without warning. ${He} <span class="orangered">smirks a little</span> as you glare daggers at ${him}.`);
+				r.push(`on ${his} reluctant cock. While ${he} is too hateful to be an active participant in pleasuring you, you make do with what ${he}'s got. ${He} cries out lewdly, overwhelmed by your orgasmic ${cunt} spasms, and unloads ${load} deep inside you without warning. ${He} <span class="orangered">smirks a little</span> as you glare daggers at ${him}.`);
 				slave.trust++;
 			} else if (overpowerCheck(slave, V.PC) < random(1, 100)) {
 				r.push(`Without warning, ${he} flips you onto your side and, still hilted,`);
 				if (slave.belly >= 300000) {
-					r.push(`repositions you onto your hands and knees while using ${his} ${_belly} belly to pin you under ${him}.`);
+					r.push(`repositions you onto your hands and knees while using ${his} ${belly} belly to pin you under ${him}.`);
 				} else if (V.PC.belly >= 5000) {
 					r.push(`rolls you into missionary while pinning your arms and legs.`);
 				} else if (V.PC.boobs >= 1000) {
@@ -235,7 +235,7 @@ App.Interact.fDick = function(slave) {
 				} else {
 					r.push(`rolls you into missionary while pinning your arms and forcing you into a mating press.`);
 				}
-				r.push(`Such audacity takes you entirely by surprise and gives ${him} the edge ${he} needs to pull it off. ${He} vigorously pistons in and out of you with little regard for you${(V.PC.pregKnown === 1) ? `or your pregnancy` : ``}, fucking you senseless until ${he} has had enough and cums deep inside your`);
+				r.push(`Such audacity takes you entirely by surprise and gives ${him} the edge ${he} needs to pull it off. ${He} vigorously pistons in and out of you with little regard for you${(V.PC.pregKnown === 1) ? ` or your pregnancy` : ``}, fucking you senseless until ${he} has had enough and cums deep inside your`);
 				if (V.PC.vagina !== -1) {
 					r.push(`pussy.`);
 				} else {
@@ -295,7 +295,7 @@ App.Interact.fDick = function(slave) {
 
 		r.push(`You reach back`);
 		if (slave.scrotum > 0) {
-			r.push(`and stroke ${his} ${_nutte} balls.`);
+			r.push(`and stroke ${his} ${nutte} balls.`);
 		} else if (slave.vagina > -1) {
 			r.push(`and tease ${his} neglected pussy.`);
 		} else {
@@ -366,11 +366,11 @@ App.Interact.fDick = function(slave) {
 
 	if (canImpreg(V.PC, slave)) {
 		if (slave.diet === "cum production") {
-			const _pregChance = (slave.balls * 5 * 1.2);
-			r.push(knockMeUp(V.PC, _pregChance, 0, slave.ID));
+			const pregChance = (slave.balls * 5 * 1.2);
+			r.push(knockMeUp(V.PC, pregChance, 0, slave.ID));
 		} else {
-			const _pregChance = (slave.balls * 5);
-			r.push(knockMeUp(V.PC, _pregChance, 0, slave.ID));
+			const pregChance = (slave.balls * 5);
+			r.push(knockMeUp(V.PC, pregChance, 0, slave.ID));
 		}
 	}
 	if (V.policies.sexualOpenness === 0) {
diff --git a/src/npc/interaction/fFeelings.js b/src/npc/interaction/fFeelings.js
index d873503662c49db765906999914cbb90f6d8ae0d..883ac05791e39681ca01fbaf4628b1d5f15210f7 100644
--- a/src/npc/interaction/fFeelings.js
+++ b/src/npc/interaction/fFeelings.js
@@ -1184,31 +1184,31 @@ App.Interact.feelings = function(slave) {
 		}
 
 		if (slave.inflation > 0) {
-			let _fluid;
+			let fluid;
 			if (SlaveStatsChecker.checkForLisp(slave)) {
-				_fluid = lispReplace(slave.inflationType);
+				fluid = lispReplace(slave.inflationType);
 			} else {
-				_fluid = slave.inflationType;
+				fluid = slave.inflationType;
 			}
-			if (slave.behavioralFlaw === "gluttonous" && ["food", "milk"].includes(_fluid) && [1, 3].includes(slave.inflationMethod) && slave.fetish === "humiliation" && slave.fetishStrength > 60) {
+			if (slave.behavioralFlaw === "gluttonous" && ["food", "milk"].includes(fluid) && [1, 3].includes(slave.inflationMethod) && slave.fetish === "humiliation" && slave.fetishStrength > 60) {
 				if (slave.bellyFluid >= 10000) {
 					r.push(Spoken(slave, `My belly hurts a bit, but it's worth it to let everybody know what a disgraceful, gluttonous <span class="note">pig</span> I am.`));
 				} else if (slave.bellyFluid >= 5000) {
-					r.push(Spoken(slave, `I can't believe I get to gorge myself silly on ${_fluid} and show it off! Thank you, ${Master}.`));
+					r.push(Spoken(slave, `I can't believe I get to gorge myself silly on ${fluid} and show it off! Thank you, ${Master}.`));
 				} else if (slave.bellyFluid >= 2000) {
-					r.push(Spoken(slave, `This ${_fluid} is delicious, but wouldn't it be hot if your little piggy had an even <span class="note">bigger</span> belly for people to stare at?`));
+					r.push(Spoken(slave, `This ${fluid} is delicious, but wouldn't it be hot if your little piggy had an even <span class="note">bigger</span> belly for people to stare at?`));
 				}
-			} else if (slave.behavioralFlaw === "gluttonous" && ["food", "milk"].includes(_fluid) && [1, 3].includes(slave.inflationMethod)) {
+			} else if (slave.behavioralFlaw === "gluttonous" && ["food", "milk"].includes(fluid) && [1, 3].includes(slave.inflationMethod)) {
 				if (slave.bellyFluid >= 10000 && slave.fetish === "masochist" && slave.fetishStrength > 60) {
-					r.push(Spoken(slave, `This ${_fluid} is so tasty, and my belly hurts so <span class="note">good</span>... I wish I really could stuff myself to bursting.`));
+					r.push(Spoken(slave, `This ${fluid} is so tasty, and my belly hurts so <span class="note">good</span>... I wish I really could stuff myself to bursting.`));
 				} else if (slave.bellyFluid >= 10000) {
 					r.push(Spoken(slave, `My belly hurts a little, but it feels so good to gorge myself...`));
 				} else if (slave.bellyFluid >= 5000) {
 					r.push(Spoken(slave, `I can't believe I get to stuff myself like this! Thank you, ${Master}.`));
 				} else if (slave.bellyFluid >= 2000) {
-					r.push(Spoken(slave, `Thank you for letting me have so much delicious ${_fluid}, ${Master}.`));
+					r.push(Spoken(slave, `Thank you for letting me have so much delicious ${fluid}, ${Master}.`));
 				}
-			} else if (slave.sexualFlaw === "cum addict" && _fluid === "cum" && [1, 3].includes(slave.inflationMethod)) {
+			} else if (slave.sexualFlaw === "cum addict" && fluid === "cum" && [1, 3].includes(slave.inflationMethod)) {
 				if (slave.bellyFluid >= 10000 && slave.fetish === "masochist" && slave.fetishStrength > 60) {
 					r.push(Spoken(slave, `I'm so full of tasty cum it <span class="note">hurts,</span> ${Master}. I think this is what heaven feels like...`));
 				} else if (slave.bellyFluid >= 10000) {
@@ -1218,7 +1218,7 @@ App.Interact.feelings = function(slave) {
 				} else if (slave.bellyFluid >= 2000) {
 					r.push(Spoken(slave, `Thank you for letting me have so much delicious cum, ${Master}.`));
 				}
-			} else if (slave.sexualFlaw === "cum addict" && _fluid === "cum" && slave.inflationMethod === 2) {
+			} else if (slave.sexualFlaw === "cum addict" && fluid === "cum" && slave.inflationMethod === 2) {
 				if (slave.bellyFluid >= 10000 && slave.fetish === "masochist" && slave.fetishStrength > 60) {
 					r.push(Spoken(slave, `It feels like I'm <span class="note">bursting</span> with cum, ${Master}. It's wonderful, even if I can't taste it.`));
 				} else if (slave.bellyFluid >= 10000) {
@@ -1240,11 +1240,11 @@ App.Interact.feelings = function(slave) {
 				if (slave.bellyFluid >= 10000 && slave.fetish === "masochist" && slave.fetishStrength > 60) {
 					r.push(Spoken(slave, `My guts are so full, ${Master}, it hurts so <span class="note">good</span>...`));
 				} else if (slave.bellyFluid >= 10000) {
-					r.push(Spoken(slave, `I feel really full, can I let the ${_fluid} out now?`));
+					r.push(Spoken(slave, `I feel really full, can I let the ${fluid} out now?`));
 				} else if (slave.bellyFluid >= 5000) {
-					r.push(Spoken(slave, `I feel so full, can I let the ${_fluid} out now?`));
+					r.push(Spoken(slave, `I feel so full, can I let the ${fluid} out now?`));
 				} else if (slave.bellyFluid >= 2000) {
-					r.push(Spoken(slave, `I feel so uncomfortable, can I let the ${_fluid} out now?`));
+					r.push(Spoken(slave, `I feel so uncomfortable, can I let the ${fluid} out now?`));
 				}
 			}
 		}
@@ -1602,6 +1602,7 @@ App.Interact.feelings = function(slave) {
 				break;
 			case "work as a farmhand":
 				// TODO: add a description for this
+				break;
 			case "please you":
 			case "serve in the master suite":
 			case "be your Concubine":
@@ -1693,17 +1694,17 @@ App.Interact.feelings = function(slave) {
 		}
 
 		if (slave.relationship > 0) {
-			const _partner = getSlave(slave.relationshipTarget);
+			const partner = getSlave(slave.relationshipTarget);
 			const {
 				He2, His2,
 				he2, his2, him2, daughter2, sister2,
-			} = getPronouns(_partner).appendSuffix("2");
-			let _partnerName;
-			if (_partner) {
+			} = getPronouns(partner).appendSuffix("2");
+			let partnerName;
+			if (partner) {
 				if (willLisp) {
-					_partnerName = lispReplace(_partner.slaveName);
+					partnerName = lispReplace(partner.slaveName);
 				} else {
-					_partnerName = _partner.slaveName;
+					partnerName = partner.slaveName;
 				}
 			} else {
 				r.push(Spoken(slave, `<span class="red">Error, relationshipTarget not found.</span>`));
@@ -1715,7 +1716,7 @@ App.Interact.feelings = function(slave) {
 				} else {
 					r.push(Spoken(slave, `hanging out with`));
 				}
-				r.push(Spoken(slave, `${_partnerName} every day, ${he2}'s a good friend." ${He} blushes. "${He2}'s kind of hot, too.`));
+				r.push(Spoken(slave, `${partnerName} every day, ${he2}'s a good friend." ${He} blushes. "${He2}'s kind of hot, too.`));
 			} else if (slave.relationship <= 3) {
 				r.push(Spoken(slave, `I really like`));
 				if (canSee(slave)) {
@@ -1723,85 +1724,85 @@ App.Interact.feelings = function(slave) {
 				} else {
 					r.push(Spoken(slave, `hanging out with`));
 				}
-				r.push(Spoken(slave, `${_partnerName} every day, ${he2}'s a good friend —" ${He} blushes. "— even when we're not fucking.`));
+				r.push(Spoken(slave, `${partnerName} every day, ${he2}'s a good friend —" ${He} blushes. "— even when we're not fucking.`));
 			} else if (slave.relationship <= 4) {
-				r.push(Spoken(slave, `I really love ${_partnerName}." ${He} blushes. "Thank you for letting us be together, ${Master}.`));
+				r.push(Spoken(slave, `I really love ${partnerName}." ${He} blushes. "Thank you for letting us be together, ${Master}.`));
 			} else {
-				r.push(Spoken(slave, `I'm so happy with ${_partnerName}." ${He} blushes. "Thank you for ${him2}, ${Master}.`));
+				r.push(Spoken(slave, `I'm so happy with ${partnerName}." ${He} blushes. "Thank you for ${him2}, ${Master}.`));
 			}
 			if (slave.relationship >= 3) {
-				if (slave.mother === _partner.ID) {
+				if (slave.mother === partner.ID) {
 					r.push(Spoken(slave, `"I — I'm fucking my mother,"`));
 					r.push(`${he} bursts out, blushing even harder.`);
 					r.push(Spoken(slave, `"It's so fucking wrong, but ${he2}'s such a hot MILF, I can't stop.`));
-				} else if (slave.father === _partner.ID) {
+				} else if (slave.father === partner.ID) {
 					r.push(Spoken(slave, `I — I'm fucking my father,"`));
 					r.push(`${he} bursts out, blushing even harder.`);
 					r.push(Spoken(slave, `"It's so fucking wrong, but ${he2} knows so much about penetration, I can't stop.`));
-				} else if (_partner.mother === slave.ID) {
+				} else if (partner.mother === slave.ID) {
 					r.push(Spoken(slave, `I — I'm fucking my ${daughter2},"`));
 					r.push(`${he} bursts out, blushing even harder.`);
 					r.push(Spoken(slave, `"It's so fucking wrong, but ${he2} has such a hot little body, I can't stop.`));
-				} else if (_partner.father === slave.ID) {
+				} else if (partner.father === slave.ID) {
 					r.push(Spoken(slave, `I — I'm fucking my ${daughter2},"`));
 					r.push(`${he} bursts out, blushing even harder.`);
 					r.push(Spoken(slave, `"It's so fucking wrong, but ${he2} has such a hot little body. ${He2} looks so much like ${his2} mother, I can't stop.`));
-				} else if (areSisters(slave, _partner) === 1) {
+				} else if (areSisters(slave, partner) === 1) {
 					r.push(Spoken(slave, `I — I'm fucking my twin ${sister2},"`));
 					r.push(`${he} bursts out, blushing even harder.`);
 					r.push(Spoken(slave, `"It's so fucking wrong, but ${he2}'s so hot, I can't stop.`));
-				} else if (areSisters(slave, _partner) === 2) {
+				} else if (areSisters(slave, partner) === 2) {
 					r.push(Spoken(slave, `I — I'm fucking my ${sister2},"`));
 					r.push(`${he} bursts out, blushing even harder.`);
 					r.push(Spoken(slave, `"It's so fucking wrong, but ${he2}'s so hot, I can't stop.`));
-				} else if (areSisters(slave, _partner) === 3) {
+				} else if (areSisters(slave, partner) === 3) {
 					r.push(Spoken(slave, `I — I'm fucking my half-${sister2},"`));
 					r.push(`${he} bursts out, blushing even harder.`);
 					r.push(Spoken(slave, `"It's so fucking wrong, but ${he2}'s so hot, I can't stop.`));
-				} else if ((slave.actualAge + 14) < _partner.actualAge) {
+				} else if ((slave.actualAge + 14) < partner.actualAge) {
 					r.push(Spoken(slave, `${He2}'s old enough to be my mother."`));
 					r.push(`${He} looks down, blushing a little harder.`);
 					r.push(Spoken(slave, `"But I'm lucky, ${he2}'s such a hot MILF.`));
-				} else if ((slave.actualAge - 14) > _partner.actualAge) {
+				} else if ((slave.actualAge - 14) > partner.actualAge) {
 					r.push(Spoken(slave, `${He2}'s young enough to be my ${daughter2}."`));
 					r.push(`${He} looks down, blushing a little harder.`);
 					r.push(Spoken(slave, `"But I love ${his2} hot young body.`));
 				}
-				if ((slave.actualAge - 5) > _partner.actualAge && _partner.actualAge < 20) {
+				if ((slave.actualAge - 5) > partner.actualAge && partner.actualAge < 20) {
 					r.push(Spoken(slave, `${He2}'s a little immature at times, but having sex with a teenager is so awesome, it's worth it.`));
 				}
-				if (hasAnyProstheticLimbs(_partner)) {
-					const _sex = getLimbCount(_partner, 103);
-					const _beauty = getLimbCount(_partner, 104);
-					const _combat = getLimbCount(_partner, 105);
-					if (_sex > 0 && _beauty > 0 && _combat > 0) {
+				if (hasAnyProstheticLimbs(partner)) {
+					const sex = getLimbCount(partner, 103);
+					const beauty = getLimbCount(partner, 104);
+					const combat = getLimbCount(partner, 105);
+					if (sex > 0 && beauty > 0 && combat > 0) {
 						r.push(Spoken(slave, `${His2} P-Limbs do look cool and I like how strong they can make ${him2} but they scare me a little, sometimes. Though of course ${he2} disables the weapons when we're together."`));
 						r.push(`${He} giggles.`);
 						r.push(Spoken(slave, `"${He2} has vibe fingers, so that's awesome.`));
-					} else if (_sex > 0 && _beauty > 0) {
+					} else if (sex > 0 && beauty > 0) {
 						r.push(Spoken(slave, `I really like ${his2} P-Limbs. They're very pretty, but kind of cold. That's just how ${he2} is."`));
 						r.push(`${He} giggles.`);
 						r.push(Spoken(slave, `" ${He2} has vibe fingers. so that's awesome.`));
-					} else if (_beauty > 0 && _combat > 0) {
+					} else if (beauty > 0 && combat > 0) {
 						r.push(Spoken(slave, `${His2} P-Limbs do look cool and I like how strong they can make ${him2} but they scare me a little, sometimes. Though of course ${he2} disables the weapons when we're together.`));
-					} else if (_sex > 0 && _combat > 0) {
+					} else if (sex > 0 && combat > 0) {
 						r.push(Spoken(slave, `${His2} P-Limbs do scare me a little, sometimes. Though of course ${he2} disables the weapons when we're together."`));
 						r.push(`${He} giggles.`);
 						r.push(Spoken(slave, `"${He2} has vibe fingers. so that's awesome.`));
-					} else if (_sex > 0) {
+					} else if (sex > 0) {
 						r.push(Spoken(slave, `And, um."`));
 						r.push(`${He} giggles.`);
 						r.push(Spoken(slave, `"${He2} has vibe fingers. so that's awesome.`));
-					} else if (_beauty > 0) {
+					} else if (beauty > 0) {
 						r.push(Spoken(slave, `I really like ${his2} P-Limbs. They're very pretty, but kind of cold. That's just how ${he2} is.`));
-					} else if (_combat > 0) {
+					} else if (combat > 0) {
 						r.push(Spoken(slave, `${His2} P-Limbs do scare me a little, sometimes. Though of course ${he2} disables the weapons when we're together."`));
 						r.push(`${He} giggles.`);
 						r.push(Spoken(slave, `"Though I did get ${him2} to extend ${his2} blades once, so I could kiss them for luck.`));
 					} else {
 						r.push(Spoken(slave, `I really do like ${his2} P-Limbs. They're a little awkward, and kind of cold, but that's just how ${he2} is.`));
 					}
-				} else if (getLimbCount(_partner, 0) > 0) {
+				} else if (getLimbCount(partner, 0) > 0) {
 					r.push(Spoken(slave, `${He2}'s an amputee, of course, so that's a little sad.`));
 				}
 			}
diff --git a/src/npc/interaction/fFeet.js b/src/npc/interaction/fFeet.js
index e229b09030626692a04dc5cc0c5d8f8156e4ef7a..f0e7eae423bbb5dbc614a4684c1b8ee498a2e76d 100644
--- a/src/npc/interaction/fFeet.js
+++ b/src/npc/interaction/fFeet.js
@@ -15,12 +15,12 @@ App.Interact.fFeet = function(slave) {
 
 	addPartner(slave, -1);
 
-	const _footSeed = random(1, 100);
+	const footSeed = random(1, 100);
 	let thighsAdj;
-	let _belly;
+	let belly;
 	let legsAdj;
 	let boobsDesc;
-	let _boobs;
+	let boobs;
 	let ballsDesc;
 	let dickAdj;
 	let buttAdj;
@@ -76,9 +76,9 @@ App.Interact.fFeet = function(slave) {
 	}
 
 	if (slave.belly < 1500) {
-		_belly = thighsAdj;
+		belly = thighsAdj;
 	} else {
-		_belly = bellyAdjective(slave);
+		belly = bellyAdjective(slave);
 	}
 
 	if (slave.height >= 185) {
@@ -95,7 +95,7 @@ App.Interact.fFeet = function(slave) {
 
 	if (slave.boobs >= 30000) {
 		boobsDesc = "skip";
-		_boobs = "room filling";
+		boobs = "room filling";
 	} else if (slave.boobs >= 20000) {
 		boobsDesc = "beanbag sized";
 	} else if (slave.boobs >= 8500) {
@@ -150,10 +150,10 @@ App.Interact.fFeet = function(slave) {
 		boobsDesc = "B-cup";
 	} else {
 		boobsDesc = "skip";
-		_boobs = "flat";
+		boobs = "flat";
 	}
 	if (boobsDesc !== "skip") {
-		_boobs = boobsDesc + " " + slave.boobShape;
+		boobs = boobsDesc + " " + slave.boobShape;
 	}
 
 	if (slave.balls === 1) {
@@ -286,13 +286,13 @@ App.Interact.fFeet = function(slave) {
 	// Part 2: lube and reaction
 	if (!canWalk(slave)) {
 		if (tooBigBreasts(slave)) {
-			r.push(`Since ${he} is immobilized by ${his} ${_boobs} boobs, you have ${him} lay on ${his} side on the floor,`);
+			r.push(`Since ${he} is immobilized by ${his} ${boobs} boobs, you have ${him} lay on ${his} side on the floor,`);
 		} else if (tooBigBelly(slave)) {
 			r.push(`Since ${he} is immobilized by ${his}`);
 			if (slave.bellyPreg >= 3000) {
 				r.push(`hugely gravid`);
 			} else if (slave.bellyImplant >= 3000) {
-				r.push(`${_belly} protruding`);
+				r.push(`${belly} protruding`);
 			} else {
 				r.push(`heavy ${slave.inflationType}-filled`);
 			}
@@ -374,9 +374,9 @@ App.Interact.fFeet = function(slave) {
 		}
 		if (!canWalk(slave)) {
 			if (slave.boobs > slave.belly ) {
-				r.push(`${His} ${_boobs} breasts wobble as ${his} ${feet} service you.`);
+				r.push(`${His} ${boobs} breasts wobble as ${his} ${feet} service you.`);
 			} else {
-				r.push(`${His} ${_belly} belly wobbles as ${his} ${feet} service you.`);
+				r.push(`${His} ${belly} belly wobbles as ${his} ${feet} service you.`);
 			}
 		}
 	} else if (slave.devotion < -50) {
@@ -469,9 +469,9 @@ App.Interact.fFeet = function(slave) {
 			} else if (slave.boobs < 500) {
 				r.push(`small chest.`);
 			} else if (slave.boobs >= 18000) {
-				r.push(`${_boobs} breasts, though ${he} can't reach ${his} nipples.`);
+				r.push(`${boobs} breasts, though ${he} can't reach ${his} nipples.`);
 			} else {
-				r.push(`${_boobs} breasts and erect nipples.`);
+				r.push(`${boobs} breasts and erect nipples.`);
 			}
 			r.push(`${He} is certainly giving you plenty of sexy options for you to watch.`);
 		} else if (slave.fetish === "sadist" && slave.fetishKnown === 1 && slave.fetishStrength >= 60) {
@@ -501,7 +501,7 @@ App.Interact.fFeet = function(slave) {
 				if (hasBothArms(slave)) {
 					r.push(`one of`);
 				}
-				r.push(`${his} ${hands} roaming across ${his} ${_belly} belly as ${he} happily services you.`);
+				r.push(`${his} ${hands} roaming across ${his} ${belly} belly as ${he} happily services you.`);
 			} else {
 				r.push(`${feet}.`);
 			}
@@ -540,16 +540,16 @@ App.Interact.fFeet = function(slave) {
 			r.push(`Feeling`);
 		}
 		r.push(`you near your orgasm, ${he}`);
-		if (_footSeed < 40 && hasAnyArms(slave)) {
+		if (footSeed < 40 && hasAnyArms(slave)) {
 			if (slave.boobs < 300) {
 				r.push(`presses ${his} ${hands} on ${his} flat chest,`);
 			} else if (slave.boobs < 500) {
 				r.push(`puts ${his} ${hands} under ${his} small chest,`);
 			} else {
-				r.push(`cups ${his} ${_boobs} breasts with ${his} ${hands},`);
+				r.push(`cups ${his} ${boobs} breasts with ${his} ${hands},`);
 			}
 			r.push(`then sticks out ${his} tongue, posing like a Free Cities whore who wants a cumshot.`);
-		} else if (_footSeed < 70 && !(slave.chastityPenis) && !(slave.chastityVagina) && (slave.dick > 0 || slave.vagina >= 0 )) {
+		} else if (footSeed < 70 && !(slave.chastityPenis) && !(slave.chastityVagina) && (slave.dick > 0 || slave.vagina >= 0 )) {
 			r.push(`spreads ${his} ${legsAdj} ${legs}`);
 			if (slave.dick > 0) {
 				if (slave.vagina >= 0) {
@@ -608,7 +608,7 @@ App.Interact.fFeet = function(slave) {
 	if (slave.fetish === "mindbroken") {
 		r.push(`You eventually cum all over ${his} ${skin}`);
 		if (V.PC.balls >= 9) {
-			r.push(`${feet} ${legsAdj} ${legs}, and even ${_belly} belly with your massive load.`);
+			r.push(`${feet} ${legsAdj} ${legs}, and even ${belly} belly with your massive load.`);
 		} else if (V.PC.balls >= 5) {
 			r.push(`${feet} and ${legsAdj} ${legs} with your large load.`);
 		} else {
@@ -665,7 +665,7 @@ App.Interact.fFeet = function(slave) {
 	} else if (slave.devotion < -50) {
 		r.push(`You eventually cum all over ${his} ${skin} ${feet}`);
 		if (V.PC.balls >= 9) {
-			r.push(`${legsAdj} ${legs}, and even ${his} ${_belly} belly with your massive load`);
+			r.push(`${legsAdj} ${legs}, and even ${his} ${belly} belly with your massive load`);
 		} else if (V.PC.balls >= 5) {
 			r.push(`and ${legsAdj} ${legs} with your large load`);
 		}
@@ -673,7 +673,7 @@ App.Interact.fFeet = function(slave) {
 	} else if (slave.devotion < -20) {
 		r.push(`You eventually cum all over ${his} ${skin}`);
 		if (V.PC.balls >= 9) {
-			r.push(`${feet} ${legsAdj} ${legs}, and even ${his} ${_belly} belly with your massive load,`);
+			r.push(`${feet} ${legsAdj} ${legs}, and even ${his} ${belly} belly with your massive load,`);
 		} else if (V.PC.balls >= 5) {
 			r.push(`${feet} and ${legsAdj} ${legs} with your large load,`);
 		} else {
@@ -683,7 +683,7 @@ App.Interact.fFeet = function(slave) {
 	} else if (slave.devotion <= 20) {
 		r.push(`You eventually cum all over ${his} ${skin} ${feet}`);
 		if (V.PC.balls >= 9) {
-			r.push(`${legsAdj} ${legs}, and even ${his} ${_belly} belly with your massive load`);
+			r.push(`${legsAdj} ${legs}, and even ${his} ${belly} belly with your massive load`);
 		} else if (V.PC.balls >= 5) {
 			r.push(`and ${legsAdj} ${legs} with your large load`);
 		}
@@ -691,7 +691,7 @@ App.Interact.fFeet = function(slave) {
 	} else if (slave.devotion < 60 || slave.attrXY < 16 || (slave.sexualQuirk === "unflinching" && slave.devotion <= 20)) {
 		r.push(`You eventually cum all over ${his} ${skin}`);
 		if (V.PC.balls >= 9) {
-			r.push(`${feet} ${legsAdj} ${legs}, and even ${his} ${_belly} belly with your massive load,`);
+			r.push(`${feet} ${legsAdj} ${legs}, and even ${his} ${belly} belly with your massive load,`);
 		} else if (V.PC.balls >= 5) {
 			r.push(`${feet} and ${legsAdj} ${legs} with your large load,`);
 		} else {
@@ -710,9 +710,9 @@ App.Interact.fFeet = function(slave) {
 					} else if (slave.boobs < 500) {
 						r.push(`small chest`);
 					} else {
-						r.push(`${_boobs} breasts`);
+						r.push(`${boobs} breasts`);
 					}
-					r.push(`and ${_belly} belly onto ${his} thighs.`);
+					r.push(`and ${belly} belly onto ${his} thighs.`);
 				} else {
 					r.push(`Your large load coats ${his} face in sticky semen, some dripping onto ${his}`);
 					if (slave.boobs < 300) {
@@ -720,7 +720,7 @@ App.Interact.fFeet = function(slave) {
 					} else if (slave.boobs < 500) {
 						r.push(`small chest.`);
 					} else {
-						r.push(`${_boobs} breasts.`);
+						r.push(`${boobs} breasts.`);
 					}
 				}
 			} else {
@@ -729,7 +729,7 @@ App.Interact.fFeet = function(slave) {
 		} else if (slave.fetish === "humiliation" && slave.fetishKnown === 1 && slave.fetishStrength >= 60) {
 			r.push(`You eventually cum all over ${his} ${skin}`);
 			if (V.PC.balls >= 9) {
-				r.push(`${feet} ${legsAdj} ${legs}, and even ${his} ${_belly} belly with your massive load`);
+				r.push(`${feet} ${legsAdj} ${legs}, and even ${his} ${belly} belly with your massive load`);
 			} else if (V.PC.balls >= 5) {
 				r.push(`${feet} and ${legsAdj} ${legs} with your large load`);
 			} else {
@@ -739,7 +739,7 @@ App.Interact.fFeet = function(slave) {
 		} else if (slave.fetish === "submissive" && slave.fetishKnown === 1 && slave.fetishStrength >= 60) {
 			r.push(`You eventually cum all over ${his} ${skin}`);
 			if (V.PC.balls >= 9) {
-				r.push(`${feet} ${legsAdj} ${legs}, and even ${his} ${_belly} belly with your massive load`);
+				r.push(`${feet} ${legsAdj} ${legs}, and even ${his} ${belly} belly with your massive load`);
 			} else if (V.PC.balls >= 5) {
 				r.push(`${feet} and ${legsAdj} ${legs} with your large load`);
 			} else {
@@ -761,7 +761,7 @@ App.Interact.fFeet = function(slave) {
 		} else if (slave.fetish === "boobs" && slave.fetishKnown === 1 && slave.fetishStrength >= 60) {
 			r.push(`You eventually cum all over ${his} ${skin} ${feet}`);
 			if (V.PC.balls >= 9) {
-				r.push(r.pop() + `, ${legsAdj} ${legs}, and even ${his} ${_belly} belly with your massive load`);
+				r.push(r.pop() + `, ${legsAdj} ${legs}, and even ${his} ${belly} belly with your massive load`);
 			} else if (V.PC.balls >= 5) {
 				r.push(`and ${legsAdj} ${legs} with your large load`);
 			}
@@ -771,13 +771,13 @@ App.Interact.fFeet = function(slave) {
 			} else if (slave.boobs < 500) {
 				r.push(`rubs ${his} ${hands} across ${his} small chest`);
 			} else {
-				r.push(`squeezes ${his} ${_boobs} breasts tightly`);
+				r.push(`squeezes ${his} ${boobs} breasts tightly`);
 			}
 			r.push(`while moaning in pleasure.`);
 		} else if (slave.fetish === "sadist" && slave.fetishKnown === 1 && slave.fetishStrength >= 60) {
 			r.push(`You eventually cum all over ${his} ${skin} ${feet}`);
 			if (V.PC.balls >= 9) {
-				r.push(r.pop() + `, ${legsAdj} ${legs}, and even ${his} ${_belly} belly with your massive load`);
+				r.push(r.pop() + `, ${legsAdj} ${legs}, and even ${his} ${belly} belly with your massive load`);
 			} else if (V.PC.balls >= 5) {
 				r.push(`and ${legsAdj} ${legs} with your large load`);
 			}
@@ -785,7 +785,7 @@ App.Interact.fFeet = function(slave) {
 		} else if (slave.fetish === "dom" && slave.fetishKnown === 1 && slave.fetishStrength >= 60) {
 			r.push(`You eventually cum all over ${his} ${skin} ${feet}`);
 			if (V.PC.balls >= 9) {
-				r.push(r.pop() + `, ${legsAdj} ${legs}, and even ${his} ${_belly} belly with your massive load`);
+				r.push(r.pop() + `, ${legsAdj} ${legs}, and even ${his} ${belly} belly with your massive load`);
 			} else if (V.PC.balls >= 5) {
 				r.push(`and ${legsAdj} ${legs} with your large load`);
 			}
@@ -823,7 +823,7 @@ App.Interact.fFeet = function(slave) {
 			}
 			r.push(`Your orgasm shoots across ${his} ${skin}`);
 			if (V.PC.balls >= 9) {
-				r.push(`${feet}, ${legsAdj} ${legs}, and even ${his} ${_belly} belly is marked with your massive load. ${He} runs ${his} ${hands} through the cum on ${his} belly, massaging the semen into ${his} skin.`);
+				r.push(`${feet}, ${legsAdj} ${legs}, and even ${his} ${belly} belly is marked with your massive load. ${He} runs ${his} ${hands} through the cum on ${his} belly, massaging the semen into ${his} skin.`);
 			} else if (V.PC.balls >= 5) {
 				r.push(`${feet} and ${legsAdj} ${legs}.`);
 			} else {
@@ -832,7 +832,7 @@ App.Interact.fFeet = function(slave) {
 		} else {
 			r.push(`You eventually cum all over ${his} ${skin} ${feet}`);
 			if (V.PC.balls >= 9) {
-				r.push(r.pop() + `, ${legsAdj} ${legs}, and even ${his} ${_belly} belly with your massive load`);
+				r.push(r.pop() + `, ${legsAdj} ${legs}, and even ${his} ${belly} belly with your massive load`);
 			} else if (V.PC.balls >= 5) {
 				r.push(`and ${legsAdj} ${legs} with your large load`);
 			}
@@ -892,7 +892,7 @@ App.Interact.fFeet = function(slave) {
 				if (cumAmount(slave) > 20) { // huge load
 					r.push(`${His} ${dickAdj} dick unloads a massive amount of cum, adding ${his} own semen to ${his} body, resulting in a slave covered nearly head to toe in spunk.`);
 				} else {
-					r.push(`${His} ${dickAdj} dick unloads onto ${his} belly and ${_boobs} chest, and ${he} giggles and gasps as it rains down.`);
+					r.push(`${His} ${dickAdj} dick unloads onto ${his} belly and ${boobs} chest, and ${he} giggles and gasps as it rains down.`);
 				}
 			} else if (slave.vagina >= 0) {
 				r.push(`${He} leans back and moans in pleasure, showing ${his}`);
@@ -927,7 +927,7 @@ App.Interact.fFeet = function(slave) {
 					}
 					r.push(`${he} couldn't be happier.`);
 				} else {
-					r.push(`${His} ${dickAdj} dick unloads onto ${his} belly and ${_boobs} chest, and ${he} giggles and gasps as it rains down with audible splats. ${He} is splattered in semen, face coated in your cum, and judging by`);
+					r.push(`${His} ${dickAdj} dick unloads onto ${his} belly and ${boobs} chest, and ${he} giggles and gasps as it rains down with audible splats. ${He} is splattered in semen, face coated in your cum, and judging by`);
 					if (canSmell(slave)) {
 						r.push(`${his} nostrils desperately taking in the heady smell and`);
 					}
diff --git a/src/npc/interaction/fLickPussy.js b/src/npc/interaction/fLickPussy.js
index a6a7b52c5b7e72d627f9f681c46a07f1d1832e93..d147dd9b9bb559cfdc4cc5c738d5691a44525e45 100644
--- a/src/npc/interaction/fLickPussy.js
+++ b/src/npc/interaction/fLickPussy.js
@@ -16,17 +16,17 @@ App.Interact.fLickPussy = function(slave) {
 
 	addPartner(slave, -1);
 
-	const _devotion = slave.devotion; /* for brevity*/
+	const devotion = slave.devotion; /* for brevity*/
 
 	if (canWalk(slave) || (canMove(slave) && slave.rules.mobility === "permissive")) {
 		r.push(`You summon ${slave.slaveName} to your office and order ${him} to lie down on the couch. ${He} does so`);
-		if (_devotion > 95) {
+		if (devotion > 95) {
 			r.push(`with a smile, skipping over to give you a quick kiss before ${he} complies with your request.`);
-		} else if (_devotion > 50) {
+		} else if (devotion > 50) {
 			r.push(`without hesitation, ready to serve and obey.`);
-		} else if (_devotion > -50) {
+		} else if (devotion > -50) {
 			r.push(`with a look of trepidation, as though afraid you're going to hurt ${him}.`);
-		} else if (_devotion <= -50) {
+		} else if (devotion <= -50) {
 			r.push(`with a look of hatred, though only after you threaten to punish ${him}.`);
 		}
 	} else {
@@ -36,7 +36,7 @@ App.Interact.fLickPussy = function(slave) {
 	r.push(`After ${he} is situated, you go over to`);
 	if (slave.clothes !== "no clothing") {
 		r.push(`${him} and take off ${his} clothing, causing ${him} to`);
-		if (_devotion > 50) {
+		if (devotion > 50) {
 			r.push(`give you a soft smile.`);
 		} else {
 			r.push(`give you an angry glare.`);
@@ -96,11 +96,11 @@ App.Interact.fLickPussy = function(slave) {
 		r.push(`${his} ${relativeTerm(slave, V.PC)}`);
 	} else {
 		r.push(`the ${womanP}`);
-		if (_devotion > 95) {
+		if (devotion > 95) {
 			r.push(`${he} loves`);
-		} else if (_devotion > 50) {
+		} else if (devotion > 50) {
 			r.push(`${he}'s accepted as ${his} ${getWrittenTitle(slave)}`);
-		} else if (_devotion < -50) {
+		} else if (devotion < -50) {
 			r.push(`${he} hates`);
 		} else if (slave.trust < -50) {
 			r.push(`${he} fears`);
@@ -121,7 +121,7 @@ App.Interact.fLickPussy = function(slave) {
 	r.push(`Before ${he} cums, though, you pull back, causing ${him} to whine in frustration. You begin again, then pull back again just before ${he} orgasms. You repeat this several more times, each time causing ${him} to become more and more frustrated. Finally, one last stroke of your tongue causes ${him} to go over the edge, making ${him}`);
 	if (canTalk(slave)) {
 		r.push(`scream out`);
-		if (_devotion > 50) {
+		if (devotion > 50) {
 			r.push(`your name`);
 		}
 	} else {
diff --git a/src/npc/interaction/fNippleFuck.js b/src/npc/interaction/fNippleFuck.js
index 6dea0848d81846be5807a1c8fa7cc33fdfd8b530..496ec559d49b0057efd881c7eaba92b3d5a6f10c 100644
--- a/src/npc/interaction/fNippleFuck.js
+++ b/src/npc/interaction/fNippleFuck.js
@@ -65,9 +65,22 @@ App.Interact.fNippleFuck = function(slave) {
 	} else if (slave.devotion > 20 || slave.trust > 20) {
 		r.push(`${He} has a glassy-eyed expression as ${he}`);
 		if (hasBothArms(slave)) {
-			r.push(`gropes ${his} breasts with one hand and furiously abuses ${his} clit with the other.`);
+			r.push(`gropes ${his} breasts with`);
+			if (slave.dick > 0 && slave.chastityPenis === 0) {
+				r.push(`one hand and furiously beats ${himself} off with the other.`);
+			} else if (canDoVaginal(slave)) {
+				r.push(`one hand and furiously abuses ${his} clit with the other.`);
+			} else {
+				r.push(`both hands.`);
+			}
 		} else if (hasAnyArms(slave)) {
-			r.push(`fingers ${his} pussy while rubbing ${his} arm alongside ${his} breasts.`);
+			if (slave.dick > 0 && slave.chastityPenis === 0) {
+				r.push(`jacks off while rubbing ${his} arm alongside ${his} breasts.`);
+			} else if (canDoVaginal(slave)) {
+				r.push(`fingers ${his} pussy while rubbing ${his} arm alongside ${his} breasts.`);
+			} else {
+				r.push(`while ${he} gropes ${his} neglected breast.`);
+			}
 		} else {
 			r.push(`tries ${his} hardest to pleasure ${himself} with no hands.`);
 		}
diff --git a/src/npc/interaction/fPCImpreg.js b/src/npc/interaction/fPCImpreg.js
index c6bd63ed6fe5c0a089bed5880d25c3467b3e6801..a707bbfe1531fa0f04b2ef86c8f6532cf240122c 100644
--- a/src/npc/interaction/fPCImpreg.js
+++ b/src/npc/interaction/fPCImpreg.js
@@ -126,7 +126,7 @@ App.Interact.fPCImpreg = function(slave) {
 				text.push(`pussy, ready for fertilization.`);
 			}
 
-			text.push(`You waste no time with foreplay as you mount ${him} and get to work. As you claim ${his} pearl, ${his} breath hitches in ${his} throat, but pleasure quickly overcomes the pain. ${He} groans as your pelvis repeatedly slaps against ${him} over and over, anticipating what's to come. Just before you reach your peak, you hilt yourself within ${him}, signaling that it's time. ${He} sobs with happiness when ${he} finally feels your hot seed${fillHim}${firstTime}. ${He} spends the rest of the day cherishing ${his} ${bellyAdjective(slave)} stomach. This new connection with ${his} ${getWrittenTitle(slave)} <span class="devotion inc">increases ${his} devotion to you.</span> <span class="virginity loss">${His} ${hole} has been broken in, and there's a good chance 's ${superfetation ? `got another bun in the oven` : `pregnant`}.</span>
+			text.push(`You waste no time with foreplay as you mount ${him} and get to work. As you claim ${his} pearl, ${his} breath hitches in ${his} throat, but pleasure quickly overcomes the pain. ${He} groans as your pelvis repeatedly slaps against ${him} over and over, anticipating what's to come. Just before you reach your peak, you hilt yourself within ${him}, signaling that it's time. ${He} sobs with happiness when ${he} finally feels your hot seed${fillHim}${firstTime}. ${He} spends the rest of the day cherishing ${his} ${bellyAdjective(slave)} stomach. This new connection with ${his} ${getWrittenTitle(slave)} <span class="devotion inc">increases ${his} devotion to you.</span> <span class="virginity loss">${His} ${hole} has been broken in, and there's a good chance ${he}'s ${superfetation ? `got another bun in the oven` : `pregnant`}.</span>
 			`);
 
 			slave.devotion += 15;
diff --git a/src/npc/interaction/fPat.js b/src/npc/interaction/fPat.js
index 567d9de68f27606fcce7e66a9b31048b39b402c3..c43ed70a8190f298d12eac9e1b57d4d25ffb5186 100644
--- a/src/npc/interaction/fPat.js
+++ b/src/npc/interaction/fPat.js
@@ -162,7 +162,7 @@ App.Interact.fPat = function(slave) {
 	} else if ((slave.relationship === -3) && slave.devotion+slave.trust >= 175) {
 		r.push(`Tenderly and lovingly you brush your fingers along ${his} head, enjoying the feeling of your slave's utterly willing submission. ${He} slowly leans ${his} body closer and closer to you${!hasAnyLegs(slave) ? ` and finally onto your lap` : ``}, relaxing as ${he} feels your caress. As ${he} shifts ${his} weight to your chest, ${he} feels all of the daily stresses of the day melt away, and a deep, happy sigh escapes ${his} lips. You smile fondly, allowing all of the troubles of being an arcology owner dissipate, in a similar fashion to your slave. For now, just for now, you are just a ${womanP} and ${hisP} devoted and content ${wife}.`);
 	} else if (slave.relationship === -2) {
-		r.push(`Tenderly and lovingly you brush your fingers along ${his} head, for a moment, appreciating how easily your slave submits to your desire to pat ${his} head. ${He} slowly leans ${his} body closer and closer to you${!hasAnyLegs(slave) ? `allowing you to move ${him} onto your lap` : ``}, relaxing as ${he} feels your caresses. As ${his} weight falls onto you, all of the stress from ${his} body melts away, and a small, respectful sigh escapes ${his} pursed lips. You smile fondly, allowing all of the troubles of being an arcology owner drift away, in a similar fashion to your slave. For now, just for now, you are just a ${womanP} and ${hisP} devoted and content servant.`);
+		r.push(`Tenderly and lovingly you brush your fingers along ${his} head, for a moment, appreciating how easily your slave submits to your desire to pat ${his} head. ${He} slowly leans ${his} body closer and closer to you${!hasAnyLegs(slave) ? ` allowing you to move ${him} onto your lap` : ``}, relaxing as ${he} feels your caresses. As ${his} weight falls onto you, all of the stress from ${his} body melts away, and a small, respectful sigh escapes ${his} pursed lips. You smile fondly, allowing all of the troubles of being an arcology owner drift away, in a similar fashion to your slave. For now, just for now, you are just a ${womanP} and ${hisP} devoted and content servant.`);
 	} else if (slave.devotion > 50 && slave.fetish === "dom" && slave.fetishKnown === 1 && slave.fetishStrength > 60 && hasAnyArms(slave)) {
 		r.push(`As you start to touch ${him} ${he} smiles at you and takes your hand, following its movements. You tenderly and lovingly kiss it and let it rest on the side of ${his} head, before continuing with your ministrations. As opposed to your more submissive slaves, ${slave.slaveName} takes an active role in your petting, gently guiding where your hand goes along ${his} head. You enjoy the feel of ${his} hand on yours, as well as ${his}`);
 		if (isBald) {
diff --git a/src/npc/interaction/fPoolSex.js b/src/npc/interaction/fPoolSex.js
index c4c7cbf8983b158b259e2395cd1c085d985a881c..78d888f6c313f2a76859c38fb825e387d3f99cc6 100644
--- a/src/npc/interaction/fPoolSex.js
+++ b/src/npc/interaction/fPoolSex.js
@@ -124,7 +124,7 @@ App.Interact.fPoolSex = function(slave) {
 				r.push(`waits patiently as`);
 			}
 		}
-		r.push(`you strip down and change into your swimming outfit. When it's clear that you're ready to join ${him}, ${he} motions at the pool's holographic console and its mobility assistance devices kick in, rolling ${him} into the curative gel. You sink yourself into the pool, taking a moment to bask in the feeling of the warm, curative laced goo as it relaxes your muscles${(V.PC.preg > 30) ? `and soothes your stretched skin` : ``}, then wade toward your waiting slave.`);
+		r.push(`you strip down and change into your swimming outfit. When it's clear that you're ready to join ${him}, ${he} motions at the pool's holographic console and its mobility assistance devices kick in, rolling ${him} into the curative gel. You sink yourself into the pool, taking a moment to bask in the feeling of the warm, curative laced goo as it relaxes your muscles${(V.PC.preg > 30) ? ` and soothes your stretched skin` : ``}, then wade toward your waiting slave.`);
 		App.Events.addParagraph(node, r);
 		r = [];
 		r.push(`${He} smiles politely, rubbing circles in the exploded sides of ${his} colossal belly, then gasps as you take a handful of the ooze and shove it right in ${his} face. ${He} sputters indignantly and then`);
diff --git a/src/npc/interaction/fRelation.js b/src/npc/interaction/fRelation.js
index fd8353b707bad6cc44a41f488c10ef3af00ca0f3..48633ee820d1a94ffe56eeb8b7746518ad839bf0 100644
--- a/src/npc/interaction/fRelation.js
+++ b/src/npc/interaction/fRelation.js
@@ -168,7 +168,7 @@ App.Interact.fRelation = function(slave, partner) {
 		} else {
 			r.push(`pussies`);
 		}
-		r.push(`against one another${(V.PC.dick === 0) ? `while you don a strap-on` : ``}, spreading their legs to offer you everything. You switch back and forth, with the twin you're not in rubbing and grinding against the one you are, until both of ${partner.slaveName} and ${slave.slaveName} are lying on the desk${(V.PC.dick !== 0) ? ` with cum dripping out of them` : ``}, making out tiredly.`);
+		r.push(`against one another${(V.PC.dick === 0) ? ` while you don a strap-on` : ``}, spreading their legs to offer you everything. You switch back and forth, with the twin you're not in rubbing and grinding against the one you are, until both of ${partner.slaveName} and ${slave.slaveName} are lying on the desk${(V.PC.dick !== 0) ? ` with cum dripping out of them` : ``}, making out tiredly.`);
 		seX(slave, "oral", partner, "oral");
 		r.push(VCheck.Both(slave, 1));
 		r.push(VCheck.Partner(partner, 1));
@@ -236,7 +236,7 @@ App.Interact.fRelation = function(slave, partner) {
 		if (V.PC.dick === 0) {
 			r.push(`while you don a strap-on,`);
 		}
-		r.push(`and offer you their holes. They're just friends, but they're sex slaves and they see nothing wrong with enjoying sex with you, together. They keep up a constant stream of giggling, gasping, and smiling as each of them in turn feels a cock, warm and wet from their friend's body, transferred into them. Each of them does their best to help the other do well, even manually stimulating their friend when necessary${(V.PC.boobs >= 300 || V.PC.title === 0) ? `and spinning around to lavish attention on your nipples` : ``}.`);
+		r.push(`and offer you their holes. They're just friends, but they're sex slaves and they see nothing wrong with enjoying sex with you, together. They keep up a constant stream of giggling, gasping, and smiling as each of them in turn feels a cock, warm and wet from their friend's body, transferred into them. Each of them does their best to help the other do well, even manually stimulating their friend when necessary${(V.PC.boobs >= 300 || V.PC.title === 0) ? ` and spinning around to lavish attention on your nipples` : ``}.`);
 		r.push(VCheck.Both(slave, 1));
 		r.push(VCheck.Partner(partner, 1));
 	} else if (["friend with benefits", "lover", "slave wife"].includes(activeSlaveRel) && slave.devotion > 20 && partner.devotion > 20) {
diff --git a/src/npc/interaction/fRival.js b/src/npc/interaction/fRival.js
index 4961caa21242009820ada84abfb222f2775b39b4..af4ea07ef32fe87c1fbff92e2b6cb45e89f80dc4 100644
--- a/src/npc/interaction/fRival.js
+++ b/src/npc/interaction/fRival.js
@@ -151,7 +151,7 @@ App.Interact.fRival = function(slave) {
 		} else {
 			r.push(`tell ${him2} to ride your dick`);
 		}
-		r.push(`anally, facing you. ${He2} lowers ${his2} butthole down onto your cock, not without trepidation, which increases when you reach behind ${him2} and spread ${his2} buttocks as wide as they'll go. With ${him2} pinned, you tell ${slave.slaveName} to come over and join you. ${slave.slaveName} comes over, stroking ${himself} hard, not certain what you mean. To make it clear, you hook a single finger up into poor ${rival.slaveName}'s rectum alongside`);;
+		r.push(`anally, facing you. ${He2} lowers ${his2} butthole down onto your cock, not without trepidation, which increases when you reach behind ${him2} and spread ${his2} buttocks as wide as they'll go. With ${him2} pinned, you tell ${slave.slaveName} to come over and join you. ${slave.slaveName} comes over, stroking ${himself} hard, not certain what you mean. To make it clear, you hook a single finger up into poor ${rival.slaveName}'s rectum alongside`);
 
 		if (V.PC.dick === 0) {
 			r.push(`the fake phallus.`);
diff --git a/src/npc/interaction/fSlaveSelfImpreg.js b/src/npc/interaction/fSlaveSelfImpreg.js
index 8055f6a5d60ddcfccfe5bf0169440d54b00ad107..743e369922693eff6933c583ba46e103c4897dde 100644
--- a/src/npc/interaction/fSlaveSelfImpreg.js
+++ b/src/npc/interaction/fSlaveSelfImpreg.js
@@ -14,11 +14,11 @@ App.Interact.fSlaveSelfImpreg = function(slave) {
 
 	addPartner(slave, -1);
 
-	const _pfh = (slave.fetish === "pregnancy" && slave.fetishStrength > 50);
-	const _pfk = (_pfh && slave.fetishKnown === 1) || slave.sexualFlaw === "breeder";
-	let _coop = true;
-	let _enjoy = true;
-	const _superfetation = (slave.geneticQuirks.superfetation === 2 && slave.pregKnown === 1) ? 1 : 0;
+	const pfh = (slave.fetish === "pregnancy" && slave.fetishStrength > 50);
+	const pfk = (pfh && slave.fetishKnown === 1) || slave.sexualFlaw === "breeder";
+	let coop = true;
+	let enjoy = true;
+	const superfetation = (slave.geneticQuirks.superfetation === 2 && slave.pregKnown === 1) ? 1 : 0;
 
 	if (slave.fetish === "mindbroken") {
 	} else {
@@ -30,17 +30,17 @@ App.Interact.fSlaveSelfImpreg = function(slave) {
 				r.push(`${slave.slaveName}`);
 				r.push(`dislikes you,`);
 			}
-			if (slave.sexualFlaw === "breeder" || (_pfh && slave.fetishStrength > 90)) {
+			if (slave.sexualFlaw === "breeder" || (pfh && slave.fetishStrength > 90)) {
 				r.push(`but the idea of simultaneously impregnating and being impregnated is <span class="hotpink">so tempting</span> that ${he}'s <span class="mediumaquamarine">grateful</span> to you despite ${himself}.`);
 				slave.devotion += 2;
 				slave.trust += 1;
-			} else if (_pfk) {
+			} else if (pfk) {
 				r.push(`but ${his} obvious predilection for being pregnant significantly lessens the <span class="mediumorchid">indignity</span> of the situation.`);
-				_coop = false;
+				coop = false;
 				slave.devotion -= 2;
-			} else if (_pfh) {
+			} else if (pfh) {
 				r.push(`but, despite the <span class="mediumorchid">indignity</span> of the situation, ${his} resistance seems strangely muted. It's fairly obvious that something about the idea of being impregnated is <span class="hotpink">strangely appealing</span> to ${him}.`);
-				_coop = false;
+				coop = false;
 				slave.devotion -= 4;
 			} else {
 				if (isAmputee(slave)) {
@@ -50,12 +50,12 @@ App.Interact.fSlaveSelfImpreg = function(slave) {
 				} else {
 					r.push(`and this <span class="gold">uniquely degrading</span> violation of ${his} person only reinforces ${his} <span class="mediumorchid">hatred</span> towards you. ${He} resists so violently that you must <span class="health.dec">physically coerce ${him}</span> into cooperating with the procedure.`);
 				}
-				_coop = false;
-				_enjoy = false;
+				coop = false;
+				enjoy = false;
 				slave.devotion -= 5;
 				slave.trust -= 6;
 			}
-		} else if (_pfk) {
+		} else if (pfk) {
 			r.push(`${slave.slaveName}`);
 			r.push(`<span class="hotpink">genuinely enjoys</span> impregnation and pregnancy, so ${he} is <span class="mediumaquamarine">grateful</span> that you're giving ${him} a chance to become so intimately acquainted with both aspects of ${his} fetish at the same time.`);
 			slave.devotion += 4;
@@ -66,7 +66,7 @@ App.Interact.fSlaveSelfImpreg = function(slave) {
 				slave.trust += 1;
 			}
 		} else {
-			if (_pfh) {
+			if (pfh) {
 				r.push(`Even though you aren't aware of any special fondness for pregnancy, ${slave.slaveName} seems <span class="hotpink">oddly eager</span> to cooperate with you. It quickly becomes obvious that ${he} is <span class="lightcoral">fascinated with pregnancy</span> and you've <span class="mediumaquamarine">helped ${him} discover this</span> about ${himself}.`);
 				slave.devotion += 1;
 				slave.trust += 1;
@@ -84,11 +84,11 @@ App.Interact.fSlaveSelfImpreg = function(slave) {
 					slave.devotion += 1;
 					slave.trust += 1;
 				}
-				_enjoy = false;
+				enjoy = false;
 			} else {
 				r.push(`${slave.slaveName}`);
 				r.push(`cooperates without any protest. ${He} may not particularly enjoy pregnancy or impregnation, but ${he}'s too well-broken to resist or speak against you.`);
-				_enjoy = false;
+				enjoy = false;
 			}
 		}
 	}
@@ -101,9 +101,9 @@ App.Interact.fSlaveSelfImpreg = function(slave) {
 			r.push(`vagina.`);
 		}
 	} else if (isAmputee(slave)) {
-		if (_coop && _enjoy) {
+		if (coop && enjoy) {
 			r.push(`Although ${slave.slaveName} is unable to do much to help, ${his} expression is visibly excited as you place ${him} on a bench, and produce a sample container and syringe.`);
-		} else if (_enjoy) {
+		} else if (enjoy) {
 			r.push(`A maelstrom of emotions fill ${slave.slaveName}'s face as you carry ${him} to a bench, and produce a sample cup and syringe.`);
 
 			if (slave.dick > 6) {
@@ -122,7 +122,7 @@ App.Interact.fSlaveSelfImpreg = function(slave) {
 				r.push(`vagina,`);
 			}
 			r.push(`and shoot the contents home, deep against ${his} waiting cervix.`);
-		} else if (_coop) {
+		} else if (coop) {
 			r.push(`${slave.slaveName} is calm and docile as you place ${him} on a bench, and produce a sample container and syringe. With no other option, ${he} throws back ${his} head and enjoys the stimulation as your personal assistant, at your instruction, begins stimulating ${him} to orgasm. When ${he} ejaculates, you carefully catch every drop in the sample cup, load the syringe, and inject the contents directly against ${his} cervix.`);
 		} else {
 			r.push(`Although ${slave.slaveName} frantically squirms in a futile attempt to resist as you place ${him} on a bench, and produce a sample cup and syringe. Without limbs to aid ${his} escape, ${he} can only`);
@@ -139,8 +139,8 @@ App.Interact.fSlaveSelfImpreg = function(slave) {
 			}
 			r.push(`and shoot the contents directly against the opening to ${his} womb.`);
 		}
-	} else if (_coop) {
-		if (_enjoy) {
+	} else if (coop) {
+		if (enjoy) {
 			if (slave.dick > 6 && slave.balls <= 4) {
 				r.push(`Although ${he} is aroused by the idea of impregnating ${himself}, ${slave.slaveName}'s cock is simply too large to easily become erect. A quick injection of vasodilators later, and ${he}'s ready to go. Because ${he}'s so eager, you simply stand back and let the magic happen.`);
 				if (
@@ -312,7 +312,7 @@ App.Interact.fSlaveSelfImpreg = function(slave) {
 			}
 		}
 	} else {
-		if (_enjoy) {
+		if (enjoy) {
 			r.push(`Although ${slave.slaveName} is anything but eager to cooperate, you don't have to drag ${him}. It's obvious that ${his} resistance is conflicting with the raw desire to fill ${himself} with ${his} own seed.`);
 			if (slave.dick > 6 && slave.balls <= 4) {
 				r.push(`While the size of ${his} cock makes it necessary for you to inject ${him} with vasodilators for ${him} to become properly erect, ${his} resistance is minimal.`);
@@ -370,20 +370,20 @@ App.Interact.fSlaveSelfImpreg = function(slave) {
 		}
 	}
 
-	const _actCount = random(2, 8)+1;
-	slave.counter.penetrative += _actCount;
-	V.penetrativeTotal += _actCount;
+	const actCount = random(2, 8)+1;
+	slave.counter.penetrative += actCount;
+	V.penetrativeTotal += actCount;
 	if (slave.mpreg === 1) {
-		slave.counter.anal += _actCount;
-		V.analTotal += _actCount;
+		slave.counter.anal += actCount;
+		V.analTotal += actCount;
 	} else {
-		slave.counter.vaginal += _actCount;
-		V.vaginalTotal += _actCount;
+		slave.counter.vaginal += actCount;
+		V.vaginalTotal += actCount;
 	}
 
 	r.push(`You repeat this ritual throughout the week, ensuring that ${slave.slaveName}`);
 
-	if (_superfetation === 1) {
+	if (superfetation === 1) {
 		r.push(`has <span class="lime">added another child</span> to ${his} pregnancy.`);
 	} else {
 		r.push(`is <span class="lime">carrying ${his} own child.</span>`);
@@ -400,11 +400,11 @@ App.Interact.fSlaveSelfImpreg = function(slave) {
 
 	if (V.arcologies[0].FSRepopulationFocus !== "unset" && (V.arcologies[0].FSGenderFundamentalist === "unset" || V.arcologies[0].FSRepopulationFocus >= V.arcologies[0].FSGenderFundamentalist)) {
 		// seems logical that repop would trump anything else if it's equal-or-more advanced than fundamentalism.
-		const _delt = (V.arcologies[0].FSGenderFundamentalist !== "unset") ?
+		const delt = (V.arcologies[0].FSGenderFundamentalist !== "unset") ?
 			V.arcologies[0].FSRepopulationFocus - V.arcologies[0].FSGenderFundamentalist :
 			V.arcologies[0].FSRepopulationFocus;
 
-		if (_delt > 0) {
+		if (delt > 0) {
 			r.push(`Society is <span class="green">pleased</span> by the addition of a new slave, no matter the means by which it was produced.`);
 			repX(V.FSSingleSlaveRep*(V.arcologies[0].FSRepopulationFocus/V.FSLockinLevel), "futureSocieties", slave);
 		} else {
diff --git a/src/npc/interaction/fillUpButt.js b/src/npc/interaction/fillUpButt.js
index 89c4f5087fc3b276af88a0d4b787bf61ac95d325..34f18ada1928a13d0ce257ac34e9569b06be6f8a 100644
--- a/src/npc/interaction/fillUpButt.js
+++ b/src/npc/interaction/fillUpButt.js
@@ -13,7 +13,7 @@ App.Interact.fillUpButt = function(slave) {
 	} = getPronouns(slave);
 
 	slave.bellyAccessory = "none";
-	let _pregDiscovery = 0;
+	let pregDiscovery = 0;
 	r.push(`You`);
 	switch (slave.inflationType) {
 		case "water":
@@ -71,7 +71,7 @@ App.Interact.fillUpButt = function(slave) {
 
 	if (slave.inflation > 1 && slave.preg > 1) {
 		r.push(`${He} looks uneasy at the prospect of that much fluid entering ${his} rear, far more than could be considered normal.`);
-		_pregDiscovery = 1;
+		pregDiscovery = 1;
 	} else {
 		if (slave.fetish === "buttslut" && slave.devotion >= -20) {
 			r.push(`${He}'s pleased at the prospect of you touching ${his} favorite body part.`);
@@ -87,8 +87,8 @@ App.Interact.fillUpButt = function(slave) {
 		}
 	}
 
-	if (_pregDiscovery === 1) {
-		r.push(`Not wanting to risk such a mess, you send ${him} for a medical examination. While most of the tests come back normal, one in particular catches your eye; <span class="lime">${he} is pregnant${(slave.preg > slave.pregData.normalBirth/4) ? `and surprisingly far along` : ``}.</span> ${He} should be able to still handle at least two liters of ${slave.inflationType} up ${his} ass, however.`);
+	if (pregDiscovery === 1) {
+		r.push(`Not wanting to risk such a mess, you send ${him} for a medical examination. While most of the tests come back normal, one in particular catches your eye; <span class="lime">${he} is pregnant${(slave.preg > slave.pregData.normalBirth/4) ? ` and surprisingly far along` : ``}.</span> ${He} should be able to still handle at least two liters of ${slave.inflationType} up ${his} ass, however.`);
 		deflate(slave);
 		slave.pregKnown = 1;
 	} else if (slave.fetish === "mindbroken") {
@@ -726,7 +726,7 @@ App.Interact.fillUpButt = function(slave) {
 			r.push(`and admire ${his} distended, ${slave.skin} stomach. ${He} sighs contently, before eagerly begging for more. You pat ${his} belly and tell ${him} to keep ${himself} filled with two liters of ${slave.inflationType} until you say otherwise.`);
 		}
 	}
-	if (_pregDiscovery === 0) {
+	if (pregDiscovery === 0) {
 		slave.inflation += 1;
 		if (slave.inflation === 3) {
 			if (canWalk(slave) || (canMove(slave) && slave.rules.mobility === "permissive")) {
diff --git a/src/npc/interaction/fondleBoobs.js b/src/npc/interaction/fondleBoobs.js
index 2fd0b948bdcc6a1253a103940e862c6f5d5e0282..c2678308d9222c89adfbe82dce47b8286c985632 100644
--- a/src/npc/interaction/fondleBoobs.js
+++ b/src/npc/interaction/fondleBoobs.js
@@ -624,7 +624,7 @@ App.Interact.fondleBoobs = function(slave) {
 			if (slave.lactation > 0) {
 				r.push(`milky`);
 			}
-			r.push(`${slave.nipples} nipples so that they tighten around your fingers. You push deeper in, rubbing their sides gently before forcing the entirety of your hands into ${his} breasts. When you cease fisting ${his} nipples and pull out${(slave.lactation > 0) ? `alongside a stream of backed up milk` : ``}, ${he} gasps audibly, unable to contain ${himself} at your relentless assault upon ${his} boobs. When you put your mouth on ${his} breasts to lick ${his} slit, ${he} bites ${his} lip, desperately trying to hide ${his} arousal at ${his} stimulated nipples.`);
+			r.push(`${slave.nipples} nipples so that they tighten around your fingers. You push deeper in, rubbing their sides gently before forcing the entirety of your hands into ${his} breasts. When you cease fisting ${his} nipples and pull out${(slave.lactation > 0) ? ` alongside a stream of backed up milk` : ``}, ${he} gasps audibly, unable to contain ${himself} at your relentless assault upon ${his} boobs. When you put your mouth on ${his} breasts to lick ${his} slit, ${he} bites ${his} lip, desperately trying to hide ${his} arousal at ${his} stimulated nipples.`);
 		}
 		r.push(`When you finally stop, ${he} shakes uncontrollably but says nothing, apprehensive at what you are going to do next.`);
 	} else {
@@ -664,7 +664,7 @@ App.Interact.fondleBoobs = function(slave) {
 			if (slave.lactation > 0) {
 				r.push(`milky`);
 			}
-			r.push(`${slave.nipples} nipples so that they tighten around your fingers. You push deeper in, rubbing their sides gently before forcing the entirety of your hands into ${his} breasts. When you cease fisting ${his} nipples and pull out${(slave.lactation > 0) ? `alongside a stream of backed up milk` : ``}, ${he} gasps audibly, unable to contain ${himself} at your relentless assault upon ${his} boobs. When you put your mouth on ${his} breasts to lick ${his} slit, ${he} bites ${his} lip, desperately trying to hide ${his} arousal at ${his} stimulated nipples.`);
+			r.push(`${slave.nipples} nipples so that they tighten around your fingers. You push deeper in, rubbing their sides gently before forcing the entirety of your hands into ${his} breasts. When you cease fisting ${his} nipples and pull out${(slave.lactation > 0) ? ` alongside a stream of backed up milk` : ``}, ${he} gasps audibly, unable to contain ${himself} at your relentless assault upon ${his} boobs. When you put your mouth on ${his} breasts to lick ${his} slit, ${he} bites ${his} lip, desperately trying to hide ${his} arousal at ${his} stimulated nipples.`);
 		}
 		r.push(`When you finally stop, ${he} shakes uncontrollably, apprehensive at what you are going to do next.`);
 	}
diff --git a/src/npc/interaction/forceFeeding.js b/src/npc/interaction/forceFeeding.js
index 873b563b9c7f2810d59d1944e7833c2fbc7568e3..cd1e4a798c102b05f7b664620ee3b4c31b18b77e 100644
--- a/src/npc/interaction/forceFeeding.js
+++ b/src/npc/interaction/forceFeeding.js
@@ -13,12 +13,12 @@ App.Interact.forceFeeding = function(slave) {
 	} = getPronouns(slave);
 
 	addPartner(slave, -1);
-	let _doMe;
+	let doMe;
 
-	const _belly = bellyAdjective(slave);
+	const belly = bellyAdjective(slave);
 	slave.bellyAccessory = "none";
-	let _isDone = slave.inflation-1;
-	let _pregDiscovery = 0;
+	let isDone = slave.inflation-1;
+	let pregDiscovery = 0;
 	r.push(`You call ${him} over and ask ${him} to wait patiently for a moment.`);
 	if (slave.fetish === "mindbroken") {
 		r.push(`${He} shows no response as`);
@@ -141,13 +141,13 @@ App.Interact.forceFeeding = function(slave) {
 	if (slave.weight > 190) {
 		r.push(`immensely soft`);
 	} else if (slave.belly >= 150000) {
-		r.push(_belly);
+		r.push(belly);
 	} else if (slave.weight > 160) {
 		r.push(`massive soft`);
 	} else if (slave.weight > 130) {
 		r.push(`giant soft`);
 	} else if (slave.belly >= 1500) {
-		r.push(_belly);
+		r.push(belly);
 	} else if (slave.weight > 95) {
 		r.push(`huge soft`);
 	} else if (slave.weight > 30) {
@@ -217,7 +217,7 @@ App.Interact.forceFeeding = function(slave) {
 	App.Events.addParagraph(node, r);
 	r = [];
 
-	if (slave.pregKnown === 0 && slave.preg > slave.pregData.normalBirth/13.33 && _isDone > 0) {
+	if (slave.pregKnown === 0 && slave.preg > slave.pregData.normalBirth/13.33 && isDone > 0) {
 		r.push(`As soon as the next helping enters ${him} you feel something is wrong. ${He} begins to heave,`);
 		if (slave.fetish !== "mindbroken" && slave.devotion > 50) {
 			r.push(`struggling to keep down the slave food, however ${he} shortly expels the entirety of ${his} stomach across the floor.`);
@@ -253,10 +253,10 @@ App.Interact.forceFeeding = function(slave) {
 		} else {
 			r.push(`given how disappointed ${he} is in failing you, but is worrying. Such a good slave shouldn't do such bad things.`);
 		}
-		_pregDiscovery = 1;
+		pregDiscovery = 1;
 	} else {
-		if (_isDone > 0) {
-			_isDone--;
+		if (isDone > 0) {
+			isDone--;
 			r.push(`But ${he} isn't done`);
 			if (slave.fetish === "mindbroken") {
 				r.push(`yet.`);
@@ -308,7 +308,7 @@ App.Interact.forceFeeding = function(slave) {
 			App.Events.addParagraph(node, r);
 			r = [];
 		}
-		if (_isDone > 0) {
+		if (isDone > 0) {
 			if (slave.fetish === "mindbroken") {
 				r.push(`${He} squirms a little in discomfort, but ${he} still has another gallon to go, so you continue feeding food into ${his} mouth.`);
 			} else if (slave.devotion < -20) {
@@ -367,7 +367,7 @@ App.Interact.forceFeeding = function(slave) {
 				r.push(`pat it several more times`);
 			}
 			r.push(`as you appreciate its size.`);
-			_doMe = 1;
+			doMe = 1;
 			App.Events.addParagraph(node, r);
 			r = [];
 		}
@@ -440,7 +440,7 @@ App.Interact.forceFeeding = function(slave) {
 			r.push(`lavishing attention on ${his} gurgling belly, much to ${his} delight, until you tire of ${him} and send ${him} on ${his} way.`);
 		} else {
 			r.push(`playing with ${his} belly. ${He} joins you in the endeavor, happy that you are pleased with the`);
-			if (_doMe !== 1) {
+			if (doMe !== 1) {
 				r.push(`outcome.`);
 			} else {
 				r.push(`outcome, but ${his}`);
@@ -452,26 +452,26 @@ App.Interact.forceFeeding = function(slave) {
 				r.push(`you ${he} wants more.`);
 			}
 			// Fuckings for devoted slaves.
-			_doMe = 1;
-			let _sexType;
+			doMe = 1;
+			let sexType;
 			if (canDoVaginal(slave) && slave.vagina > 0) {
-				_sexType = "vaginal";
+				sexType = "vaginal";
 			} else if (canDoAnal(slave) && slave.anus > 0) {
-				_sexType = "anal";
+				sexType = "anal";
 			} else {
-				_sexType = "none";
+				sexType = "none";
 			}
-			if (_sexType !== "none") {
+			if (sexType !== "none") {
 				if (V.PC.belly >= 10000) {
-					_doMe = 0;
+					doMe = 0;
 					r.push(`${His}`);
-					if (_sexType === "vaginal") {
+					if (sexType === "vaginal") {
 						r.push(`pussy`);
 					} else {
 						r.push(`ass`);
 					}
 					r.push(`is under a lot of pressure from ${his} swollen middle and surely would feel amazing; it's even`);
-					if (_sexType === "vaginal") {
+					if (sexType === "vaginal") {
 						r.push(`sopping wet for`);
 					} else {
 						r.push(`eagerly winking at`);
@@ -481,14 +481,14 @@ App.Interact.forceFeeding = function(slave) {
 					if (V.PC.dick !== 0) {
 						r.push(`You're already rock hard so you`);
 					} else {
-						if (_sexType === "vaginal") {
+						if (sexType === "vaginal") {
 							r.push(`You don a strap-on and`);
 						} else {
 							r.push(`You don a strap-on, lube up,`);
 						}
 					}
 					r.push(`pull ${his} legs apart,`);
-					if (_sexType === "vaginal") {
+					if (sexType === "vaginal") {
 						r.push(`revealing ${his}`);
 						if (slave.vaginaLube > 1) {
 							r.push(`sopping wet,`);
@@ -522,24 +522,24 @@ App.Interact.forceFeeding = function(slave) {
 						}
 					}
 					r.push(`${His} belly is putting so much pressure on it that`);
-					const _looseness = (_sexType === "vaginal") ? slave.vagina : slave.anus;
-					if (_sexType === "vaginal" && _looseness >= 10) {
+					const looseness = (sexType === "vaginal") ? slave.vagina : slave.anus;
+					if (sexType === "vaginal" && looseness >= 10) {
 						r.push(`you might be able to get some decent friction now.`);
 						if (V.PC.dick !== 0) {
 							r.push(`You can actually feel the sides of ${his} cunt as you slide in.`);
 						} else {
 							r.push(`You slide in like it's still nothing.`);
 						}
-					} else if (_looseness > 3) {
+					} else if (looseness > 3) {
 						r.push(`you should be able to get a decent fuck out of it.`);
 						if (V.PC.dick !== 0) {
 							r.push(`You can't help but be amazed that you're getting some resistance as you slide in.`);
 						} else {
 							r.push(`You slide in like it's nothing.`);
 						}
-					} else if (_looseness > 2) {
+					} else if (looseness > 2) {
 						r.push(`it won't feel so`);
-						if (_sexType === "vaginal") {
+						if (sexType === "vaginal") {
 							r.push(`worn out.`);
 						} else {
 							r.push(`stretched.`);
@@ -549,11 +549,11 @@ App.Interact.forceFeeding = function(slave) {
 						} else {
 							r.push(`You squeeze in without problem.`);
 						}
-					} else if (_looseness > 1) {
+					} else if (looseness > 1) {
 						r.push(`it'll feel positively tight.`);
 						if (V.PC.dick !== 0) {
 							r.push(`${His}`);
-							if (_sexType === "vaginal") {
+							if (sexType === "vaginal") {
 								r.push(`pussy`);
 							} else {
 								r.push(`anus`);
@@ -566,25 +566,25 @@ App.Interact.forceFeeding = function(slave) {
 						r.push(`you'll barely be able to fit it in.`);
 						if (V.PC.dick !== 0) {
 							r.push(`${His}`);
-							if (_sexType === "vaginal") {
+							if (sexType === "vaginal") {
 								r.push(`vagina`);
 							} else {
 								r.push(`rear`);
 							}
 							r.push(`is so tight you can barely get it in, but with a little work, you manage to squeeze into its tight confines. ${He}'s tighter than any`);
-							if (_sexType === "anal") {
+							if (sexType === "anal") {
 								r.push(`anal`);
 							}
 							r.push(`virgin you've ever fucked.`);
 						} else {
 							r.push(`You have to`);
-							if (_sexType === "vaginal") {
+							if (sexType === "vaginal") {
 								r.push(`lube up some,`);
 							} else {
 								r.push(`get a little rough,`);
 							}
 							r.push(`but eventually you manage to slide into ${his} extremely tight`);
-							if (_sexType === "vaginal") {
+							if (sexType === "vaginal") {
 								r.push(`vagina.`);
 							} else {
 								r.push(`anus.`);
@@ -604,16 +604,16 @@ App.Interact.forceFeeding = function(slave) {
 						r.push(`and ${he}'s forced out all your cum,`);
 					}
 					r.push(`you settle down beside ${him} and rest your head against ${his} belly; it almost feels like a water-filled pillow, albeit a little noisy. You and ${slave.slaveName} doze off together for a much needed nap. You don't get much rest; ${his} stomach's constant groaning and burbling keeps you up, so you send ${him} on ${his} way. ${He} blows you one last kiss and eagerly looks forward to next time.`);
-					if (_sexType === "vaginal") {
+					if (sexType === "vaginal") {
 						r.push(VCheck.Vaginal(slave, 2));
 					} else {
 						r.push(VCheck.Anal(slave, 2));
 					}
 				}
 			} else {
-				_doMe = 0;
+				doMe = 0;
 			}
-			if (_doMe === 0) {
+			if (doMe === 0) {
 				if (V.PC.dick !== 0) {
 					r.push(`You crawl onto the couch above ${his} head and lower your erect cock straight into ${his} waiting mouth. ${He} eagerly sucks you off, ${his} belly wobbling with every thrust into ${his} throat. You cum fast and hard into ${him}, a product of being on the edge during ${his} feeding;`);
 					if (slave.behavioralFlaw === "gluttonous") {
@@ -636,8 +636,8 @@ App.Interact.forceFeeding = function(slave) {
 		}
 	}
 
-	if (_pregDiscovery === 1) {
-		r.push(`Once you've managed to stop ${his} heaving and clean up, you decide to get to the root of this mess. While most of the tests come back normal, one in particular catches your eye; <span class="lime">${he} is pregnant${(slave.preg > slave.pregData.normalBirth/4) ? `and surprisingly far along` : ``}.</span>`);
+	if (pregDiscovery === 1) {
+		r.push(`Once you've managed to stop ${his} heaving and clean up, you decide to get to the root of this mess. While most of the tests come back normal, one in particular catches your eye; <span class="lime">${he} is pregnant${(slave.preg > slave.pregData.normalBirth/4) ? ` and surprisingly far along` : ``}.</span>`);
 		deflate(slave);
 		slave.pregKnown = 1;
 	} else {
diff --git a/src/npc/interaction/passage/abort.js b/src/npc/interaction/passage/abort.js
index f709a53b2288a549510361b3042a21143dd755d0..9e47f9de3650530fa297ce3d4973e1bd1668c961 100644
--- a/src/npc/interaction/passage/abort.js
+++ b/src/npc/interaction/passage/abort.js
@@ -33,9 +33,9 @@ App.Interact.abort = function(slave) {
 			slave.devotion -= 10;
 		} else if (slave.fetish === "pregnancy") {
 			r.push(`<span class="devotion dec">filled with a deep sorrow.</span> To a pregnancy fetishist, having a pregnancy end like this hurts far worse than birth ever would. ${He} is <span class="trust dec">terrified of a repeat performance.</span>`);
-			const _fetishModifier = slave.fetishStrength/2;
-			slave.devotion -= 1*_fetishModifier;
-			slave.trust -= 1*_fetishModifier;
+			const fetishModifier = slave.fetishStrength / 2;
+			slave.devotion -= 1 * fetishModifier;
+			slave.trust -= 1 * fetishModifier;
 		} else if (slave.devotion <= 20) {
 			r.push(`<span class="devotion dec">consumed by muted weeping and enduring sorrow.</span> Even though ${he} knew ${his} baby was destined for a slave orphanage, it seems ${he} cared for it. ${He} is <span class="trust dec">terrified of your power</span> over ${his} body.`);
 			slave.trust -= 10;
diff --git a/src/npc/interaction/passage/fMarry.js b/src/npc/interaction/passage/fMarry.js
index 57e332bc1bce8462699feb2642f0beb3b67b232d..444ae7c4b54f178128476a37a3644ab60dc084a0 100644
--- a/src/npc/interaction/passage/fMarry.js
+++ b/src/npc/interaction/passage/fMarry.js
@@ -752,7 +752,7 @@ App.Interact.fMarry = function(slave) {
 			} else if (V.assistant.appearance === "fairy") {
 				r.push(`"To seal the deal," ${V.assistant.name} concludes, "${slave.slaveName}, you gotta drink the ${groom}'s`);
 				if (V.PC.dick !== 0) {
-					r.push(`semen${(V.PC.vagina !== -1) ? `and pussy juices` : ``}."`);
+					r.push(`semen${(V.PC.vagina !== -1) ? ` and pussy juices` : ``}."`);
 				} else {
 					r.push(`pussy juices."`);
 				}
@@ -792,7 +792,7 @@ App.Interact.fMarry = function(slave) {
 			} else if (V.assistant.appearance === "loli") {
 				r.push(`"To consummate the marriage," ${V.assistant.name} concludes, "${slave.slaveName}, you should now`);
 				if (V.PC.dick !== 0) {
-					r.push(`suck the ${groom}'s cock${(V.PC.vagina !== -1) ? `and lick ${hisP} cunny` : ``}."`);
+					r.push(`suck the ${groom}'s cock${(V.PC.vagina !== -1) ? ` and lick ${hisP} cunny` : ``}."`);
 				} else {
 					r.push(`lick the ${groom}'s cunny."`);
 				}
@@ -801,7 +801,7 @@ App.Interact.fMarry = function(slave) {
 			} else if (V.assistant.appearance === "preggololi") {
 				r.push(`"To consummate the marriage," ${V.assistant.name} concludes, "${slave.slaveName}, you should now`);
 				if (V.PC.dick !== 0) {
-					r.push(`suck the ${groom}'s lovely cock${(V.PC.vagina !== -1) ? `and eat out ${hisP} cunt` : ``}."`);
+					r.push(`suck the ${groom}'s lovely cock${(V.PC.vagina !== -1) ? ` and eat out ${hisP} cunt` : ``}."`);
 				} else {
 					r.push(`lick the ${groom}'s cunt."`);
 				}
@@ -823,7 +823,7 @@ App.Interact.fMarry = function(slave) {
 			} else if (V.assistant.appearance === "cherub") {
 				r.push(`"To consummate the marriage," ${V.assistant.name} concludes, "${slave.slaveName}, you should`);
 				if (V.PC.dick !== 0) {
-					r.push(`suck the ${groom}'s cock${(V.PC.vagina !== -1) ? `and lick ${hisP} pussy` : ``},`);
+					r.push(`suck the ${groom}'s cock${(V.PC.vagina !== -1) ? ` and lick ${hisP} pussy` : ``},`);
 				} else {
 					r.push(`lick the ${groom}'s pussy,`);
 				}
diff --git a/src/npc/interaction/passage/fSlaveSlaveAss.js b/src/npc/interaction/passage/fSlaveSlaveAss.js
index d36be6f52d0b95ba2c3651788feac499299ceefa..637d3adbcd4557afb6a16e76592f84b887539cdd 100644
--- a/src/npc/interaction/passage/fSlaveSlaveAss.js
+++ b/src/npc/interaction/passage/fSlaveSlaveAss.js
@@ -8,8 +8,8 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 	App.UI.DOM.appendNewElement("div", node, `Select a slave that will fuck ${slave.slaveName}.`);
 	App.UI.DOM.appendNewElement("h2", node, `Select an eligible slave`);
 
-	const _eligibles = V.slaves.filter((s) => (s.ID !== slave.ID) && isSlaveAvailable(s) && (canPenetrate(s) || s.clit >= 4));
-	for (const eligible of _eligibles) {
+	const eligibles = V.slaves.filter((s) => (s.ID !== slave.ID) && isSlaveAvailable(s) && (canPenetrate(s) || s.clit >= 4));
+	for (const eligible of eligibles) {
 		const div = App.UI.DOM.appendNewElement("div", node);
 		div.append(App.UI.DOM.link(
 			SlaveFullName(eligible),
@@ -21,13 +21,13 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 			App.UI.DOM.appendNewElement("span", div, ` ${eligible.custom.label}`, ["yellow", "bold"]);
 		}
 		if (totalRelatives(slave) > 0) {
-			const _relTerm = relativeTerm(slave, eligible);
-			if (_relTerm !== null) {
-				App.UI.DOM.appendNewElement("span", div, ` ${capFirstChar(_relTerm)}`, "lightgreen");
+			const relTerm = relativeTerm(slave, eligible);
+			if (relTerm !== null) {
+				App.UI.DOM.appendNewElement("span", div, ` ${capFirstChar(relTerm)}`, "lightgreen");
 			}
 		}
 	}
-	if (_eligibles.length === 0) {
+	if (eligibles.length === 0) {
 		App.UI.DOM.appendNewElement("div", node, `You have no slaves capable of this act.`, "note");
 	}
 	return node;
@@ -48,7 +48,7 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 			He2, His2,
 			he2, his2, him2, himself2, hers2, wife2
 		} = getPronouns(rapist).appendSuffix("2");
-		let _incestMood;
+		let incestMood;
 
 		addPartner(slave, -1);
 
@@ -57,43 +57,43 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 		rapist.counter.penetrative++;
 		V.penetrativeTotal++;
 
-		let _dickSize;
+		let dickSize;
 		if (rapist.dick === 1) {
-			_dickSize = "pathetic";
+			dickSize = "pathetic";
 		} else if (rapist.dick === 2) {
-			_dickSize = "tiny";
+			dickSize = "tiny";
 		} else if (rapist.dick === 3) {
-			_dickSize = "average";
+			dickSize = "average";
 		} else if (rapist.dick === 4) {
-			_dickSize = "big";
+			dickSize = "big";
 		} else if (rapist.dick === 5) {
-			_dickSize = "huge";
+			dickSize = "huge";
 		} else if (rapist.dick === 6) {
-			_dickSize = "gigantic";
+			dickSize = "gigantic";
 		} else if (rapist.dick === 7) {
-			_dickSize = "titanic";
+			dickSize = "titanic";
 		} else if (rapist.dick === 8) {
-			_dickSize = "absurd";
+			dickSize = "absurd";
 		} else if (rapist.dick === 9) {
-			_dickSize = "inhuman";
+			dickSize = "inhuman";
 		} else {
-			_dickSize = "obscene";
+			dickSize = "obscene";
 		}
 
-		const _isIncest = areRelated(slave, rapist);
+		const isIncest = areRelated(slave, rapist);
 
 		r.push(`You take a look at the slave you selected.`);
 
 		if (rapist.fetish === "dom" && rapist.fetishStrength > 20 && rapist.devotion >= -20) {
 			r.push(`Since ${rapist.slaveName} loves to dominate others it's not hard to get ${his2}`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			} else {
 				r.push(`massive clit`);
 			}
 			r.push(`ready. ${His2}`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} cock`);
+				r.push(`${dickSize} cock`);
 			} else {
 				r.push(`massive clit`);
 			}
@@ -101,16 +101,16 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 		} else if (rapist.fetish === "sadist" && rapist.fetishStrength > 20 && rapist.devotion >= -20) {
 			r.push(`With the prospect of torturing another slave`);
 			if (rapist.dick > 0) {
-				r.push(`${his2} ${_dickSize} cock swells to a throbbing erection in seconds.`);
+				r.push(`${his2} ${dickSize} cock swells to a throbbing erection in seconds.`);
 			} else {
 				r.push(`${his2} huge clit becomes fully engorged in seconds.`);
 			}
 		} else if ((rapist.fetish === "pregnancy" && rapist.fetishStrength > 20 && rapist.devotion >= -20) && rapist.dick > 0) {
-			r.push(`With the prospect of raping another slave bareback, ${his2} ${_dickSize} cock swells to a throbbing erection in seconds.`);
+			r.push(`With the prospect of raping another slave bareback, ${his2} ${dickSize} cock swells to a throbbing erection in seconds.`);
 		} else if (rapist.attrXX > 65 && rapist.devotion >= -20) {
 			r.push(`Since ${rapist.slaveName} likes sticking ${his2}`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} penis`);
+				r.push(`${dickSize} penis`);
 			} else {
 				r.push(`massive clit`);
 			}
@@ -122,7 +122,7 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 		} else if (rapist.devotion >= -20) {
 			r.push(`Since ${rapist.slaveName} does not resist your will, ${he2} should comply reasonably well. ${He2} has to work to get ${his2}`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} penis`);
+				r.push(`${dickSize} penis`);
 			} else {
 				r.push(`massive clit`);
 			}
@@ -130,14 +130,14 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 		} else {
 			r.push(`Since ${rapist.slaveName} is unlikely to comply willingly, you simply restrain ${him2} and administer a massive dose of vasodilators, directly where they will do the most good. ${rapist.slaveName} writhes with the pain of the injection, which is compounded as ${his2}`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} penis`);
+				r.push(`${dickSize} penis`);
 			} else {
 				r.push(`massive clit`);
 			}
 			r.push(`quickly reaches an agonizingly full erection.`);
 		}
 
-		if (_isIncest) {
+		if (isIncest) {
 			r.push(`${rapist.slaveName} is well aware that ${he2} is about to rape`);
 			if (rapist.father === slave.ID && rapist.mother === slave.ID) {
 				r.push(`the slave that is both ${his2} mother and ${his2} father,`);
@@ -165,14 +165,14 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 				} else {
 					r.push(`but despite ${his2} conflicted feelings ${his2} arousal is clear.`);
 				}
-				_incestMood = "Top";
+				incestMood = "Top";
 			} else if (rapist.relationshipTarget === slave.ID && rapist.relationship > 2) {
 				r.push(`but since ${he2}'s already in a sexual relationship with ${him}, it's only special because ${his2} ${getWrittenTitle(rapist)} is watching.`);
-				_incestMood = "Top";
+				incestMood = "Top";
 			} else {
 				if (rapist.devotion > 95) {
 					r.push(`but ${his2} deep acceptance of slavery means ${he2} can't help but be eager to please everyone involved with ${his2} performance.`);
-					_incestMood = "Top";
+					incestMood = "Top";
 				} else if (rapist.devotion > 60) {
 					r.push(`but ${his2} experience as a slave means ${he2} can mostly ignore it and focus on sex.`);
 				} else {
@@ -186,7 +186,7 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 
 		r.push(`Next, you see to ${slave.slaveName}.`);
 
-		if (_isIncest) {
+		if (isIncest) {
 			r.push(`${slave.slaveName} is fully naked and`);
 			if (canSee(slave)) {
 				r.push(`looking up at`);
@@ -208,7 +208,7 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 				if (slave.energy > 60) {
 					r.push(`whose`);
 					if (rapist.dick > 0) {
-						r.push(`${_dickSize} penis`);
+						r.push(`${dickSize} penis`);
 					} else {
 						r.push(`massive clit`);
 					}
@@ -222,16 +222,16 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 					}
 					r.push(`the`);
 					if (rapist.dick > 0) {
-						r.push(`${_dickSize} penis`);
+						r.push(`${dickSize} penis`);
 					} else {
 						r.push(`massive clit`);
 					}
 					r.push(`that's soon going inside ${him}.`);
 				}
-				if (_incestMood === "Top") {
-					_incestMood = "Both";
+				if (incestMood === "Top") {
+					incestMood = "Both";
 				} else {
-					_incestMood = "Bottom";
+					incestMood = "Bottom";
 				}
 			} else if (slave.relationshipTarget === rapist.ID && slave.relationship > 2) {
 				r.push(`and seems calm and inviting to ${his}`);
@@ -243,15 +243,15 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 					r.push(`slave ${wife2}'s`);
 				}
 				if (rapist.dick > 0) {
-					r.push(`${_dickSize} penis`);
+					r.push(`${dickSize} penis`);
 				} else {
 					r.push(`massive clit`);
 				}
 				r.push(`that will be penetrating ${him}.`);
-				if (_incestMood === "Top") {
-					_incestMood = "Both";
+				if (incestMood === "Top") {
+					incestMood = "Both";
 				} else {
-					_incestMood = "Bottom";
+					incestMood = "Bottom";
 				}
 			} else {
 				if (slave.devotion > 95) {
@@ -263,20 +263,20 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 					}
 					r.push(`the`);
 					if (rapist.dick > 0) {
-						r.push(`${_dickSize} penis`);
+						r.push(`${dickSize} penis`);
 					} else {
 						r.push(`massive clit`);
 					}
 					r.push(`above ${him} with a lusty smile.`);
-					if (_incestMood === "Top") {
-						_incestMood = "Both";
+					if (incestMood === "Top") {
+						incestMood = "Both";
 					} else {
-						_incestMood = "Bottom";
+						incestMood = "Bottom";
 					}
 				} else if (slave.devotion > 60) {
 					r.push(`and if ${he} focuses, ${he} can forget the`);
 					if (rapist.dick > 0) {
-						r.push(`${_dickSize} penis`);
+						r.push(`${dickSize} penis`);
 					} else {
 						r.push(`massive clit`);
 					}
@@ -286,7 +286,7 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 					if (canSee(slave)) {
 						r.push(`eyes glued to the`);
 						if (rapist.dick > 0) {
-							r.push(`${_dickSize} penis`);
+							r.push(`${dickSize} penis`);
 						} else {
 							r.push(`massive clit`);
 						}
@@ -294,7 +294,7 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 					} else if (canHear(slave)) {
 						r.push(`listening to the heavy breathing of ${his} relative whose`);
 						if (rapist.dick > 0) {
-							r.push(`${_dickSize} penis`);
+							r.push(`${dickSize} penis`);
 						} else {
 							r.push(`massive clit`);
 						}
@@ -302,7 +302,7 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 					} else {
 						r.push(`imagining how the`);
 						if (rapist.dick > 0) {
-							r.push(`${_dickSize} penis`);
+							r.push(`${dickSize} penis`);
 						} else {
 							r.push(`massive clit`);
 						}
@@ -322,7 +322,7 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 		} else if ((slave.devotion > 20 && slave.anus === 0) ) {
 			r.push(`${He} accepts your orders without comment and presents ${his} virgin asshole to ${rapist.slaveName}. ${He} gasps in shock when ${he} feels the`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			} else {
 				r.push(`massive clit`);
 			}
@@ -366,7 +366,7 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 		if (slave.devotion < -20 && rapist.devotion < -20) {
 			r.push(`Since you have two restrained slaves, it's up to you to do all the work. ${slave.slaveName} is tied up on the bed with ${his} asshole available, so you maneuver ${rapist.slaveName}'s`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			} else {
 				r.push(`strap-on`);
 			}
@@ -374,7 +374,7 @@ App.Interact.fSlaveSlaveAss = function(slave) {
 		} else if (rapist.devotion < -20) {
 			r.push(`Since your dick slave is restrained, you order ${slave.slaveName} to present ${himself} on the bed, and then maneuver ${rapist.slaveName}'s`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			} else {
 				r.push(`strap-on`);
 			}
diff --git a/src/npc/interaction/passage/fSlaveSlaveDick.js b/src/npc/interaction/passage/fSlaveSlaveDick.js
index f14405bc32c9879dd98602b2e5f472874887dd9e..982f157d321247daa0bcb29f015e3df35141f585 100644
--- a/src/npc/interaction/passage/fSlaveSlaveDick.js
+++ b/src/npc/interaction/passage/fSlaveSlaveDick.js
@@ -9,8 +9,8 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 	App.UI.DOM.appendNewElement("div", node, `Select a slave that will ride ${slave.slaveName}.`);
 	App.UI.DOM.appendNewElement("h2", node, `Select an eligible slave`);
 
-	const _eligibles = V.slaves.filter((s) => (s.ID !== slave.ID) && isSlaveAvailable(s) && canDoVaginal(s) && canStand(s) /* amp-amp scene is not written */);
-	for (const eligible of _eligibles) {
+	const eligibles = V.slaves.filter((s) => (s.ID !== slave.ID) && isSlaveAvailable(s) && canDoVaginal(s) && canStand(s) /* amp-amp scene is not written */);
+	for (const eligible of eligibles) {
 		const div = App.UI.DOM.appendNewElement("div", node);
 		div.append(App.UI.DOM.link(
 			SlaveFullName(eligible),
@@ -25,13 +25,13 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			App.UI.DOM.appendNewElement("span", div, ` Fertile`, "green");
 		}
 		if (totalRelatives(slave) > 0) {
-			const _relTerm = relativeTerm(slave, eligible);
-			if (_relTerm !== null) {
-				App.UI.DOM.appendNewElement("span", div, ` ${capFirstChar(_relTerm)}`, "lightgreen");
+			const relTerm = relativeTerm(slave, eligible);
+			if (relTerm !== null) {
+				App.UI.DOM.appendNewElement("span", div, ` ${capFirstChar(relTerm)}`, "lightgreen");
 			}
 		}
 	}
-	if (_eligibles.length === 0) {
+	if (eligibles.length === 0) {
 		App.UI.DOM.appendNewElement("div", node, `You have no slaves capable of this act.`, "note");
 	}
 	return node;
@@ -48,33 +48,33 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			He2,
 			he2, his2, him2, himself2, hers2
 		} = getPronouns(rapist).appendSuffix("2");
-		let _bottomDrugged;
-		let _incestMood;
+		let bottomDrugged;
+		let incestMood;
 
-		let _dickSize;
+		let dickSize;
 		if (slave.dick) {
 			if (slave.dick === 1) {
-				_dickSize = "tiny";
+				dickSize = "tiny";
 			} else if (slave.dick === 2) {
-				_dickSize = "tiny";
+				dickSize = "tiny";
 			} else if (slave.dick === 3) {
-				_dickSize = "average";
+				dickSize = "average";
 			} else if (slave.dick === 4) {
-				_dickSize = "big";
+				dickSize = "big";
 			} else if (slave.dick === 5) {
-				_dickSize = "huge";
+				dickSize = "huge";
 			} else if (slave.dick === 6) {
-				_dickSize = "gigantic";
+				dickSize = "gigantic";
 			} else if (slave.dick === 7) {
-				_dickSize = "titanic";
+				dickSize = "titanic";
 			} else if (slave.dick === 8) {
-				_dickSize = "absurd";
+				dickSize = "absurd";
 			} else if (slave.dick >= 9) {
-				_dickSize = "inhuman";
+				dickSize = "inhuman";
 			}
 		}
 
-		const _isIncest = areRelated(slave, rapist);
+		const isIncest = areRelated(slave, rapist);
 
 		r.push(`You take a look at the bound cock toy.`);
 
@@ -110,7 +110,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			if (slave.clit >= 4) {
 				r.push(`massive clit.`);
 			} else {
-				r.push(`${_dickSize} cock.`);
+				r.push(`${dickSize} cock.`);
 			}
 		}
 
@@ -124,7 +124,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 				if (slave.clit >= 4) {
 					r.push(`massive clit`);
 				} else {
-					r.push(`${_dickSize} penis`);
+					r.push(`${dickSize} penis`);
 				}
 				r.push(`from becoming erect. A massive dose of vasodilators fixes this, and you think you see ${his} face twitch with the pain, but there is no further reaction.`);
 			}
@@ -134,7 +134,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 				if (slave.clit >= 4) {
 					r.push(`massive clit`);
 				} else {
-					r.push(`${_dickSize} penis`);
+					r.push(`${dickSize} penis`);
 				}
 				r.push(`becomes erect. When you let go, ${he} gives a needy moo with a sad expression to ask you to keep going.`);
 			} else {
@@ -142,10 +142,10 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 				if (slave.clit >= 4) {
 					r.push(`massive clit`);
 				} else {
-					r.push(`${_dickSize} cock`);
+					r.push(`${dickSize} cock`);
 				}
 				r.push(`becomes erect, and ${he} moos in discomfort and struggles against ${his} restraints.`);
-				_bottomDrugged = 1;
+				bottomDrugged = 1;
 			}
 		} else if (slave.fetish === "mindbroken" && slave.career === "a breeding bull") {
 			r.push(`${slave.slaveName}, as a good bull, was already erect while being tied down. It seems ${he} knows what's going to happen to ${him} soon. Maybe someone at the Cattle Ranch has been sampling their bulls?`);
@@ -159,7 +159,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 							if (slave.clit >= 4) {
 								r.push(`massive clit`);
 							} else {
-								r.push(`${_dickSize} cock`);
+								r.push(`${dickSize} cock`);
 							}
 							r.push(`is erect. ${He} knows ${he}'s going to get used, and can't hide ${his} excitement.`);
 						} else if (slave.fetish === "dom") {
@@ -167,7 +167,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 							if (slave.clit >= 4) {
 								r.push(`massive clit`);
 							} else {
-								r.push(`${_dickSize} cock`);
+								r.push(`${dickSize} cock`);
 							}
 							r.push(`becomes hard. Despite knowing ${he}'s going to be used, ${he} can't hide ${his} curiosity to experience what the other side feels.`);
 						} else if (slave.fetish === "masochist") {
@@ -175,7 +175,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 							if (slave.clit >= 4) {
 								r.push(`massive clit`);
 							} else {
-								r.push(`${_dickSize} erection`);
+								r.push(`${dickSize} erection`);
 							}
 							r.push(`once you have finished. ${His} nipples are firm as well, and ${he} struggles against ${his} restraints to feel them dig into ${him} tighter.`);
 						} else if (slave.fetish === "sadist") {
@@ -183,27 +183,27 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 							if (slave.clit >= 4) {
 								r.push(`massive clit`);
 							} else {
-								r.push(`${_dickSize} cock`);
+								r.push(`${dickSize} cock`);
 							}
 							r.push(`becomes erect and hope ${he} at least learns something from being on the receiving end for once.`);
-							_bottomDrugged = 1;
+							bottomDrugged = 1;
 						} else if (slave.fetish === "humiliation") {
 							r.push(`${slave.slaveName} gets off on humiliation, and after being ordered to lay naked on a bed to be tied down, becomes flushed with arousal with ${his}`);
 							if (slave.clit >= 4) {
 								r.push(`massive clit`);
 							} else {
-								r.push(`${_dickSize} cock`);
+								r.push(`${dickSize} cock`);
 							}
 							r.push(`throbbing in anticipation at being used like a toy.`);
 						} else if (slave.fetish === "pregnancy" && V.arcologies[0].FSRepopulationFocus !== "unset" && canPenetrate(slave)) {
-							r.push(`${slave.slaveName} gets off thinking about pregnancy, and in your arcology most women are pregnant or fertile. ${He} knows someone's pussy will be around ${his} ${_dickSize} cock soon, and is clearly lost in ${his} fantasies as ${his} cock swells to a throbbing erection.`);
+							r.push(`${slave.slaveName} gets off thinking about pregnancy, and in your arcology most women are pregnant or fertile. ${He} knows someone's pussy will be around ${his} ${dickSize} cock soon, and is clearly lost in ${his} fantasies as ${his} cock swells to a throbbing erection.`);
 						}
 					} else if (slave.attrXX > 65) {
 						r.push(`${slave.slaveName} has a good sex drive and likes pussy, even before ${he}'s fully bound ${his}`);
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} cock`);
+							r.push(`${dickSize} cock`);
 						}
 						r.push(`is throbbing in anticipation.`);
 					} else {
@@ -211,7 +211,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} cock`);
+							r.push(`${dickSize} cock`);
 						}
 						r.push(`stands erect.`);
 					}
@@ -221,7 +221,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} cock`);
+							r.push(`${dickSize} cock`);
 						}
 						r.push(`erect and ready.`);
 					} else {
@@ -229,10 +229,10 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} cock`);
+							r.push(`${dickSize} cock`);
 						}
 						r.push(`causes ${him} to quickly reach painful readiness, and the unnatural pain makes ${him} strain at ${his} bonds.`);
-						_bottomDrugged = 1;
+						bottomDrugged = 1;
 					}
 				}
 			} else {
@@ -242,7 +242,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} erection`);
+							r.push(`${dickSize} erection`);
 						}
 						r.push(`ready for sex despite ${his} negative feelings.`);
 					} else {
@@ -250,7 +250,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} cock`);
+							r.push(`${dickSize} cock`);
 						}
 						r.push(`to be ready for sex.`);
 					}
@@ -259,10 +259,10 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					if (slave.clit >= 4) {
 						r.push(`massive clit`);
 					} else {
-						r.push(`${_dickSize} cock`);
+						r.push(`${dickSize} cock`);
 					}
 					r.push(`becomes painfully hard.`);
-					_bottomDrugged = 1;
+					bottomDrugged = 1;
 				}
 			}
 		}
@@ -277,7 +277,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 
 		if (slave.fetish === "mindbroken" && slave.career !== "a dairy cow" && slave.career !== "a breeding bull") {
 			r.push(`${slave.slaveName} doesn't even notice`);
-			if (_isIncest) {
+			if (isIncest) {
 				if (slave.father === rapist.ID && slave.mother === rapist.ID) {
 					r.push(`the slave that is both ${his} mother and ${his} father,`);
 				} else if (rapist.mother === slave.ID || rapist.father === slave.ID) {
@@ -294,7 +294,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			}
 			r.push(`and simply lays still.`);
 		} else if (slave.fetish === "mindbroken" && (slave.career === "a dairy cow" || slave.career === "a breeding bull")) {
-			if (_isIncest) {
+			if (isIncest) {
 				r.push(`${slave.slaveName}'s simple mind does not even acknowledge that ${rapist.slaveName} is`);
 				if (slave.father === rapist.ID && slave.mother === rapist.ID) {
 					r.push(`the slave that is both ${his} mother and ${his} father,`);
@@ -322,10 +322,10 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			if (slave.clit >= 4) {
 				r.push(`swollen clit`);
 			} else {
-				r.push(`${_dickSize} penis`);
+				r.push(`${dickSize} penis`);
 			}
 			r.push(`is erect. Naturally, ${he} seems quite eager to put them together.`);
-			_incestMood = "Bottom";
+			incestMood = "Bottom";
 		} else {
 			r.push(`${slave.slaveName} is fully naked and`);
 			if (canSee(slave)) {
@@ -333,7 +333,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			} else {
 				r.push(`waiting in front of`);
 			}
-			if (_isIncest) {
+			if (isIncest) {
 				if (slave.father === rapist.ID && slave.mother === rapist.ID) {
 					r.push(`the slave that is both ${his} mother and ${his} father,`);
 				} else if (rapist.mother === slave.ID || rapist.father === slave.ID) {
@@ -346,7 +346,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					r.push(`${his} ${relativeTerm(slave, rapist)},`);
 				}
 				if (slave.sexualQuirk === "perverted" || slave.behavioralQuirk === "sinful") {
-					_incestMood = "Bottom";
+					incestMood = "Bottom";
 					r.push(`unable to hide ${his} intense arousal at the impending`);
 					if (rapist.sexualQuirk === "perverted") {
 						r.push(`perverted`);
@@ -359,16 +359,16 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					}
 					r.push(`${rapist.slaveName} can hear ${him} moan in anticipation${(!canSee(slave)) ? ", which surprises the blind slave" : ""}.`);
 				} else if (slave.relationshipTarget === rapist.ID && slave.relationship > 2) {
-					_incestMood = "Both";
+					incestMood = "Both";
 					r.push(`but since they're already in a sexual relationship, ${he} just shows a relaxed smile as ${he} waits for ${rapist.slaveName} to mount ${him}.`);
 				} else {
 					if (slave.devotion > 95) {
-						_incestMood = "Bottom";
+						incestMood = "Bottom";
 						r.push(`but ${his} deep acceptance of slavery means ${he} is eager to please you,`);
 						if (slave.clit >= 4) {
 							r.push(`leaving ${his} massive clit flushed.`);
 						} else {
-							r.push(`making ${his} ${_dickSize} cock drip precum.`);
+							r.push(`making ${his} ${dickSize} cock drip precum.`);
 						}
 					} else if (slave.devotion > 60) {
 						r.push(`and is clearly struggling between keeping ${himself} hard and acknowledging the incest. A small dose of vasodilators and ${his} impressive desire to please you should keep ${his}`);
@@ -378,23 +378,23 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 							r.push(`penis`);
 						}
 						r.push(`up for ${rapist.slaveName}.`);
-						_incestMood = "BottomFragile";
+						incestMood = "BottomFragile";
 					} else {
-						if (!_bottomDrugged) {
+						if (!bottomDrugged) {
 							r.push(`and once it becomes clear to ${him} that ${rapist.slaveName} will be the one mounting ${him}, ${his}`);
 							if (slave.clit >= 4) {
 								r.push(`massive clit`);
 							} else {
-								r.push(`${_dickSize} penis`);
+								r.push(`${dickSize} penis`);
 							}
 							r.push(`shrinks away. A direct injection of vasodilators changes that, bringing ${him} back to readiness to ${his} horror.`);
-							_bottomDrugged = 1;
+							bottomDrugged = 1;
 						} else {
 							r.push(`and to ${his} own horror the drugs ${he} was injected with keep ${his}`);
 							if (slave.clit >= 4) {
 								r.push(`massive clit`);
 							} else {
-								r.push(`${_dickSize} penis`);
+								r.push(`${dickSize} penis`);
 							}
 							r.push(`ready and waiting.`);
 						}
@@ -425,14 +425,14 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`leaving ${his} massive clit flushed.`);
 						} else {
-							r.push(`making ${his} ${_dickSize} cock drip precum.`);
+							r.push(`making ${his} ${dickSize} cock drip precum.`);
 						}
 					} else if (slave.devotion > 95) {
 						r.push(`${His} deep acceptance of slavery means ${he} is eager to please you,`);
 						if (slave.clit >= 4) {
 							r.push(`leaving ${his} massive clit flushed,`);
 						} else {
-							r.push(`making ${his} ${_dickSize} cock drip precum,`);
+							r.push(`making ${his} ${dickSize} cock drip precum,`);
 						}
 						r.push(`despite how odd it is to fuck one's own body.`);
 					} else if (slave.devotion > 60) {
@@ -444,21 +444,21 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						}
 						r.push(`at attention.`);
 					} else {
-						if (!_bottomDrugged) {
+						if (!bottomDrugged) {
 							r.push(`Once it becomes clear to ${him} that "${he}'ll" be the one mounting ${him}, ${his}`);
 							if (slave.clit >= 4) {
 								r.push(`massive clit`);
 							} else {
-								r.push(`${_dickSize} penis`);
+								r.push(`${dickSize} penis`);
 							}
 							r.push(`shrinks away. A direct injection of vasodilators changes that, bringing ${him} back to readiness to ${his} horror.`);
-							_bottomDrugged = 1;
+							bottomDrugged = 1;
 						} else {
 							r.push(`To ${his} own horror the drugs ${he} was injected with keep ${his}`);
 							if (slave.clit >= 4) {
 								r.push(`massive clit`);
 							} else {
-								r.push(`${_dickSize} penis`);
+								r.push(`${dickSize} penis`);
 							}
 							r.push(`ready and waiting.`);
 						}
@@ -470,7 +470,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`leaving ${his} massive clit flushed,`);
 						} else {
-							r.push(`making ${his} ${_dickSize} cock drip precum,`);
+							r.push(`making ${his} ${dickSize} cock drip precum,`);
 						}
 						r.push(`eager for ${rapist.slaveName}.`);
 					} else if (slave.devotion > 60) {
@@ -482,21 +482,21 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						}
 						r.push(`is at attention and waiting for ${rapist.slaveName}.`);
 					} else {
-						if (!_bottomDrugged) {
+						if (!bottomDrugged) {
 							r.push(`Once it becomes clear to ${him} that ${rapist.slaveName} be the one mounting ${him}, ${his}`);
 							if (slave.clit >= 4) {
 								r.push(`massive clit`);
 							} else {
-								r.push(`${_dickSize} penis`);
+								r.push(`${dickSize} penis`);
 							}
 							r.push(`shrinks away. A direct injection of vasodilators changes that, bringing ${him} back to a proper hardness.`);
-							_bottomDrugged = 1;
+							bottomDrugged = 1;
 						} else {
 							r.push(`To ${his} own horror the drugs ${he} was injected with keep ${his}`);
 							if (slave.clit >= 4) {
 								r.push(`massive clit`);
 							} else {
-								r.push(`${_dickSize} penis`);
+								r.push(`${dickSize} penis`);
 							}
 							r.push(`ready and waiting.`);
 						}
@@ -510,7 +510,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 
 		if (rapist.fetish === "mindbroken" && rapist.career !== "a dairy cow" && rapist.career !== "a breeding bull") {
 			r.push(`${rapist.slaveName} stares blankly, and needs to be deliberately guided to straddle ${slave.slaveName}.`);
-			if (_isIncest) {
+			if (isIncest) {
 				r.push(`Naturally, ${he2} isn't even aware of the impending incest.`);
 			}
 			if (slave.fetish === "mindbroken" && slave.career !== "a dairy cow" && slave.career !== "a breeding bull") {
@@ -521,10 +521,10 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			if (slave.clit >= 4) {
 				r.push(`massive clit`);
 			} else {
-				r.push(`${_dickSize} penis`);
+				r.push(`${dickSize} penis`);
 			}
 			r.push(`ready and waiting, and catches on to why ${he2}'s here quickly. ${He2} takes it into ${his2} mouth before you stop ${him2} and tap ${his2} pussy, and after a few seconds of thinking ${he2} straddles ${slave.slaveName}'s hips with a moo.`);
-			if (_isIncest) {
+			if (isIncest) {
 				r.push(`Naturally, since ${he2} thinks ${he2}'s a cow, incest means nothing to ${him2}.`);
 			}
 		} else if (rapist.fetish === "mindbroken" && (rapist.career === "a breeding bull")) {
@@ -532,15 +532,15 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			if (slave.clit >= 4) {
 				r.push(`massive clit`);
 			} else {
-				r.push(`${_dickSize} penis`);
+				r.push(`${dickSize} penis`);
 			}
 			r.push(`ready and waiting, but isn't quite sure what to do with it. ${He2}'s been brought up to use ${his2} dick when thinking, after all. It takes a few minutes to get ${him2} to straddle ${slave.slaveName}'s hips with the intent to get ${his2} pussy penetrated.`);
-			if (_isIncest) {
+			if (isIncest) {
 				r.push(`Naturally, since ${he2} thinks ${he2}'s a breeding bull, incest means nothing to ${him2}.`);
 			}
 		} else {
 			r.push(`${rapist.slaveName} sees`);
-			if (_isIncest) {
+			if (isIncest) {
 				if (rapist.father === slave.ID && rapist.mother === slave.ID) {
 					r.push(`the slave that is both ${his2} mother and ${his2} father`);
 				} else if (slave.mother === rapist.ID || slave.father === rapist.ID) {
@@ -554,7 +554,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 				}
 				r.push(`tied to the bed,`);
 				if (rapist.sexualQuirk === "perverted" || rapist.sexualQuirk === "sinful") {
-					if (_incestMood === "Bottom") {
+					if (incestMood === "Bottom") {
 						r.push(`and can't hide ${his2}`);
 						if (rapist.sexualQuirk === "perverted") {
 							r.push(`perverted`);
@@ -562,9 +562,9 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 							r.push(`sinful`);
 						}
 						r.push(`arousal at the excited glances they share.`);
-						_incestMood = "Both";
+						incestMood = "Both";
 					} else {
-						_incestMood = "Top";
+						incestMood = "Top";
 						r.push(`and becomes indecently aroused at their horrified expressions for the`);
 						if (rapist.sexualQuirk === "perverted") {
 							r.push(`perverted`);
@@ -577,26 +577,26 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					r.push(`and licks ${his2} lips involuntarily.`);
 				} else {
 					if (rapist.devotion > 95) {
-						if (_incestMood === "Bottom") {
+						if (incestMood === "Bottom") {
 							r.push(`as well as ${his2} apparent lust. Since ${he2} is a perfect slave for you, ${his2} vagina becomes flushed with arousal quickly.`);
-							_incestMood = "Both";
+							incestMood = "Both";
 						} else {
-							_incestMood = "Top";
+							incestMood = "Top";
 							r.push(`as well as ${his} worried expression. ${rapist.slaveName} seems aroused and determined to show ${him} how a proper slave should act.`);
 						}
 					} else if (rapist.devotion > 60) {
-						if (_incestMood === "BottomFragile") {
-							_incestMood = "";
+						if (incestMood === "BottomFragile") {
+							incestMood = "";
 						}
 						r.push(`and after figuring out they're just as superficially prepared as ${he2} is, resolves ${himself2} to forget they're related to stay aroused.`);
 					} else {
 						r.push(`and can't hide the look of horror that crosses ${his2} face. You assure ${him2} this is what ${he2} needs to do.`);
-						if (_incestMood === "Bottom") {
+						if (incestMood === "Bottom") {
 							r.push(`To ${his2} growing disgust, ${he2} can tell ${slave.slaveName}'s`);
 							if (slave.clit >= 4) {
 								r.push(`erect clit`);
 							} else {
-								r.push(`${_dickSize} erection`);
+								r.push(`${dickSize} erection`);
 							}
 							r.push(`shows off genuine arousal despite their blood relation.`);
 						} else {
@@ -604,7 +604,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 							if (slave.clit >= 4) {
 								r.push(`erect clit`);
 							} else {
-								r.push(`${_dickSize} erection`);
+								r.push(`${dickSize} erection`);
 							}
 							r.push(`on display doesn't seem thrilled as well.`);
 						}
@@ -625,26 +625,26 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					r.push(`and licks ${his2} lips involuntarily.`);
 				} else {
 					if (rapist.devotion > 95) {
-						if (_incestMood === "Bottom") {
+						if (incestMood === "Bottom") {
 							r.push(`as well as ${his2} apparent lust. Since ${he2} is a perfect slave for you, ${his2} vagina becomes flushed with arousal quickly.`);
-							_incestMood = "Both";
+							incestMood = "Both";
 						} else {
-							_incestMood = "Top";
+							incestMood = "Top";
 							r.push(`as well as ${his} worried expressions. ${rapist.slaveName} seems aroused and determined to show ${him} how a proper slave should act.`);
 						}
 					} else if (rapist.devotion > 20) {
-						if (_incestMood === "BottomFragile") {
-							_incestMood = "";
+						if (incestMood === "BottomFragile") {
+							incestMood = "";
 						}
 						r.push(`and after figuring out they're just as superficially prepared as ${he2} is, resolves ${himself2} to try and make it pleasurable.`);
 					} else {
 						r.push(`and can't hide the look of horror that crosses ${his2} face. You assure ${him2} this is what ${he2} needs to do.`);
-						if (_incestMood === "Bottom") {
+						if (incestMood === "Bottom") {
 							r.push(`To ${his2} growing disgust, ${he2} can tell ${slave.slaveName}'s`);
 							if (slave.clit >= 4) {
 								r.push(`erect clit`);
 							} else {
-								r.push(`${_dickSize} erection`);
+								r.push(`${dickSize} erection`);
 							}
 							r.push(`shows off genuine arousal despite ${his2} unwillingness.`);
 						} else {
@@ -652,7 +652,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 							if (slave.clit >= 4) {
 								r.push(`erect clit`);
 							} else {
-								r.push(`${_dickSize} erection`);
+								r.push(`${dickSize} erection`);
 							}
 							r.push(`on display doesn't seem thrilled as well.`);
 						}
@@ -660,14 +660,14 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 				}
 			}
 
-			if (_incestMood === "Top" || _incestMood === "Both" || !(_isIncest)) {
+			if (incestMood === "Top" || incestMood === "Both" || !(isIncest)) {
 				if (rapist.fetishKnown === 1) {
 					if (rapist.fetish === "submissive") {
 						r.push(`${rapist.slaveName} usually prefers to be underneath someone with a`);
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} cock`);
+							r.push(`${dickSize} cock`);
 						}
 						r.push(`like that, which is obvious in ${his2} expressions. Knowing ${he2}'s riding it due to someone's orders is just about the only detail that plays to ${his2} fetish.`);
 					} else if (rapist.fetish === "dom") {
@@ -675,7 +675,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} cock`);
+							r.push(`${dickSize} cock`);
 						}
 						r.push(`tied up and presented to ${him2}. Being on top and controlling everything is what gets ${him2} off, and you just gave ${him2} a nice human dildo to dominate.`);
 					} else if (rapist.fetish === "masochist") {
@@ -683,7 +683,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} erection`);
+							r.push(`${dickSize} erection`);
 						}
 						r.push(`tied before ${him2}. Maybe ${he2} can delude ${himself2} into thinking this is a denial play for ${himself2} and enjoy the human dildo, or maybe not.`);
 					} else if (rapist.fetish === "sadist") {
@@ -691,7 +691,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit's`);
 						} else {
-							r.push(`${_dickSize} cock's`);
+							r.push(`${dickSize} cock's`);
 						}
 						r.push(`owner feels.`);
 					} else if (rapist.fetish === "humiliation") {
@@ -713,7 +713,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					if (slave.clit >= 4) {
 						r.push(`massive clit.`);
 					} else {
-						r.push(`${_dickSize} dick.`);
+						r.push(`${dickSize} dick.`);
 					}
 					r.push(`<span class="devotion inc">${rapist.slaveName} is further broken to slavery</span> by this application of ${his2} body, which naturally <span class="lime">will break in ${his2} pussy.</span>`);
 					rapist.vagina = 1;
@@ -735,7 +735,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -743,7 +743,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} ${relativeTerm(slave, rapist)}'s vagina.`);
 					}
@@ -754,7 +754,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -762,7 +762,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} mother's vagina.`);
 					}
@@ -774,7 +774,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			if (slave.clit >= 4) {
 				r.push(`massive clit`);
 			} else {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			}
 			r.push(`is all ${hers2}. The slave life has so affected ${rapist.slaveName} that ${he2} is quite eager to hurt and rape another slave for ${his2} pleasure.`);
 			if (rapist.vagina === 0) { /* losing virginity */
@@ -784,7 +784,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					if (slave.clit >= 4) {
 						r.push(`massive clit.`);
 					} else {
-						r.push(`${_dickSize} dick.`);
+						r.push(`${dickSize} dick.`);
 					}
 					r.push(`<span class="devotion inc">${rapist.slaveName} is further broken to slavery</span> by this application of ${his2} body, which naturally <span class="lime">will break in ${his2} pussy.</span>`);
 					rapist.vagina = 1;
@@ -808,7 +808,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -816,7 +816,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} ${relativeTerm(slave, rapist)}'s vagina.`);
 					}
@@ -827,7 +827,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -835,7 +835,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} mother's vagina.`);
 					}
@@ -854,13 +854,13 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					if (slave.clit >= 4) {
 						r.push(`massive clit.`);
 					} else {
-						r.push(`${_dickSize} dick.`);
+						r.push(`${dickSize} dick.`);
 					}
 					r.push(`<span class="devotion inc">${rapist.slaveName} is further broken to slavery</span> by this application of ${his2} body, which naturally <span class="lime">will break in ${his2} pussy.</span>`);
 					rapist.vagina = 1;
 					rapist.devotion += 10;
 				} else if (rapist.devotion >= -20) {
-					r.push(`${rapist.slaveName} is clearly unhappy at the idea of losing ${his2} pearl of great price to ${slave.slaveName}; this probably isn't what ${he2} imagined ${his2} first real sex would be like. ${He2} fears _h2e might get pregnant. Nevertheless, <span class="devotion inc">${he} is further broken to slavery</span> by this application of ${his2} body, which naturally <span class="lime">breaks in ${his2} pussy.</span>`);
+					r.push(`${rapist.slaveName} is clearly unhappy at the idea of losing ${his2} pearl of great price to ${slave.slaveName}; this probably isn't what ${he2} imagined ${his2} first real sex would be like. ${He2} fears ${he2} might get pregnant. Nevertheless, <span class="devotion inc">${he} is further broken to slavery</span> by this application of ${his2} body, which naturally <span class="lime">breaks in ${his2} pussy.</span>`);
 					rapist.vagina = 1;
 					rapist.devotion += 4;
 				} else {
@@ -877,7 +877,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -885,7 +885,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} ${relativeTerm(slave, rapist)}'s vagina.`);
 					}
@@ -896,7 +896,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -904,7 +904,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} mother's vagina.`);
 					}
@@ -917,7 +917,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			if (slave.clit >= 4) {
 				r.push(`massive clit`);
 			} else {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			}
 			r.push(`is all ${hers2}. The slave life has so affected ${rapist.slaveName} that ${he2} is quite eager to rape another slave for ${his2} pleasure.`);
 			if (rapist.vagina === 0) {
@@ -925,7 +925,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 				if (slave.clit >= 4) {
 					r.push(`clit-dick,`);
 				} else {
-					r.push(`${_dickSize} dick,`);
+					r.push(`${dickSize} dick,`);
 				}
 				r.push(`impaling ${himself2} slowly and teasing ${his2} bound victim. This act <span class="lime">breaks in ${his2} pussy.</span>`);
 				rapist.vagina = 1;
@@ -945,7 +945,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			if (slave.clit >= 4) {
 				r.push(`massive clit`);
 			} else {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			}
 			r.push(`is all ${hers}. The slave life has so affected ${rapist.slaveName} that ${he2} is quite eager to rape another slave, just for the perverted novelty of the act.`);
 			if (rapist.vagina === 0) { /* losing virginity */
@@ -954,7 +954,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					if (slave.clit >= 4) {
 						r.push(`massive clit.`);
 					} else {
-						r.push(`${_dickSize} dick.`);
+						r.push(`${dickSize} dick.`);
 					}
 					r.push(`<span class="devotion inc">${rapist.slaveName} is further broken to slavery</span> by this application of ${his2} body, which naturally <span class="lime">will break in ${his2} pussy.</span>`);
 					rapist.vagina = 1;
@@ -977,7 +977,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -985,7 +985,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} ${relativeTerm(slave, rapist)}'s vagina.`);
 					}
@@ -996,7 +996,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -1004,7 +1004,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} mother's vagina.`);
 					}
@@ -1021,7 +1021,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					if (slave.clit >= 4) {
 						r.push(`massive clit.`);
 					} else {
-						r.push(`${_dickSize} dick.`);
+						r.push(`${dickSize} dick.`);
 					}
 					r.push(`<span class="devotion inc">${rapist.slaveName} is further broken to slavery</span> by this application of ${his2} body, which naturally <span class="lime">will break in ${his2} pussy.</span>`);
 					rapist.vagina = 1;
@@ -1043,7 +1043,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -1051,7 +1051,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} ${relativeTerm(slave, rapist)}'s vagina.`);
 					}
@@ -1062,7 +1062,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -1070,7 +1070,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} mother's vagina.`);
 					}
@@ -1085,7 +1085,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					if (slave.clit >= 4) {
 						r.push(`massive clit.`);
 					} else {
-						r.push(`${_dickSize} dick.`);
+						r.push(`${dickSize} dick.`);
 					}
 					r.push(`<span class="devotion inc">${rapist.slaveName} is further broken to slavery</span> by this application of ${his2} body, which naturally <span class="lime">will break in ${his2} pussy.</span>`);
 					rapist.vagina = 1;
@@ -1107,7 +1107,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -1115,7 +1115,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} ${relativeTerm(slave, rapist)}'s vagina.`);
 					}
@@ -1126,7 +1126,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -1134,7 +1134,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} mother's vagina.`);
 					}
@@ -1144,7 +1144,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 			if (slave.clit >= 4) {
 				r.push(`massive clit`);
 			} else {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			}
 			r.push(`and dripping away with the contents of ${rapist.slaveName}'s cum-filled pussy. You notice ${rapist.slaveName}'s looking a little more longingly at ${slave.slaveName}.`);
 		} else {
@@ -1155,7 +1155,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 					if (slave.clit >= 4) {
 						r.push(`massive clit.`);
 					} else {
-						r.push(`${_dickSize} dick.`);
+						r.push(`${dickSize} dick.`);
 					}
 					r.push(`<span class="devotion inc">${rapist.slaveName} is further broken to slavery</span> by this application of ${his2} body, which naturally <span class="lime">will break in ${his2} pussy.</span>`);
 					rapist.vagina = 1;
@@ -1177,7 +1177,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -1185,7 +1185,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} ${relativeTerm(slave, rapist)}'s vagina.`);
 					}
@@ -1196,7 +1196,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`for the first time.`);
 					} else {
@@ -1204,7 +1204,7 @@ App.Interact.fSlaveSlaveDick = function(slave) {
 						if (slave.clit >= 4) {
 							r.push(`massive clit`);
 						} else {
-							r.push(`${_dickSize} dick`);
+							r.push(`${dickSize} dick`);
 						}
 						r.push(`disappears into ${his} mother's vagina.`);
 					}
diff --git a/src/npc/interaction/passage/fSlaveSlaveVag.js b/src/npc/interaction/passage/fSlaveSlaveVag.js
index 681dd553c617751ac08b44ec591df144a4f35d8d..aa12e30bc4685b7a7cf43d4a677ac5670cf0796c 100644
--- a/src/npc/interaction/passage/fSlaveSlaveVag.js
+++ b/src/npc/interaction/passage/fSlaveSlaveVag.js
@@ -8,8 +8,8 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 	App.UI.DOM.appendNewElement("div", node, `Select a slave that will fuck ${slave.slaveName}.`);
 	App.UI.DOM.appendNewElement("h2", node, `Select an eligible slave`);
 
-	const _eligibles = V.slaves.filter((s) => (s.ID !== slave.ID) && isSlaveAvailable(s) && (canPenetrate(s) || s.clit >= 4));
-	for (const eligible of _eligibles) {
+	const eligibles = V.slaves.filter((s) => (s.ID !== slave.ID) && isSlaveAvailable(s) && (canPenetrate(s) || s.clit >= 4));
+	for (const eligible of eligibles) {
 		const div = App.UI.DOM.appendNewElement("div", node);
 		div.append(App.UI.DOM.link(
 			SlaveFullName(eligible),
@@ -24,13 +24,13 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 			App.UI.DOM.appendNewElement("span", div, ` Virile`, "green");
 		}
 		if (totalRelatives(slave) > 0) {
-			const _relTerm = relativeTerm(slave, eligible);
-			if (_relTerm !== null) {
-				App.UI.DOM.appendNewElement("span", div, ` ${capFirstChar(_relTerm)}`, "lightgreen");
+			const relTerm = relativeTerm(slave, eligible);
+			if (relTerm !== null) {
+				App.UI.DOM.appendNewElement("span", div, ` ${capFirstChar(relTerm)}`, "lightgreen");
 			}
 		}
 	}
-	if (_eligibles.length === 0) {
+	if (eligibles.length === 0) {
 		App.UI.DOM.appendNewElement("div", node, `You have no slaves capable of this act.`, "note");
 	}
 	return node;
@@ -51,7 +51,7 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 			He2, His2,
 			he2, his2, him2, himself2, hers2, wife2
 		} = getPronouns(rapist).appendSuffix("2");
-		let _incestMood;
+		let incestMood;
 
 		addPartner(slave, -1);
 
@@ -60,37 +60,37 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 		rapist.counter.penetrative++;
 		V.penetrativeTotal++;
 
-		let _dickSize;
+		let dickSize;
 		if (rapist.dick === 1) {
-			_dickSize = "pathetic";
+			dickSize = "pathetic";
 		} else if (rapist.dick === 2) {
-			_dickSize = "tiny";
+			dickSize = "tiny";
 		} else if (rapist.dick === 3) {
-			_dickSize = "average";
+			dickSize = "average";
 		} else if (rapist.dick === 4) {
-			_dickSize = "big";
+			dickSize = "big";
 		} else if (rapist.dick === 5) {
-			_dickSize = "huge";
+			dickSize = "huge";
 		} else if (rapist.dick === 6) {
-			_dickSize = "gigantic";
+			dickSize = "gigantic";
 		} else if (rapist.dick === 7) {
-			_dickSize = "titanic";
+			dickSize = "titanic";
 		} else if (rapist.dick === 8) {
-			_dickSize = "absurd";
+			dickSize = "absurd";
 		} else if (rapist.dick === 9) {
-			_dickSize = "inhuman";
+			dickSize = "inhuman";
 		} else {
-			_dickSize = "obscene";
+			dickSize = "obscene";
 		}
 
-		const _isIncest = areRelated(slave, rapist);
+		const isIncest = areRelated(slave, rapist);
 
 		r.push(`You take a look at the slave you selected.`);
 
 		if (rapist.fetish === "dom" && rapist.fetishStrength > 20 && rapist.devotion >= -20) {
 			r.push(`Since ${rapist.slaveName} loves to dominate others it's not hard to get ${his2}`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			} else {
 				r.push(`massive clit`);
 			}
@@ -100,7 +100,7 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 			} else {
 				r.push(`${His2}`);
 				if (rapist.dick > 0) {
-					r.push(`${_dickSize} cock`);
+					r.push(`${dickSize} cock`);
 				} else {
 					r.push(`massive clit`);
 				}
@@ -109,16 +109,16 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 		} else if (rapist.fetish === "sadist" && rapist.fetishStrength > 20 && rapist.devotion >= -20) {
 			r.push(`With the prospect of torturing another slave`);
 			if (rapist.dick > 0) {
-				r.push(`${his2} ${_dickSize} cock swells to a throbbing erection in seconds.`);
+				r.push(`${his2} ${dickSize} cock swells to a throbbing erection in seconds.`);
 			} else {
 				r.push(`${his2} huge clit becomes fully engorged in seconds.`);
 			}
 		} else if ((rapist.fetish === "pregnancy" && rapist.fetishStrength > 20 && rapist.devotion >= -20) && rapist.dick > 0) {
-			r.push(`With the prospect of raping another slave bareback, ${his2} ${_dickSize} cock swells to a throbbing erection in seconds.`);
+			r.push(`With the prospect of raping another slave bareback, ${his2} ${dickSize} cock swells to a throbbing erection in seconds.`);
 		} else if (rapist.attrXX > 65 && rapist.devotion >= -20) {
 			r.push(`Since ${rapist.slaveName} likes sticking ${his2}`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} penis`);
+				r.push(`${dickSize} penis`);
 			} else {
 				r.push(`massive clit`);
 			}
@@ -130,7 +130,7 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 		} else if (rapist.devotion >= -20) {
 			r.push(`Since ${rapist.slaveName} does not resist your will, ${he2} should comply reasonably well. ${He2} has to work to get ${his2}`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} penis`);
+				r.push(`${dickSize} penis`);
 			} else {
 				r.push(`massive clit`);
 			}
@@ -138,14 +138,14 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 		} else {
 			r.push(`Since ${rapist.slaveName} is unlikely to comply willingly, you simply restrain ${him2} and administer a massive dose of vasodilators, directly where they will do the most good. ${rapist.slaveName} writhes with the pain of the injection, which is compounded as ${his2}`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} penis`);
+				r.push(`${dickSize} penis`);
 			} else {
 				r.push(`massive clit`);
 			}
 			r.push(`quickly reaches an agonizingly full erection.`);
 		}
 
-		if (_isIncest) {
+		if (isIncest) {
 			r.push(`${rapist.slaveName} is well aware that ${he2} is about to rape`);
 			if (rapist.father === slave.ID && rapist.mother === slave.ID) {
 				r.push(`the slave that is both ${his2} mother and ${his2} father,`);
@@ -173,14 +173,14 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 				} else {
 					r.push(`but despite ${his2} conflicted feelings ${his2} arousal is clear.`);
 				}
-				_incestMood = "Top";
+				incestMood = "Top";
 			} else if (rapist.relationshipTarget === slave.ID && rapist.relationship > 2) {
 				r.push(`but since ${he2}'s already in a sexual relationship with ${him}, it's only special because ${his2} ${getWrittenTitle(rapist)} is watching.`);
-				_incestMood = "Top";
+				incestMood = "Top";
 			} else {
 				if (rapist.devotion > 95) {
 					r.push(`but ${his2} deep acceptance of slavery means ${he2} can't help but be eager to please everyone involved with ${his2} performance.`);
-					_incestMood = "Top";
+					incestMood = "Top";
 				} else if (rapist.devotion > 60) {
 					r.push(`but ${his2} experience as a slave means ${he2} can mostly ignore it and focus on sex.`);
 				} else {
@@ -194,7 +194,7 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 
 		r.push(`Next, you see to ${slave.slaveName}.`);
 
-		if (_isIncest) {
+		if (isIncest) {
 			r.push(`${slave.slaveName} is fully naked and`);
 			if (canSee(slave)) {
 				r.push(`looking up at`);
@@ -216,7 +216,7 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 				if (slave.energy > 60) {
 					r.push(`whose`);
 					if (rapist.dick > 0) {
-						r.push(`${_dickSize} penis`);
+						r.push(`${dickSize} penis`);
 					} else {
 						r.push(`massive clit`);
 					}
@@ -230,16 +230,16 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 					}
 					r.push(`the`);
 					if (rapist.dick > 0) {
-						r.push(`${_dickSize} penis`);
+						r.push(`${dickSize} penis`);
 					} else {
 						r.push(`massive clit`);
 					}
 					r.push(`that's soon going inside ${him}.`);
 				}
-				if (_incestMood === "Top") {
-					_incestMood = "Both";
+				if (incestMood === "Top") {
+					incestMood = "Both";
 				} else {
-					_incestMood = "Bottom";
+					incestMood = "Bottom";
 				}
 			} else if (slave.relationshipTarget === rapist.ID && slave.relationship > 2) {
 				r.push(`and seems calm and inviting to ${his}`);
@@ -251,15 +251,15 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 					r.push(`slave ${wife2}'s`);
 				}
 				if (rapist.dick > 0) {
-					r.push(`${_dickSize} penis`);
+					r.push(`${dickSize} penis`);
 				} else {
 					r.push(`massive clit`);
 				}
 				r.push(`that will be penetrating ${him}.`);
-				if (_incestMood === "Top") {
-					_incestMood = "Both";
+				if (incestMood === "Top") {
+					incestMood = "Both";
 				} else {
-					_incestMood = "Bottom";
+					incestMood = "Bottom";
 				}
 			} else {
 				if (slave.devotion > 95) {
@@ -271,20 +271,20 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 					}
 					r.push(`the`);
 					if (rapist.dick > 0) {
-						r.push(`${_dickSize} penis`);
+						r.push(`${dickSize} penis`);
 					} else {
 						r.push(`massive clit`);
 					}
 					r.push(`above ${him} with a lusty smile.`);
-					if (_incestMood === "Top") {
-						_incestMood = "Both";
+					if (incestMood === "Top") {
+						incestMood = "Both";
 					} else {
-						_incestMood = "Bottom";
+						incestMood = "Bottom";
 					}
 				} else if (slave.devotion > 60) {
 					r.push(`and if ${he} focuses, ${he} can forget the`);
 					if (rapist.dick > 0) {
-						r.push(`${_dickSize} penis`);
+						r.push(`${dickSize} penis`);
 					} else {
 						r.push(`massive clit`);
 					}
@@ -294,7 +294,7 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 					if (canSee(slave)) {
 						r.push(`eyes glued to the`);
 						if (rapist.dick > 0) {
-							r.push(`${_dickSize} penis`);
+							r.push(`${dickSize} penis`);
 						} else {
 							r.push(`massive clit`);
 						}
@@ -302,7 +302,7 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 					} else if (canHear(slave)) {
 						r.push(`listening to the heavy breathing of ${his} relative whose`);
 						if (rapist.dick > 0) {
-							r.push(`${_dickSize} penis`);
+							r.push(`${dickSize} penis`);
 						} else {
 							r.push(`massive clit`);
 						}
@@ -310,7 +310,7 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 					} else {
 						r.push(`imagining how the`);
 						if (rapist.dick > 0) {
-							r.push(`${_dickSize} penis`);
+							r.push(`${dickSize} penis`);
 						} else {
 							r.push(`massive clit`);
 						}
@@ -330,7 +330,7 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 		} else if ((slave.devotion > 20 && slave.vagina === 0) ) {
 			r.push(`${He} accepts your orders without comment and presents ${his} virgin pussy to ${rapist.slaveName}. ${He} gasps in shock when ${he} feels the`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			} else {
 				r.push(`massive clit`);
 			}
@@ -374,7 +374,7 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 		if (slave.devotion < -20 && rapist.devotion < -20) {
 			r.push(`Since you have two restrained slaves, it's up to you to do all the work. ${slave.slaveName} is tied up on the bed with ${his} pussy available, so you maneuver ${rapist.slaveName}'s`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			} else {
 				r.push(`strap-on`);
 			}
@@ -382,7 +382,7 @@ App.Interact.fSlaveSlaveVag = function(slave) {
 		} else if (rapist.devotion < -20) {
 			r.push(`Since your dick slave is restrained, you order ${slave.slaveName} to present ${himself} on the bed, and then maneuver ${rapist.slaveName}'s`);
 			if (rapist.dick > 0) {
-				r.push(`${_dickSize} dick`);
+				r.push(`${dickSize} dick`);
 			} else {
 				r.push(`strap-on`);
 			}
diff --git a/src/npc/interaction/passage/matchmaking.js b/src/npc/interaction/passage/matchmaking.js
index d06ae2cd4c3a8f86603449da2ec69846b3db17a4..1328f2b2d94964fd156479047c3823303308c314 100644
--- a/src/npc/interaction/passage/matchmaking.js
+++ b/src/npc/interaction/passage/matchmaking.js
@@ -85,7 +85,7 @@ App.Interact.matchmaking = function(slave) {
 		App.Events.addParagraph(node, r);
 		r = [];
 		r.push(`Being ordered into a relationship would be difficult for anyone, but they're so obedient that <span class="lightgreen">they do their best and make it work.</span> You ensure that they do, and your determined efforts to do so <span class="mediumorchid">reduce their devotion to you,</span> though it's mostly by redirection towards each other. And in any case, they remain devoted enough, and will likely return to their earlier worshipfulness in a few weeks at most.`);
-		let _matched = 1;
+		let matched = 1;
 		if (slave.fetish === "submissive" && subSlave.fetish === "dom") {
 			r.push(`${subSlave.slaveName} is a dom and ${slave.slaveName} is a sub. It's a match out of bad fiction.`);
 		} else if (subSlave.fetish === "submissive" && slave.fetish === "dom") {
@@ -129,9 +129,9 @@ App.Interact.matchmaking = function(slave) {
 		} else if (subSlave.fetish === "pregnancy" && canAchieveErection(slave)) {
 			r.push(`${subSlave.slaveName} can indulge the fantasy that ${he2}'s getting pregnant each and every time ${slave.slaveName} cums inside ${him2}.`);
 		} else {
-			_matched = 0;
+			matched = 0;
 		}
-		if (_matched === 1) {
+		if (matched === 1) {
 			r.push(`Their sexual compatibility is excellent, and they <span class="mediumaquamarine">trust you more</span> for matching them so perfectly.`);
 			slave.trust += 10;
 			subSlave.trust += 10;
diff --git a/src/npc/interaction/slaveOnSlaveFeeding/fSlaveFeed.js b/src/npc/interaction/slaveOnSlaveFeeding/fSlaveFeed.js
index 68c5b8cee64c5e051769a12f5274281d65f0bbf4..f79ca53142c4819dd4ce51a7647899ee6f7d0e8a 100644
--- a/src/npc/interaction/slaveOnSlaveFeeding/fSlaveFeed.js
+++ b/src/npc/interaction/slaveOnSlaveFeeding/fSlaveFeed.js
@@ -1,6 +1,6 @@
 globalThis.FSlaveFeed = function(slave, milkTap) {
 	const el = new DocumentFragment();
-	let _pregDiscovery = 0;
+	let pregDiscovery = 0;
 	const {
 		His, He,
 		his, he, him, himself, wife, girl, hers
@@ -9,8 +9,8 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 		His2, He2,
 		his2, he2, him2, himself2, wife2
 	} = getPronouns(milkTap).appendSuffix("2");
-	let _incestGive;
-	let _incestTake;
+	let incestGive;
+	let incestTake;
 	let r = [];
 	const relative = relativeTerm(slave, milkTap);
 
@@ -19,10 +19,10 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 	if (slave.inflationType === "milk") {
 		slave.milkSource = milkTap.ID;
 		if (milkTap.behavioralQuirk === "sinful" || milkTap.sexualQuirk === "perverted" || milkTap.fetish === "incest") { // incest is a planned fetish, don't touch it!
-			_incestGive = 1;
+			incestGive = 1;
 		}
 		if (slave.behavioralQuirk === "sinful" || slave.sexualQuirk === "perverted" || slave.fetish === "incest") {
-			_incestTake = 1;
+			incestTake = 1;
 		}
 
 		r.push(`The first necessary step is to prepare the milk cow and ${his2} udders.`);
@@ -70,7 +70,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 				r.push(`It takes next to no effort to get ${his2} milk flowing.`);
 			}
 		} else if (slave.mother === milkTap.ID) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as ${milkTap.slaveName} fondly remembers nursing ${his2} ${relativeTerm(milkTap, slave)}.`);
 			} else {
 				r.push(`This is fairly easy, as ${milkTap.slaveName}'s body remembers nursing ${his2} ${relativeTerm(milkTap, slave)}, even if ${he} is resistant to the idea.`);
@@ -81,7 +81,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 				r.push(`It takes minimal effort to get ${his2} milk flowing.`);
 			}
 		} else if (slave.father === milkTap.ID) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as ${milkTap.slaveName} is aroused at the thought of breast feeding the ${girl} ${he2} sired.`);
 				if (milkTap.lactation > 1) {
 					r.push(`${He2} is practically gushing milk with excitement.`);
@@ -97,7 +97,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 				}
 			}
 		} else if (milkTap.mother === slave.ID) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as ${milkTap.slaveName} is aroused at the lewdity of breast feeding ${his2} own mother.`);
 				if (milkTap.lactation > 1) {
 					r.push(`${He2} is practically gushing milk with excitement.`);
@@ -113,7 +113,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 				}
 			}
 		} else if (milkTap.father === slave.ID) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as having ${his2} father drink ${his2} milk is a taboo ${milkTap.slaveName} can't wait to break.`);
 				if (milkTap.lactation > 1) {
 					r.push(`${He2} is practically gushing milk with excitement.`);
@@ -129,7 +129,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 				}
 			}
 		} else if (areSisters(slave, milkTap) === 1) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as having ${milkTap.slaveName} enjoys sexually experimenting with ${his2} ${relative}.`);
 			} else {
 				r.push(`This is easy enough, as ${milkTap.slaveName} wants ${his2} ${relative} to try ${his2} milk, but only if ${he} can taste ${hers} too.`);
@@ -140,7 +140,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 				r.push(`It takes minimal effort to get ${his2} milk flowing.`);
 			}
 		} else if (areSisters(slave, milkTap) === 2) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as having ${milkTap.slaveName} enjoys sexually experimenting with ${his2} ${relative}.`);
 				if (milkTap.lactation > 1) {
 					r.push(`${He2} is practically gushing milk with excitement.`);
@@ -156,7 +156,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 				}
 			}
 		} else if (areSisters(slave, milkTap) === 3) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as having ${milkTap.slaveName} enjoys sexually experimenting with ${his2} ${relative}.`);
 				if (milkTap.lactation > 1) {
 					r.push(`${He2} is practically gushing milk with excitement.`);
@@ -222,7 +222,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 		} else if (slave.mother === milkTap.ID) {
 			r.push(`${He} draws close to ${his} mother's nipples, trying to remember if ${he} once had a favorite.`);
 		} else if (slave.father === milkTap.ID) {
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`${He} eagerly wraps ${his} lips around ${his} father's nipple.`);
 				if (canAchieveErection(milkTap)) {
 					r.push(`${He} shudders with budding lust when ${he} feels the dick that sired ${him} poking at ${his} belly.`);
@@ -235,7 +235,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			}
 		} else if (milkTap.mother === slave.ID) {
 			r.push(`${He}`);
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`happily`);
 			} else {
 				r.push(`awkwardly`);
@@ -243,7 +243,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			r.push(`brings ${his} lips to ${his} relative's nipple.`);
 		} else if (milkTap.father === slave.ID) {
 			r.push(`${He}`);
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`eagerly`);
 			} else {
 				r.push(`awkwardly`);
@@ -259,7 +259,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			r.push(`${his} ${relative}${(slave.lactation > 0) ? `while coaxing ${his} own milk to flow` : ``}.`);
 		} else if (areSisters(slave, milkTap) === 2) {
 			r.push(`${He}`);
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`eagerly wraps ${his} lips around`);
 			} else {
 				r.push(`hesitatingly lowers ${himself} to`);
@@ -267,7 +267,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			r.push(`${his} relative's nipple.`);
 		} else if (areSisters(slave, milkTap) === 3) {
 			r.push(`${He}`);
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`eagerly wraps ${his} lips around`);
 			} else {
 				r.push(`hesitatingly lowers ${himself} to`);
@@ -300,7 +300,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			r.push(`It becomes abundantly clear that something is wrong with ${slave.slaveName} as ${he} struggles to down ${his} milky meal. Before ${his} health can be affected further, you pull ${him} into a medical exam. While most of the tests come back normal, one in particular catches your eye; <span class="lime">${he} is pregnant${(slave.preg > slave.pregData.normalBirth / 4) ? `, and surprisingly far along` : ``}.</span> ${He} should be able to still handle at least two liters of milk, however.`);
 			deflate(slave);
 			slave.pregKnown = 1;
-			_pregDiscovery = 1;
+			pregDiscovery = 1;
 		} else if (milkTap.fuckdoll > 0) {
 			r.push(`Slight moaning emanates from the Fuckdoll as ${slave.slaveName} drinks from ${his2} breasts. You enjoy the show, specifically the sight of ${slave.slaveName}'s belly steadily growing larger until`);
 			if (slave.inflation === 3) {
@@ -485,7 +485,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			}
 			if (canAchieveErection(milkTap)) {
 				r.push(r.pop() + `.`);
-				if (_incestTake) {
+				if (incestTake) {
 					r.push(`The way ${he} is wiggling ${his} hips suggests ${he} isn't finished with ${his} daddy just yet, and ${his} father's moaning confirms ${he} is teasing ${him2} with ${his} rear. ${He} giggles as the horny cow unloads on ${his} backside`);
 				} else {
 					r.push(`${He} doesn't stay put for long, as a strong moan and a blast of cum across ${his} rear from the horny cow startles ${him} from ${his} rest`);
@@ -1066,10 +1066,10 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 	} else { /* cum variant */
 		slave.cumSource = milkTap.ID;
 		if (milkTap.behavioralQuirk === "sinful" || milkTap.sexualQuirk === "perverted" || milkTap.fetish === "incest") { /* incest is a planned fetish, don't touch it! */
-			_incestGive = 1;
+			incestGive = 1;
 		}
 		if (slave.behavioralQuirk === "sinful" || slave.sexualQuirk === "perverted" || slave.fetish === "incest") {
-			_incestTake = 1;
+			incestTake = 1;
 		}
 
 		r.push(`The first necessary step is to prepare the cum slave and ${his} cock and balls.`);
@@ -1100,31 +1100,31 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 				r.push(`loves getting ${his2} dick sucked by ${his2} ${wife}, something that commonly happens due to ${his2} overproduction.`);
 			}
 		} else if (slave.mother === milkTap.ID) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as ${milkTap.slaveName} savors the thought of having ${his2} dick sucked by ${his2} ${relative}.`);
 			} else {
 				r.push(`This is tough, as ${milkTap.slaveName} is very uncomfortable having ${his2} dick sucked by ${his2} ${relative}, but ${he2} can't really complain about getting ${his2} overfilled nuts drained.`);
 			}
 		} else if (slave.father === milkTap.ID) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as ${milkTap.slaveName} cherishes the sheer lewdity of having ${his2} dick sucked by ${his2} ${relative}.`);
 			} else {
 				r.push(`This is tough, as ${milkTap.slaveName} is rather uncomfortable having ${his2} dick sucked by ${his2} ${relative}, but ${he2} can't really complain about getting ${his2} overfilled nuts drained.`);
 			}
 		} else if (milkTap.mother === slave.ID) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as ${milkTap.slaveName} savors the thought of having ${his2} dick sucked by ${his2} own mother.`);
 			} else {
 				r.push(`This is moderately tough, as ${milkTap.slaveName} is very uncomfortable having ${his2} dick sucked by ${his2} own mother, but ${he2} can't really complain about getting ${his2} overfilled nuts drained.`);
 			}
 		} else if (milkTap.father === slave.ID) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as ${milkTap.slaveName} cherishes the sheer lewdity of having ${his2} dick sucked by ${his2} own father.`);
 			} else {
 				r.push(`This is tough, as ${milkTap.slaveName} is very uncomfortable having ${his2} dick sucked by ${his2} own father, but ${he2} can't really complain about getting ${his2} overfilled nuts drained.`);
 			}
 		} else if (areSisters(slave, milkTap) === 1) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as ${milkTap.slaveName} enjoys the notion of twincest quite a lot.`);
 			} else {
 				r.push(`This is moderately tough, as ${milkTap.slaveName} is uncomfortable getting so intimate with ${his2}`);
@@ -1135,13 +1135,13 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 				}
 			}
 		} else if (areSisters(slave, milkTap) === 2) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as ${milkTap.slaveName} is quite eager to get intimate with ${his2} ${relative}.`);
 			} else {
 				r.push(`This is moderately tough, as ${milkTap.slaveName} is uncomfortable getting so intimate with ${his2} ${relative}, but ${he2} can't really complain about getting ${his2} overfilled nuts drained.`);
 			}
 		} else if (areSisters(slave, milkTap) === 3) {
-			if (_incestGive) {
+			if (incestGive) {
 				r.push(`This is easy enough, as ${milkTap.slaveName} is quite eager to get intimate with ${his2} ${relative}.`);
 			} else {
 				r.push(`This is moderately tough, as ${milkTap.slaveName} is uncomfortable getting so intimate with ${his2} ${relative}, but ${he2} can't really complain about getting ${his2} overfilled nuts drained.`);
@@ -1222,7 +1222,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			}
 		} else if (slave.mother === milkTap.ID) {
 			r.push(`${He}`);
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`eagerly wraps ${his} lips around`);
 			} else {
 				r.push(`awkwardly brings ${his} lips to`);
@@ -1230,7 +1230,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			r.push(`${his} mother's cock.`);
 		} else if (slave.father === milkTap.ID) {
 			r.push(`${He}`);
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`eagerly wraps ${his} lips around`);
 			} else {
 				r.push(`awkwardly brings ${his} lips to`);
@@ -1238,7 +1238,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			r.push(`daddy's cock.`);
 		} else if (milkTap.mother === slave.ID) {
 			r.push(`${He}`);
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`eagerly wraps ${his} lips around`);
 			} else {
 				r.push(`awkwardly brings ${his} lips to`);
@@ -1246,7 +1246,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			r.push(`${his} ${relative}'s cock.`);
 		} else if (milkTap.father === slave.ID) {
 			r.push(`${He}`);
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`eagerly wraps ${his} lips around`);
 			} else {
 				r.push(`awkwardly brings ${his} lips to`);
@@ -1254,13 +1254,13 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			r.push(`${his} ${relative}'s cock.`);
 		} else if (areSisters(slave, milkTap) === 1) {
 			r.push(`${He}`);
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`readily`);
 			}
 			r.push(`gets in position to suck ${his} ${relative}'s dick.`);
 		} else if (areSisters(slave, milkTap) === 2) {
 			r.push(`${He}`);
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`eagerly wraps ${his} lips around`);
 			} else {
 				r.push(`hesitatingly lowers ${himself} to`);
@@ -1268,7 +1268,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 			r.push(`${his} ${relative}'s cock.`);
 		} else if (areSisters(slave, milkTap) === 3) {
 			r.push(`${He}`);
-			if (_incestTake) {
+			if (incestTake) {
 				r.push(`eagerly wraps ${his} lips around`);
 			} else {
 				r.push(`hesitatingly lowers ${himself} to`);
@@ -1298,10 +1298,10 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 		r = [];
 
 		if (slave.preg > 3 && slave.pregKnown === 0 && slave.inflation > 1) {
-			r.push(`It becomes abundantly clear that something is wrong with ${slave.slaveName} as ${he} struggles to down ${his} thick meal. Before ${his} health can be affected further, you pull ${him} into a medical exam. While most of the tests come back normal, one in particular catches your eye; <span class="lime">${he} is pregnant${(slave.preg > 10) ? `and surprisingly far along` : ``}.</span> ${He} should be able to still handle at least two liters of cum, however.`);
+			r.push(`It becomes abundantly clear that something is wrong with ${slave.slaveName} as ${he} struggles to down ${his} thick meal. Before ${his} health can be affected further, you pull ${him} into a medical exam. While most of the tests come back normal, one in particular catches your eye; <span class="lime">${he} is pregnant${(slave.preg > 10) ? ` and surprisingly far along` : ``}.</span> ${He} should be able to still handle at least two liters of cum, however.`);
 			deflate(slave);
 			slave.pregKnown = 1;
-			_pregDiscovery = 1;
+			pregDiscovery = 1;
 		} else if (milkTap.fuckdoll > 0) {
 			r.push(`Slight moaning emanates from the Fuckdoll as ${slave.slaveName} sucks ${his2} dick. You enjoy the show, specifically the sight of ${slave.slaveName}'s belly steadily growing larger until`);
 
@@ -1993,7 +1993,7 @@ globalThis.FSlaveFeed = function(slave, milkTap) {
 	App.Events.addNode(el, r, "p");
 	r = [];
 
-	if (_pregDiscovery === 0) {
+	if (pregDiscovery === 0) {
 		seX(slave, "oral", milkTap, "oral");
 		r.push(`You help the bloated ${slave.slaveName} to the couch to recover and, more importantly, keep ${his} meal down. Only once ${he} has had several minutes to unwind`);
 		if (slave.devotion > 10) {
diff --git a/src/npc/startingGirls/editFamily.js b/src/npc/startingGirls/editFamily.js
index 607ac97d97509ea7ba58cf42f61127a72fb1735e..835b623ef53985335c48449e395a879105bb693e 100644
--- a/src/npc/startingGirls/editFamily.js
+++ b/src/npc/startingGirls/editFamily.js
@@ -570,8 +570,8 @@ App.Intro.editFamily = function(slave, cheat) {
 			App.UI.DOM.link(
 				"Reset ALL PC Relatives",
 				() => {
-					let _sameMother = 0;
-					let _sameFather = 0;
+					let sameMother = 0;
+					let sameFather = 0;
 
 					for (const s of V.slaves) {
 						if (s.newGamePlus === 0) {
@@ -582,28 +582,28 @@ App.Intro.editFamily = function(slave, cheat) {
 								s.father = 0;
 							}
 							if (s.mother === V.PC.mother) {
-								_sameMother++;
+								sameMother++;
 							}
 							if (s.father === V.PC.father) {
-								_sameFather++;
+								sameFather++;
 							}
 						}
 					}
-					if (_sameMother === 0 && slave.mother === V.PC.mother) {
+					if (sameMother === 0 && slave.mother === V.PC.mother) {
 						slave.mother = 0;
 					}
-					if (_sameFather === 0 && slave.father === V.PC.father) {
+					if (sameFather === 0 && slave.father === V.PC.father) {
 						slave.father = 0;
 					}
-					for (let _efw = 0; (_efw < V.slaves.length && (_sameMother === 1 || _sameFather === 1)); _efw++) {
-						if (V.slaves[_efw].newGamePlus === 0) {
-							if (V.slaves[_efw].mother === V.PC.mother && _sameMother === 1) {
-								V.slaves[_efw].mother = 0;
-								_sameMother = 0;
+					for (let efw = 0; (efw < V.slaves.length && (sameMother === 1 || sameFather === 1)); efw++) {
+						if (V.slaves[efw].newGamePlus === 0) {
+							if (V.slaves[efw].mother === V.PC.mother && sameMother === 1) {
+								V.slaves[efw].mother = 0;
+								sameMother = 0;
 							}
-							if (V.slaves[_efw].father === V.PC.father && _sameFather === 1) {
-								V.slaves[_efw].father = 0;
-								_sameFather = 0;
+							if (V.slaves[efw].father === V.PC.father && sameFather === 1) {
+								V.slaves[efw].father = 0;
+								sameFather = 0;
 							}
 						}
 					}
diff --git a/src/npc/startingGirls/startingGirls.js b/src/npc/startingGirls/startingGirls.js
index 6e8e16a867dd96fed22f77814d2662b5e49a56cd..a21d427b61cbb80571288980147a4aad60d365c8 100644
--- a/src/npc/startingGirls/startingGirls.js
+++ b/src/npc/startingGirls/startingGirls.js
@@ -118,16 +118,16 @@ App.StartingGirls.cleanup = function(slave) {
  */
 App.StartingGirls.applyCareerBonus = function(slave) {
 	function applySexSkillBonus() {
-		let _seed = 2;
+		let seed = 2;
 		if (slave.skill.oral < 60) {
 			slave.skill.oral += 20;
-			_seed--;
+			seed--;
 		}
 		if ((slave.skill.anal < 60) && ((slave.anus > 0) || (slave.skill.anal <= 10))) {
 			slave.skill.anal += 20;
-			_seed--;
+			seed--;
 		}
-		if ((_seed > 0) && (slave.skill.vaginal < 60) && (slave.vagina > -1) && ((slave.vagina > 0) || (slave.skill.vaginal <= 10))) {
+		if ((seed > 0) && (slave.skill.vaginal < 60) && (slave.vagina > -1) && ((slave.vagina > 0) || (slave.skill.vaginal <= 10))) {
 			slave.skill.vaginal += 20;
 		}
 	}
@@ -882,8 +882,10 @@ App.StartingGirls.upper = function(slave, cheat = false) {
 	}
 
 	option.pulldown();
-	for (/** @type {"left"|"right"}*/ const side of ["left", "right"]) {
-		if (!!slave.eye[side]) { // has eye
+	/** @type {("left"|"right")[]} */
+	const sides = ["left", "right"];
+	for (const side of sides) {
+		if (slave.eye[side]) { // has eye
 			let option = options.addOption(`${capFirstChar(side)} eye vision`, "vision", slave.eye[side]);
 			option.addValueList([["Normal", 2], ["Nearsighted", 1]]);
 			if (V.seeExtreme === 1) {
@@ -1501,6 +1503,52 @@ App.StartingGirls.lower = function(slave, cheat = false) {
 	return el;
 };
 
+/* non-persistent global data */
+App.StartingGirls.careerFilter = "Any";
+
+/** @type {Map<string, function(string): boolean>} */
+App.StartingGirls.careerBonusFilters = (function() {
+	/**
+	 * @param {Object} obj
+	 * @param {string} key
+	 * @returns {[string, function(string): boolean]}
+	 */
+	const categoryToFilterElement = (obj, key) => {
+		return [capFirstChar(key), c => obj[key].includes(c)];
+	};
+
+	const nonBonusCategories = ["veryYoung", "young", "educated", "uneducated"];
+	const generalBonusCats = Object.keys(App.Data.Careers.General).filter(c => !nonBonusCategories.includes(c));
+	const leadershipBonusCats = Object.keys(App.Data.Careers.Leader);
+	const bonusCategories = new Map([
+		["Any", () => true],
+		...generalBonusCats.map(key => categoryToFilterElement(App.Data.Careers.General, key)),
+		...leadershipBonusCats.map(key => categoryToFilterElement(App.Data.Careers.Leader, key)),
+	]);
+
+	return bonusCategories;
+})();
+
+App.StartingGirls.makeCareerFilterPulldown = function() {
+	const frag = new DocumentFragment();
+	frag.append(`Filter by desired bonus: `);
+
+	const select = document.createElement("select");
+	for (const cat of App.StartingGirls.careerBonusFilters.keys()) {
+		const choice = App.UI.DOM.appendNewElement("option", select, cat);
+		if (App.StartingGirls.careerFilter === cat) {
+			choice.selected = true;
+		}
+	}
+
+	select.onchange = () => {
+		App.StartingGirls.careerFilter = select.value;
+		App.UI.reload();
+	};
+	frag.append(select);
+	return frag;
+};
+
 /**
  * @param {App.Entity.SlaveState} slave
  * @param {boolean} cheat
@@ -1518,9 +1566,7 @@ App.StartingGirls.profile = function(slave, cheat = false) {
 	options.addOption("Slave surname", "slaveSurname", slave).showTextBox();
 
 	option = options.addOption("Career", "career", slave).showTextBox();
-	/**
-	 * @type {Array<string>}
-	 */
+	/** @type {Array<string>} */
 	let careers;
 	let text;
 	if (slave.actualAge < 16) {
@@ -1552,6 +1598,8 @@ App.StartingGirls.profile = function(slave, cheat = false) {
 		}
 	}
 
+	careers = careers.filter(App.StartingGirls.careerBonusFilters.get(App.StartingGirls.careerFilter));
+
 	const niceCareers = new Map();
 	for (const career of careers) {
 		const nice = capFirstChar(App.Utils.removeArticles(career));
@@ -1561,7 +1609,8 @@ App.StartingGirls.profile = function(slave, cheat = false) {
 		option.addValue(career, niceCareers.get(career));
 	}
 
-	option.addComment(`Available careers are based on age and education. Currently most influential is ${him} being ${text}.`).pulldown();
+	const optionComment = ` Available careers are based on age and education. Currently most influential is ${him} being ${text}.`;
+	option.addComment(App.UI.DOM.combineNodes(App.StartingGirls.makeCareerFilterPulldown(), optionComment)).pulldown();
 
 	const indenture = {active: slave.indenture > -1};
 
@@ -1739,13 +1788,19 @@ App.StartingGirls.mental = function(slave, cheat = false) {
 		options.addOption("Trust", "trust", slave),
 		App.Data.StartingGirls.trust);
 
+	const rollRandomFetish = () => either("boobs", "buttslut", "cumslut", "dom", "humiliation", "masochist", "pregnancy", "sadist", "submissive", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none");
+
 	options.addOption("Fetish", "fetishKnown", slave)
-		.addValueList([["Unknown", 0], ["Known", 1]]);
+		.addValue("Unknown", 0, () => {
+			if (!cheat && slave.fetish !== "none") {
+				slave.fetish = rollRandomFetish();
+			}
+		})
+		.addValue("Known", 1);
 
 	option = options.addOption("Fetish", "fetish", slave)
 		.addValue("Unknown", "", () => {
-			slave.fetish = either("boobs", "buttslut", "cumslut", "dom", "humiliation", "masochist", "pregnancy", "sadist",
-				"submissive", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none");
+			slave.fetish = rollRandomFetish();
 			slave.fetishKnown = 0;
 		}).addValueList([["None", "none"], ["Sub", "submissive"], ["Dom", "dom"], ["Cumslut", "cumslut"], ["Humiliation", "humiliation"],
 			["Buttslut", "buttslut"], ["Breasts", "boobs"], ["Pregnancy", "pregnancy"], ["Sadism", "sadist"], ["Masochism", "masochist"]]);
diff --git a/src/npc/startingGirls/startingGirlsPassage.js b/src/npc/startingGirls/startingGirlsPassage.js
index 05ae02be81e986a9eec073dae97ed000512ff1f9..0872b6e50f28f81a2ef4a7147d980e67c48f5221 100644
--- a/src/npc/startingGirls/startingGirlsPassage.js
+++ b/src/npc/startingGirls/startingGirlsPassage.js
@@ -11,7 +11,7 @@ App.StartingGirls.passage = function() {
 		if (V.PC.dick !== 0 && V.PC.vagina !== -1 && (V.seeDicks !== 0 || V.makeDicks === 1)) {
 			r.push(`Since you have both a penis and a vagina yourself, you've obviously had access to a source of advanced surgery and organ farming. <span class="skill player">Slaves get a smaller cost increase here for having both penises and vaginas, and for having both testicles and ovaries.</span>`);
 		}
-		if (V.PC.career === "slaver" || V.PC.career === "slave overseer" || V.PC.career === "slave tender") {
+		if (isPCCareerInCategory("slaver")) {
 			r.push(`Since you`);
 			if (V.PC.career === "slaver") {
 				r.push(`personally saw to the capture, breaking and or training of`);
@@ -86,6 +86,7 @@ App.StartingGirls.passage = function() {
 						V.activeSlave.origSkin = "fair";
 						V.activeSlave.origHColor = "red";
 						V.activeSlave.markings = "heavily freckled";
+						V.activeSlave.face = 55;
 					},
 					[],
 					"Starting Girls"
@@ -95,13 +96,13 @@ App.StartingGirls.passage = function() {
 				App.UI.DOM.appendNewElement("div", el, App.UI.DOM.link(
 					"Cali Girl",
 					() => {
-						V.activeSlave = App.StartingGirls.generate({nationality: "American"});
+						V.activeSlave = App.StartingGirls.generate({nationality: "American", race: "white"});
 						V.activeSlave.eye.origColor = "blue";
 						V.activeSlave.skin = "sun tanned";
 						V.activeSlave.override_Skin = 1;
 						V.activeSlave.origHColor = "blonde";
 						V.activeSlave.markings = "none";
-						V.activeSlave.face = 95;
+						V.activeSlave.face = 55;
 						V.activeSlave.muscles = 20;
 						V.activeSlave.weight = -20;
 						V.activeSlave.height = Height.forAge(190, V.activeSlave);
diff --git a/src/npc/surgery/bodySwap/bodySwapReaction.js b/src/npc/surgery/bodySwap/bodySwapReaction.js
index 6516b001d65ce370aa0c8bc67f24cc37d9c41a82..a9f0e9c0fe9fdcd2aabf4e0dc560a797bba3b5a2 100644
--- a/src/npc/surgery/bodySwap/bodySwapReaction.js
+++ b/src/npc/surgery/bodySwap/bodySwapReaction.js
@@ -390,7 +390,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`<span class="orange">${his} bust has shrunk.</span> ${He} is saddened by the loss of the beautiful weight ${he} once bore and struggles to keep ${himself} under control for your sake, and succeeds. <span class="mediumorchid">But only barely.</span>`);
 					} else {
-						r.push(`<span class="orange">that ${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and lets the tears finish running from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`<span class="orange">that ${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and lets the tears finish running from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= soul.boobs - 100 && soul.boobs > 300) { /* (Smaller breasts)*/
@@ -481,7 +481,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`<span class="orange">${his} bust has shrunk.</span> ${He} is saddened by the loss of the beautiful weight ${he} once bore and struggles to keep ${himself} under control for your sake, <span class="mediumorchid">barely.</span>`);
 					} else {
-						r.push(`<span class="orange">${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`<span class="orange">${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= soul.boobs - 100 && soul.boobs > 300) { /* (Smaller breasts)*/
@@ -520,7 +520,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`and finds <span class="orange">not only ${his} implants gone, but ${his} breasts entirely.</span> ${He} is saddened by ${his} flat chest and struggles to keep ${himself} under control for your sake, <span class="mediumorchid">barely.</span>`);
 					} else {
-						r.push(`and finds that <span class="orange">${his} implants are gone, along with the rest of ${his} breasts.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and wipe the tears that are running from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`and finds that <span class="orange">${his} implants are gone, along with the rest of ${his} breasts.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and wipe the tears that are running from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= 300) { /* flat*/
@@ -585,7 +585,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`<span class="orange">and finds ${his} bust has shrunk.</span> ${He} is saddened by the loss of ${his} implants and struggles to keep ${himself} under control for your sake, <span class="mediumorchid">barely.</span>`);
 					} else {
-						r.push(`<span class="orange">and finds that ${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} natural breasts begin to quiver${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and wipes the tears from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`<span class="orange">and finds that ${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} natural breasts begin to quiver${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and wipes the tears from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= soul.boobs - 100 && soul.boobs > 300) { /* (Smaller breasts)*/
@@ -622,7 +622,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`and finds <span class="orange">no tits at all.</span> ${He} is saddened by ${his} flat chest and struggles to keep ${himself} under control for your sake, and succeeds. <span class="mediumorchid">Barely.</span>`);
 					} else {
-						r.push(`and finds <span class="orange">no tits at all.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`and finds <span class="orange">no tits at all.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= 300 && soul.boobs > 300) { /* flat*/
@@ -687,7 +687,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`and finds that <span class="orange">${his} bust has shrunk.</span> ${He} is saddened by ${his} smaller chest and struggles to keep ${himself} under control for your sake, <span class="mediumorchid">barely.</span>`);
 					} else {
-						r.push(`and finds that <span class="orange">${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and wipe the tears from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`and finds that <span class="orange">${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and wipe the tears from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= soul.boobs - 100 && soul.boobs > 300) { /* (Smaller breasts)*/
@@ -736,6 +736,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					r.push(`${He} is irritated that you have altered ${his} body to produce milk.`);
 				}
 			} else if (body.fetish === "mindbroken") {
+				// TODO: write me
 			} else if (body.lactation > 1 && soul.lactation === 1) {
 				r.push(`${He} realizes ${his} breasts are <span class="lime">rapidly producing milk.</span> ${He} groans at the unfamiliar pressure.`);
 			} else if (body.lactation === 1 && soul.lactation === 2) {
@@ -2181,7 +2182,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`<span class="orange">${his} bust has shrunk.</span> ${He} is saddened by the loss of the beautiful weight ${he} once bore and struggles to keep ${himself} under control for your sake, and succeeds. <span class="mediumorchid">But only barely.</span>`);
 					} else {
-						r.push(`<span class="orange">that ${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and lets the tears finish running from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`<span class="orange">that ${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and lets the tears finish running from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= soul.boobs - 100 && soul.boobs > 300) { /* (Smaller breasts)*/
@@ -2272,7 +2273,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`<span class="orange">${his} bust has shrunk.</span> ${He} is saddened by the loss of the beautiful weight ${he} once bore and struggles to keep ${himself} under control for your sake, <span class="mediumorchid">barely.</span>`);
 					} else {
-						r.push(`<span class="orange">${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`<span class="orange">${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= soul.boobs - 100 && soul.boobs > 300) { /* (Smaller breasts)*/
@@ -2305,7 +2306,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`and finds <span class="orange">not only ${his} implants gone, but ${his} breasts entirely.</span> ${He} is saddened by ${his} flat chest and struggles to keep ${himself} under control for your sake, <span class="mediumorchid">barely.</span>`);
 					} else {
-						r.push(`and finds that <span class="orange">${his} implants are gone, along with the rest of ${his} breasts.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and stop the tears that are running from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`and finds that <span class="orange">${his} implants are gone, along with the rest of ${his} breasts.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and stop the tears that are running from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= 300) { /* flat*/
@@ -2364,7 +2365,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`<span class="orange">and finds ${his} bust has shrunk.</span> ${He} is saddened by the loss of ${his} implants and struggles to keep ${himself} under control for your sake, <span class="mediumorchid">barely.</span>`);
 					} else {
-						r.push(`<span class="orange">and finds that ${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} natural breasts begin to quiver${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`<span class="orange">and finds that ${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} natural breasts begin to quiver${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= soul.boobs - 100 && soul.boobs > 300) { /* (Smaller breasts)*/
@@ -2400,7 +2401,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`and finds <span class="orange">no tits at all.</span> ${He} is saddened by ${his} flat chest and struggles to keep ${himself} under control for your sake, and succeeds. <span class="mediumorchid">Barely.</span>`);
 					} else {
-						r.push(`and finds <span class="orange">no tits at all.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`and finds <span class="orange">no tits at all.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= 300 && soul.boobs > 300) { /* flat*/
@@ -2459,7 +2460,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					if (body.devotion > 20) {
 						r.push(`and finds that <span class="orange">${his} bust has shrunk.</span> ${He} is saddened by ${his} smaller chest and struggles to keep ${himself} under control for your sake, <span class="mediumorchid">barely.</span>`);
 					} else {
-						r.push(`and finds that <span class="orange">${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? `and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
+						r.push(`and finds that <span class="orange">${his} chest is not as large as it once was.</span> <span class="mediumorchid">Tears leap into ${his} eyes</span> as ${his} shoulders begin to shake${(body.voice !== 0) ? ` and sobs echo about the room` : ``}. ${He} pauses to gather ${himself} together and let the tears run from ${his} eyes before continuing ${his} bodily inspection.`);
 					}
 					body.devotion -= 5;
 				} else if (body.boobs <= soul.boobs - 100 && soul.boobs > 300) { /* (Smaller breasts)*/
@@ -2521,6 +2522,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 					r.push(`${He} is irritated that you have altered ${his} body to produce milk.`);
 				}
 			} else if (body.fetish === "mindbroken") {
+				// TODO: write me
 			} else if (body.lactation > 1 && soul.lactation === 1) {
 				r.push(`${He} realizes ${his} breasts are <span class="lime">rapidly producing milk.</span> ${He} groans at the unfamiliar pressure.`);
 			} else if (body.lactation === 1 && soul.lactation === 2) {
@@ -2604,6 +2606,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 			App.Events.addParagraph(el, r);
 			r = [];
 			if (body.fetish === "mindbroken") {
+				// TODO: write me
 			} else if (soul.voice === 0) {
 				r.push(`After a moment, ${he} turns to you and gestures for a mirror.`);
 				if (body.voice !== 0) {
@@ -3053,7 +3056,7 @@ globalThis.bodySwapReaction = function(body, soul) {
 				if (body.fetish !== "mindbroken") {
 					if (body.bellyPreg >= 100 || body.counter.birthsTotal > 0) {
 						if (body.devotion > 50) {
-							r.push(`Even though ${he} didn't get to experience being made into one, ${he} is delighted to be a mother${(body.counter.birthsTotal > 0) ? `again` : ``}.`);
+							r.push(`Even though ${he} didn't get to experience being made into one, ${he} is delighted to be a mother${(body.counter.birthsTotal > 0) ? ` again` : ``}.`);
 						} else {
 							r.push(`${He} is filled with conflicting emotions, <span class="mediumorchid">hatred</span> for you for forcing`);
 							if (body.pregType > 1) {
diff --git a/src/npc/surgery/bodySwap/huskSlaveSwap.js b/src/npc/surgery/bodySwap/huskSlaveSwap.js
index 49e8fda0c9a7f52b40af8ed180c808b11617ffa5..813997d8182790c87a78e9d98e09963af9acb756 100644
--- a/src/npc/surgery/bodySwap/huskSlaveSwap.js
+++ b/src/npc/surgery/bodySwap/huskSlaveSwap.js
@@ -1,62 +1,62 @@
 App.UI.SlaveInteract.huskSlaveSwap = function() {
 	const node = new DocumentFragment();
 
-	const _oldSlave = clone(V.swappingSlave);
-	const _m = V.slaveIndices[V.swappingSlave.ID];
+	const oldSlave = clone(V.swappingSlave);
+	const m = V.slaveIndices[V.swappingSlave.ID];
 	const {
 		he
 	} = getPronouns(V.swappingSlave);
 
-	App.UI.DOM.appendNewElement("p", node, `You strap ${V.slaves[_m].slaveName}, and the body to which ${he} will be transferred, into the remote surgery and stand back as it goes to work.`);
-	bodySwap(V.slaves[_m], V.activeSlave, false);
-	const _gps = V.genePool.findIndex(function(s) { return s.ID === V.slaves[_m].ID; });
+	App.UI.DOM.appendNewElement("p", node, `You strap ${V.slaves[m].slaveName}, and the body to which ${he} will be transferred, into the remote surgery and stand back as it goes to work.`);
+	bodySwap(V.slaves[m], V.activeSlave, false);
+	const gps = V.genePool.findIndex(function(s) { return s.ID === V.slaves[m].ID; });
 	// special exception to swap genePool since the temporary body lacks an entry. Otherwise we could just call the widget using the genePool entries
-	V.genePool[_gps].race = V.slaves[_m].race;
-	V.genePool[_gps].origRace = V.slaves[_m].origRace;
-	V.genePool[_gps].skin = V.slaves[_m].skin;
-	V.genePool[_gps].markings = V.slaves[_m].markings;
-	V.genePool[_gps].eye.origColor = V.slaves[_m].eye.origColor;
-	V.genePool[_gps].origHColor = V.slaves[_m].origHColor;
-	V.genePool[_gps].origSkin = V.slaves[_m].origSkin;
-	V.genePool[_gps].face = V.slaves[_m].face;
-	V.genePool[_gps].pubicHStyle = V.slaves[_m].pubicHStyle;
-	V.genePool[_gps].underArmHStyle = V.slaves[_m].underArmHStyle;
-	V.genePool[_gps].eyebrowHStyle = V.slaves[_m].eyebrowHStyle;
+	V.genePool[gps].race = V.slaves[m].race;
+	V.genePool[gps].origRace = V.slaves[m].origRace;
+	V.genePool[gps].skin = V.slaves[m].skin;
+	V.genePool[gps].markings = V.slaves[m].markings;
+	V.genePool[gps].eye.origColor = V.slaves[m].eye.origColor;
+	V.genePool[gps].origHColor = V.slaves[m].origHColor;
+	V.genePool[gps].origSkin = V.slaves[m].origSkin;
+	V.genePool[gps].face = V.slaves[m].face;
+	V.genePool[gps].pubicHStyle = V.slaves[m].pubicHStyle;
+	V.genePool[gps].underArmHStyle = V.slaves[m].underArmHStyle;
+	V.genePool[gps].eyebrowHStyle = V.slaves[m].eyebrowHStyle;
 
 	App.Events.addParagraph(node, [
-		`After an honestly impressive procedure, ${V.slaves[_m].slaveName} is recovering nicely.`,
-		bodySwapReaction(V.slaves[_m], _oldSlave)
+		`After an honestly impressive procedure, ${V.slaves[m].slaveName} is recovering nicely.`,
+		bodySwapReaction(V.slaves[m], oldSlave)
 	]);
 
-	const _slaveCost = slaveCost(_oldSlave);
-	const _payout = Math.trunc(_slaveCost/3);
+	const cost = slaveCost(oldSlave);
+	const payout = Math.trunc(cost/3);
 	let r = [];
-	r.push(`${V.slaves[_m].slaveName}'s old body was bought by the Flesh Heap for ${cashFormat(_payout)}.`);
-	if (V.slaves[_m].bodySwap > 0) {
-		const _myBody = V.slaves.findIndex(function(s) { return s.origBodyOwnerID === V.slaves[_m].ID; });
-		if (_myBody !== -1) {
-			V.slaves[_myBody].origBodyOwnerID = 0;
+	r.push(`${V.slaves[m].slaveName}'s old body was bought by the Flesh Heap for ${cashFormat(payout)}.`);
+	if (V.slaves[m].bodySwap > 0) {
+		const myBody = V.slaves.findIndex(function(s) { return s.origBodyOwnerID === V.slaves[m].ID; });
+		if (myBody !== -1) {
+			V.slaves[myBody].origBodyOwnerID = 0;
 			const {
 				he2, him2, his2
-			} = getPronouns(V.slaves[_myBody]).appendSuffix("2");
-			if (V.slaves[_myBody].fetish !== "mindbroken" && V.slaves[_myBody].fuckdoll === 0) {
-				if (V.slaves[_myBody].devotion > 20) {
-					r.push(`${V.slaves[_myBody].slaveName} is somewhat saddened to see ${his2} body leave forever.`);
-				} else if (V.slaves[_myBody].devotion >= -50) {
-					r.push(`${V.slaves[_myBody].slaveName} is <span class="mediumorchid">disturbed</span> to find ${his2} body is gone for good, damaging ${his2} <span class="gold">ability to trust you.</span>`);
-					V.slaves[_myBody].devotion -= 30;
-					V.slaves[_myBody].trust -= 30;
+			} = getPronouns(V.slaves[myBody]).appendSuffix("2");
+			if (V.slaves[myBody].fetish !== "mindbroken" && V.slaves[myBody].fuckdoll === 0) {
+				if (V.slaves[myBody].devotion > 20) {
+					r.push(`${V.slaves[myBody].slaveName} is somewhat saddened to see ${his2} body leave forever.`);
+				} else if (V.slaves[myBody].devotion >= -50) {
+					r.push(`${V.slaves[myBody].slaveName} is <span class="mediumorchid">disturbed</span> to find ${his2} body is gone for good, damaging ${his2} <span class="gold">ability to trust you.</span>`);
+					V.slaves[myBody].devotion -= 30;
+					V.slaves[myBody].trust -= 30;
 				} else {
-					r.push(`${V.slaves[_myBody].slaveName} is <span class="mediumorchid">deeply upset</span> that ${he2}'ll never see ${his2} body again. With so little left, ${he2} finds it easy to take vengeance by <span class="orangered">completely rejecting your ownership of ${him2}.</span>`);
-					V.slaves[_myBody].devotion -= 50;
-					V.slaves[_myBody].trust = 100;
+					r.push(`${V.slaves[myBody].slaveName} is <span class="mediumorchid">deeply upset</span> that ${he2}'ll never see ${his2} body again. With so little left, ${he2} finds it easy to take vengeance by <span class="orangered">completely rejecting your ownership of ${him2}.</span>`);
+					V.slaves[myBody].devotion -= 50;
+					V.slaves[myBody].trust = 100;
 				}
 			}
 		}
 	}
 	App.Events.addParagraph(node, r);
-	V.slaves[_m].bodySwap++;
-	cashX(_payout, "slaveTransfer");
+	V.slaves[m].bodySwap++;
+	cashX(payout, "slaveTransfer");
 	V.activeSlave = 0;
 	V.swappingSlave = 0;
 	return node;
diff --git a/src/npc/surgery/ovaTransplantWorkaround.js b/src/npc/surgery/ovaTransplantWorkaround.js
index 3f951feb3fac760d8e6575b577d47c0a5d425f5d..26d1d7f063f621f8585b9b40a8980e98cc1ea1b4 100644
--- a/src/npc/surgery/ovaTransplantWorkaround.js
+++ b/src/npc/surgery/ovaTransplantWorkaround.js
@@ -1,7 +1,7 @@
 App.UI.ovaTransplantWorkaround = function() {
 	const node = new DocumentFragment();
 	V.receptrix = 0;
-	let _eligibility = 0;
+	let eligibility = 0;
 
 	App.UI.DOM.appendNewElement("p", node, "You've decided which fertilized ovum is to be transplanted; now you must select whose womb will be its new home.", "scene-intro");
 
@@ -18,10 +18,10 @@ App.UI.ovaTransplantWorkaround = function() {
 				}, [], "Surrogacy",
 				(slave.pregType >= 4) ? `Using a slave carrying multiples is inadvisable` : ``
 			));
-			_eligibility = 1;
+			eligibility = 1;
 		}
 	}
-	if (_eligibility === 0) {
+	if (eligibility === 0) {
 		App.UI.DOM.appendNewElement("div", node, "You have no slaves capable of acting as a surrogate.");
 	}
 
diff --git a/src/personalAssistant/assistantOptions.js b/src/personalAssistant/assistantOptions.js
index 507314620d1fa786dce26ba47b000bf5b7559461..946a370fd9f653c89c3a9d0867468970501afe49 100644
--- a/src/personalAssistant/assistantOptions.js
+++ b/src/personalAssistant/assistantOptions.js
@@ -44,7 +44,7 @@ App.UI.personalAssistantOptions = function() {
 	tabBar.addTab("Computer Core Upgrades", "upgrades", upgrades());
 	if (V.week >= 11) {
 		tabBar.addTab("Settings", "settings", settings());
-		if (V.assistant.personality !== 0) {
+		if (V.assistant.personality !== 0 && V.assistant.options) {
 			tabBar.addTab("Appearance", "appearance", appearance());
 		}
 	}
@@ -281,11 +281,11 @@ App.UI.personalAssistantOptions = function() {
 				}
 			}
 			App.UI.DOM.appendNewElement("div", frag, App.UI.DOM.generateLinksStrip(linkArray));
-		}
 
-		if (V.seeImages) {
-			App.UI.DOM.appendNewElement("h3", node, "Custom Image");
-			node.append(customAssistantImage());
+			if (V.seeImages && V.seeAvatar) {
+				App.UI.DOM.appendNewElement("h3", node, "Custom Image");
+				node.append(customAssistantImage());
+			}
 		}
 
 		return frag;
diff --git a/src/player/desc/pAnalyzePreg.js b/src/player/desc/pAnalyzePreg.js
index 2117735f6d8f6a334f0c05ea31fff0ef14fc61e7..c47f4877f135c4979c8b5f16769279fb1c14c1bb 100644
--- a/src/player/desc/pAnalyzePreg.js
+++ b/src/player/desc/pAnalyzePreg.js
@@ -28,4 +28,4 @@ App.Desc.Player.analyzePreg = function(PC = V.PC) {
 	}
 
 	return r.join(" ");
-};
\ No newline at end of file
+};
diff --git a/src/player/desc/pNotesBoobs.js b/src/player/desc/pNotesBoobs.js
index 9cc952d4e7e426298f360d35a070f18dafe57964..c83d3b669d1bdfb7a6f83f19f2fd662c5753bb66 100644
--- a/src/player/desc/pNotesBoobs.js
+++ b/src/player/desc/pNotesBoobs.js
@@ -58,4 +58,4 @@ App.Desc.Player.pNotesBoobs = function(PC = V.PC) {
 	}
 
 	return r.join(" ");
-};
\ No newline at end of file
+};
diff --git a/src/player/desc/pNotesButt.js b/src/player/desc/pNotesButt.js
index ba456b880191ef3634f98145c81b0e5050a96eea..b08d7267030e6c53509578e58795c4bfcae51192 100644
--- a/src/player/desc/pNotesButt.js
+++ b/src/player/desc/pNotesButt.js
@@ -140,4 +140,4 @@ App.Desc.Player.pNotesButt = function(PC = V.PC) {
 	}
 
 	return r.join(" ");
-};
\ No newline at end of file
+};
diff --git a/src/player/desc/pNotesCrotch.js b/src/player/desc/pNotesCrotch.js
index 35c72ba85b403c67e2b3f961273466ae66c48c03..d6201f1c6d784d722176cdeeabf78ad875113d03 100644
--- a/src/player/desc/pNotesCrotch.js
+++ b/src/player/desc/pNotesCrotch.js
@@ -13,7 +13,7 @@ App.Desc.Player.pNotesCrotch = function(PC = V.PC) {
 		}
 	} else if (V.PC.career === "escort") {
 		if (V.PC.balls >= 30) {
-			r.push(`You've pretty much given up on pants because of your monstrous balls, but you've replaced them with a slutty skirt that stretches around their veiny contours. People can't help staring to see if they'll get a glimpse of your massive sack peaking out from under the skirt.`);
+			r.push(`You've pretty much given up on pants because of your monstrous balls, but you've replaced them with a slutty skirt that stretches around their veiny contours. People can't help staring to see if they'll get a glimpse of your massive sack peeking out from under the skirt.`);
 		} else if (V.PC.balls >= 14) {
 			r.push(`You've swapped up to a larger pair of slutty pants, specially designed with extra sack room. They draw the eye right to your`);
 			if (V.PC.preg >= 28) {
@@ -50,4 +50,4 @@ App.Desc.Player.pNotesCrotch = function(PC = V.PC) {
 	}
 
 	return r.join(" ");
-};
\ No newline at end of file
+};
diff --git a/src/player/desc/pShortBelly.js b/src/player/desc/pShortBelly.js
index 8e55bafc97a033a2263303148a4a28207212edbe..38ec814225ee04b4f3cfd4056e6b690085a39561 100644
--- a/src/player/desc/pShortBelly.js
+++ b/src/player/desc/pShortBelly.js
@@ -57,4 +57,4 @@ App.Desc.Player.officeBelly = function(PC = V.PC) {
 	}
 
 	return r.join(" ");
-};
\ No newline at end of file
+};
diff --git a/src/player/desc/pShortBoobs.js b/src/player/desc/pShortBoobs.js
index 51794a44e1c903bf3c7deb94d9fe86985fbe0539..dda132ea5ba2fafebaf5e55eeb5eb89ea00db78b 100644
--- a/src/player/desc/pShortBoobs.js
+++ b/src/player/desc/pShortBoobs.js
@@ -162,4 +162,4 @@ App.Desc.Player.officeBoobs = function(PC = V.PC) {
 	}
 
 	return r.join(" ");
-};
\ No newline at end of file
+};
diff --git a/src/player/desc/pShortButt.js b/src/player/desc/pShortButt.js
index 4b972f8eb2873d6d9d55225d7079f16951af6542..837c85cf49a8108623e1276f945764664df68755 100644
--- a/src/player/desc/pShortButt.js
+++ b/src/player/desc/pShortButt.js
@@ -64,4 +64,4 @@ App.Desc.Player.officeButt = function(PC = V.PC) {
 	}
 
 	return r.join(" ");
-};
\ No newline at end of file
+};
diff --git a/src/player/desc/pShortCrotch.js b/src/player/desc/pShortCrotch.js
index 25e854e94464320aa6a15d0b88bee1bb512de434..0b8173522bb1797f38941f0ee1c5296348812728 100644
--- a/src/player/desc/pShortCrotch.js
+++ b/src/player/desc/pShortCrotch.js
@@ -32,4 +32,4 @@ App.Desc.Player.officeCrotch = function(PC = V.PC) {
 	}
 
 	return r.join(" ");
-};
\ No newline at end of file
+};
diff --git a/src/player/desc/playerCrotch.js b/src/player/desc/playerCrotch.js
index f208a2a2a556be8d7507ad98d6da26ebbf4b2401..0f0e3a0b8dbe9559dc724e58cea20ea7d0058648 100644
--- a/src/player/desc/playerCrotch.js
+++ b/src/player/desc/playerCrotch.js
@@ -126,7 +126,7 @@ App.Desc.Player.crotch = function() {
 			}
 		} else if (V.PC.career === "escort") {
 			if (V.PC.balls >= 30) {
-				r.push(`You've pretty much given up on pants because of your monstrous balls, but you've replaced them with a slutty skirt that stretches around their veiny contours. People can't help staring to see if they'll get a glimpse of your massive sack peaking out from under the skirt.`);
+				r.push(`You've pretty much given up on pants because of your monstrous balls, but you've replaced them with a slutty skirt that stretches around their veiny contours. People can't help staring to see if they'll get a glimpse of your massive sack peeking out from under the skirt.`);
 			} else if (V.PC.balls >= 14) {
 				r.push(`You've swapped up to a larger pair of slutty pants, specially designed with extra sack room. They draw the eye right to your`);
 				if (V.PC.preg >= 28) {
diff --git a/src/player/pcSurgeryDegradation.js b/src/player/pcSurgeryDegradation.js
index 7325c8fc705f2ee9ecdc8bb0e433528611932004..68000e8d82b92cf630143aad61937b72b16ef9d9 100644
--- a/src/player/pcSurgeryDegradation.js
+++ b/src/player/pcSurgeryDegradation.js
@@ -293,11 +293,11 @@ App.UI.PCSurgeryDegradation = function(surgeryType) {
 			}
 			r.push(`You pull the covers off of yourself to catch sight of the result of the surgery and`);
 			if (V.PC.boobs >= 1400 && V.PC.belly >= 10000) {
-				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peaking over your tits but around your middle to view the mirror-covered wall across from your bed. Your balls are much bigger than you expected them to be after the surgery.`);
+				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peeking over your tits but around your middle to view the mirror-covered wall across from your bed. Your balls are much bigger than you expected them to be after the surgery.`);
 			} else if (V.PC.boobs >= 1400) {
 				r.push(`find that your enormous breasts make it difficult to get a good look so you settle for the mirror-covered wall across from your bed. Your balls are much bigger than you expected them to be after the surgery.`);
 			} else if (V.PC.belly >= 10000) {
-				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peaking around it at the mirror-covered wall across from your bed. Your balls are much bigger than you expected them to be after the surgery.`);
+				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peeking around it at the mirror-covered wall across from your bed. Your balls are much bigger than you expected them to be after the surgery.`);
 			} else {
 				r.push(`find your balls are much bigger than you expected them to be.`);
 			}
@@ -328,11 +328,11 @@ App.UI.PCSurgeryDegradation = function(surgeryType) {
 			}
 			r.push(`You pull the covers off of yourself to catch sight of the result of the surgery and`);
 			if (V.PC.boobs >= 1400 && V.PC.belly >= 10000) {
-				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peaking over your tits but around your middle to view the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
+				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peeking over your tits but around your middle to view the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
 			} else if (V.PC.boobs >= 1400) {
 				r.push(`find that your enormous breasts make it difficult to get a good look so you settle for the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
 			} else if (V.PC.belly >= 10000) {
-				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peaking around it at the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
+				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peeking around it at the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
 			} else {
 				r.push(`find your balls are now closer to the typical size one would expect.`);
 			}
@@ -358,11 +358,11 @@ App.UI.PCSurgeryDegradation = function(surgeryType) {
 			}
 			r.push(`You pull the covers off of yourself to catch sight of the result of the surgery and`);
 			if (V.PC.boobs >= 1400 && V.PC.belly >= 10000) {
-				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peaking over your tits but around your middle to view the mirror-covered wall across from your bed. Your balls are much bigger than you expected them to be after the surgery.`);
+				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peeking over your tits but around your middle to view the mirror-covered wall across from your bed. Your balls are much bigger than you expected them to be after the surgery.`);
 			} else if (V.PC.boobs >= 1400) {
 				r.push(`find that your enormous breasts make it difficult to get a good look so you settle for the mirror-covered wall across from your bed. Your balls are much bigger than you expected them to be after the surgery.`);
 			} else if (V.PC.belly >= 10000) {
-				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peaking around it at the mirror-covered wall across from your bed. Your balls are much bigger than you expected them to be after the surgery.`);
+				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peeking around it at the mirror-covered wall across from your bed. Your balls are much bigger than you expected them to be after the surgery.`);
 			} else {
 				r.push(`find your balls are much bigger than you expected them to be.`);
 			}
@@ -395,11 +395,11 @@ App.UI.PCSurgeryDegradation = function(surgeryType) {
 			}
 			r.push(`You pull the covers off of yourself to catch sight of the result of the surgery and`);
 			if (V.PC.boobs >= 1400 && V.PC.belly >= 10000) {
-				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peaking over your tits but around your middle to view the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
+				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peeking over your tits but around your middle to view the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
 			} else if (V.PC.boobs >= 1400) {
 				r.push(`find that your enormous breasts make it difficult to get a good look so you settle for the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
 			} else if (V.PC.belly >= 10000) {
-				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peaking around it at the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
+				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peeking around it at the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
 			} else {
 				r.push(`find your balls are now closer to the typical size one would expect.`);
 			}
@@ -422,11 +422,11 @@ App.UI.PCSurgeryDegradation = function(surgeryType) {
 		case "ballBigShrinkage":
 			r.push(`After a few hours, you awaken in the recovery wing with a distinct soreness and tight feeling between your legs. You pull the covers off of yourself to catch sight of the result of the surgery and`);
 			if (V.PC.boobs >= 1400 && V.PC.belly >= 10000) {
-				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peaking over your tits but around your middle to view the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
+				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peeking over your tits but around your middle to view the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
 			} else if (V.PC.boobs >= 1400) {
 				r.push(`find that your enormous breasts make it difficult to get a good look so you settle for the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
 			} else if (V.PC.belly >= 10000) {
-				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peaking around it at the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
+				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peeking around it at the mirror-covered wall across from your bed. Your balls are now closer to the typical size one would expect.`);
 			} else {
 				r.push(`find your balls have had a dramatic size adjustment.`);
 			}
@@ -442,11 +442,11 @@ App.UI.PCSurgeryDegradation = function(surgeryType) {
 		case "tightPussy":
 			r.push(`After a few hours, you awaken in the recovery wing with a distinct soreness between your legs. You pull the covers off of yourself to catch sight of the result of the surgery and`);
 			if (V.PC.boobs >= 1400 && V.PC.belly >= 10000) {
-				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peaking over your tits but around your middle to view the mirror-covered wall across from your bed. Your pussy isn't gaping, so that's a good sign. You can't tell much more until you get a good feel of it.`);
+				r.push(`find that not only can you barely see around your breasts, but any attempts to do so are immediately thwarted by your big, pregnant belly. You settle for a position peeking over your tits but around your middle to view the mirror-covered wall across from your bed. Your pussy isn't gaping, so that's a good sign. You can't tell much more until you get a good feel of it.`);
 			} else if (V.PC.boobs >= 1400) {
 				r.push(`find that your enormous breasts make it difficult to get a good look so you settle for the mirror-covered wall across from your bed. Your pussy isn't gaping, so that's a good sign. You can't tell much more until you get a good feel of it.`);
 			} else if (V.PC.belly >= 10000) {
-				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peaking around it at the mirror-covered wall across from your bed. Your pussy isn't gaping, so that's a good sign. You can't tell much more until you get a good feel of it.`);
+				r.push(`find that your big, pregnant belly makes it impossible to get a good look at your crotch so you settle for peeking around it at the mirror-covered wall across from your bed. Your pussy isn't gaping, so that's a good sign. You can't tell much more until you get a good feel of it.`);
 			} else {
 				r.push(`find your pussy is much tighter than it was. No hymen though, so you can't pass as a virgin.`);
 			}
diff --git a/src/pregmod/editGenetics.js b/src/pregmod/editGenetics.js
index 4d9bbef76d24aad26ae0b29045b58a2c6b500a80..130a42a0175912df633300eac8af7327b38d9cb2 100644
--- a/src/pregmod/editGenetics.js
+++ b/src/pregmod/editGenetics.js
@@ -1,6 +1,61 @@
 App.UI.editGenetics = function() {
 	const node = new DocumentFragment();
-
+	const cupCat = new Categorizer(
+		[0, 'flat'],
+		[300, 'A-cup'],
+		[400, 'B-cup'],
+		[500, 'C-cup'],
+		[650, 'D-cup'],
+		[800, 'DD-cup'],
+		[1000, 'F-cup'],
+		[1200, 'G-cup'],
+		[1400, 'H-cup'],
+		[1600, 'I-cup'],
+		[1800, 'J-cup'],
+		[2050, 'K-cup'],
+		[2300, 'L-cup'],
+		[2600, 'M-cup'],
+		[2900, 'N-cup'],
+		[3250, 'O-cup'],
+		[3600, 'P-cup'],
+		[3950, 'Q-cup'],
+		[4300, 'R-cup'],
+		[4700, 'S-cup'],
+		[5100, 'massive']
+	);
+	const faceCat = new Categorizer(
+		[-Infinity, 'very ugly'],
+		[-95, 'ugly'],
+		[-40, 'unattractive'],
+		[-10, 'attractive'],
+		[11, 'very pretty'],
+		[41, 'gorgeous'],
+		[96, 'mind blowing']
+	);
+	const lipsCat = new Categorizer(
+		[0, 'thin'],
+		[11, 'normal'],
+		[21, 'pretty'],
+		[41, 'plush'],
+		[71, 'huge'],
+		[96, 'facepussy']
+	);
+	const hormonalCat = new Categorizer(
+		[-Infinity, 'heavy male'],
+		[-49, 'male'],
+		[-24, 'natural'],
+		[25, 'female'],
+		[50, 'heavy female']
+	);
+	const intelligenceCat = new Categorizer(
+		[-Infinity, 'borderline retarded'],
+		[-95, 'very slow'],
+		[-50, 'slow'],
+		[-15, 'average'],
+		[16, 'smart'],
+		[51, 'very smart'],
+		[96, 'brilliant']
+	);
 	function birthFullName(s) {
 		let r = [];
 		if (V.surnameOrder !== 1) {
@@ -88,7 +143,7 @@ App.UI.editGenetics = function() {
 		makeCell(s.birthSurname || '', 2);
 
 		makeHeader(`Karyotype`);
-		cell = App.UI.DOM.appendNewElement("td", row, `${s.genes} (${tmpl.toSex(s.genes)})`, ["editor", "choice-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, `${s.genes} (${toSex(s.genes)})`, ["editor", "choice-editor"]);
 		cell.setAttribute("data-param", "genes");
 		cell.setAttribute("data-choices", "XX, XY");
 
@@ -113,13 +168,13 @@ App.UI.editGenetics = function() {
 		makeRow();
 
 		makeHeader(`Father`);
-		makeCell(tmpl.parentFullName(s.father), 2);
+		makeCell(parentFullName(s.father), 2);
 
 		makeHeader(`Mother`);
-		makeCell(tmpl.parentFullName(s.mother), 2);
+		makeCell(parentFullName(s.mother), 2);
 
 		makeHeader(`Age`);
-		makeCell(tmpl.ageDesc(s));
+		makeCell(ageDesc(s));
 
 
 		if (s.birthName !== s.slaveName || s.birthSurname !== s.slaveSurname) {
@@ -155,17 +210,17 @@ App.UI.editGenetics = function() {
 		makeRow();
 
 		makeHeader(`Height`);
-		cell = App.UI.DOM.appendNewElement("td", row, `${s.height} cm (${tmpl.toFeet(s.height)})`, ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, `${s.height} cm (${toFeet(s.height)})`, ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "height");
 		cell.setAttribute("data-min", "50");
 		cell.setAttribute("data-max", "250");
 
 		makeHeader(`Weight`);
-		cell = App.UI.DOM.appendNewElement("td", row, tmpl.percent(s.weight), ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, percent(s.weight), ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "weight");
 
 		makeHeader(`Muscles`);
-		cell = App.UI.DOM.appendNewElement("td", row, tmpl.percent(s.muscles), ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, percent(s.muscles), ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "muscles");
 
 		cell = App.UI.DOM.appendNewElement("td", row);
@@ -175,23 +230,23 @@ App.UI.editGenetics = function() {
 		makeRow();
 
 		makeHeader(`Shoulders`);
-		cell = App.UI.DOM.appendNewElement("td", row, tmpl.shouldersDesc(s.shoulders), ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, shouldersDesc(s.shoulders), ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "shoulders");
 		cell.setAttribute("data-min", "-2");
 		cell.setAttribute("data-max", "2");
 
 		makeHeader(`Waist`);
-		cell = App.UI.DOM.appendNewElement("td", row, tmpl.percent(s.waist), ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, percent(s.waist), ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "waist");
 
 		makeHeader(`Hips`);
-		cell = App.UI.DOM.appendNewElement("td", row, tmpl.hipsDesc(s.hips), ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, hipsDesc(s.hips), ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "hips");
 		cell.setAttribute("data-min", "-2");
 		cell.setAttribute("data-max", "3");
 
 		makeHeader(`Rear`);
-		cell = App.UI.DOM.appendNewElement("td", row, tmpl.buttDesc(s.butt), ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, buttDesc(s.butt), ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "butt");
 		cell.setAttribute("data-min", "0");
 		cell.setAttribute("data-max", "20");
@@ -200,7 +255,7 @@ App.UI.editGenetics = function() {
 		makeRow();
 
 		makeHeader(`Breasts`);
-		cell = App.UI.DOM.appendNewElement("td", row, `${s.boobs} cc (${tmpl.cupCat.cat(s.boobs)})`, ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, `${s.boobs} cc (${cupCat.cat(s.boobs)})`, ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "boobs");
 		cell.setAttribute("data-min", "0");
 		cell.setAttribute("data-max", "100000");
@@ -216,7 +271,7 @@ App.UI.editGenetics = function() {
 		cell.setAttribute("data-choices", "huge, puffy, inverted, tiny, cute, partially inverted");
 
 		makeHeader(`Areolae`);
-		cell = App.UI.DOM.appendNewElement("td", row, tmpl.areolaeDesc(s.areolae), ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, areolaeDesc(s.areolae), ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "areolae");
 		cell.setAttribute("data-min", "0");
 		cell.setAttribute("data-max", "5");
@@ -225,11 +280,11 @@ App.UI.editGenetics = function() {
 		makeRow();
 
 		makeHeader(`Face`);
-		cell = App.UI.DOM.appendNewElement("td", row, `${tmpl.faceCat.cat(s.face)} (${tmpl.percent(s.face)})`, ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, `${faceCat.cat(s.face)} (${percent(s.face)})`, ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "face");
 
 		makeHeader(`Lips`);
-		cell = App.UI.DOM.appendNewElement("td", row, `${tmpl.lipsCat.cat(s.lips)} (${s.lips})`, ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, `${lipsCat.cat(s.lips)} (${s.lips})`, ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "lips");
 		cell.setAttribute("data-min", "0");
 		cell.setAttribute("data-max", "100");
@@ -240,7 +295,7 @@ App.UI.editGenetics = function() {
 		cell.setAttribute("data-choices", "normal, crooked, straightening braces, cosmetic braces, removable, pointy, baby, mixed");
 
 		makeHeader(`Voice`);
-		cell = App.UI.DOM.appendNewElement("td", row, tmpl.voiceDesc(s.voice), ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, voiceDesc(s.voice), ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "voice");
 		cell.setAttribute("data-min", "0");
 		cell.setAttribute("data-max", "3");
@@ -252,13 +307,13 @@ App.UI.editGenetics = function() {
 			makeRow();
 
 			makeHeader(`Labia`);
-			cell = App.UI.DOM.appendNewElement("td", row, tmpl.labiaDesc(s.labia), ["editor", "number-editor"]);
+			cell = App.UI.DOM.appendNewElement("td", row, labiaDesc(s.labia), ["editor", "number-editor"]);
 			cell.setAttribute("data-param", "labia");
 			cell.setAttribute("data-min", "0");
 			cell.setAttribute("data-max", "3");
 
 			makeHeader(`Clitoris`);
-			cell = App.UI.DOM.appendNewElement("td", row, tmpl.clitDesc(s.clit), ["editor", "number-editor"]);
+			cell = App.UI.DOM.appendNewElement("td", row, clitDesc(s.clit), ["editor", "number-editor"]);
 			cell.setAttribute("data-param", "clit");
 			cell.setAttribute("data-min", "0");
 			cell.setAttribute("data-max", "5");
@@ -280,13 +335,13 @@ App.UI.editGenetics = function() {
 			makeRow();
 
 			makeHeader(`Penis`);
-			cell = App.UI.DOM.appendNewElement("td", row, tmpl.penisDesc(s.dick), ["editor", "number-editor"]);
+			cell = App.UI.DOM.appendNewElement("td", row, penisDesc(s.dick), ["editor", "number-editor"]);
 			cell.setAttribute("data-param", "dick");
 			cell.setAttribute("data-min", "0");
 			cell.setAttribute("data-max", "11");
 
 			makeHeader(`Testes`);
-			cell = App.UI.DOM.appendNewElement("td", row, tmpl.testesDesc(s.balls), ["editor", "number-editor"]);
+			cell = App.UI.DOM.appendNewElement("td", row, testesDesc(s.balls), ["editor", "number-editor"]);
 			cell.setAttribute("data-param", "balls");
 			cell.setAttribute("data-min", "0");
 			cell.setAttribute("data-max", "10");
@@ -306,7 +361,7 @@ App.UI.editGenetics = function() {
 		makeRow();
 
 		makeHeader(`Hormonal`);
-		cell = App.UI.DOM.appendNewElement("td", row, `${tmpl.hormonalCat.cat(s.hormoneBalance)} (${s.hormoneBalance})`, ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, `${hormonalCat.cat(s.hormoneBalance)} (${s.hormoneBalance})`, ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "hormoneBalance");
 
 		makeHeader(`Anal area`);
@@ -324,7 +379,7 @@ App.UI.editGenetics = function() {
 		makeRow();
 
 		makeHeader(`Intelligence`);
-		cell = App.UI.DOM.appendNewElement("td", row, tmpl.intelligenceCat.cat(s.intelligence), ["editor", "number-editor"]);
+		cell = App.UI.DOM.appendNewElement("td", row, intelligenceCat.cat(s.intelligence), ["editor", "number-editor"]);
 		cell.setAttribute("data-param", "intelligence");
 		cell.setAttribute("data-min", "-100");
 		cell.setAttribute("data-max", "100");
@@ -340,24 +395,22 @@ App.UI.editGenetics = function() {
 
 		if (s.chem > 0 || s.addict > 0) {
 			makeRow();
-			makeCell(tmpl.chemicalsDesc(s), 8);
+			makeCell(chemicalsDesc(s), 8);
 		}
 		return table;
 	}
-
-	var tmpl = tmpl || {};
-	tmpl.percent = function(n) {
+	function percent(n) {
 		if (n > 0) { return '+' + Number(n).toFixed(0) + '%'; }
 		if (n === 0) { return '\u00B10%'; }
 		return Number(n).toFixed(0) + '%';
-	};
-	tmpl.toFeet = function(n) {
+	}
+	function toFeet(n) {
 		let realFeet = Number(n) / 30.48;
 		let feet = Math.floor(realFeet);
 		let inches = Math.round((realFeet - feet) * 12);
 		return feet + "\u2032" + inches + '\u2033';
-	};
-	tmpl.toSex = function(karyotype) {
+	}
+	function toSex(karyotype) {
 		return {
 			XX: 'female',
 			XY: 'male',
@@ -367,14 +420,14 @@ App.UI.editGenetics = function() {
 			XXY: 'Klinefelter syndrome male',
 			XXX: 'triple X syndrome female'
 		}[String(karyotype).toUpperCase()] || 'unknown/not viable';
-	};
-	tmpl.ageDesc = function(slave) {
+	}
+	function ageDesc(slave) {
 		let age = slave.actualAge + (slave.birthWeek + V.week - slave.weekAcquired) / 52.0;
 		let years = Math.floor(age);
 		let months = Math.floor((age - years) * 12);
 		return (years > 0 ? years + 'y ' + months + 'm' : months + 'm');
-	};
-	tmpl.shouldersDesc = function(s) {
+	}
+	function shouldersDesc(s) {
 		return ({
 			'-2': 'very narrow',
 			'-1': 'narrow',
@@ -382,8 +435,8 @@ App.UI.editGenetics = function() {
 			'1': 'broad',
 			'2': 'very broad'
 		}[s] || 'unknown') + ' (' + Number(s) + ')';
-	};
-	tmpl.hipsDesc = function(s) {
+	}
+	function hipsDesc(s) {
 		return ({
 			'-2': 'very narrow',
 			'-1': 'narrow',
@@ -392,8 +445,8 @@ App.UI.editGenetics = function() {
 			'2': 'very wide',
 			'3': 'inhumanly wide'
 		}[s] || 'unknown') + ' (' + Number(s) + ')';
-	};
-	tmpl.buttDesc = function(s) {
+	}
+	function buttDesc(s) {
 		return ({
 			'0': 'flat',
 			'1': 'small',
@@ -417,31 +470,8 @@ App.UI.editGenetics = function() {
 			'19': 'inhuman',
 			'20': 'inhuman'
 		}[s] || 'unknown') + ' (' + Number(s) + ')';
-	};
-	tmpl.cupCat = new Categorizer(
-		[0, 'flat'],
-		[300, 'A-cup'],
-		[400, 'B-cup'],
-		[500, 'C-cup'],
-		[650, 'D-cup'],
-		[800, 'DD-cup'],
-		[1000, 'F-cup'],
-		[1200, 'G-cup'],
-		[1400, 'H-cup'],
-		[1600, 'I-cup'],
-		[1800, 'J-cup'],
-		[2050, 'K-cup'],
-		[2300, 'L-cup'],
-		[2600, 'M-cup'],
-		[2900, 'N-cup'],
-		[3250, 'O-cup'],
-		[3600, 'P-cup'],
-		[3950, 'Q-cup'],
-		[4300, 'R-cup'],
-		[4700, 'S-cup'],
-		[5100, 'massive']
-	);
-	tmpl.areolaeDesc = function(s) {
+	}
+	function areolaeDesc(s) {
 		return ({
 			'0': 'normal',
 			'1': 'large',
@@ -450,41 +480,24 @@ App.UI.editGenetics = function() {
 			'4': 'heart shaped',
 			'5': 'star shaped'
 		}[s] || 'unknown') + ' (' + Number(s) + ')';
-	};
-	tmpl.faceCat = new Categorizer(
-		[-Infinity, 'very ugly'],
-		[-95, 'ugly'],
-		[-40, 'unattractive'],
-		[-10, 'attractive'],
-		[11, 'very pretty'],
-		[41, 'gorgeous'],
-		[96, 'mind blowing']
-	);
-	tmpl.lipsCat = new Categorizer(
-		[0, 'thin'],
-		[11, 'normal'],
-		[21, 'pretty'],
-		[41, 'plush'],
-		[71, 'huge'],
-		[96, 'facepussy']
-	);
-	tmpl.voiceDesc = function(s) {
+	}
+	function voiceDesc(s) {
 		return ({
 			'0': 'mute',
 			'1': 'deep',
 			'2': 'feminine',
 			'3': 'high'
 		}[s] || 'unknown') + ' (' + Number(s) + ')';
-	};
-	tmpl.labiaDesc = function(s) {
+	}
+	function labiaDesc(s) {
 		return ({
 			'0': 'minimal',
 			'1': 'big',
 			'2': 'huge',
 			'3': 'huge dangling'
 		}[s] || 'unknown') + ' (' + Number(s) + ')';
-	};
-	tmpl.clitDesc = function(s) {
+	}
+	function clitDesc(s) {
 		return ({
 			'0': 'normal',
 			'1': 'large',
@@ -493,8 +506,8 @@ App.UI.editGenetics = function() {
 			'4': 'penis-like',
 			'5': 'like a massive penis'
 		}[s] || 'unknown') + ' (' + Number(s) + ')';
-	};
-	tmpl.penisDesc = function(s) {
+	}
+	function penisDesc(s) {
 		return ({
 			'0': 'none',
 			'1': 'tiny',
@@ -509,8 +522,8 @@ App.UI.editGenetics = function() {
 			'10': 'inhuman',
 			'11': 'hypertrophied'
 		}[s] || 'unknown') + ' (' + Number(s) + ')';
-	};
-	tmpl.testesDesc = function(s) {
+	}
+	function testesDesc(s) {
 		return ({
 			'0': 'none',
 			'1': 'vestigial',
@@ -521,15 +534,8 @@ App.UI.editGenetics = function() {
 			'6': 'enormous',
 			'7': 'hypertrophied', '8': 'hypertrophied', '9': 'hypertrophied', '10': 'hypertrophied'
 		}[s] || 'unknown') + ' (' + Number(s) + ')';
-	};
-	tmpl.hormonalCat = new Categorizer(
-		[-Infinity, 'heavy male'],
-		[-49, 'male'],
-		[-24, 'natural'],
-		[25, 'female'],
-		[50, 'heavy female']
-	);
-	tmpl.chemicalsDesc = function(slave) {
+	}
+	function chemicalsDesc(slave) {
 		let res = [];
 		if (slave.chem > 0) {
 			res.push('Immune system damaged (' + slave.chem.toFixed(0) + ').');
@@ -538,17 +544,8 @@ App.UI.editGenetics = function() {
 			res.push('Addicted to aphrodisiacs (' + slave.addict.toFixed(0) + ').');
 		}
 		return res.join(' ');
-	};
-	tmpl.intelligenceCat = new Categorizer(
-		[-Infinity, 'borderline retarded'],
-		[-95, 'very slow'],
-		[-50, 'slow'],
-		[-15, 'average'],
-		[16, 'smart'],
-		[51, 'very smart'],
-		[96, 'brilliant']
-	);
-	tmpl.parentFullName = function(id) {
+	}
+	function parentFullName(id) {
 		if (id === 0) {
 			return App.UI.DOM.makeElement("span", "unknown", "note");
 		}
@@ -566,7 +563,7 @@ App.UI.editGenetics = function() {
 					`(${id})`
 				]);
 		}
-	};
+	}
 
 	let outerDiv = App.UI.DOM.appendNewElement("div", node);
 	outerDiv.style.position = "relative";
diff --git a/src/pregmod/surrogacy.js b/src/pregmod/surrogacy.js
index 09cd48c1d62079d8d77fc9e0b7e4be6ecff61dfe..42a9ccf38cf8b43d11b62cd14bc6b14ddd551353 100644
--- a/src/pregmod/surrogacy.js
+++ b/src/pregmod/surrogacy.js
@@ -89,16 +89,16 @@ App.UI.surrogacy = function() {
 		case "transplant":
 			if (receptrix.ID === -1) {
 				r.push(`Since the surgery required only a local anesthetic, you are very aware that you are now carrying ${slave.slaveName}'s child. You slowly rise to your feet, a hand to your lower belly, appreciating the new life growing within you.`);
-				const _fetus = WombRemoveFetus(slave, wombIndex);
-				WombAddFetus(V.PC, _fetus);
+				const fetus = WombRemoveFetus(slave, wombIndex);
+				WombAddFetus(V.PC, fetus);
 				V.PC.pregKnown = 1;
 				V.PC.preg = WombMaxPreg(V.PC);
 				slave.preg = WombMaxPreg(slave);
 				WombNormalizePreg(V.PC);
 				WombNormalizePreg(slave);
 			} else {
-				const _fetus = WombRemoveFetus(donatrix, wombIndex);
-				WombAddFetus(receptrix, _fetus);
+				const fetus = WombRemoveFetus(donatrix, wombIndex);
+				WombAddFetus(receptrix, fetus);
 				receptrix.pregKnown = 1;
 				receptrix.preg = WombMaxPreg(receptrix);
 				donatrix.preg = WombMaxPreg(donatrix);
diff --git a/src/pregmod/theBlackMarket.js b/src/pregmod/theBlackMarket.js
index 991d8858222b95f927e0d4cb42666ab37266b743..d4df76636385aa4839fea677ce58f2e4bcc775f8 100644
--- a/src/pregmod/theBlackMarket.js
+++ b/src/pregmod/theBlackMarket.js
@@ -42,10 +42,10 @@ App.UI.theBlackMarket = function() {
 		//<br><br>
 		r.push(`A convoy of scientists from the banned wetware CPU project are present and selling their leftover wares.`);
 		//[[Browse CPUs|Slave Markets][V.market.slaveMarket = "wetware", V.slavesSeen += 1]] |
-		if (V.cash > _minimumFive) {
+		if (V.cash > minimumFive) {
 			//[[(x5)|Bulk Slave Intro][V.market.slaveMarket = "wetware", V.market.introType = "bulk", V.market.numSlaves = 5]] |
 		}
-		if (V.cash > _minimumTen) {
+		if (V.cash > minimumTen) {
 			//[[(x10)|Bulk Slave Intro][V.market.slaveMarket = "wetware", V.market.introType = "bulk", V.market.numSlaves = 10]] |
 		}
 	}
@@ -138,7 +138,7 @@ App.UI.theBlackMarket = function() {
 									`${(cashFormat(implantCash))}.`
 								));
 							} else {
-								r.push(`You cannot afford the asking price of <span class="cash dec">${(cashFormat(implantCash))}</span> for absurdly huge implant designs. "No big fake boobs for you. How sad it must be to be flat and enslaved by such a poor${(V.PC.title === 1) ? "Master" : "Mistress"}."`);
+								r.push(`You cannot afford the asking price of <span class="cash dec">${(cashFormat(implantCash))}</span> for absurdly huge implant designs. "No big fake boobs for you. How sad it must be to be flat and enslaved by such a poor ${(V.PC.title === 1) ? "Master" : "Mistress"}."`);
 							}
 						} else {
 							r.push(`You lack the facilities needed to produce implants of this caliber, so absurdly huge implant designs are currently unobtainable.`);
@@ -328,7 +328,7 @@ App.UI.theBlackMarket = function() {
 								r.push(`You lack the facilities required to produce complex gene-altering treatments.`);
 							} else {
 								if (V.arcologies[0].childhoodFertilityInducedNCSResearch === 0) {
-									const _match = (V.arcologies[0].FSYouthPreferentialist > 0) ? "Knowing your arcology, I think you could be happy with the results!" : "I'm not sure this is a good match for your arcology's current society at this moment, but I'm sure you could have fun with it.";
+									const match = (V.arcologies[0].FSYouthPreferentialist > 0) ? "Knowing your arcology, I think you could be happy with the results!" : "I'm not sure this is a good match for your arcology's current society at this moment, but I'm sure you could have fun with it.";
 									if (V.pedo_mode) {
 										r.push(
 											`"If you like sexy little toy dolls, I mean biological`,
@@ -336,7 +336,7 @@ App.UI.theBlackMarket = function() {
 											`or`,
 											App.UI.DOM.makeElement("span", "shotas", ["coral", "bold"]),
 											`for life, then this is the one for you. I picked it up from an exotics dealer, who picked it up from some old world government research center.`,
-											_match,
+											match,
 											`Remember, though, no money back on this. Technology like this doesn't exist anywhere else, your younger slaves will stay that way forever, and your older ones will slowly begin to regress towards that nice mid-childhood state. If you want to build yourself a cadre of`,
 											App.UI.DOM.makeElement("span", "preteen", ["coral", "bold"]),
 											`delights for yourself or your customers, then buy now!"`
@@ -344,7 +344,7 @@ App.UI.theBlackMarket = function() {
 									} else {
 										r.push(
 											`"This might be a little too shady or perverted for you. But, if you want your slaves to last longer, you know, look younger for longer, well this treatment can help. However it comes at a price, this treatment will eventually turn your slave girls younger and younger looking, until the point you might not want to use them as sex slaves because they'll appear as teenagers or even younger. I'm serious, your slaves treated with this treatment will eventually look like children! They won't be, really, but this is no fountain of perpetual youth, and to be fair, maybe none of this will be up your alley. If that's the case, I guess you could just sell them once they get too young looking, and possibly for a higher price than if they looked older. It's, at best, for possibly more discerning or eclectic tastes then you might have. I picked it up from an exotics dealer, who picked it up from some old world government research center.`,
-											_match,
+											match,
 											`Remember, though, no money back on this. Technology like this doesn't exist anywhere else, your treated slaves will stay and become younger looking forever, and your older ones will slowly begin to regress towards a disturbingly young mid-childhood state. All those caveats aside, if this sounds like something you'd want, then buy now!"`
 										);
 									}
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index ade5731cee2a9c3c171a9cf8e12eb5afb29d0144..6a9948349a692f272a546c4f653f5c5665a5ab0a 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -56,15 +56,10 @@
 "fucktoy tribbing",
 "gaped asshole",
 "happy dance",
-"heavy piercing",
 "huge naturals",
-"huge tits",
 "hugely pregnant",
-"ignorant horny",
 "implant inspection",
-"mods please",
 "orchiectomy please",
-"restricted profession",
 "sexy succubus",
 "shaped areolae",
 "shift masturbation",
@@ -79,10 +74,7 @@
 "tittymonster inspection",
 "torpedo squeeze",
 "transition anxiety",
-"trusting HG",
-"unhappy virgin",
-"used whore",
-"vocal disobedience"].includes($RESSevent)>>
+"unhappy virgin"].includes($RESSevent)>>
 	<<set $activeSlave.clothes = "no clothing">>
 <</if>>
 
@@ -109,31 +101,6 @@
 
 <<switch $RESSevent>>
 
-<<case "first period">>
-
-<<= App.UI.slaveDescriptionDialog($activeSlave)>> appears in the door of your office, uncertain if $he should disturb you. $He stumbles through the doorway, hands on $his <<if $activeSlave.weight >= 95>>fat belly<<elseif $activeSlave.belly >= 2000>>bloated belly<<elseif $activeSlave.weight >= 30>>chubby belly<<else>>flat belly<</if>>, before stepping forward to stand in front of your desk. $His chest is rising and falling with panicked hyperventilation. The poor $girl is terrified for some reason.
-<br><br>
-You press $him on why $he is acting this way.
-<<if !canTalk($activeSlave)>>
-	$He uses gestures to point to $his stomach, and explains that $he is feeling an unusual pain.
-<<else>>
-	"My belly, <<Master>>," $he <<say>>s apologetically. "It hurt<<s>> and I don't know why. It ju<<s>>t <<s>>tarted re<<c>>ently."
-<</if>>
-You check $his records and discover $he has very likely just become a woman.
-<<set $activeSlave.pubertyXX = 1>>
-
-<<case "wet dreams">>
-
-<<= App.UI.slaveDescriptionDialog($activeSlave)>> appears in the door of your office early in the morning, hesitating before stepping in. You question why $he has come to see you and $he gingerly approaches your desk.
-<br><br>
-<<if !canTalk($activeSlave)>>
-	$He uses gestures to point to $his crotch, and explains that $he has accidentally started wetting $his bed.
-<<else>>
-	"I'm <<s>>orry, <<Master>>," $he <<say>>s apologetically. "I keep wetting my bed at night, and it feel<<s>> <<s>>o good too."
-<</if>>
-You check $his records for any potential health issues that could be causing this annoyance when it dawns on you. $activeSlave.slaveName is likely becoming potent, and now is the perfect time to cement $his sexuality.
-<<set $activeSlave.pubertyXY = 1>>
-
 <<case "surprising wakeup">>
 
 You are awakened from a sound sleep by someone eagerly <<if $PC.dick != 0>>sucking your dick<<else>>eating you out<</if>>. Your slaves know better than to disturb you, let alone take the initiative, but you are shocked when you pull back the sheets and reveal the smiling <<= App.UI.slaveDescriptionDialog($activeSlave)>>.
@@ -384,33 +351,6 @@ in the middle of the room with the machines all around $him. $He has <<if canDoV
 <br><br>
 The source of the many-voiced personal assistant becomes clear: probably on the incorrigible $activeSlave.slaveName's request, your sultry personal assistant is voicing each and every one of the machines. When the nymphomaniac masturbator tries to smile <<if hasAnyArms($activeSlave)>> and wave<</if>>, there's an absolute chorus of "Back to work, slut", "Smile less, suck more", "Take it, bitch", et cetera. Yet another instance of $assistant.name chuckles in your ear. "Care to join in, <<= properTitle()>>? I'm sure we can find room somewhere."
 
-<<case "vocal disobedience">>
-
-One morning, despite the fact that $he is not allowed to speak without being spoken to, <<= App.UI.slaveDescriptionDialog($activeSlave)>> <<if canSee($activeSlave)>>looks you directly in the eye<<else>>faces you<</if>> and asks
-<<if SlaveStatsChecker.checkForLisp($activeSlave)>>
-	boldly through $his
-	<<if ($activeSlave.lips > 70)>>
-		massive dick-sucking lips,
-	<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>
-		inconvenient oral piercings,
-	<<else>>
-		lisp,
-	<</if>>
-	"I'm tired, can I have the day off?" $He didn't even call you <<= getWrittenTitle($activeSlave)>>.
-<<else>>
-	boldly, "I'm tired, can I have the day off, <<if $activeSlave.rudeTitle == 1>><<= PoliteRudeTitle($activeSlave)>><<else>><<Master>><</if>>?"
-<</if>>
-
-<<case "fearful humiliation">>
-
-<<= App.UI.slaveDescriptionDialog($activeSlave)>> generally obeys orders, even if $he isn't yet a truly devoted sex slave. $He blushes furiously when given any sexual command, but $his true feelings about humiliation become clear when $he is ordered to serve in front of others, even other slaves. It sometimes seems the number of people watching $him get fondled, used, or fucked directly reduces the distance between $him and $his next blushing or even sobbing orgasm.
-
-<<case "heavy piercing">>
-
-<<= App.UI.slaveDescriptionDialog($activeSlave)>>'s intimate areas are heavily pierced. This is great; it draws attention to $his holes and makes $him look like the sex slave $he is. However, it does necessitate some extra maintenance. It's the end of the day, and $activeSlave.slaveName is in a bathroom <<if canSee($activeSlave)>>carefully checking each of $his piercings<<else>>meticulously cleaning each of $his piercings<</if>>. Many of them come in contact with fluids on a regular basis, so $he cleans them conscientiously.
-<br><br>
-As you watch $him, it occurs to you that since $activeSlave.slaveName isn't fully devoted to you yet, there's all manner of inventive ways you could have a little fun and increase $his submission to you at the same time.
-
 <<case "age implant">>
 
 In the morning the penthouse is a busy bustle of female energy. Slaves get up promptly, eat, shower, dress themselves, and head out to work. They chatter if able and allowed, and draw a good deal of strength from each other. As you pass by the kitchen, you are narrowly avoided by a rush of slaves heading to the showers. They're almost bouncing, feeding off each others' youthful energy. At the back of the pack is <<= App.UI.slaveDescriptionDialog($activeSlave)>>. $He looks as young as any of them, but after they're out, $he leans against the door frame for a moment and exhales slowly.
@@ -588,257 +528,6 @@ there. $His nipples are <<if $activeSlave.nipples != "fuckable">>hard<<else>>swo
 <</if>>
 tits dominate $his figure, but the real attention getter are $his unique, <<= $activeSlave.areolaeShape>>-shaped areolae. The darker flesh around $his nipples would be — should be — circular in any other $woman, and the cute $activeSlave.areolaeShape shapes around $activeSlave.slaveName's nipples are proof of just how much you've modified $him. $He's devoted to you, so much so that $he loves showing off $his special assets.
 
-<<case "huge tits">>
-
-There is a horrible crash from the shower. You rush in to see <<= App.UI.slaveDescriptionDialog($activeSlave)>> face-down and covered in soap. $He's uninjured, but $his tits are so huge that, soapy as $he is, $he can't seem to stand again. $His udders have $him pinned to the ground with $his legs sticking out of the shower. $He pleads
-<<if ($activeSlave.lips > 70)>>
-	through $his huge lips,
-<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>
-	through $his piercings,
-<<else>>
-	piteously,
-<</if>>
-"Help me, <<Master>>!"
-
-<<case "trusting HG">>
-
-<<= App.UI.slaveDescriptionDialog($activeSlave)>> is a busy $girl. Your Head Girl is heading for bed, but $he's not done with the day's work just yet. $He walks into your office with a pensive look on $his face, using a tablet to fiddle with slaves' schedules for tomorrow. Since $he was about to retire, $he's nude: you can't help but notice, in the dimmed light of nighttime in your penthouse, the way the low glow of the tablet
-<<if ($activeSlave.boobs > 5000)>>
-	falls across the tops of $his absurd boobs, since $he's forced to hold it on top of them to use it.
-<<elseif ($activeSlave.belly >= 10000)>>
-	falls across the top of $his <<print _belly>>, tautly <<if $activeSlave.belly >= 3000>>pregnant<<else>>swollen<</if>> belly.
-<<elseif !($activeSlave.chastityPenis) && canAchieveErection($activeSlave)>>
-	<<if ($activeSlave.dick > 4)>>
-		makes $his perpetual, formidable erection cast a shadow.
-	<<elseif ($activeSlave.dick > 2)>>
-		catches the head of $his stiffly erect dick.
-	<<else>>
-		highlights $his stiff little girldick.
-	<</if>>
-<<elseif ($activeSlave.nipples == "huge")>>
-	throws a shadow off each of $his massive nipples and down the lower halves of $his boobs.
-<<elseif ($activeSlave.belly >= 1500)>>
-	makes $his rounded middle cast a shadow.
-<<elseif ($activeSlave.muscles > 95)>>
-	gives extra definition to $his glorious muscles.
-<<elseif ($activeSlave.weight > 95)>>
-	highlights $his soft belly.
-<<elseif ($activeSlave.dick > 0)>>
-	rests on the base of $his soft cock.
-<<elseif ($activeSlave.weight > 10)>>
-	flatters $his soft body.
-<<else>>
-	flatters $him.
-<</if>>
-<br><br>
-$He did not expect to find you here, and is so preoccupied that $he doesn't notice you right away. When $he does, $he smiles. "Good evening,
-<<if $HGFormality == 1>>
-	<<Master>>,"
-	$he murmurs properly, and keeps working. Only a slight blush, barely detectable in the low light, betrays $his consternation at not greeting you immediately.
-<<elseif $activeSlave.trust > 95>>
-	<<if def $PC.customTitle>>
-		<<if SlaveStatsChecker.checkForLisp($activeSlave)>>
-			$PC.customTitleLisp,"
-		<<else>>
-			$PC.customTitle,"
-		<</if>>
-	<<elseif $PC.title != 0>>
-		<<S>>ir,"
-	<<else>>
-		Ma'am,"
-	<</if>>
-	$he murmurs. Even in the dim light, you perceive a slight blush of pleasure from $him as $he savors the status of being allowed to call you that. $He goes back to working with a little smile still playing across $his lips.
-<<else>>
-	um,
-	<<if def $PC.customTitle>>
-		<<if SlaveStatsChecker.checkForLisp($activeSlave)>>
-			$PC.customTitleLisp,"
-		<<else>>
-			$PC.customTitle,"
-		<</if>>
-	<<elseif $PC.title != 0>>
-		<<S>>-<<s>>ir,"
-	<<else>>
-		M-ma'am,"
-	<</if>>
-	$he stammers hesitantly. $He isn't comfortable with your permission to be less formal in private, and blushes furiously at $his awkwardness. $He takes refuge in $his tablet.
-<</if>>
-
-<<case "ignorant horny">>
-
-<<= App.UI.slaveDescriptionDialog($activeSlave)>> is first on the inspection schedule, and as you watch $him enter your office, you note several good signs about $his progress towards becoming a good sex slave. $He enters obediently, without pretending to be thrilled to be here, but also without hesitation. Best of all,
-<<if ($activeSlave.chastityPenis) && canAchieveErection($activeSlave)>>
-	$he's squirming with discomfort over the lack of room in $his chastity.
-<<elseif ($activeSlave.dick > 4) && canAchieveErection($activeSlave)>>
-	$he's sporting a massive half-erection which slaps lewdly against $his thighs as $he walks.
-<<elseif ($activeSlave.dick > 2) && canAchieveErection($activeSlave)>>
-	$his dick is half-erect, bobbing lewdly as $he walks.
-<<elseif ($activeSlave.dick > 0) && canAchieveErection($activeSlave)>>
-	$his pathetic little bitch dick is half-erect.
-<<elseif ($activeSlave.dick > 6)>>
-	$his enormous dick is slightly engorged and dripping precum.
-<<elseif ($activeSlave.dick > 0)>>
-	$his soft bitch dick is dripping precum.
-<<elseif ($activeSlave.labia > 1)>>
-	$his lovely pussylips are flushed and wet.
-<<elseif ($activeSlave.clit > 1)>>
-	$his glorious bitch button is stiffly erect.
-<<elseif ($activeSlave.vagina == -1)>>
-	$he's unconsciously sticking $his ass out. Getting fucked there is $his main sexual outlet, now that $he lacks genitals.
-<<else>>
-	$his pussy is flushed and moist.
-<</if>>
-<br><br>
-<<if ($activeSlave.aphrodisiacs > 0) || $activeSlave.inflationType == "aphrodisiac">>
-	The aphrodisiacs racing through $his system have $him desperate to get off, right now.
-<<elseif ($activeSlave.clitPiercing == 3) && ($activeSlave.clitSetting != "none")>>
-	$His <<if $activeSlave.vagina > -1>>clit<<else>>frenulum<</if>> piercing is keeping $his arousal exquisitely balanced for $his inspection.
-<<else>>
-	The mild aphrodisiacs in the slave food have clearly built up some arousal that $he hasn't been able to address recently.
-<</if>>
-$He hasn't been with you long; it's been a mere <<print $week-$activeSlave.weekAcquired>> weeks since $he became your slave. $He may not be fully cognizant of how $his libido is being altered. New slaves aren't informed of the true extent of your abilities to force sexual need. It can be useful for a new $girl to wonder if some of the horniness $he feels is natural, and suspect that $he's nothing but a dirty slut who deserves to be a sex slave.
-
-<<case "cage relief">>
-
-You come face to face with <<= App.UI.slaveDescriptionDialog($activeSlave)>> in a hallway of your penthouse, entirely by happenstance. <<if canSee($activeSlave)>>$His <<= App.Desc.eyesColor($activeSlave)>> lock with yours, and $he stares at you dumbly for a long moment<<else>>Once $he regains $his footing after bumping into you, $he gazes towards you dumbly for a long moment<</if>>. Then $he squares $his <<if $activeSlave.shoulders > 0>>broad<<elseif $activeSlave.shoulders < 0>>pretty<<else>>feminine<</if>> shoulders and bites $his lower lip, obviously doing $his best to think quickly. Right when you're about to reprimand $him for not greeting you properly, $he surprises you by throwing $himself abjectly on the ground in front of you<<if $activeSlave.belly >= 10000>>, $his rear forced into the air by $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnant<<else>>distended<</if>> belly<</if>>.
-<br><br>
-<<if !canTalk($activeSlave)>>
-	$He uses gestures to apologize for $his rudeness, and then gets to $his knee<<if hasBothLegs($activeSlave)>>s<</if>> so $he can use $his hand<<if hasBothArms($activeSlave)>>s<</if>> to gesture more clearly. $His <<if hasBothArms($activeSlave)>>hands are<<else>>hand is<</if>> shaky as $he begs, making two false starts before unmistakably gesturing to ask you to cut $his balls off. Once $he <<if canSee($activeSlave)>>sees<<else>>figures<</if>> that you understand, $he begins to cry openly. $He gestures that $he can barely get off wearing $his chastity cage, that it hurts when $he does, and that $he's constantly oppressed by the need for release. $He thinks that it would be easier to be soft all the time, so $he could climax without discomfort. $He begs hard, and promises to be a good little bitch.
-<<else>>
-	"Plea<<s>>e, <<Master>>," the prostrate slave <<say>>s shakily, sounding like $he's on the verge of tears. "P-plea<<s>>e cut my ball<<s>> off." <<if canHear($activeSlave)>>Hearing $himself <<say>> it, $he<<else>>$He<</if>> begins to cry openly. "I c-can't t-take it anymore. I can b-barely get off wearing thi<<s>> cage on my dick, and when I d-do, it h-hurt<<s>>," $he sobs. "I need to g-g-get off <<s>>-<<s>>o bad. Plea<<s>>e, plea<<s>>e, if I were <<s>>oft all the time, I wouldn't get hard, <<s>>o I could come wh-whenever." $He <<if canSee($activeSlave)>>looks up at<<else>>angles $his head towards you<</if>> you in supplication, tears streaking $his face. "Plea<<s>>e, <<Master>>! I'll be <<s>>-<<s>>uch a good little bitch, I promi<<s>>e!"
-<</if>>
-
-<<case "used whore">>
-
-<<if SlaveStatsChecker.checkForLisp($activeSlave)>>
-	<<set _slavename = lispReplace($activeSlave.slaveName)>>
-<<else>>
-	<<set _slavename = $activeSlave.slaveName>>
-<</if>>
-
-At the end of a long day, you take a moment to watch the comings and goings of your arcology to decompress. While doing so, you notice someone who's clearly had a longer day than you. <<= App.UI.slaveDescriptionDialog($activeSlave)>> is <<if $activeSlave.belly >= 5000>>slowly waddling, one hand under $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnant <</if>>belly and the other on the small of $his back,<<else>>making<</if>> $his tired way back to the kitchen for a meal and then bed after a long day of sex work. $He's stripped off $his soiled clothes already, and is clearly too tired to care about nudity at all.
-<br><br>
-$He comes around the corner and
-<<if ($PC.belly >= 100000)>>
-	slams into your massively distended belly, nearly knocking you over.
-<<elseif ($PC.belly >= 10000)>>
-	bumps into your heavily gravid middle.
-<<elseif ($PC.belly >= 5000)>>
-	bumps into your rounded middle.
-<<elseif ($PC.balls >= 14)>>
-	nearly knees your prominent testicles.
-<<elseif ($PC.boobs >= 800)>>
-	runs into your prominent rack.
-<<else>>
-	almost runs into you.
-<</if>>
-$He stops and <<if canSee($activeSlave)>>stares<<else>>faces you<</if>>, struggling to find the appropriate thing to say or do, but too exhausted to manage it. Even though $he's been obediently cleaning $himself between fucks, $he looks used up. $His $activeSlave.skin skin is reddened here and there.
-<<if $activeSlave.belly >= 750000>>
-	$His _belly belly is heavily bruised, the super-stretched skin nearly at its limit from the weight put on it and the forces pushing against it.
-<<elseif $activeSlave.belly >= 600000>>
-	$His _belly belly is deep red and heavily bruised; it's clear that at least one client roughly fucked $him over it.
-<<elseif $activeSlave.belly >= 450000>>
-	$His _belly belly looks extremely painful, it's obvious $he got fucked over it.
-<<elseif $activeSlave.belly >= 300000>>
-	$His _belly belly is black and blue, it's obvious $he got fucked over it.
-<<elseif $activeSlave.belly >= 150000>>
-	$His _belly belly is heavily chafed from rubbing the floor as $he struggled to keep $his weight off it.
-<<elseif $activeSlave.belly >= 100000>>
-	$His _belly belly is heavily chafed from rubbing against the floor.
-<<elseif $activeSlave.belly >= 10000>>
-	The tip of $his huge belly is chafed from rubbing against the floor.
-<</if>>
-<<if canDoVaginal($activeSlave)>> $His <<if ($activeSlave.labia > 1)>>generous<<else>>poor<</if>> pussylips are puffy, and you have no doubt $his vagina is quite sore.<</if>><<if canDoAnal($activeSlave)>> The awkward way $he's standing suggests that $his <<if ($activeSlave.anus > 2)>>gaping<<elseif ($activeSlave.anus > 1)>>big<<else>>tight<</if>> asshole has had more than one dick up it recently.<</if>>
-<<if $activeSlave.nipples != "fuckable">>
-	Even $his nipples are pinker than usual, having been cruelly pinched<<if $activeSlave.lactation > 0>> and milked<</if>>.
-	<<if $activeSlave.lactation > 0>>
-		<<set $activeSlave.lactationDuration = 2>>
-		<<set $activeSlave.boobs -= $activeSlave.boobsMilk, $activeSlave.boobsMilk = 0>>
-	<<else>>
-		<<= induceLactation($activeSlave, 2)>>
-	<</if>>
-<<else>>
-	Even $his nipples show signs of wear, having prolapsed slightly from heavy use.
-<</if>>
-
-<<case "restricted profession">>
-
-<<set _shoutitoutloud = $enunciate.title.toUpperCase()>>
-
-<<= App.UI.slaveDescriptionDialog($activeSlave)>> is <<if (!hasAnyLegs($activeSlave))>>sitting <<if (hasAnyArms($activeSlave))>>helplessly<<else>>limblessly<</if>><<elseif !canWalk($activeSlave)>>kneeling<<else>>standing<</if>> before your desk for $his regular inspection. $He is studiously observing the letter of the rule against speaking, and is doing $his best to make your inspection as efficient as possible. $His desire to please radiates off $him in almost palpable waves. $He obviously wants to communicate something to you, but can't do it without breaking the rules.
-
-<<case "mods please">>
-
-<<= App.UI.slaveDescriptionDialog($activeSlave)>> is such a good
-$desc
-that $he enjoys being inspected, even if the inspection doesn't immediately transition into sex. At the moment, $he's luxuriating under your gaze, eagerly offering the sight of every <<if $showInches == 2>>inch<<else>>centimeter<</if>> of $his nude body with you. $He is confident in $his appearance, and more than happy to share it.
-<br><br>
-<<if canSee($activeSlave)>>Seeing<<else>>Feeling<</if>> your intent gaze, $he
-<<if SlaveStatsChecker.checkForLisp($activeSlave)>>lisps<<else>>asks<</if>>, "<<Master>>, may I plea<<s>>e a<<s>>k you for <<s>>omething?"
-
-At your <<if canSee($activeSlave)>>nod<<else>>acknowledgment<</if>>, $he
-<<if ($activeSlave.fetish == "submissive") && ($activeSlave.fetishKnown == 1)>>
-	gives a submissive shudder, and turns to show you $his bare back.
-	"<<Master>>, may I have a cor<<s>>et pier<<c>>ing? I would love to feel more, um, bound. Tied up. Plea<<s>>e?"
-	$He awaits your answer coquettishly, <<if canSee($activeSlave)>>$his <<= App.Desc.eyesColor($activeSlave)>> huge<<else>>a look of begging on $his face<</if>>.
-<<elseif ($activeSlave.fetish == "cumslut") && ($activeSlave.fetishKnown == 1)>>
-	blows you a wet kiss.
-	"<<Master>>, may I have a tongue pier<<c>>ing? It would take my dick <<s>>ucking to the next level. Plea<<s>>e?"
-	$He sticks out $his tongue helpfully, leaving $his favorite fuckhole wide open so you can see down $his hungry throat.
-<<elseif ($activeSlave.fetish == "humiliation") && ($activeSlave.fetishKnown == 1)>>
-	blushes with humiliation.
-	"<<Master>>, may I have a t-tattoo? L-like, on my fa<<c>>e. A mean one. Plea<<s>>e?"
-	$He hangs $his head.
-<<elseif ($activeSlave.fetish == "buttslut") && ($activeSlave.fetishKnown == 1)>>
-	spins around to show off $his favorite fuckhole, bending over <<if $activeSlave.belly >= 5000>>as far as $he can with $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnant <</if>> belly in the way<<else>>farther than usual<</if>> to indicate the area between it and <<if $activeSlave.vagina > -1>>$his cunt<<elseif ($activeSlave.balls > 0) && ($activeSlave.scrotum > 0)>>$his ballsack<<elseif $activeSlave.dick == 0>>$his featurelessly smooth groin and its little cumhole<<else>>the base of $his soft bitchclit<</if>>.
-	"<<Master>>, may I have a pier<<c>>ing right here? Right below my butthole? It would keep me <<s>>o ready for a buttfuck. I mean, more than I already am. Plea<<s>>e?"
-	The shameless buttslut begins to wink $his asshole meaningfully.
-<<elseif ($activeSlave.fetish == "boobs") && ($activeSlave.fetishKnown == 1)>>
-	wiggles $his shoulders to give $his boobs some motion.
-	"<<Master>>, may I have <<s>>ome nipple pier<<c>>ings? It would be like having <<s>>omeone playing with my nipple<<s>>, but, like, all the time. Plea<<s>>e?"
-	$He starts to bounce flirtily.
-<<elseif ($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishKnown == 1)>>
-	blushes suddenly and hangs $his head.
-	<<if $activeSlave.belly >= 10001>>
-		"<<Master>>, may I have a pier<<c>>ing? Right here? A big one?" $He indicates $his popped navel. "I feel it like it would get my belly more attention, plu<<s>> I'd hate to not take advantage of my new outie. Plea<<s>>e?
-	<<else>>
-		"<<Master>>, may I have a tattoo? Right here?" $He indicates $his <<if $activeSlave.belly > 1500>>rounded belly<<else>>abdomen<</if>>. "I would love an adverti<<s>>ement that I want to be, um, filled up.<<if $activeSlave.pregKnown == 1>>Well, when I'm empty again.<</if>> Plea<<s>>e?"
-	<</if>>
-	$He <<if canSee($activeSlave)>>looks<<else>>gazes<</if>> at you hopefully.
-<<elseif ($activeSlave.fetish == "dom") && ($activeSlave.fetishKnown == 1)>>
-	tosses $his head, a <<if canSee($activeSlave)>>gleam in $his eye<<else>>devious look on $his face<</if>>.
-	"<<Master>>, may I have a tattoo? Right here?" $He indicates $his eyebrow, temple, and cheek. "It would be cool if other girl<<s>> <<s>>aw me and were all, 'I'm about to get fucked.' Plea<<s>>e?"
-	$He smiles at you hopefully.
-<<elseif ($activeSlave.fetish == "sadist") && ($activeSlave.fetishKnown == 1)>>
-	tosses $his head, a <<if canSee($activeSlave)>>gleam in $his eye<<else>>malicious look on $his face<</if>>.
-	<<if canAchieveErection($activeSlave)>>
-		"<<Master>>, may I have a <<sh>>aft pier<<c>>ing? If I get to <<s>>tick it in another girl, I'd love to <<if canSee($activeSlave)>><<s>>ee her fa<<c>>e<<else>>feel her <<sh>>udder<</if>> when that extra little bit of metal <<s>>lide<<s>> in<<s>>ide $him. Plea<<s>>e?"
-	<<elseif $activeSlave.dick > 0>>
-		"<<Master>>, may I have a tongue pier<<c>>ing? If I get to eat another girl out, I'd love to li<<s>>ten to her <<s>>queal when that little bit of metal <<s>>crape<<s>> again<<s>>t her. Plea<<s>>e? Plea<<s>>e?"
-	<<else>>
-		"<<Master>>, may I have a labia pier<<c>>ing? If I get to trib another girl, I'd love to <<if canSee($activeSlave)>><<s>>ee her fa<<c>>e<<else>>feel her <<sh>>udder<</if>> when that little bit of metal grind<<s>> again<<s>>t her. Plea<<s>>e?"
-	<</if>>
-	$He shudders at the thought, <<if canSee($activeSlave)>>looking<<else>>gazing<</if>> at you hopefully.
-<<elseif ($activeSlave.fetish == "masochist") && ($activeSlave.fetishKnown == 1)>>
-	bites $his lower lip, looking aroused.
-	<<if $activeSlave.dick > 0>>
-		"<<Master>>, may I have a dick pier<<c>>ing? Right th-through my cock. Oh f-fuck it would hurt. Plea<<s>>e?"
-	<<else>>
-		"<<Master>>, may I have a pu<<ss>>y pier<<c>>ing? Right th-through me. Oh f-fuck it would hurt. Plea<<s>>e?"
-	<</if>>
-	$He shivers at the thought, <<if canSee($activeSlave)>>looking<<else>>gazing<</if>> at you hopefully.
-<<else>>
-	bats $his eyes at you, and turns halfway to display $his boobs in profile.
-	"<<Master>>, may I have my nipple<<s>> pier<<c>>ed? It'<<s>> <<s>>illy and girly, but I gue<<ss>> — I gue<<ss>> I'd like <<s>>omething <<s>>illy and girly. Plea<<s>>e?"
-	$He blushes prettily and <<if canSee($activeSlave)>>looks<<else>>gazes<</if>> at you hopefully.
-<</if>>
-
-<<case "resistant anal virgin">>
-
-<<= App.UI.slaveDescriptionDialog($activeSlave)>> has never had anything significant up $his ass. Living in $arcologies[0].name, $he can't have missed that anal sex is a part of most slaves' lives. $He <<if canSee($activeSlave)>>witnesses<<elseif canHear($activeSlave)>>hears<<else>>thinks about<</if>> sodomy several times a day, at least.
-<br><br>
-Lately, you've noticed that $he reacts to these <<if canSee($activeSlave)>>sights<<elseif canHear($activeSlave)>>sounds<<else>>thoughts<</if>> with a well-concealed flash of apprehension. It seems $he's figured out that $he will probably be required to take it up $his little <<if $seeRace == 1>>$activeSlave.race <</if>>butt someday, and isn't enthusiastic about the prospect. You could probably exploit this.
-
 <<case "diet">>
 
 <<= App.UI.slaveDescriptionDialog($activeSlave)>> is on a diet, and $he needs it. That doesn't make it any easier for $him. Your slaves are not permitted time to waste over meals. They enter the simple kitchen, drink their allotted portion of slave food out of a cup, and get on with their duties.<<if $activeSlave.preg > $activeSlave.pregData.normalBirth/1.33>> Despite eating for <<if $activeSlave.pregType <= 1>>two<<elseif $activeSlave.pregType >= 10>>far too many<<else>><<= num($activeSlave.pregType + 1)>><</if>>, $his diet is still in full effect.<</if>> <<= capFirstChar($assistant.name)>> catches $activeSlave.slaveName, whose cup is always filled less than halfway, skulking around in the hope that one of the others will take $his eyes off $his cup, or even leave leftovers.
@@ -1735,262 +1424,6 @@ $He cranes $his neck, glancing over $his shoulder to give you a pleading look.
 
 <<switch $RESSevent>>
 
-<<case "first period">>
-
-<<link "Explain $he's just becoming a woman">>
-	<<replace "#result">>
-		You tell $him that $he is just undergoing $his first period, and that the pain $he is feeling is perfectly natural.
-		<<if !canTalk($activeSlave)>>
-			$He brings $his hands back to $his stomach, an elated look on $his face. $He makes a gesture resembling a rounded belly.
-		<<else>>
-			"I-I'm a woman now? <<Master>>, that m-mean<<s>>, I can get pregnant now." $He trails off.
-		<</if>>
-		Whether or not $he gets pregnant is for you to decide, but for now you tell $him what $he should expect to change, both in and to $his body. $activeSlave.slaveName @@.mediumaquamarine;appreciates@@ you taking the time to explain $his developing body.
-		<<set $activeSlave.trust += 5>>
-	<</replace>>
-<</link>>
-<<if ($PC.dick != 0) && ($activeSlave.eggType == "human")>>
-	<br><<link "Demonstrate what this means">>
-		<<replace "#result">>
-			You tell $him that $he is just becoming a woman, and to celebrate, you are going to put a child in $him.
-			<<if !canTalk($activeSlave)>>
-				$He gasps and rubs a hand across $his stomach.
-			<<else>>
-				"But I'm <<s>>till a child my<<s>>elf, <<Master>>, I can't get pregnant yet!"
-			<</if>>
-			You tell $him that prior to this week, that would have been true. However, now that $he has become fertile, it's time that $he learned what $his body was made for. You guide $him to the couch and tell $him to lie on $his back so that you may take $him. $He breaks down when $he feels your cock enter $his
-			<<if $activeSlave.vagina == 0>>
-				delightfully tight, virgin
-			<<elseif $activeSlave.vagina == 1>>
-				deliciously tight
-			<<elseif $activeSlave.vagina == 2>>
-				well experienced
-			<<else>>
-				fucked-out
-			<</if>>
-			cunt. $His new urges cause $him to reach up to hug $himself close to you,
-			<<if ($activeSlave.boobs < 600)>>
-				$his modest breasts let $him snuggle close to you, face-to-face, as you take $him.
-			<<elseif ($activeSlave.boobs < 10000)>>
-				$his big tits form a soft cushion between you as you take $him.
-			<<else>>
-				$his massive tits stop $him from bringing $himself too close to you as you take $him.
-			<</if>>
-			$He enjoys $himself immensely, but $he loses it again when $he feels your seed in $him, realizing that $he will find $himself swelling with your child over the coming months. $He has become @@.hotpink;more submissive@@ to your will now that $his very first egg has been fertilized by $his <<= getWrittenTitle($activeSlave)>>.
-			<<set $activeSlave.devotion += 5, $activeSlave.preg = 1, $activeSlave.pregWeek = 1, $activeSlave.pregKnown = 1, $activeSlave.pregSource = -1>>
-			<<set $activeSlave.pregType = setPregType($activeSlave)>>
-			<<set WombImpregnate($activeSlave, $activeSlave.pregType, -1, 1)>>
-			<<= VCheck.Vaginal($activeSlave, 1)>>
-		<</replace>>
-	<</link>><<if ($activeSlave.vagina == 0)>> //This option will take $his virginity//<</if>>
-<</if>>
-<br><<link "Tell $him $he'll just be taking it up the ass more">>
-	<<replace "#result">>
-		In one swift motion, you pull out a chastity belt and lock it onto $him. $He gasps as $he feels it hug close to $his pussy. You explain that $he has just become a woman, and thus, will be taking it up the ass until you decide it's time for $him to become pregnant.
-		<<if !canTalk($activeSlave)>>
-			$He rubs a hand across $his stomach.
-		<<else>>
-			"You don't want me to get pregnant, <<Master>>?"
-		<</if>>
-		You bring $him over to the couch, set $him on your lap, and teasingly call $him a buttslut. Every so often you graze a finger around $his chastity belt, noting how much $his body wants you in $him, but you only make it the center of attention once the poor over-aroused slave
-		<<if !canTalk($activeSlave)>>
-			begins to use piteous gestures to beg you abjectly to penetrate $him.
-		<<else>>
-			<<say>>s, "I can't take it any more, <<Master>>! Plea<<s>>e fuck me pregnant!"
-		<</if>>
-		You snicker, but remind $him that no matter how much $he wants to be knocked up, $his belt will direct all the dicks $he takes into $his rear. You line up and insert your <<if ($PC.dick == 0)>>strap-on<<else>>cock<</if>> with $his ass and begin fucking $him, all the while reminding $him that $he will not be getting pregnant. When $he finally orgasms, <<if ($PC.dick == 0)>>$his unabashed enjoyment<<else>>the strength of $his spasming sphincter<</if>> sends you over as well. $He's left in a confused haze; $his body tells $him to get pregnant, but you tell $him to take it anally. $He @@.hotpink;sides with your decision@@ and vows to be an anal whore for you. <<if $activeSlave.fetish == "none">>@@.coral;Overcoming $his urges to become a mother via anal causes $him to become a buttslut.@@<<set $activeSlave.fetish = "buttslut", $activeSlave.fetishStrength = 10>><</if>>
-		<<set $activeSlave.devotion += 5, $activeSlave.chastityVagina = 1>>
-		<<= VCheck.Anal($activeSlave, 1)>>
-	<</replace>>
-<</link>><<if ($activeSlave.anus == 0)>> //This option will take $his virginity//<</if>>
-
-<<case "wet dreams">>
-
-<<link "Explain $he's just growing up">>
-	<<replace "#result">>
-		You tell $him that $his body is preparing to be able to impregnate girls, and that what happens at night happens to all boys. Though as a slave, $he should consider $himself lucky to be allowed to keep $his male genitalia.
-		<<if !canTalk($activeSlave)>>
-			$He brings $his hands to $his growing erection, a bubble of precum forming on its tip. $He fondles $himself as $he ponders $his new potency.
-		<<else>>
-			"I-I can get girl<<s>> pregnant now? <<Master>>, that m-mean<<s>> I'll have to be more careful." $He trails off.
-		<</if>>
-		You tell $him to keep $his dick in check or risk losing it, before continuing to read off the other various changes that will occur in $him. $activeSlave.slaveName @@.mediumaquamarine;appreciates@@ you taking the time to explain $his developing body.
-		<<set $activeSlave.trust += 5>>
-	<</replace>>
-<</link>>
-<br><<link "Teach $him $his place">>
-	<<if $PC.dick == 0>>
-			<<replace "#result">>
-			You tell $him that $he is just becoming a potent $woman, and as such, $he will need to learn that you are the dominant force in $his life.
-			<<if !canTalk($activeSlave)>>
-				$His expression shifts to confusion.
-			<<else>>
-				"What doe<<s>> that mean, <<Master>>?"
-			<</if>>
-			You quickly approach and catch $him, forcing $his <<if $activeSlave.belly >= 1500>><<if $activeSlave.bellyPreg >= 1500>>gravid <<else>>distended <</if>><</if>>body face-up onto the couch. $He <<if canSee($activeSlave)>>watches you carefully<<elseif canHear($activeSlave)>>listens to your movements<<else>>waits with trepidation<</if>> as you size up $his fully erect
-			<<if $activeSlave.dick == 1>>
-				tiny dick.
-			<<elseif $activeSlave.dick == 2>>
-				cute dick.
-			<<elseif $activeSlave.dick == 3>>
-				dick.
-			<<elseif $activeSlave.dick == 4>>
-				big dick.
-			<<elseif $activeSlave.dick == 5>>
-				impressive dick.
-			<<elseif $activeSlave.dick == 6>>
-				huge dick.
-			<<elseif $activeSlave.dick == 7>>
-				gigantic dick
-			<<elseif $activeSlave.dick == 8>>
-				titanic dick
-			<<elseif $activeSlave.dick == 9>>
-				absurd dick
-			<<elseif $activeSlave.dick == 10>>
-				inhuman dick
-			<<else>>
-				hypertrophied dick
-			<</if>>
-			You push $him back down as you straddle $his
-			<<if $activeSlave.belly >= 1500>>
-				_belly <<if $activeSlave.bellyPreg >= 1500>>pregnant <</if>>belly
-			<<elseif $activeSlave.boobs > 2000>>
-				huge tits
-			<<else>>
-				chest
-			<</if>>
-			planting your moistening pussy over the $girl's face. You lean forward, teasing $his twitching cock, as you grind against $his face. As $he begins to moan with lust, you quickly bind the base of $his penis, denying $his release. You grind your cunt into $his face, telling $him that YOU are the one who'll be orgasming here, not $him. Only once you have taught $him $his place by soaking $his face in your cum do you release $his dick and lean back to avoid the coming blast. Just undoing the binding is enough to set $him over the edge, coating $his <<if $activeSlave.bellyPreg >= 1500>>pregnancy<<else>>belly<</if>> in $his virile sperm. You turn around and order the exhausted $girl to clean $himself up and go back to $his assignment; $he @@.hotpink;complies meekly,@@ understanding that having a potent penis is meaningless in $his position.<<if $activeSlave.fetish == "none">>The next time $he walks past your office, you can't help notice the growing erection $he carries. @@.coral; Your dominating display has left $him craving domination.@@<<set $activeSlave.fetish = "submissive", $activeSlave.fetishStrength = 10>><</if>>
-			<<set $activeSlave.devotion += 5>>
-		<</replace>>
-	<<else>>
-		<<replace "#result">>
-			You tell $him that $he is just becoming a potent $woman, and as such, $he will need to learn that you are the dominant force in $his life.
-			<<if !canTalk($activeSlave)>>
-				$His expression shifts to confusion.
-			<<else>>
-				"What doe<<s>> that mean, <<Master>>?"
-			<</if>>
-			You quickly approach and catch $him, forcing $his <<if $activeSlave.belly >= 1500>><<if $activeSlave.bellyPreg >= 1500>>gravid <<else>>distended <</if>><</if>>body face-down onto the couch<<if $activeSlave.belly >= 100000>> as best you can<</if>>. $He <<if canSee($activeSlave)>>watches you carefully<<else>>listens to your movements<</if>> as you size up $his fully erect
-			<<if $activeSlave.dick == 1>>
-				tiny dick.
-			<<elseif $activeSlave.dick == 2>>
-				cute dick.
-			<<elseif $activeSlave.dick == 3>>
-				dick.
-			<<elseif $activeSlave.dick == 4>>
-				big dick.
-			<<elseif $activeSlave.dick == 5>>
-				impressive dick.
-			<<elseif $activeSlave.dick == 6>>
-				huge dick.
-			<<elseif $activeSlave.dick == 7>>
-				gigantic dick
-			<<elseif $activeSlave.dick == 8>>
-				titanic dick
-			<<elseif $activeSlave.dick == 9>>
-				absurd dick
-			<<elseif $activeSlave.dick == 10>>
-				inhuman dick
-			<<else>>
-				hypertrophied dick
-			<</if>>
-			You push $his face into the cushions as you mount $his
-			<<if $activeSlave.butt > 6>>
-				ridiculous
-			<<elseif $activeSlave.butt > 5>>
-				gigantic
-			<<elseif $activeSlave.butt > 4>>
-				enormous
-			<<elseif $activeSlave.butt > 3>>
-				huge
-			<<elseif $activeSlave.butt > 2>>
-				big
-			<<elseif $activeSlave.butt > 1>>
-				plump
-			<<elseif $activeSlave.butt > 0>>
-				small
-			<<else>>
-				flat
-			<</if>>
-			butt, sinking your cock deep into $his <<if $activeSlave.anus == 0>>virgin<</if>> asspussy. You lean forward, running your hands across $his nipples<<if $activeSlave.belly >= 5000>> and _belly <<if $activeSlave.belly >= 3000>>pregnant <</if>>belly<</if>> as you move to tease $his stiff prick. Between your dick in $his ass and your hand on $his cock, $he rapidly approaches $his peak. Quickly, you bind the base of $his penis, denying $his release and eliciting a long moan from the pent-up $girl. You begin thrusting hard, telling $him that YOU are the one who'll be orgasming here, not $him. Only once you have taught $him $his place by filling $his asspussy with your cum do you allow $his release. Just undoing the binding is enough to set $him over the edge, coating the cushions<<if $activeSlave.belly >= 5000>> and the bottom of $his _belly <<if $activeSlave.belly >= 3000>>pregnant <</if>>belly<</if>> in $his virile sperm. You dismount and order the exhausted $girl to clean $himself and the couch up before going back to $his assignment; $he @@.hotpink;complies meekly,@@ understanding that having a potent penis is meaningless in $his position.<<if $activeSlave.fetish == "none">>The next time $he walks past your office, you can't help notice the growing erection $he carries. @@.coral;Your dominating display has left $him craving domination.@@<<set $activeSlave.fetish = "submissive", $activeSlave.fetishStrength = 10>><</if>>
-			<<set $activeSlave.devotion += 5>>
-		<</replace>>
-	<</if>>
-<</link>><<if ($activeSlave.anus == 0) && ($PC.dick != 0)>> //This option will take $his anal virginity//<</if>>
-<<if $PC.vagina > 0>>
-	<br><<link "Let me teach you how to use it">>
-		<<replace "#result">>
-			You tell $him that $he is just becoming a potent $woman, and as such, $he will need to learn how to please $his partners.
-			<<if !canTalk($activeSlave)>>
-				$His expression shifts to confusion.
-			<<else>>
-				"What'<<s>> that mean, <<Master>>?"
-			<</if>>
-			You quickly approach and catch $him, forcing $his <<if $activeSlave.belly >= 1500>><<if $activeSlave.bellyPreg >= 1500>>gravid <<else>>distended <</if>><</if>>body face-up onto the couch. $He <<if canSee($activeSlave)>>watches you carefully<<elseif canHear($activeSlave)>>listens to your movements<<else>>waits with trepidation<</if>> as you size up $his fully erect
-			<<if $activeSlave.dick == 1>>
-				tiny dick.
-			<<elseif $activeSlave.dick == 2>>
-				cute dick.
-			<<elseif $activeSlave.dick == 3>>
-				dick.
-			<<elseif $activeSlave.dick == 4>>
-				big dick.
-			<<elseif $activeSlave.dick == 5>>
-				impressive dick.
-			<<elseif $activeSlave.dick == 6>>
-				huge dick.
-			<<elseif $activeSlave.dick == 7>>
-				gigantic dick
-			<<elseif $activeSlave.dick == 8>>
-				titanic dick
-			<<elseif $activeSlave.dick == 9>>
-				absurd dick
-			<<elseif $activeSlave.dick == 10>>
-				inhuman dick
-			<<else>>
-				hypertrophied dick
-			<</if>>
-			You push $him back down as you straddle $his cock, lining it up before lowering <<if $PC.belly >= 1500>>your pregnant body until $he delightfully penetrates you<<else>>yourself onto $his needy prick<</if>>. You slowly ride $his dick, instructing $him the proper way to thrust into you and how to adequately support your weight. Once $he gets the hand of things, you dismount and lie down on the couch, legs spread, beckoning $him into you. $He gingerly inserts $his cock<<if $activeSlave.belly >= 100000>> while you do your best to manage $his _belly stomach<</if>> and begins thrusting, slowly at first, before getting the hang of things and speeding up<<if $PC.dick != 0>>, your own neglected dick bobbing along to $his thrusts<</if>>. As soon as you feel $his beginning to tense you <<if $PC.pregKnown == 1>>tell $him it's safe to cum in you, you're already pregnant<<else>>order $him to pull out<</if>>. The poor $girl is so caught up in $his lust, $he can't stop thrusting. Before you can rectify this, $he pushes you over the edge and gushes deep into you as you climax<<if $PC.dick != 0>> and spray your own cum <<if $PC.belly >= 5000 && $activeSlave.belly >= 5000>>into the cramped space between your swollen bodies<<elseif $activeSlave.belly >= 100000>>across your belly and the underside of $hers<<else>>across $his chest<</if>><</if>>. $He gingerly pulls $himself from you, apologizes @@.hotpink;meekly@@ for losing control, and snuggles up next to you. Cumming in $his <<= getWrittenTitle($activeSlave)>>'s pussy as $his first time builds @@.mediumaquamarine;a special bond@@ with you.
-			<<if $PC.preg == 0 && $PC.pregWeek == 0>>
-				You aren't on contraceptives right now; $his first time may be more fruitful than $he realizes.
-			<</if>>
-			<<set $activeSlave.devotion += 10, $activeSlave.trust += 20>>
-			<<run seX($activeSlave, "penetrative", $PC, "vaginal")>>
-			<<if canImpreg($PC, $activeSlave)>>
-				<<= knockMeUp($PC, 60, 0, $activeSlave.ID)>>
-			<</if>>
-		<</replace>>
-	<</link>> //This option will penetrate you//
-<</if>>
-<br><<link "Tell $him it doesn't matter, $he won't be using it">>
-	<<replace "#result">>
-		In one swift motion, one pull out a chastity cage and lock it onto $him. $He gasps as $he feels it hug close to $his struggling erection. You explain that $he has just become potent, and thus, will be restricted until you feel differently.
-		<<if !canTalk($activeSlave)>>
-			$He rubs a hand across $his caged dick.
-		<<else>>
-			"You don't want me to u<<s>>e my peni<<s>>, <<Master>>?"
-		<</if>>
-		You bring $him over to the couch, set $him on your lap, and teasingly call $him a buttslut. Every so often you graze a finger around $his chastity cage, torturing $his dick and balls, but you only make it the center of attention once the poor over-aroused slave
-		<<if !canTalk($activeSlave)>>
-			begins to use piteous gestures to beg you abjectly to penetrate $him.
-		<<else>>
-			begs, "I can't take it any more, <<Master>>! Plea<<s>>e fuck me!"
-		<</if>>
-		You snicker, but remind $him that $he has no say in $his release. You line up and insert your <<if ($PC.dick == 0)>>strap-on<<else>>cock<</if>> up $his ass and begin slowly fucking $him, making sure to stimulate $his prostate. When $he finally orgasms <<if ($PC.dick == 0)>>$his unabashed enjoyment<<else>>the strength of $his spasming sphincter<</if>> sends you over as well. $He's left in a confused haze; $his body tells $him to fuck, but you tell $him to get fucked. $He @@.hotpink;sides with your decision@@ and vows to be the one taking dick for you. <<if $activeSlave.fetish == "none">>@@.coral;Overcoming $his urges to become a father via anal cause $him to become a buttslut.@@<<set $activeSlave.fetish = "buttslut", $activeSlave.fetishStrength = 10>><</if>>
-		<<set $activeSlave.devotion += 5, $activeSlave.chastityPenis = 1>>
-		<<= VCheck.Anal($activeSlave, 1)>>
-	<</replace>>
-<</link>><<if ($activeSlave.anus == 0)>> //This option will take $his anal virginity//<</if>>
-<<if $seeExtreme == 1 && $activeSlave.indentureRestrictions <= 0>>
-	<br><<link "Geld $him to render $him impotent again">>
-		<<set $activeSlave.balls = 0, $activeSlave.trust -= 20>>
-		<<run surgeryDamage($activeSlave, 10)>>
-		<<replace "#result">>
-			You bluntly tell $him $he is becoming potent, and that is something you can't allow to roam unchecked amongst your fertile slaves. You drag $him to the remote surgery and strap $him face-down with $his legs spread <<if $activeSlave.belly >= 5000>>$his _belly rounded belly forcing $his rear into the air<</if>>. $He doesn't understand what's happening, since the anesthetics totally deprive $him of any sensation. $He's so drugged and drowsy with @@.health.dec;surgical recovery@@ that it takes a while for $him to figure out what's happened. When $he does, $his poor mind scarcely processes the @@.gold;horror@@ of what's happened. $He numbly carries on, terrified.
-		<</replace>>
-	<</link>>
-<</if>>
-
 <<case "surprising wakeup">>
 
 <<link "Permit $him to continue">>
@@ -2824,295 +2257,66 @@ $He cranes $his neck, glancing over $his shoulder to give you a pleading look.
 	<</link>><<if ($activeSlave.anus == 0 && canDoAnal($activeSlave)) || ($activeSlave.vagina == 0 && canDoVaginal($activeSlave))>> //This option will take $his virginity//<</if>>
 <</if>>
 
-<<case "vocal disobedience">>
+<<case "age implant">>
 
-<<link "Give $him a rough spanking">>
+<<link "Go out clubbing to make $him feel young again">>
 	<<replace "#result">>
-		<<if (hasAnyLegs($activeSlave))>>
-			You tie the protesting slave to your desk
-			<<if $activeSlave.belly >= 5000>>
-				with $his chest against the top of the desk with $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnant <</if>>belly hanging of the side, so that
-			<<else>>
-				so that $his chest is against the top of the desk and
-			<</if>>
-			$he's standing upright with $his ass in the air.
+		You call out to stop $him, and $he turns obediently to listen; you tell $him to take the day off and meet you that evening for a trip to $arcologies[0].name's most fashionable nightclub. You emphasize slightly that it's a place you prefer to enjoy with a young slave, and $his eyes widen a little at the implied compliment and challenge. Right at the proper time, $he arrives in your office wearing neon $activeSlave.hColor makeup to match $his hair, and a tiny iridescent club<<= $girl>> outfit of the same color. The hem of the skirt is barely low enough to conceal $him <<if ($activeSlave.dick > 0)>>dick<<elseif $activeSlave.vagina == -1>>total lack of private parts<<else>>pussy<</if>>, and it's backless. The front is held up by a halter around $his pretty neck, and is <<if ($activeSlave.boobs > 2000)>>specially tailored to cover $his massive tits<<elseif ($activeSlave.boobs > 1000)>>strained by $his big tits<<elseif ($activeSlave.boobs > 300)>>tightly filled by $his healthy tits<<else>>tight against $his flat chest<</if>><<if $activeSlave.belly >= 1500>> and _belly <<if $activeSlave.bellyPreg >= 1500>>pregnant <</if>>belly<</if>>. $He makes a gaudy and very fashionable spectacle, and in response to your <<if canSee($activeSlave)>>look<<elseif canHear($activeSlave)>>whistle<<else>>gentle poke<</if>> $he raises <<if (!hasAnyArms($activeSlave))>>the stumps of $his arms ever so slightly<<if (hasBothArms($activeSlave))>>both arms<<else>>$his arm<</if>> over $his head<</if>> and twirls, shimmying $his body deliciously.
+		"I hope they let me into the club without checking my I.D., <<Master>>," $he jokes,
+		for which $he receives a swat on $his rear as you head out. With the full day of rest, $he is full of vigor and ready to dance. $He eagerly heads out onto the floor with you,
+		<<if ($activeSlave.skill.entertainment >= 100)>>
+			masterfully moving $his <<if $activeSlave.belly >= 1500>><<if $activeSlave.bellyPreg >= 1500>>gravid<<else>>rounded<</if>><</if>> body to the heavy beat, grabbing the attention of all the men and most of the women in $clubName.
+		<<elseif ($activeSlave.skill.entertainment > 60)>>
+			expertly moving $his <<if $activeSlave.belly >= 1500>><<if $activeSlave.bellyPreg >= 1500>>gravid<<else>>rounded<</if>><</if>> body to the heavy beat, mesmerizing $his neighbors on the floor.
+		<<elseif ($activeSlave.skill.entertainment > 30)>>
+			skillfully moving $his <<if $activeSlave.belly >= 1500>><<if $activeSlave.bellyPreg >= 1500>>gravid<<else>>rounded<</if>><</if>> body to the heavy beat, drawing a lustful gaze or two.
 		<<else>>
-			<<if $activeSlave.belly >= 300000>>
-				You carefully balance the protesting, defenseless torso atop $his own _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>stomach<</if>>.
-			<<elseif $activeSlave.belly >= 5000>>
-				You place the protesting, defenseless torso on your lap, face-down with $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnant <</if>> belly between your legs.
-			<<else>>
-				You place the protesting, defenseless torso on your desk, face-down.
-			<</if>>
+			clumsily moving <<if $activeSlave.belly >= 1500>><<if $activeSlave.bellyPreg >= 1500>>gravid<<else>>rounded<</if>><</if>> $his body to the heavy beat, attracting little notice among the press of novices.
 		<</if>>
-		You spank $him severely, leaving $his buttocks bright pink. $He must count the strokes or have $his punishment start over. Sobbing, $he counts
-		<<if ($activeSlave.lips > 70)>>
-			through $his massive dick-sucking lips,
-		<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>
-			through $his inconvenient oral piercings
+		It doesn't take long for $him to back $himself into you so $he can grind; $he cranes $his neck back to plant an @@.hotpink;earnest kiss@@ on your chin.
+		<<set $activeSlave.devotion += 4>>
+	<</replace>>
+<</link>>
+<br><<link "Attend a sporting event with $him">>
+	<<replace "#result">>
+		You call out to stop $him, and $he turns obediently to listen; you tell $him $he'll be spending the day with you at a game outside the arcology, and $he's to meet you at your VTOL pad in two hours. $He ponders for a moment but clearly understands this is related to $his age, somehow. Right at the proper time, $he arrives on the pad. $He's clearly spent the whole time getting the right clothing; somehow $he used the clothing inventory system to find a cheerleader uniform from the home team. It's one size too small, though you're unsure whether this is intentional or not. The hem of the pleated cheerleader skirt is barely low enough to conceal $his <<if ($activeSlave.dick > 0)>>dick<<elseif $activeSlave.vagina == -1>>lack of private parts<<else>>pussy<</if>>, and $he bounces a little on $his heels for you to show off how $he's going commando underneath it. $His
+		<<if ($activeSlave.belly >= 100000)>>
+			_belly <<if $activeSlave.bellyPreg >= 1500>>pregnant <</if>>
+		<<elseif ($activeSlave.weight > 130)>>
+			hugely soft
+		<<elseif ($activeSlave.belly >= 1500)>>
+			_belly <<if $activeSlave.bellyPreg >= 1500>>pregnant <</if>>
+		<<elseif ($activeSlave.muscles > 30)>>
+			ripped
+		<<elseif ($activeSlave.weight > 30)>>
+			fat
+		<<elseif ($activeSlave.weight > 10)>>
+			plush
+		<<else>>
+			taut
 		<</if>>
-		"<<S>>i<<x>>, AAGHHH, <<s>>even, AAGHHH, <<s>>even"
-		and then realizes $his mistake and begs for mercy — in vain, of course. You finish $him off with a rough
-		<<if canDoVaginal($activeSlave)>>
-			fuck, with $him jerking against $his restraints every time you stroke into $his sore buttocks.
-			<<= VCheck.Vaginal($activeSlave, 1)>>
-		<<elseif canDoAnal($activeSlave)>>
-			assfuck, with $him jerking against $his restraints every time you stroke into $his sore buttocks.
-			<<= VCheck.Anal($activeSlave, 1)>>
+		midriff is bare. The top <<if ($activeSlave.boobs > 2000)>>somehow contains $his tits, with the team's logo at least <<if $showInches == 2>>three feet<<else>>a meter<</if>> wide across $his chest<<elseif ($activeSlave.boobs > 1000)>>is a great location for the team's logo, since $his tits allow it to be quite large<<elseif ($activeSlave.boobs > 300)>>is a good location for the team's logo, since $his tits allow it to be pretty big<<else>>flatters $his flat chest, especially with the team logo over it<</if>>. $He even found a pair of appropriately colored pom-poms somewhere. The implicit message about age was understood; $he's made up to look even younger.
+		<br><br>
+		You have a front-row seat, of course, and $he excitedly takes $his place beside you,
+		<<if $activeSlave.butt > 12>>
+			thankful that you reserved a seat for both of $his massive cheeks.
+		<<elseif $activeSlave.belly >= 300000>>
+			thankful that the front row has plenty of room for $his _belly belly to occupy.
+		<<elseif $activeSlave.butt > 6>>
+			carefully fitting $his big bottom into the seat.
+		<<elseif $activeSlave.boobs > 4000>>
+			$his absurd boobs rubbing against your arm.
+		<</if>>
+		$He cheers lustily at all the right moments, earning repeated crowd focus shots on the big screen; many fans wonder who their ridiculously hot fellow fan is before @@.green;recognizing you,@@ putting two and two together, and realizing enviously that $he's your sex slave. Since this is the Free Cities, the big screen gives $him more attention rather than cutting away when $he intentionally cheers hard enough that $his skirt rides up.
+		<<if $activeSlave.broodmother == 2 && $activeSlave.preg > 37>>
+			The only slightly embarrassing incident is when $he's standing up to rally the crowd behind $him, facing away from the game and goes into labor on another of $his brood; the contractions forcing $him to lean forward onto $his _belly stomach and give the players below a clear view of $his crowning child.
+		<<elseif $activeSlave.belly < 300000>>
+			The only slightly embarrassing incident is when $he's standing up to rally the crowd behind $him, facing away from the game and bending down to show cleavage to the stands in such a way that $his <<if ($activeSlave.butt > 5)>>massive ass<<elseif ($activeSlave.butt > 2)>>big butt<<else>>nice ass<</if>> lifts $his skirt up enough that the players below can clearly see $his <<if ($activeSlave.anus > 2)>>big slit of an asspussy<<elseif ($activeSlave.anus > 1)>>nice asspussy<<elseif $activeSlave.anus > 0>>tight asshole<<else>>virgin asshole<</if>><<if $activeSlave.vagina > 3>> and gaping pussy<<elseif $activeSlave.vagina > 2>> and used pussy<<elseif $activeSlave.vagina > 1>> and lovely pussy<<elseif $activeSlave.vagina > 0>> and tight pussy<<elseif $activeSlave.vagina == 0>> and virgin pussy<</if>>.
 		<<else>>
-			throatfuck, with $him jerking against $his restraints every time you hilt yourself and slap $his ass.
-			<<run seX($activeSlave, "oral", $PC, "penetrative")>>
+			The only slightly embarrassing incident is when $he's standing up to rally the crowd behind $him, cheering while swinging $his absurd belly back and forth and accidentally smashes into a concession vendor sending them to the floor. $His efforts to help him up forces $him to stand in such a way that $his <<if ($activeSlave.butt > 5)>>massive ass<<elseif ($activeSlave.butt > 2)>>big butt<<else>>nice ass<</if>> lifts $his skirt up enough that the players below can clearly see $his <<if ($activeSlave.anus > 2)>>big slit of an asspussy<<elseif ($activeSlave.anus > 1)>>nice asspussy<<elseif $activeSlave.anus > 0>>tight asshole<<else>>virgin asshole<</if>><<if $activeSlave.vagina > 3>> and gaping pussy<<elseif $activeSlave.vagina > 2>> and used pussy<<elseif $activeSlave.vagina > 1>> and lovely pussy<<elseif $activeSlave.vagina > 0>> and tight pussy<<elseif $activeSlave.vagina == 0>> and virgin pussy<</if>>.
 		<</if>>
-		@@.gold;$He learns from the experience.@@
-		<<set $activeSlave.trust -= 5>>
-	<</replace>>
-<</link>><<if canDoVaginal($activeSlave) && ($activeSlave.vagina == 0)>>//This option will take $his virginity//<<elseif !canDoVaginal($activeSlave) && canDoAnal($activeSlave) && ($activeSlave.anus == 0)>> //This option will take $his anal virginity//<</if>>
-<<if canDoAnal($activeSlave) || canDoVaginal($activeSlave)>>
-	<br><<link "Sentence $him to public use">>
-		<<replace "#result">>
-			When $he <<if canSee($activeSlave)>>sees $he's being taken to a sex booth<<elseif canHear($activeSlave)>>hears the sounds of a public sex parlor<<else>>finally figures out $his destination<</if>>, $he begins to cry. $He begs
-			<<if ($activeSlave.lips > 70)>>
-				through $his massive dick-sucking lips,
-			<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>
-				through $his inconvenient oral piercings,
-			<<else>>
-				through $his tears,
-			<</if>>
-			"Plea<<s>>e, no, <<Master>>, I'll be good —" but is cut off when the machine closes around $his head. It will offer $his
-			<<if canDoAnal($activeSlave) && canDoVaginal($activeSlave)>>
-				ass and pussy
-			<<elseif canDoAnal($activeSlave)>>
-				ass
-			<<else>>
-				pussy
-			<</if>>
-			to anyone who pays for the rest of the week, and keep $his fed and cleaned. $His world will become nothing but silent, featureless darkness and dick. @@.yellowgreen;You earn some money off $him,@@ and by the end of the night $his
-			<<if canDoAnal($activeSlave) && canDoVaginal($activeSlave)>>
-				holes get
-			<<else>>
-				hole gets
-			<</if>>
-			<<if (canDoAnal($activeSlave) && $activeSlave.anus == 0) || (canDoVaginal($activeSlave) && $activeSlave.vagina == 0)>>
-				well stretched.
-			<<else>>
-				@@.lime;well stretched.@@
-			<</if>>
-			@@.hotpink;$He learns from the experience.@@
-			<<if canDoAnal($activeSlave) && canDoVaginal($activeSlave)>>
-				<<if $activeSlave.vagina == 0 && $activeSlave.anus == 0>>
-					@@.lime;$He's lost both $his virginity and anal cherry.@@
-				<<elseif $activeSlave.vagina == 0>>
-					@@.lime;$He's lost $his virginity.@@
-				<<elseif $activeSlave.anus == 0>>
-					@@.lime; $He's lost $his anal cherry.@@
-				<</if>>
-				<<set $activeSlave.vagina++, $activeSlave.anus++>>
-				<<run seX($activeSlave, "vaginal", "public", "penetrative", 10)>>
-				<<run seX($activeSlave, "anal", "public", "penetrative", 10)>>
-				<<if $activeSlave.eggType == "human" && canGetPregnant($activeSlave)>>
-					<<= knockMeUp($activeSlave, 25, 2, -2)>>
-				<</if>>
-			<<elseif canDoAnal($activeSlave)>>
-				<<if $activeSlave.anus == 0>>
-					@@.lime; $He's lost $his anal cherry.@@
-				<</if>>
-				<<set $activeSlave.anus++>>
-				<<run seX($activeSlave, "anal", "public", "penetrative", 5)>>
-				<<if $activeSlave.eggType == "human" && canGetPregnant($activeSlave)>>
-					<<= knockMeUp($activeSlave, 50, 1, -2)>>
-				<</if>>
-			<<else>>
-				<<if $activeSlave.vagina == 0>>
-					@@.lime;$He's lost $his virginity.@@
-				<</if>>
-				<<set $activeSlave.vagina++>>
-				<<run seX($activeSlave, "vaginal", "public", "penetrative", 20)>>
-				<<if $activeSlave.eggType == "human" && canGetPregnant($activeSlave)>>
-					<<= knockMeUp($activeSlave, 50, 0, -2)>>
-				<</if>>
-			<</if>>
-			<<set $activeSlave.devotion += 4>>
-			<<run cashX(50, "event", $activeSlave)>>
-		<</replace>>
-	<</link>><<if ($activeSlave.anus == 0 && canDoAnal($activeSlave)) || ($activeSlave.vagina == 0 && canDoVaginal($activeSlave))>> //This option will take $his virginity//<</if>>
-<</if>>
-<br><<link "Give $him the day off">>
-	<<replace "#result">>
-		$He skips away happily and spends the rest of the day lounging around. $His obedience to you @@.mediumorchid;has decreased.@@
-		<<set $activeSlave.devotion -= 5>>
-	<</replace>>
-<</link>>
-
-<<case "fearful humiliation">>
-
-<<link "Publicly prove the depths of $his humiliation to $him">>
-	<<replace "#result">>
-		You drag a fearful, embarrassed<<if $activeSlave.belly >= 1500>>, <<if $activeSlave.bellyPreg >= 0>>pregnant<<else>>swollen<</if>><</if>> and totally naked $activeSlave.slaveName out into a public hall. A small knot of passersby gather around grinning, enjoying the sight of $his nakedness and anticipating a show. To $his surprise, you order $him to take a few minutes to recount $his life story. $He's hesitant at first, but obeys, only realizing as $he nears the present day what an abject story of degradation and humiliation $his life truly is. $He continues shakily, describing in brief $his current life, crying a little and trembling with arousal. At a whispered command from you, $he concludes
-		<<if !canTalk($activeSlave)>>
-			in embarrassed gestures, "and now my <<= getWrittenTitle($activeSlave)>> is going to fuck my worthless body in public."
-		<<else>>
-			"and now my <<Master>> i<<s>> going to fuck my worthle<<ss>> body in public."
-		<</if>>
-		You take $him standing there, as $he cries with mixed shame and sexual pleasure.
-		<<if !canDoVaginal($activeSlave)>>
-			$He <<if ($activeSlave.dick > 0)>>cums even though $he's soft<<else>>climaxes even though $he's filled<</if>> with the shame, <<if $PC.dick == 0>>$his anus clenching around the strap-on you're pumping in and out of it<<else>>adding a sad little dribble to the load dripping out of $his asshole<</if>>.
-		<<else>>
-			<<if $PC.dick == 0>>You make $him clean $his pussyjuice off your strap-on with $his bitch mouth before you take it off.<<else>>As you pull out of $his clenching pussy, cum runs down $his quavering thighs.<</if>>
-		<</if>>
-		@@.hotpink;$He has become more submissive to you,@@ and @@.green;your reputation has increased.@@
-		<<set $activeSlave.devotion += 4>>
-		<<run repX(500, "event", $activeSlave)>>
-		<<if canDoVaginal($activeSlave)>>
-			<<= VCheck.Vaginal($activeSlave, 1)>>
-		<<else>>
-			<<= VCheck.Anal($activeSlave, 1)>>
-		<</if>>
-	<</replace>>
-<</link>>
-<br><<link "Use a bait and switch tactic on $him, before public use">>
-	<<replace "#result">>
-		You instruct $him to get cleaned up and get dressed in $his nicest clothing. $He obeys, mystified, and is further puzzled to find that you're taking $him out for a nice evening at a small bar. You share a tasty meal and listen to good music played on the little stage by an older slave. As the set concludes, you lean over and give $activeSlave.slaveName $his real orders for the evening. $He freezes in terror but eventually makes $his way up to the stage, strips in front of all the patrons, and says
-		<<if !canTalk($activeSlave)>>
-			in embarrassed gestures, "Please use me, I'm cheap."
-		<<else>>
-			"One credit per fuck, if you'll do my worthle<<ss>> body on <<s>>tage."
-		<</if>>
-		By the end of the night, $he's been fucked by almost everyone in the bar, and $his itch for humiliation has been well and truly scratched. As you collect $his earnings from the thoroughly pleased bartender, $he lies quiescent in a puddle of cum and exhaustion. @@.yellowgreen;You've collected a decent fee,@@ and @@.green;your reputation has increased.@@
-		<<run repX(500, "event", $activeSlave)>>
-		<<run cashX(100, "event", $activeSlave)>>
-		<<if canDoVaginal($activeSlave) && canDoAnal($activeSlave)>>
-			<<run seX($activeSlave, "vaginal", "public", "penetrative", 10)>>
-			<<run seX($activeSlave, "anal", "public", "penetrative", 10)>>
-			<<if $activeSlave.eggType == "human" && canGetPregnant($activeSlave)>>
-				<<= knockMeUp($activeSlave, 25, 2, -2)>>
-			<</if>>
-		<<elseif canDoVaginal($activeSlave)>>
-			<<run seX($activeSlave, "vaginal", "public", "penetrative", 20)>>
-			<<if $activeSlave.eggType == "human" && canGetPregnant($activeSlave)>>
-				<<= knockMeUp($activeSlave, 50, 0, -2)>>
-			<</if>>
-		<<else>>
-			<<run seX($activeSlave, "anal", "public", "penetrative", 20)>>
-			<<if $activeSlave.eggType == "human" && canGetPregnant($activeSlave)>>
-				<<= knockMeUp($activeSlave, 50, 1, -2)>>
-			<</if>>
-		<</if>>
-	<</replace>>
-<</link>>
-
-<<case "heavy piercing">>
-
-<<link "Weight $his piercings and fuck $him so they swing">>
-	<<replace "#result">>
-		You order $him to make sure all of $his piercings have rings in them, and then come join you when $he's done. $He enters your office with a mixture of fear and curiosity on $his face. You put $him down on <<if hasAllLimbs($activeSlave)>>all fours<<else>>the ground<</if>><<if hasBothLegs($activeSlave)>> with $his legs spread<</if>><<if $activeSlave.belly >= 50000>>, belly brushing the floor<</if>>, <<if canSee($activeSlave)>>blindfold $him, <</if>>and then start clipping little metal weights on short chains to each of $his piercings. Before long, $his nipples are painfully stretched under the tugging, <<if ($activeSlave.dick > 0)>>and the weights up and down $his cock are causing $his considerable discomfort.<<elseif $activeSlave.vagina == -1>>and though $he lacks any external genitalia to weight, you make sure $his ass feels the burn.<<else>>$his pussylips are being pulled downward, and even $his clit is agonizingly tortured.<</if>> You fuck $him thoroughly, pounding $him so the weights swing. $He sobs and begs. @@.hotpink;$He has become more submissive to you.@@
-		<<set $activeSlave.devotion += 4>>
-		<<if canDoVaginal($activeSlave)>>
-			<<= VCheck.Vaginal($activeSlave, 1)>>
-		<<else>>
-			<<= VCheck.Anal($activeSlave, 1)>>
-		<</if>>
-	<</replace>>
-<</link>><<if ($activeSlave.anus == 0 && canDoAnal($activeSlave)) || ($activeSlave.vagina == 0 && canDoVaginal($activeSlave))>> //This option will take $his virginity//<</if>>
-<br><<link "Secure $him by $his piercings for public use">>
-	<<replace "#result">>
-		You order $him to make sure all of $his piercings have rings in them, and then come to you when $he's done. $He enters your office with a mixture of fear and curiosity on $his face. You lead $him outside and secure $him in a side hall so that $his ass is presented to anyone who takes interest. $He's forced to maintain this exact posture by a light chain between <<if $activeSlave.belly > 10000>>$his popped navel and a ring on the ground.<<elseif ($activeSlave.dick > 0)>>$his dickhead and a ring on the ground.<<elseif $activeSlave.vagina == -1>>$his nipples and a ring on the ground.<<else>>$his pussy and a ring on the ground.<</if>> You fuck $his ass to check the bondage; it's good. The chain is out of the way, and $he jerks and struggles amusingly to keep it from tugging $him painfully. You pull out to leave $his fucked butt with cum dribbling out of it, and leave $him to the tender mercies of the growing crowd. @@.green;The sadists among the public are duly grateful.@@
-		<<if canDoAnal($activeSlave) && canDoVaginal($activeSlave)>>
-			<<if $activeSlave.vagina == 0 && $activeSlave.anus == 0>>
-				They take pleasure in claiming @@.lime;both $his virginity and anal cherry.@@
-			<<elseif $activeSlave.vagina == 0>>
-				They take pleasure in claiming @@.lime;$his virginity.@@
-			<<elseif $activeSlave.anus == 0>>
-				They take pleasure in claiming @@.lime;$his anal cherry.@@
-			<</if>>
-			<<set $activeSlave.vagina++, $activeSlave.anus++>>
-			<<run seX($activeSlave, "anal", "public", "penetrative", 5)>>
-			<<run seX($activeSlave, "vaginal", "public", "penetrative", 5)>>
-			<<if $activeSlave.eggType == "human" && canGetPregnant($activeSlave)>>
-				<<= knockMeUp($activeSlave, 10, 2, -2)>>
-			<</if>>
-		<<elseif canDoAnal($activeSlave)>>
-			<<if $activeSlave.anus == 0>>
-				They take pleasure in claiming @@.lime;$his anal cherry.@@
-			<</if>>
-			<<set $activeSlave.anus++>>
-			<<run seX($activeSlave, "anal", "public", "penetrative", 10)>>
-			<<if $activeSlave.eggType == "human" && canGetPregnant($activeSlave)>>
-				<<= knockMeUp($activeSlave, 25, 1, -2)>>
-			<</if>>
-		<<else>>
-			<<if $activeSlave.vagina == 0>>
-				They take pleasure in claiming @@.lime;$his virginity.@@
-			<</if>>
-			<<set $activeSlave.vagina++>>
-			<<run seX($activeSlave, "vaginal", "public", "penetrative", 5)>>
-			<<if $activeSlave.eggType == "human" && canGetPregnant($activeSlave)>>
-				<<= knockMeUp($activeSlave, 25, 0, -2)>>
-			<</if>>
-		<</if>>
-		<<run repX(2500, "event", $activeSlave)>>
-	<</replace>>
-<</link>><<if ($activeSlave.anus == 0 && canDoAnal($activeSlave)) || ($activeSlave.vagina == 0 && canDoVaginal($activeSlave))>> //This option will take $his virginity//<</if>>
-
-<<case "age implant">>
-
-<<link "Go out clubbing to make $him feel young again">>
-	<<replace "#result">>
-		You call out to stop $him, and $he turns obediently to listen; you tell $him to take the day off and meet you that evening for a trip to $arcologies[0].name's most fashionable nightclub. You emphasize slightly that it's a place you prefer to enjoy with a young slave, and $his eyes widen a little at the implied compliment and challenge. Right at the proper time, $he arrives in your office wearing neon $activeSlave.hColor makeup to match $his hair, and a tiny iridescent club<<= $girl>> outfit of the same color. The hem of the skirt is barely low enough to conceal $him <<if ($activeSlave.dick > 0)>>dick<<elseif $activeSlave.vagina == -1>>total lack of private parts<<else>>pussy<</if>>, and it's backless. The front is held up by a halter around $his pretty neck, and is <<if ($activeSlave.boobs > 2000)>>specially tailored to cover $his massive tits<<elseif ($activeSlave.boobs > 1000)>>strained by $his big tits<<elseif ($activeSlave.boobs > 300)>>tightly filled by $his healthy tits<<else>>tight against $his flat chest<</if>><<if $activeSlave.belly >= 1500>> and _belly <<if $activeSlave.bellyPreg >= 1500>>pregnant <</if>>belly<</if>>. $He makes a gaudy and very fashionable spectacle, and in response to your <<if canSee($activeSlave)>>look<<elseif canHear($activeSlave)>>whistle<<else>>gentle poke<</if>> $he raises <<if (!hasAnyArms($activeSlave))>>the stumps of $his arms ever so slightly<<if (hasBothArms($activeSlave))>>both arms<<else>>$his arm<</if>> over $his head<</if>> and twirls, shimmying $his body deliciously.
-		"I hope they let me into the club without checking my I.D., <<Master>>," $he jokes,
-		for which $he receives a swat on $his rear as you head out. With the full day of rest, $he is full of vigor and ready to dance. $He eagerly heads out onto the floor with you,
-		<<if ($activeSlave.skill.entertainment >= 100)>>
-			masterfully moving $his <<if $activeSlave.belly >= 1500>><<if $activeSlave.bellyPreg >= 1500>>gravid<<else>>rounded<</if>><</if>> body to the heavy beat, grabbing the attention of all the men and most of the women in $clubName.
-		<<elseif ($activeSlave.skill.entertainment > 60)>>
-			expertly moving $his <<if $activeSlave.belly >= 1500>><<if $activeSlave.bellyPreg >= 1500>>gravid<<else>>rounded<</if>><</if>> body to the heavy beat, mesmerizing $his neighbors on the floor.
-		<<elseif ($activeSlave.skill.entertainment > 30)>>
-			skillfully moving $his <<if $activeSlave.belly >= 1500>><<if $activeSlave.bellyPreg >= 1500>>gravid<<else>>rounded<</if>><</if>> body to the heavy beat, drawing a lustful gaze or two.
-		<<else>>
-			clumsily moving <<if $activeSlave.belly >= 1500>><<if $activeSlave.bellyPreg >= 1500>>gravid<<else>>rounded<</if>><</if>> $his body to the heavy beat, attracting little notice among the press of novices.
-		<</if>>
-		It doesn't take long for $him to back $himself into you so $he can grind; $he cranes $his neck back to plant an @@.hotpink;earnest kiss@@ on your chin.
-		<<set $activeSlave.devotion += 4>>
-	<</replace>>
-<</link>>
-<br><<link "Attend a sporting event with $him">>
-	<<replace "#result">>
-		You call out to stop $him, and $he turns obediently to listen; you tell $him $he'll be spending the day with you at a game outside the arcology, and $he's to meet you at your VTOL pad in two hours. $He ponders for a moment but clearly understands this is related to $his age, somehow. Right at the proper time, $he arrives on the pad. $He's clearly spent the whole time getting the right clothing; somehow $he used the clothing inventory system to find a cheerleader uniform from the home team. It's one size too small, though you're unsure whether this is intentional or not. The hem of the pleated cheerleader skirt is barely low enough to conceal $his <<if ($activeSlave.dick > 0)>>dick<<elseif $activeSlave.vagina == -1>>lack of private parts<<else>>pussy<</if>>, and $he bounces a little on $his heels for you to show off how $he's going commando underneath it. $His
-		<<if ($activeSlave.belly >= 100000)>>
-			_belly <<if $activeSlave.bellyPreg >= 1500>>pregnant <</if>>
-		<<elseif ($activeSlave.weight > 130)>>
-			hugely soft
-		<<elseif ($activeSlave.belly >= 1500)>>
-			_belly <<if $activeSlave.bellyPreg >= 1500>>pregnant <</if>>
-		<<elseif ($activeSlave.muscles > 30)>>
-			ripped
-		<<elseif ($activeSlave.weight > 30)>>
-			fat
-		<<elseif ($activeSlave.weight > 10)>>
-			plush
-		<<else>>
-			taut
-		<</if>>
-		midriff is bare. The top <<if ($activeSlave.boobs > 2000)>>somehow contains $his tits, with the team's logo at least <<if $showInches == 2>>three feet<<else>>a meter<</if>> wide across $his chest<<elseif ($activeSlave.boobs > 1000)>>is a great location for the team's logo, since $his tits allow it to be quite large<<elseif ($activeSlave.boobs > 300)>>is a good location for the team's logo, since $his tits allow it to be pretty big<<else>>flatters $his flat chest, especially with the team logo over it<</if>>. $He even found a pair of appropriately colored pom-poms somewhere. The implicit message about age was understood; $he's made up to look even younger.
-		<br><br>
-		You have a front-row seat, of course, and $he excitedly takes $his place beside you,
-		<<if $activeSlave.butt > 12>>
-			thankful that you reserved a seat for both of $his massive cheeks.
-		<<elseif $activeSlave.belly >= 300000>>
-			thankful that the front row has plenty of room for $his _belly belly to occupy.
-		<<elseif $activeSlave.butt > 6>>
-			carefully fitting $his big bottom into the seat.
-		<<elseif $activeSlave.boobs > 4000>>
-			$his absurd boobs rubbing against your arm.
-		<</if>>
-		$He cheers lustily at all the right moments, earning repeated crowd focus shots on the big screen; many fans wonder who their ridiculously hot fellow fan is before @@.green;recognizing you,@@ putting two and two together, and realizing enviously that $he's your sex slave. Since this is the Free Cities, the big screen gives $him more attention rather than cutting away when $he intentionally cheers hard enough that $his skirt rides up.
-		<<if $activeSlave.broodmother == 2 && $activeSlave.preg > 37>>
-			The only slightly embarrassing incident is when $he's standing up to rally the crowd behind $him, facing away from the game and goes into labor on another of $his brood; the contractions forcing $him to lean forward onto $his _belly stomach and give the players below a clear view of $his crowning child.
-		<<elseif $activeSlave.belly < 300000>>
-			The only slightly embarrassing incident is when $he's standing up to rally the crowd behind $him, facing away from the game and bending down to show cleavage to the stands in such a way that $his <<if ($activeSlave.butt > 5)>>massive ass<<elseif ($activeSlave.butt > 2)>>big butt<<else>>nice ass<</if>> lifts $his skirt up enough that the players below can clearly see $his <<if ($activeSlave.anus > 2)>>big slit of an asspussy<<elseif ($activeSlave.anus > 1)>>nice asspussy<<elseif $activeSlave.anus > 0>>tight asshole<<else>>virgin asshole<</if>><<if $activeSlave.vagina > 3>> and gaping pussy<<elseif $activeSlave.vagina > 2>> and used pussy<<elseif $activeSlave.vagina > 1>> and lovely pussy<<elseif $activeSlave.vagina > 0>> and tight pussy<<elseif $activeSlave.vagina == 0>> and virgin pussy<</if>>.
-		<<else>>
-			The only slightly embarrassing incident is when $he's standing up to rally the crowd behind $him, cheering while swinging $his absurd belly back and forth and accidentally smashes into a concession vendor sending them to the floor. $His efforts to help him up forces $him to stand in such a way that $his <<if ($activeSlave.butt > 5)>>massive ass<<elseif ($activeSlave.butt > 2)>>big butt<<else>>nice ass<</if>> lifts $his skirt up enough that the players below can clearly see $his <<if ($activeSlave.anus > 2)>>big slit of an asspussy<<elseif ($activeSlave.anus > 1)>>nice asspussy<<elseif $activeSlave.anus > 0>>tight asshole<<else>>virgin asshole<</if>><<if $activeSlave.vagina > 3>> and gaping pussy<<elseif $activeSlave.vagina > 2>> and used pussy<<elseif $activeSlave.vagina > 1>> and lovely pussy<<elseif $activeSlave.vagina > 0>> and tight pussy<<elseif $activeSlave.vagina == 0>> and virgin pussy<</if>>.
-		<</if>>
-		A player from the visiting team is distracted enough to blow a play. Any fans who might have been inclined to disapprove forget their objections when the home team capitalizes on the mistake to score.
-		<<run repX(500, "event", $activeSlave)>>
+		A player from the visiting team is distracted enough to blow a play. Any fans who might have been inclined to disapprove forget their objections when the home team capitalizes on the mistake to score.
+		<<run repX(500, "event", $activeSlave)>>
 	<</replace>>
 <</link>>
 <br><<link "Put the old whore in $his place">>
@@ -3722,1068 +2926,6 @@ $He cranes $his neck, glancing over $his shoulder to give you a pleading look.
 	<</replace>>
 <</link>>
 
-<<case "huge tits">>
-
-<<link "Join $him in the shower">>
-	<<replace "#result">>
-		You step into the running water and help $him to $his feet with exaggerated gallantry. $He seems surprised <<if canSee($activeSlave)>>and stares at<<else>>faces<</if>> you through the steam for a moment before looking away with a blush. Before long you have $his back against the shower wall, $his titanic udders<<if $activeSlave.belly >= 5000>> and _belly <<if $activeSlave.bellyPreg >= 3000>>pregnant <</if>> belly<</if>> offering an amusing challenge as they slide soapily between you as you fuck. $He comes in no time at all, and a brief massage of $his huge soapy nipples produces a whimpering aftershock orgasm. <<if canSee($activeSlave)>>$His <<= App.Desc.eyesColor($activeSlave)>> stare straight into yours<<else>>You stare into $his <<= App.Desc.eyesColor($activeSlave)>><</if>> as $he writhes with overstimulation, @@.mediumaquamarine;$his trust in your stewardship of $his pleasure total.@@
-		<<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal($activeSlave, 1)>><<elseif canDoAnal($activeSlave)>><<= VCheck.Anal($activeSlave, 1)>><</if>>
-		<<set $activeSlave.devotion += 4>>
-	<</replace>>
-<</link>> <<if ($activeSlave.vagina == 0) && canDoVaginal($activeSlave)>>//This option will take $his virginity//<<elseif ($activeSlave.vagina == -1) && ($activeSlave.anus == 0) && canDoAnal($activeSlave)>>//This option will take $his anal virginity//<</if>>
-<br><<link "Fuck $his immobilized body">>
-	<<replace "#result">>
-		You make no answer, groping $his soapy <<if $seeRace == 1>>$activeSlave.race <</if>>buttocks.
-		<<if ($activeSlave.anus > 2) && canDoAnal($activeSlave)>>
-			$His rectum is so fucked out and loose that your groping hand almost slides up it.
-		<<elseif ($activeSlave.vagina > 2) && canDoVaginal($activeSlave)>>
-			$His pussy is so fucked out and loose that your groping hand almost slides up it.
-		<<else>>
-			You finger fuck $him for a while, the sting of the soap on $his sensitive insides making $him gasp.
-		<</if>>
-		It's not like you can't tie $him up and fuck $him whenever you like, but sliding back and forth on $his soapy body is kind of nice.
-		<<if $PC.dick == 0>>
-			You ride yourself against $him until you orgasm
-		<<else>>
-			You leave a load of cum in
-			<<if canDoAnal($activeSlave) && canDoVaginal($activeSlave)>>
-				each of $his holes
-				<<set _didVaginal = 1, _didAnal = 1>>
-			<<elseif canDoAnal($activeSlave)>>
-				$his loosened butthole
-				<<set _didAnal = 1>>
-			<<else>>
-				$his loosened vagina
-				<<set _didVaginal = 1>>
-			<</if>>
-			<<if $PC.vagina != -1>> and make $him eat your pussy for a quick aftershock,<</if>>
-		<</if>>
-		and only then do you help $him back to $his feet. $He drips soap, water, and <<if $PC.dick == 0>>your juices<<else>>ejaculate<</if>>. @@.hotpink;$He has become more submissive.@@
-		<<if _didVaginal == 1 && _didAnal == 1>>
-			<<= VCheck.Both($activeSlave, 1)>>
-		<<elseif _didVaginal == 1>>
-			<<= VCheck.Vaginal($activeSlave, 1)>>
-		<<elseif _didAnal == 1>>
-			<<= VCheck.Anal($activeSlave, 1)>>
-		<</if>>
-		<<set $activeSlave.devotion += 4>>
-	<</replace>>
-<</link>><<if ($activeSlave.anus == 0) || ($activeSlave.vagina == 0)>> //This option will take $his virginity//<</if>>
-<br><<link "Let $him figure it out">>
-	<<replace "#result">>
-		$He flounders around for a while until you get bored and leave $him to it. Eventually $his whining brings another slave in, who helps $him. This interdependence between slaves @@.mediumorchid;reduces $his devotion.@@
-		<<set $activeSlave.devotion -= 5>>
-	<</replace>>
-<</link>>
-
-<<case "trusting HG">>
-
-<<link "Commend $his service">>
-	<<replace "#result">>
-		You clear your throat and compliment $him, commending $his work ethic, trustworthiness, and loyalty. $He blushes much harder as $he understands. "Thank you,
-		<<if $HGFormality == 1>>
-			<<Master>>!"
-		<<else>>
-			<<if def $PC.customTitle>><<Master>><<elseif $PC.title != 0>><<S>>ir<<else>>Ma'am<</if>>!"
-		<</if>>
-		$he says fervently, and gestures at the tablet.
-		"I've noti<<c>>ed a couple of the <<s>>lave<<s>> working better together re<<c>>ently, <<s>>o I'm making <<s>>ome minor adju<<s>>tment<<s>> to give them more <<sh>>ift<<s>> together."
-		<br><br>
-		You're sure $he'll do $his best, and you tell $him so. $He thanks you again, and you both go back to your work. Though your Head Girl continues manipulating $his tablet diligently, $he can't seem to stop $himself from @@.hotpink;stealing the occasional glance at you.@@ $His <<= App.Desc.eyesColor($activeSlave)>>, dark in the dimness of the office, seem to have an unaccountable sheen.
-		<<if $assistant.personality != 0>>
-		<<setSpokenAssistantPronouns $activeSlave>>
-		<<= capFirstChar($assistant.name)>>'s $assistant.appearance avatar appears on your desktop, glowing brightly, and ruins the moment. "$activeSlave.slaveName loooves $his <<if def $PC.customTitle>>$PC.customTitle<<elseif $PC.title != 0>>Maaaster<<else>>Miiistress<</if>>," _heA taunts,
-		<<switch $assistant.appearance>>
-		<<case "monstergirl">>
-			_hisA hair forming a heart shape.
-		<<case "shemale">>
-			using _hisA hands to make a heart shape over _hisA balls.
-		<<case "amazon">>
-			grinning far more sweetly than _hisA muscular form should be able to manage.
-		<<case "businesswoman">>
-			though _heA's blushing _himselfA.
-		<<case "cherub" "fairy" "pregnant fairy">>
-			flitting around and giggling excitedly.
-		<<case "goddess">>
-			massaging _hisA pregnant belly meaningfully.
-		<<case "hypergoddess">>
-			massaging _hisA squirming pregnant belly meaningfully.
-		<<case "loli">>
-			giggling playfully.
-		<<case "preggololi">>
-			giggling playfully, though _hisA hands have wandered to _hisA crotch.
-		<<case "angel">>
-			using _hisA hands to make a heart shape.
-		<<case "incubus">>
-			using _hisA hands to make a heart shape around _hisA erection as _heA thrusts.
-		<<case "succubus">>
-			<<if $PC.dick != 0>>forms an "O" with _hisA lips and makes exaggerated head bobbing motions<<else>>forms a "V" with _hisA fingers and wiggles _hisA tongue in it<</if>>.
-		<<case "imp">>
-			flapping around and cackling manically.
-		<<case "witch">>
-			while holding out a mostly empty vial of love potion.
-		<<case "ERROR_1606_APPEARANCE_FILE_CORRUPT">>
-			forming half of _himselfA into an enormous pussy, the other into a giant dick, and introducing the two to each other.
-		<<case "schoolgirl">>
-			the very picture of a malicious school<<= _girlA>>.
-		<<default>>
-			turning _hisA avatar a throbbing pink.
-		<</switch>>
-		<br><br>
-		Your Head Girl turns a darker shade of red. "Oh, <<sh>>ut up, you little
-		<<switch $assistant.appearance>>
-		<<case "monstergirl">>
-			mon<<s>>ter,"
-		<<case "shemale">>
-			cockmon<<s>>ter,"
-		<<case "amazon">>
-			dyke,"
-		<<case "businesswoman">>
-			witch,"
-		<<case "fairy" "pregnant fairy">>
-			mo<<s>>quito,"
-		<<case "goddess" "hypergoddess">>
-			cow,"
-		<<case "loli">>
-			midget,"
-		<<case "preggololi">>
-			<<s>>lut <<loliA>>,"
-		<<case "angel">>
-			turkey,"
-		<<case "cherub">>
-			dove,"
-		<<case "incubus">>
-			dick,"
-		<<case "succubus">>
-			cunt,"
-		<<case "imp">>
-			bat,"
-		<<case "witch">>
-			blunderer,"
-		<<case "ERROR_1606_APPEARANCE_FILE_CORRUPT">>
-			<<sh>>ape<<sh>>ifter,"
-		<<case "schoolgirl">>
-			<<s>>lut,"
-		<<default>>
-			toa<<s>>ter,"
-		<</switch>>
-		$he says cattily, but $he smiles as well.
-		<</if>>
-		<<set $activeSlave.devotion += 4>>
-	<</replace>>
-<</link>>
-<br><<link "Share some refreshments with $him">>
-	<<replace "#result">>
-		You reach into the back of your desk, where your private reserves are, and wordlessly offer $him a
-		<<if $PC.refreshmentType == 0>>
-			$PC.refreshment.
-		<<elseif $PC.refreshmentType == 1>>
-			glass of $PC.refreshment.
-		<<elseif $PC.refreshmentType == 2>>
-			plate of $PC.refreshment.
-		<<elseif $PC.refreshmentType == 3>>
-			line of $PC.refreshment.
-		<<elseif $PC.refreshmentType == 4>>
-			syringe of $PC.refreshment.
-		<<elseif $PC.refreshmentType == 5>>
-			pill of $PC.refreshment.
-		<<elseif $PC.refreshmentType == 6>>
-			tab of $PC.refreshment.
-		<</if>>
-		$He stares at you disbelievingly for a moment before stammering $his thanks and accepting it with both hands. $He holds it uncertainly, watching you get one yourself.
-		<br><br>
-		$He is first among your slaves, but $he is still very much a slave. $He neither receives nor expects
-		<<if $PC.refreshmentType == 0>>
-			indulgences like tobacco and other smokables. Carcinogens are sometimes the necessary side effects of slave body modification, not an acceptable downside of luxury.
-		<<elseif $PC.refreshmentType == 1>>
-			drink other than what the slave feeding systems provide $him. $He might be your Head Girl, but the liquid food keeps $his libido charged, $his body healthy, and $his asshole invitingly clean, just like any other slave.
-		<<elseif $PC.refreshmentType == 2>>
-			food other than what the slave feeding systems provide $him. $He might be your Head Girl, but the liquid food keeps $his libido charged, $his body healthy, and $his asshole invitingly clean, just like any other slave.
-		<<else>>
-			drugs other than what the drug dispensers provide $him. Addictive drugs are rarely provided to slaves, replaced instead with slightly healthier, but no less addictive, aphrodisiacs.
-		<</if>>
-		But it'll do no harm, just this once, and you tell $him so. $He nods, not wanting to spoil the moment by speaking.
-		<br><br>
-		<<if $PC.refreshmentType == 0>>
-			After you light $his $PC.refreshment for $him, $he holds the <<if canTaste($activeSlave)>>first taste<<else>>feeling<</if>> of its smoke in $his mouth for a long, sensual moment before letting it trickle back out through $his lips.
-		<<elseif $PC.refreshmentType == 1 || $PC.refreshmentType == 2>>
-			$He holds the <<if canTaste($activeSlave)>>first taste<<else>>feeling<</if>> of it in $his mouth for a long, sensual moment before swallowing reverently.
-		<<else>>
-			$He savors the thrill of using $PC.refreshment for a moment, before turning to you, an almost desperate need on $his face.
-		<</if>>
-		You return to work, and $he follows your example, though $he's rather distracted. When $he finishes $hers, $he sets $his tablet down for a moment and comes over to you, doing $his best to show $his naked body to its best advantage as $he comes. $He gives you a deep kiss,
-		<<if $PC.refreshmentType == 0 || $PC.refreshmentType == 1 || $PC.refreshmentType == 2>>
-			which tastes of fine $PC.refreshment, with a hint of $activeSlave.slaveName,
-		<<else>>
-			with plenty of tongue,
-		<</if>>
-		and then goes back to work, @@.mediumaquamarine;smiling unconsciously@@ as $he savors the lingering <<if $PC.refreshmentType == 3 || $PC.refreshmentType == 4 || $PC.refreshmentType == 5 || $PC.refreshmentType == 6>>rush<<else>><<if canTaste($activeSlave)>>flavor<<else>>sensation<</if>><</if>>.
-		<<set $activeSlave.trust += 4>>
-	<</replace>>
-<</link>>
-
-<<case "ignorant horny">>
-
-<<link "Tell $him the truth">>
-	<<replace "#result">>
-		You explain the effects of the
-		<<if ($activeSlave.aphrodisiacs > 0) || $activeSlave.inflationType == "aphrodisiac">>
-			sex drugs
-		<<elseif ($activeSlave.clitPiercing == 3) && ($activeSlave.clitSetting != "none")>>
-			advanced <<if $activeSlave.vagina > -1>>clit<<else>>frenulum<</if>> piercing
-		<<else>>
-			slave food
-		<</if>>
-		briefly. Comprehension dawns across $his<<if $activeSlave.faceShape != "normal">> $activeSlave.faceShape<</if>> face.
-		"Yes <<Master>>," $he <<say>>s quietly, more to buy time to formulate a response than anything else. "Um. I <<s>>till really, really want to cum, though. W-would you plea<<s>>e fuck me? Plea<<s>>e, plea<<s>>e, <<Master>>, plea<<s>>e fuck
-		<<if ($activeSlave.vagina > 0) && ($activeSlave.preg > $activeSlave.pregData.normalBirth/4) && canDoVaginal($activeSlave)>>
-			my pregnant pu<<ss>>y."
-		<<elseif ($activeSlave.vagina > 0) && canDoVaginal($activeSlave)>>
-			me."
-		<<elseif canDoAnal($activeSlave)>>
-			my butt."
-		<<else>>
-			<<if ($activeSlave.vagina > 0) && ($activeSlave.preg > $activeSlave.pregData.normalBirth/4)>>
-				my pregnant pu<<ss>>y.
-			<<elseif ($activeSlave.vagina > 0)>>
-				me.
-			<<else>>
-				my butt.
-			<</if>>
-			I need it <<s>>o bad right now, plea<<s>>e rip off my cha<<s>>tity and fuck me <<s>>en<<s>>ele<<ss>>."
-		<</if>>
-		A vague hint of embarrassment at begging for <<if $PC.dick != 0>>a hard<<if $PC.vagina != -1>>futa<</if>> dicking<<else>>your strap-on<</if>> flickers across $his face, but hope for sexual release extinguishes it quickly.
-		<br><br>
-		<<if canDoAnal($activeSlave) || canDoVaginal($activeSlave)>>
-			$He groans with relief as your <<if $PC.dick != 0>>cock<<else>>phallus<</if>> enters $him. $He does not orgasm immediately, but $he knows sweet release is coming. You have $him atop your desk, on $his back, and $he's participating in $his own sexual degradation by holding $his legs spread wide apart for you. "Ohh," $he moans as you fuck $him, "thank you for telling me why I feel thi<<s>> way, <<Master>>. I gue<<ss>> thi<<s>> i<<s>> how I, oh, am now? Oh, oh, it feel<<s>> <<s>>o g-good! Ye<<s>>! AHH!"
-			<<if $PC.dick != 0>>
-				$His
-				<<if ($activeSlave.vagina > 0) && canDoVaginal($activeSlave)>>
-					cunt
-				<<else>>
-					asshole
-				<</if>>
-				tightens around your shaft delightfully as $he climaxes.
-			<<else>>
-				$He shudders with climax.
-			<</if>>
-			$He smiles @@.mediumaquamarine;trustingly@@ up at you in the afterglow,
-			<<if $activeSlave.balls > 0>>
-				$his ejaculate
-				<<if ($activeSlave.chastityPenis == 1)>>
-					seeping from $his chastity cage,
-				<<else>>
-					glistening on $his<<if $activeSlave.belly > 1500>> _belly<<if $activeSlave.bellyPreg >= 1500>> gravid<</if>><</if>> belly,
-				<</if>>
-			<</if>>
-			touched that you would tell $him something like that so honestly.
-			<<if ($activeSlave.vagina > 0) && canDoVaginal($activeSlave)>>
-				<<= VCheck.Both($activeSlave, 1)>>
-			<<else>>
-				<<= VCheck.Anal($activeSlave, 1)>>
-			<</if>>
-		<<else>>
-			$He groans with lust as pull $him onto your lap to make out. "Ohh," $he moans as you run your hands across $his
-			<<if $activeSlave.boobsImplant >= 1000 && (($activeSlave.boobsImplant/$activeSlave.boobs) >= .60)>>
-				bimbo
-			<<elseif $activeSlave.boobs >= 1000 && $activeSlave.butt > 5 && $activeSlave.hips > 0>>
-				fecund
-			<<elseif $activeSlave.boobs >= 1000 && $activeSlave.butt > 5>>
-				voluptuous
-			<<elseif $activeSlave.weight > 190>>
-				voluminous
-			<<elseif $activeSlave.belly >= 5000>>
-				<<if $activeSlave.bellyPreg >= 3000>>
-					gravid
-				<<elseif $activeSlave.bellyImplant >= 3000>>
-					rounded
-				<<else>>
-					swollen
-				<</if>>
-			<<elseif $activeSlave.weight > 30>>
-				soft
-			<<elseif $activeSlave.muscles > 30>>
-				ripped
-			<<elseif $activeSlave.muscles > 5>>
-				toned
-			<<elseif $activeSlave.boobs >= 500>>
-				sultry
-			<<else>>
-				needy
-			<</if>>
-			body, "thank you for telling me why I feel thi<<s>> way, <<Master>>. I gue<<ss>> thi<<s>> i<<s>> how I, oh, am now?" You reward $him for the realization by
-			<<switch $activeSlave.nipples>>
-			<<case "huge">>
-				stroking $his lewdly erect nipples.
-			<<case "huge">>
-				tweaking $his revealed nipples.
-			<<case "puffy">>
-				cupping and fondling $his puffy nipples.
-			<<case "partially inverted">>
-				teasing $his fully exposed nipples.
-			<<case "inverted">>
-				squeezing $his puffy areolae until $his inverted nipples pop out for you to tease.
-			<<case "fuckable">>
-				sticking your fingers deep into $his nipples.
-			<<default>>
-				tweaking $his $activeSlave.nipples nipples.
-			<</switch>>
-			The pent-up $girl is so desperate for release, you can feel $him trembling with ecstasy from the nipple stimulation alone.
-			"Oh, oh, it feel<<s>> <<s>>o g-good! Ye<<s>>! AHH!"
-			$He shudders with climax, smiling @@.mediumaquamarine;trustingly@@ up at you in the afterglow,
-			<<if $activeSlave.balls > 0>>
-				$his ejaculate
-				<<if ($activeSlave.chastityPenis == 1)>>
-					seeping from $his chastity cage,
-				<<else>>
-					glistening on $his<<if $activeSlave.belly > 1500>> _belly<<if $activeSlave.bellyPreg >= 1500>> gravid<</if>><</if>> belly,
-				<</if>>
-			<</if>>
-			touched that you would tell $him something like that so honestly.
-			<<run seX($activeSlave, "mammary", $PC, "penetrative")>>
-		<</if>>
-		<<set $activeSlave.trust += 4>>
-	<</replace>>
-<</link>>
-<<if ($activeSlave.fetish != "cumslut") || ($activeSlave.fetishKnown != 1)>>
-	<br><<link "Trade some oral for release">>
-		<<replace "#result">>
-			You observe, noncommittally, that $he seems ready to get off.
-			"Ye<<s>> <<Master>>!" $he squeals, too <<if $activeSlave.intelligence+$activeSlave.intelligenceImplant >= -50>>horny<<else>>stupid<</if>> to notice the sarcasm. Sighing inwardly, you slide yourself back from your desk and glance downward significantly, indicating your <<if $PC.dick != 0>>dick<<if $PC.vagina != -1>> and pussy<</if>><<else>>girl parts<</if>>. $He hurries over, almost throwing $himself at your feet in $his eagerness. "Touch yourself", you say, making it an imperious command rather than kind permission. $He moans into your <<if $PC.dick != 0>>cock<<else>>cunt<</if>> with gratitude as $he
-			<<if canDoVaginal($activeSlave)>>
-				<<if $activeSlave.dick > 0 && !($activeSlave.chastityPenis)>>
-					wraps one hand around $his dick and slips the other into $his pussy.
-				<<else>>
-					dives for $his pussy with <<if hasBothArms($activeSlave)>>both hands<<else>>$his hand<</if>>.
-				<</if>>
-			<<elseif $activeSlave.dick > 0 && !($activeSlave.chastityPenis)>>
-				<<if canAchieveErection($activeSlave)>>
-					<<if $activeSlave.dick > 4>>
-						wraps $his hand<<if hasBothArms($activeSlave)>>s<</if>> around $his huge erection.
-					<<elseif canDoAnal($activeSlave) && $activeSlave.prostate > 0>>
-						wraps a hand around $his throbbing erection and reaches around to finger $his butt and stimulate $his prostate.$his
-					<<else>>
-						wraps a hand around $his throbbing erection.
-					<</if>>
-				<<else>>
-					<<if $activeSlave.dick > 4>>
-						dives for $his huge, soft cock with <<if hasBothArms($activeSlave)>>both hands<<else>>$his hand<</if>>.
-					<<else>>
-						reaches down to fondle $his limp dick.
-					<</if>>
-				<</if>>
-			<<elseif canDoAnal($activeSlave)>>
-				<<if $activeSlave.dick == 0>>
-					reaches down and around to rub $his <<if canDoAnal($activeSlave)>>anus and <</if>>perineum.
-				<<else>>
-					<<if $activeSlave.vagina == -1>>
-						reaches around to finger $his butt, since that's $his only hole.
-					<<elseif $activeSlave.chastityVagina == 1>>
-						reaches around to finger $his butt, since $his pussy's in chastity.
-					<<else>>
-						dives for $his pussy with <<if hasBothArms($activeSlave)>>both hands<<else>>$his hand<</if>>.
-					<</if>>
-				<</if>>
-			<<elseif $activeSlave.vagina == -1 && $activeSlave.dick == 0>>
-				<<if $activeSlave.balls > 4>>
-					cups $his desperate balls, massaging them and encouraging them to release their pent-up cum.
-				<<else>>
-					reaches down and around to rub $his <<if canDoAnal($activeSlave)>>anus and <</if>>perineum.
-				<</if>>
-			<<else>>
-				brings $his hand<<if hasBothArms($activeSlave)>>s<</if>> to $his breasts to <<if $activeSlave.nipples != "fuckable">>tease $his erect<<else>>finger $his swollen<</if>> nipples.
-			<</if>>
-			<br><br>
-			$He's extremely pent up, and orgasms twice with <<if $PC.dick != 0>>your dick in $his mouth<<if $PC.vagina != -1>> first and $his tongue quivering along your pussylips second<</if>><<else>>$his mouth on your cunt<</if>>. The mental effects of this formative little experience are impossible to control with precision. Over the next few days, you notice that whenever <<if canSee($activeSlave)>>$he sees you<<else>>you see $him<</if>>,
-			<<if (random(0,1) == 1)>>
-				$he licks $his lips unconsciously. $He seems to be developing the beginnings of a lovely @@.lightcoral;oral fixation.@@
-				<<set $activeSlave.fetish = "cumslut", $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 10>>
-			<<else>>
-				$he betrays mixed feelings. The shocking intimacy of reaching sexual release as $he used $his mouth to pleasure you seems to be @@.hotpink;affecting $him.@@
-				<<set $activeSlave.devotion += 4>>
-			<</if>>
-			<<run seX($activeSlave, "oral", $PC, "penetrative")>>
-		<</replace>>
-	<</link>>
-<</if>>
-<<if ($activeSlave.fetish != "buttslut") || ($activeSlave.fetishKnown != 1)>>
-	<<if ($activeSlave.vagina == -1) && ($activeSlave.attrXY <= 65)>>
-		<br><<link "Make $him cum like a girl">>
-			<<replace "#result">>
-				You order $him to get $his ass up on your desk. $He obeys, though not without a flicker of trepidation. $He points $his butt at you like a sex slave should, and doesn't crane around to <<if canSee($activeSlave)>>see<<else>>feel<</if>> what you're doing behind $him, but $he's stiff with the awareness that <<if $PC.dick != 0>>there's almost certainly a hard<<if $PC.vagina != -1>> futa<</if>> dick about<<else>>you're almost certainly donning a strap-on<</if>> to slide inside $his girly asspussy. $He's not wrong, and $he lets out a little moan as <<if $PC.dick != 0>>your cockhead<<if $PC.vagina != -1>>, which you kindly lubed with a bit of your pussyjuice,<</if>><<else>>its broad tip<</if>> <<if $activeSlave.anus > 2>>slides easily inside $his whorish anus<<elseif $activeSlave.anus == 2>>slides up $his experienced butthole<<else>>forces its way inside $his tight sphincter<</if>>.
-				<br><br>
-				As you fuck $him, you pull $his torso up so you can play with $his <<if $activeSlave.boobs > 2000>>udders<<elseif $activeSlave.boobs > 800>>tits<<else>>nipples<</if>> and whisper manipulation into $his ear. You tell $him $he's about to cum like a girl. $He says nothing, but $his body language communicates incomprehension. Girls, you tell $him, cum when they get fucked. They cum when <<if $PC.title == 1>>guys<<else>>their betters<</if>> stick dick inside them. $He bursts into tears, sobbing with shame and degradation even as $he shakes and <<if $activeSlave.balls > 0>>squirts cum<<else>>dribbles ejaculate<</if>>. The next time $he sees you,
-				<<if (random(0,1) == 1)>>
-					$he visibly gathers $his courage, and flirtatiously @@.lightcoral;offers you $his ass.@@
-					<<set $activeSlave.fetish = "buttslut", $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 10>>
-				<<else>>
-					$he manages to stop $himself from breaking down, and seems to be @@.hotpink;working hard@@ to convince $himself that $he's a girl.
-					<<set $activeSlave.devotion += 4>>
-				<</if>>
-				<<= VCheck.Anal($activeSlave, 1)>>
-			<</replace>>
-		<</link>>
-	<<elseif ($activeSlave.vagina > -1)>>
-		<br><<link "Work on broadening $his sexual horizons">>
-			<<replace "#result">>
-				$He seems a little too focused on $his hot cunt. You order $him to get up on your desk, and $he obeys eagerly, $his <<if canSee($activeSlave)>><<= App.Desc.eyesColor($activeSlave)>> shining<<else>>facial expression filled<</if>> with lust. <<if canSee($activeSlave)>>They focus<<else>>$He focuses<</if>> on <<if $PC.dick != 0>>your cock as you bring it to bear<<if $PC.vagina != -1>>, not to mention the pussy at its base<</if>><<else>>your strap-on as you step into it<</if>>, and $he's about to express $his gratitude when you push the slave, who is sitting on the edge of your desk with $his legs spread to provide you access to $his pussy, over onto $his back. $He barely has time to reorient $himself when $he feels <<if $activeSlave.anus > 2>>a sudden fullness in $his loose ass<<elseif $activeSlave.anus == 2>>a presence inside $his experienced ass<<else>>something starting to push its way up $his poor little bottom<</if>>.
-				<br><br>
-				$He cannot hide $his disappointment, but has the presence of mind not to protest as you assfuck $him hard enough that $his <<if $activeSlave.boobs > 2000>>ridiculous tits almost hit $him in the face with each stroke<<elseif $activeSlave.boobs > 800>>big boobs bounce all over the place<<else>>boobs bounce<</if>><<if $activeSlave.belly >= 10000>> and taut belly is forced back<</if>>. $His orgasm sneaks up on $him, and comes by surprise, forcing a squeal out of $him as $his sphincter tightens down involuntarily. $He gets up gingerly, clearly feeling sore,
-				<<if (random(0,1) == 1)>>
-					and looks preoccupied. $He reaches idly around and massages $his well-fucked backdoor meditatively, biting $his lower lip as $he investigates. Maybe, $he seems to be thinking, @@.lightcoral;anal is fun?@@
-					<<set $activeSlave.fetish = "buttslut", $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 10>>
-				<<else>>
-					but @@.hotpink;does $his honest best@@ to look grateful. $He knows $he's a sex slave and can't afford to be particular about little things like getting buttfucked.
-					<<set $activeSlave.devotion += 4>>
-				<</if>>
-				<<= VCheck.Anal($activeSlave, 1)>>
-			<</replace>>
-		<</link>>
-	<</if>>
-<</if>>
-
-<<case "cage relief">>
-
-<<link "Help $him get off">>
-	<<replace "#result">>
-		You take $him by the hand and pull $him to $his feet, and then kiss $him. $He knows that this means no, but melts into you anyway, accepting the comforting gesture for what it is. $He's surprised when you do not break the kiss, but continues to make out with you compliantly. You take $him by the hands, intertwining your fingers with $hers and holding them down at your sides for a while before wrapping $his arms around you at your
-		<<if $PC.belly >= 10000>>
-			heavily pregnant
-		<<elseif $PC.belly >= 5000>>
-			gravid
-		<<elseif $PC.belly >= 1500>>
-			swollen
-		<<elseif $arcologies[0].FSPhysicalIdealist != "unset">>
-			muscular
-		<<elseif $PC.title == 0>>
-			feminine
-		<<else>>
-			masculine
-		<</if>>
-		waist. Your hands, thus freed to grope $him, tenderly hold $his head and neck instead, cupping $his <<if $activeSlave.face > 95>>gorgeous<<elseif $activeSlave.face >= -10>>pretty<<else>>homely<</if>> jawline and making $him moan at the intimacy.
-		<br><br>
-		$He's completely forgotten $his troubles, and you see that it stays that way. You consider yourself something of an expert on human stimulation at this point, and you manage $hers expertly. (Admittedly, you're also cheating, using discreet scanning of $his vital signs to check on $his state of arousal.) Whenever $he's in danger of achieving an erection, which would remind $him of $his chastity cage with a twinge of discomfort, you cool your makeout session off slightly, massaging $him capably instead of kissing $him deeply. After some time, $he shudders, to $his own complete surprise and to your unsurprised satisfaction. $He's just done what in a normal sexual encounter would be considered premature ejaculation, since you wrought $him to such a subtle state of arousal that $he got off without really getting hard. $He can muster no coherent response, but @@.mediumaquamarine;hugs you convulsively,@@ sobbing into your
-		<<if $PC.boobs >= 1400>>
-			enormous<<if $PC.boobsImplant != 0>> fake<</if>> breasts
-		<<elseif $PC.boobs >= 1200>>
-			huge<<if $PC.boobsImplant != 0>> fake<</if>> breasts
-		<<elseif $PC.boobs >= 1000>>
-			big<<if $PC.boobsImplant != 0>> firm<</if>> breasts
-		<<elseif $PC.boobs >= 300>>
-			boobs
-		<<elseif $arcologies[0].FSPhysicalIdealist != "unset">>
-			strong shoulder
-		<<elseif $PC.title == 0>>
-			feminine shoulder
-		<<else>>
-			masculine shoulder
-		<</if>>
-		with gratitude and release.
-		<br><br>
-		The scans suggest $his discomfort will return in less than half an hour.
-		<<set $activeSlave.trust += 4>>
-	<</replace>>
-<</link>>
-<br><<link "Cut $his balls off">>
-	<<replace "#result">>
-		You agree, on the condition that $he be a good little bitch like $he promised. $He thanks you frantically, following you with mixed relief, gratitude, and deep terror as you lead $him to the surgery. It's a medically simple procedure, but $he's @@.health.dec;retained for recovery@@ for some time, a common precaution in your penthouse where the surgery affects an area that might be reinjured by sexual use without a short break for the curatives to take effect. When the medical equipment verifies that $he can be fucked without pain or danger to $his health, you order $him to come back up to your office. $He is a @@.hotpink;very good little bitch,@@
-		<<if canDoAnal($activeSlave)>>
-			taking <<if $PC.dick != 0>>a hard buttfuck<<else>>a hard anal fingerfuck<</if>> with apparent enthusiasm and a strong orgasm, though of course $his continued use of a chastity cage conceals almost all the effects.
-			<<= VCheck.Anal($activeSlave, 1)>>
-		<<else>>
-			enduring all of your teasing without the slightest hint of an erection. Even though $his chastity blocks the use of $his ass, you still focus most of your attention on $his rear for the day the belt comes off.
-		<</if>>
-		When $he goes to the bathroom afterward, however, you see $him <<if canSee($activeSlave)>>glance at $himself in the mirror, just once, and then @@.gold;glance away again,@@<<else>>run $his hand under $his cock, just once, and then @@.gold;quickly removing $his hand,@@<</if>> a tear leaking down $his cheek.
-		<<set $activeSlave.balls = 0, $activeSlave.scrotum = 0, $activeSlave.trust -= 4, $activeSlave.devotion += 4>>
-		<<run surgeryDamage($activeSlave, 5)>>
-	<</replace>>
-	<<replace "#art-frame">>
-		/* 000-250-006 */
-		<<if $seeImages == 1>>
-			<<if $imageChoice == 1>>
-				<div class="imageRef lrgVector"><div class="mask">&nbsp;</div><<SlaveArt $activeSlave 3 0>></div>
-			<<else>>
-				<div class="imageRef lrgRender"><div class="mask">&nbsp;</div><<SlaveArt $activeSlave 3 0>></div>
-			<</if>>
-		<</if>>
-		/* 000-250-006 */
-	<</replace>>
-<</link>><<if ($activeSlave.anus == 0) && canDoAnal($activeSlave)>> //This option will take $his anal virginity//<</if>>
-<<if canDoAnal($activeSlave)>>
-	<br><<link "Use $his cage to torture $him">>
-		<<replace "#result">>
-			You make no reply at all, but walk around to stand behind the slave. $He knows $he's fucked, and starts to shake with fear. You put a foot on $his ass and shove $him down<<if $activeSlave.belly >= 5000>> so $his rear is pointed into the air again<<else>> to lie flat on the floor<</if>>, and then straddle $him, shoving <<if $PC.dick != 0>>your<<if $PC.vagina != -1>> futa<</if>> cock up $his butt<<else>>one more finger than $he can comfortably take up $his butt<</if>>. $He tries to beg some more, but you give $him a warning slap, and $he shuts up. Despite your roughness, $he's so horny that $he starts to get hard. You can't see or feel this directly, of course, but it's easy to tell from $his desperate sobbing and involuntary writhing, and the lovely spasming of $his anal sphincter. $His tears dry up as $he builds towards a climax; orgasm might be an uncomfortable experience for $him, but it will buy $him a few minutes free of discomfort.
-			<br><br>
-			But $he's to be disappointed. You <<if $PC.dick != 0>>worm a hand down between $his ass and your stomach, and shove a finger up inside $him, alongside your dick<<if $PC.vagina != -1>>, dexterously using the thumb of that hand to stroke your own pussy<</if>><<else>>use the hand that isn't fucking $him to pull one of $his arms around behind $him into a painful joint lock<</if>>. The pain ruins $his building orgasm, and $he cries with frustration and @@.gold;despair@@ as $he realizes that $he won't be getting off today. You force $him to experience this horrible near-release twice more, bringing $him to a terribly uncomfortable state of arousal and then using sudden pain to destroy any chance $he has of getting relief. All the wriggling and jerking around is good for you, though.
-			<<set $activeSlave.trust -= 4>>
-			<<= VCheck.Anal($activeSlave, 1)>>
-		<</replace>>
-	<</link>><<if ($activeSlave.anus == 0)>> //This option will take $his anal virginity//<</if>>
-<</if>>
-<<if ((($activeSlave.fetish == "pregnancy" && $PC.belly >= 5000) || ($activeSlave.fetish == "cumslut" && $PC.balls >= 14) || ($activeSlave.fetish == "boobs" && $PC.boobs >= 1400)) && $activeSlave.fetishKnown == 1) || ((($activeSlave.attrXX > 70 && $activeSlave.attrXY < 50 && $PC.title == 0 && $PC.vagina != -1 && $PC.dick == 0) || ($activeSlave.attrXY > 70 && $activeSlave.attrXX < 50 && $PC.title == 1 && $PC.vagina == 0 && $PC.dick != 0)) && $activeSlave.attrKnown == 1)>>
-	<br><<link "Use your body to make $his cage feel even tighter">>
-		<<replace "#result">>
-			You order $him to pay close attention<<if canSee($activeSlave)>> and not look away<</if>>.
-			<<if ($activeSlave.fetish == "pregnancy" && $PC.belly >= 5000)>>
-				<<if canSee($activeSlave)>>
-					$He questions what you mean until you begin sensually swaying your
-					<<if $PC.belly >= 100000>>
-						massive pregnancy
-					<<elseif $PC.belly >= 60000>>
-						giant pregnancy
-					<<elseif $PC.belly >= 15000>>
-						advanced pregnancy
-					<<elseif $PC.belly >= 10000>>
-						big, pregnant belly
-					<<else>>
-						pregnant belly
-					<</if>>
-					and slowly stripping down. $He groans at the sight, $his dick rapidly hardening at the view of your motherly body. You make sure to play off $his pregnancy fetish in every way possible until the aroused slave is in tears from the pressure on $his cock.
-				<<else>>
-					$He questions what you mean until you grab $his head and push $his face against your
-					<<if $PC.belly >= 100000>>
-						massive pregnancy.
-					<<elseif $PC.belly >= 60000>>
-						giant pregnancy.
-					<<elseif $PC.belly >= 15000>>
-						advanced pregnancy.
-					<<elseif $PC.belly >= 10000>>
-						big, pregnant belly.
-					<<else>>
-						pregnant belly.
-					<</if>>
-					$He tries to recoil, bringing a hand to your middle. You catch it and run it along your motherly curve to your popped navel. You trace $his hand around it as $he groans at the sensation, $his dick rapidly hardening at the feel of your motherly body. You make sure to play off $his pregnancy fetish in every way possible until the aroused slave is in tears from the pressure on $his cock.
-				<</if>>
-			<<elseif ($activeSlave.fetish == "cumslut" && $PC.balls >= 14)>>
-				<<if canSee($activeSlave)>>
-					$He questions what you mean until you begin sensually caressing your massive balls and slowly stripping down. You quickly bring yourself erect and start to jack off. $He groans at the sight, licking $his lips a the thought of your coming load as $his dick rapidly hardens. You tease yourself and hype up just how big and messy your orgasm will be, making $him quiver with painful arousal. You moan as you feel the distinct sensation of your coming ejaculation, the sheer amount of sperm moving through you takes some time to release. You hug your nuts, thrusting repeatedly until the wave of cum forces its way out of your throbbing dick. You sigh with relief, just to rub it in $his face.
-				<<else>>
-					$He questions what you mean until you strip down and pull $his face directly into your massive balls. $He tries to recoil, bringing $his hand<<if hasBothArms($activeSlave)>>s<</if>> to the immense spheres. You catch them and use one to massage your nuts and encourage a nice big load for $him and the other the help jack you off. You can feel $him shaking from the pressure on $his dick. Not only do you paint $him with seed, but you sigh loudly with relief, just to rub it in.
-				<</if>>
-			<<elseif ($activeSlave.fetish == "boobs" && $PC.boobs >= 1400)>>
-				<<if canSee($activeSlave)>>
-					$He questions what you mean until you pull your arms back, forcing your enormous<<if $PC.boobsImplant != 0>> fake<</if>> breasts to pop free of your top. $He groans at the sight, $his dick rapidly hardening at the view of your impressive rack. You make sure to play off $his tit fetish in every way possible until the aroused slave is in tears from the pressure on $his cock.
-				<<else>>
-					$He questions what you mean until you grab $his head and push $his face against your enormous<<if $PC.boobsImplant != 0>> fake<</if>> breasts. $He tries to recoil, bringing $his hand<<if hasBothArms($activeSlave)>>s<</if>> to your breasts. You continue burying $his face in your rack as $he begins to grope you. $He groans at the sensation, $his dick rapidly hardening at the feel of your lovely tits. You make sure to play off $his boob fetish in every way possible until the aroused slave is in tears from the pressure on $his cock.
-				<</if>>
-			<<elseif ($activeSlave.attrXX > 70 && $activeSlave.attrXY < 50 && $PC.title == 0 && $PC.vagina != -1 && $PC.dick == 0)>>
-				<<if canSee($activeSlave)>>
-					$He questions what you mean until you begin your strip tease. $He groans at the sight, $his dick rapidly hardening at the view of your tits and pussy. You know just how arousing $he finds the female form, and you play off that until the aroused slave is in tears from the pressure on $his cock.
-				<<else>>
-					$He questions what you mean until you grab $his head and push $his face into your pussy. $He tries to recoil, bringing $his hand<<if hasBothArms($activeSlave)>>s<</if>> to your rear. You continue rubbing yourself against $his face as begins to grope you, enjoying your feminine features. $He groans as $his dick rapidly hardens at the feel of your curves and the <<if canSmell($activeSlave)>>scent of<<else>>warmth from<</if>> your arousal. You know just how arousing $he finds the female form, and you play off that until the aroused slave is in tears from the pressure on $his cock.
-				<</if>>
-			<<else>>
-				<<if canSee($activeSlave)>>
-					$He questions what you mean until you begin your strip tease. $He groans at the sight, $his dick rapidly hardening at the view of your erection. You know just how arousing $he finds the male form, and you play off that until the aroused slave is in tears from the pressure on $his cock.
-				<<else>>
-					$He questions what you mean until you grab $his head and push $his face against your dick. $He tries to recoil, bringing $his hand<<if hasBothArms($activeSlave)>>s<</if>> to your balls. You continue rubbing yourself against $his face as begins to fondle you, enjoying your masculine features. $He groans as $his dick rapidly hardens at the feel of your penis against your face and the <<if canSmell($activeSlave)>>scent of<<else>>warmth from<</if>> your arousal and precum. You know just how arousing $he finds the male form, and you play off that until the aroused slave is in tears from the pressure on $his cock.
-				<</if>>
-			<</if>>
-			You leave $him in a @@.gold;worse state than $he started in,@@ as $he's hornier than ever and still lacks any satisfying release. But that's $his problem, not yours.<<if $PC.belly >= 10000>> Even when so heavily pregnant, it feels good to know you can still bring a dick to full attention.<</if>>
-			<<set $activeSlave.trust -= 4>>
-		<</replace>>
-	<</link>>
-<</if>>
-
-
-<<case "used whore">>
-
-<<link "Use $him anyway">>
-	<<replace "#result">>
-		You reach out, grab $his shoulder, and shove $him against the wall.
-		<<if !canTalk($activeSlave)>>
-			$He manages to use a gesture to beg you not to,
-		<<else>>
-			$He manages to beg, "Plea<<s>>e no, <<Master>> —"
-		<</if>>
-		before you give $him a hard warning slap on the ass to shut $him up. $He's quiet, but starts to sob a little when $he feels <<if $PC.dick == 0>>the head of a strap-on<<else>>your cock<</if>> against $his
-		<<if canDoAnal($activeSlave)>>
-			anus.
-			<<if ($activeSlave.anus > 2)>>
-				It's gaped before you even touch it, but it's clearly sore enough that $he dreads anal anyway.
-			<<elseif ($activeSlave.anus > 1)>>
-				It's been fucked loose, but it's clearly sore enough that $he dreads anal anyway.
-			<<else>>
-				It's somehow not gaped yet, and $he dreads having it stretched yet again.
-			<</if>>
-			<<if ($activeSlave.height >= 185)>>
-				$He's tall enough that the angle isn't that uncomfortable for $him.
-			<<elseif ($activeSlave.anus > 0)>>
-				$He hikes $himself desperately up on $his tiptoes to make the angle less uncomfortable for $him.
-			<<else>>
-				$He hikes $himself desperately up on $his tiptoes, but $he's so short the angle is desperately uncomfortable for $him.
-			<</if>>
-			$He decides to try begging one last time, and
-			<<if canDoVaginal($activeSlave)>>
-				<<if !canTalk($activeSlave)>>
-					signs to ask you to use $his pussy instead
-				<<else>>
-					whines, "Just u<<s>>e my pu<<ss>>y, plea<<s>>e!"
-				<</if>>
-			<<else>>
-				<<if !canTalk($activeSlave)>>
-					signs to ask you to let $him suck you off instead
-				<<else>>
-					whines, "Let me <<s>>uck you off, plea<<s>>e!"
-				<</if>>
-			<</if>>
-			as you shove <<if $PC.dick == 0>>the strap-on<<else>>yourself<</if>> up $his butt. $He reflexively tries to get away into the wall,
-			<<if $activeSlave.belly > 100000>>
-				$his _belly belly squashing out to either side.
-			<<elseif ($activeSlave.boobs > 2000)>>
-				$his enormous boobs squashing out to either side.
-			<<elseif ($activeSlave.boobs > 1000)>>
-				$his big boobs squashing out to either side.
-			<<elseif ($activeSlave.boobs > 300)>>
-				$his boobs crashing into it.
-			<<else>>
-				$his sore nipples giving $him a jerk as $he does.
-			<</if>>
-			After some continued whining through $his tears, $he gives up and just @@.gold;lets you@@ rape $his sore ass.
-			<<= VCheck.Anal($activeSlave, 1)>>
-		<<else>>
-			pussy lips.
-			<<if ($activeSlave.vagina > 2)>>
-				It's gaped before you even touch it, but it's clearly sore enough that $he dreads penetration anyway.
-			<<elseif ($activeSlave.vagina > 1)>>
-				It's been fucked loose, but it's clearly been used enough that $he dreads penetration anyway.
-			<<else>>
-				It's somehow not loose yet, and $he dreads having it stretched yet again.
-			<</if>>
-			<<if ($activeSlave.height >= 185)>>
-				$He's tall enough that the angle isn't that uncomfortable for $him.
-			<<elseif ($activeSlave.anus > 0)>>
-				$He hikes $himself desperately up on $his tiptoes to make the angle less uncomfortable for $him.
-			<<else>>
-				$He hikes $himself desperately up on $his tiptoes, but $he's so short the angle is desperately uncomfortable for $him.
-			<</if>>
-			$He decides to try begging one last time, and
-			<<if !canTalk($activeSlave)>>
-				signs to ask you to let $him suck you off instead
-			<<else>>
-				whines, "Let me <<s>>uck you off, plea<<s>>e!"
-			<</if>>
-			as you shove <<if $PC.dick == 0>>the strap-on<<else>>yourself<</if>> up $his cunt. $He reflexively tries to get away into the wall,
-			<<if $activeSlave.belly > 100000>>
-				$his _belly belly squashing out to either side.
-			<<elseif ($activeSlave.boobs > 2000)>>
-				$his enormous boobs squashing out to either side.
-			<<elseif ($activeSlave.boobs > 1000)>>
-				$his big boobs squashing out to either side.
-			<<elseif ($activeSlave.boobs > 300)>>
-				$his boobs crashing into it.
-			<<else>>
-				$his sore nipples giving $him a jerk as $he does.
-			<</if>>
-			After some continued whining through $his tears, $he gives up and just @@.gold;lets you@@ rape $his sore vagina.
-			<<= VCheck.Vaginal($activeSlave, 1)>>
-		<</if>>
-		When you finally <<if ($PC.dick != 0)>>fill $his <<if canDoAnal($activeSlave)>>butt<<else>>pussy<</if>> with your ejaculate and pull out,<<if $PC.vagina != -1>> the motion releasing a waft of the combined cum and pussyjuice smell of a satisfied futa,<</if>><<else>>shudder with orgasm and withdraw your strap-on,<</if>> $he slumps and turns to go, looking a bit sad for some reason.
-		<<set $activeSlave.trust += 4>>
-	<</replace>>
-<</link>>
-<br><<link "Manipulate $him into asking to suck you off">>
-	<<replace "#result">>
-		You reach out, grab $his shoulder, and shove $him against the wall.
-		<<if !canTalk($activeSlave)>>
-			$He manages to use a gesture to beg you not to,
-		<<else>>
-			$He manages to beg, "Plea<<s>>e no, <<Master>> —"
-		<</if>>
-		before you give $him a hard warning slap on the ass to shut $him up. $He's quiet, but starts to sob a little when $he feels <<if $PC.dick == 0>>the head of a strap-on<<else>>an invading<<if $PC.vagina != -1>> futa<</if>> cockhead<</if>> against $his
-		<<if canDoAnal($activeSlave)>>
-			anus.
-			<<if ($activeSlave.anus > 2)>>
-				It's gaped before you even touch it, but it's clearly sore enough that $he dreads anal anyway.
-			<<elseif ($activeSlave.anus > 1)>>
-				It's been fucked loose, but it's clearly sore enough that $he dreads anal anyway.
-			<<else>>
-				It's somehow not gaped yet, and $he dreads having it stretched yet again.
-			<</if>>
-		<<else>>
-			pussy lips.
-			<<if ($activeSlave.vagina > 2)>>
-				It's gaped before you even touch it, but it's clearly sore enough that $he dreads penetration anyway.
-			<<elseif ($activeSlave.vagina > 1)>>
-				It's been fucked loose, but it's clearly been used enough that $he dreads penetration anyway.
-			<<else>>
-				It's somehow not loose yet, and $he dreads having it stretched yet again.
-			<</if>>
-		<</if>>
-		$He
-		<<if !canTalk($activeSlave)>>
-			signs let $him suck you off instead.
-		<<else>>
-			whines, "Let me <<s>>uck you off, plea<<s>>e!"
-		<</if>>
-		Having gotten $him to beg for what you wanted all along, you spin $him so $his
-		<<if $activeSlave.weight > 160>>
-			rippling
-		<<elseif $activeSlave.weight > 95>>
-			fat
-		<<elseif ($activeSlave.muscles > 95)>>
-			powerful
-		<<elseif ($activeSlave.muscles > 30)>>
-			strong
-		<<elseif ($activeSlave.muscles > 5)>>
-			toned
-		<<else>>
-			feminine
-		<</if>>
-		back hits the wall with a smack and shove $him down it until $his
-		<<if ($activeSlave.lips > 70)>>
-			massive
-		<<elseif ($activeSlave.lips > 40)>>
-			pillowlike
-		<<elseif $activeSlave.lips > 20>>
-			girlish
-		<<elseif $activeSlave.lips > 10>>
-			average
-		<<else>>
-			minuscule
-		<</if>>
-		lips are level with your <<if $PC.dick == 0>>fake dick<<else>>dick<</if>><<if $activeSlave.belly >= 100000>>, straddle $his _belly belly<</if>>, and push it into $his mouth without waiting for $him to get ready. $He gags, but does $his best to work $his tired mouth. When you're finally satisfied and you let $him up, you aim another slap at $his
-		<<if ($activeSlave.butt > 12)>>
-			inhuman ass
-		<<elseif ($activeSlave.butt > 5)>>
-			massive ass
-		<<elseif ($activeSlave.butt > 2)>>
-			big butt
-		<<elseif $activeSlave.butt > 0>>
-			nice ass
-		<<else>>
-			flat ass
-		<</if>>
-		and let $him see it coming; $he @@.hotpink;accepts@@ the spank due to fright at what you might do if $he dodged before fleeing.
-		<<set $activeSlave.devotion += 4>>
-		<<run seX($activeSlave, "oral", $PC, "penetrative")>>
-	<</replace>>
-<</link>>
-<br><<link "Just talk with $him">>
-	<<replace "#result">>
-		You take $him by the hand, lead $him to a nearby couch, and sit down with $him, letting $him seat $himself beside you so $he can
-		<<if $activeSlave.belly >= 5000>>
-			rest $his <<if $activeSlave.bellyPreg >= 3000>>gravid <</if>>bulk against you
-		<<else>>
-			lean against you
-		<</if>>
-		without putting too much weight on $his poor overused butthole. You ask $him about $his day.
-		<<if !canTalk($activeSlave)>>
-			$He uses gestures to recount it through $his tears. Apparently while one guy was using $his anus, another thought it was hot and waited for him to be done before using $him in turn, without letting $him rest or clean $himself. It took four cocks total for another slave to notice and rescue $him.
-		<<else>>
-			$He <<say>>s, a little tearfully, "<<Master>>, thi<<s>> guy wanted to u<<s>>e my butt in public. <<S>>o of cour<<s>>e I let him, and he made me <<s>>it in hi<<s>> lap to do it, and held my leg<<if hasBothLegs($activeSlave)>><<s>><</if>> back <<s>>o everyone could <<s>>ee! And then another guy thought it wa<<s>> hot and waited, and then fucked me in my a<<ss>> too. Another <<s>>lave finally noti<<c>>ed and re<<s>>cued me after four cock<<s>>, <<Master>>. I'm really <<s>>ore."
-		<</if>>
-		$He <<if canSee($activeSlave)>>looks up at you with big <<= App.Desc.eyesColor($activeSlave)>><<else>>gazes at you<</if>> for a long moment, a final tear leaking down $his $activeSlave.skin cheek, before $he suddenly
-		<<if !canTalk($activeSlave)>>
-			shakes with mute laughter.
-		<<else>>
-			giggles.
-		<</if>>
-		$He explains $himself after a while: it's not what $he thought $he'd be doing with $his life,
-		<<switch $activeSlave.career>>
-		<<case "a bioreactor" "a breeder" "a breeding bull" "a dairy cow" "a dairy slave" "a Fuckdoll" "a Futanari Sister" "a slave" "a slave since birth" 0>>
-			once upon a time.
-		<<default>>
-			back when $he was <<= convertCareer($activeSlave)>>.
-		<</switch>>
-		<<if !canTalk($activeSlave)>>
-			$He points to $himself and uses both hands to mimic sodomy, as though to suggest that's all $he is, before giving you a rueful smile.
-		<<else>>
-			"_slavename the butthole ho, that'<<s>> me," $he <<say>>s sadly, before giving you a rueful smile.
-		<</if>>
-		$He kisses you on the cheek and @@.mediumaquamarine;thanks you@@ for listening instead of raping $him.
-		<<set $activeSlave.trust += 4>>
-		<br><br><span id="result2">
-			<<link "Kiss $him back">>
-				<<replace "#result2">>
-					You turn to kiss $him back, on the lips this time. $He <<if canSee($activeSlave)>>sees<<else>>feels<</if>> your intention and @@.mediumaquamarine;complies trustingly,@@ closing $his eyes and tilting $his head slightly so your lips lock perfectly.
-					<<if ($activeSlave.lips > 70)>>
-						$His ridiculous, pillowlike lips part softly.
-					<<elseif ($activeSlave.teeth == "pointy")>>
-						$He opens $his jaw wide, careful to keep $his shark's teeth well clear of you.
-					<<elseif ($activeSlave.teeth == "fangs")>>
-						$He keeps $his jaw steady so you may work around $his fangs easier.
-					<<elseif ($activeSlave.teeth == "fang")>>
-						You try your best to work around $his lone fang.
-					<</if>>
-					After a few seconds, $he realizes you aren't planning to break the kiss anytime soon, and softens, $his<<if $activeSlave.bellyPreg >= 1500>> pregnant<</if>> body relaxing against yours. $He scoots closer to you, bringing $his legs up under $him on the couch cushions so $he can face you comfortably. $He leans one
-					<<if $activeSlave.weight > 160>>
-						extremely well padded
-					<<elseif $activeSlave.weight > 95>>
-						well padded
-					<<elseif ($activeSlave.muscles > 30)>>
-						muscular
-					<<elseif ($activeSlave.weight > 10)>>
-						plush
-					<<elseif $activeSlave.hips > -1>>
-						pretty
-					<</if>>
-					hip against your leg, hiking $himself half onto your lap so $he can make out with you without having to sit with any weight on $his sore butthole.
-					<<set $activeSlave.trust += 2>>
-				<</replace>>
-			<</link>>
-			<br><<link "Rape $him">>
-				<<replace "#result2">>
-					But $he's wrong to place that kind of faith in you. As $he withdraws from the kiss, you snake a betraying hand between $his butt and the couch, and shove
-					<<if $activeSlave.anus <= 1>>
-						two rude fingers up $his sore little anus.
-					<<elseif $activeSlave.anus == 2>>
-						three rude fingers up $his sore anus.
-					<<else>>
-						all four of your fingers and your thumb, formed into a point, as far up $his loose butt as they will go.
-					<</if>>
-					$He lets out a pained "oh," and then goes silent. For such a little sound, it bears a great weight of @@.gold;betrayed trust.@@ You insert your fingers to the knuckle, making $him writhe with discomfort, and then turf $him off the couch to land
-					<<if $activeSlave.belly >= 300000>>
-						across $his _belly stomach
-					<<else>>
-						face first
-					<</if>>
-					on the floor in front of you. $He tries to spread $his butt and angle $his hips like a good $girl, but you slap $his hands away and push your <<if $PC.dick == 0>>strap-on<<else>>cock<</if>> inside $him without regard for $his poor anus. $He shudders and begins to cry, and keeps crying as you ravage $his asshole. When you climax and pull out, $he continues to weep, but stumbles off to wash. When $he comes back, $he's still sniffling, but without being prompted,
-					<<if $activeSlave.belly >= 300000>>
-						@@.hotpink;$he leans over $his belly and offers you $his sore butthole again.@@
-					<<else>>
-						@@.hotpink;$he gets down on $his knees and offers you $his sore butthole again.@@
-					<</if>>
-					<<set $activeSlave.trust -= 4, $activeSlave.devotion += 5>>
-					<<= VCheck.Anal($activeSlave, 1)>>
-				<</replace>>
-			<</link>>
-		</span>
-	<</replace>>
-<</link>>
-
-<<case "restricted profession">>
-
-<<link "Let $him speak briefly if $he's very quiet">>
-		<<replace "#result">>
-		You stand up from your desk and approach $him very closely without touching $him. Looking straight
-		<<if hasAnyEyes($activeSlave)>>
-			into $his eye<<if hasBothEyes($activeSlave)>>s<</if>>,
-			which are
-			<<if canSee($activeSlave)>>
-				fixed helplessly on you,
-			<<else>>
-				gazing in your general direction,
-			<</if>>
-		<<else>>
-			at $him,
-		<</if>>
-		you tell $him that you'll let $him say whatever it is $he needs to say to you, but only if $he's very quiet. $He <<if canSee($activeSlave)>>looks at you with huge eyes but<</if>> nods vigorously. $He waits until you lean into $him, making $him shiver at your proximity, before putting $his
-		<<if $activeSlave.lips > 70>>
-			ridiculous
-		<<elseif $activeSlave.lips > 40>>
-			enormous
-		<<elseif $activeSlave.lips > 20>>
-			pillowlike
-		<<else>>
-			girlish
-		<</if>>
-		lips next to your ear and whispering nervously, "I love you, <<Master>>." $He recoils a little as if burned by the audacity of $his words, but only manages to back off a little before you gather $his
-		<<if isAmputee($activeSlave)>>
-			limbless
-		<<elseif $activeSlave.bellyPreg >= 1500>>
-			gravid
-		<<elseif $activeSlave.belly >= 1500>>
-			_belly
-		<<else>>
-			rocking
-		<</if>>
-		torso into your arms, holding the back of $his head with one hand and rubbing $his quivering back with the other. Eventually, $he relaxes into
-		<<if ($PC.boobs >= 300)>>
-			<<if $PC.boobsImplant != 0>>
-				your fake breasts,
-			<<else>>
-				your soft chest,
-			<</if>>
-		<<else>>
-			you,
-		<</if>>
-		knowing that $his <<= getWrittenTitle($activeSlave)>> can never and will never reciprocate, but @@.hotpink;accepting@@ that the loving physical contact is a tremendously kind gesture for a master to make.
-		<<set $activeSlave.devotion += 4>>
-	<</replace>>
-<</link>>
-<br><<link "Make $him say it in public">>
-	<<replace "#result">>
-		Since you suspect you know what it is $he wants to say, you <<if !hasAnyLegs($activeSlave)>>carry $him out<<elseif hasAnyArms($activeSlave)>>lead $him by the hand<<else>>have $him follow you<</if>> onto the club, busy with citizens. You tell $him quietly that $he's to shout whatever it is $he wanted to say, if it's something everyone should hear; otherwise $he's to keep it to $himself. $He <<if canSee($activeSlave)>>looks around<<elseif canHear($activeSlave)>>listens<<else>>opens $his mouth<</if>> nervously, $his $activeSlave.skin skin betraying a growing blush, before clearing $his throat twice, licking $his lips, and howling "I LOVE MY _shoutitoutloud" at the tops of $his lungs. When this is out of $him $he collapses a little, as though the pressure of holding it inside were propping $him up. This attracted a considerable amount of attention, almost all of it @@.green;positive,@@ with many passersby laughing at the fun, and your fellow slaveowners giving you discreet winks and quiet congratulations.
-		<<run repX(750, "event", $activeSlave)>>
-	<</replace>>
-<</link>>
-<br><<link "Keep $him quiet but spend some time with $him">>
-	<<replace "#result">>
-		You announce that you're finished with business for the day, and feel like some quiet time. $He cannot keep <<if canSee($activeSlave)>>a gleam of humor out of $his eye<<else>>the corners of $his lips from rising slightly<</if>> at <<if canHear($activeSlave)>>hearing<<else>>the phrase<</if>> 'quiet time,' and $he <<if !hasAnyLegs($activeSlave)>>presents $himself to be carried<<else>>follows you<</if>> happily enough. When $he <<if canSee($activeSlave)>>sees<<else>>realizes<</if>> you're headed to your bedroom $he begins to anticipate $his <<= getWrittenTitle($activeSlave)>>'s <<if $PC.dick == 0>>strap-on<<else>>cock<</if>>, but is surprised to find that instead of using $him you simply
-		<<if isAmputee($activeSlave)>>
-			place $him in bed and curl up around $his limbless torso.
-		<<elseif $activeSlave.bellyPreg >= 5000>>
-			help $him into bed and curl up with $him, your arms encircling $his prominent baby bump.
-		<<elseif $activeSlave.belly >= 5000>>
-			help $him into bed and curl up with $him, your arms encircling $his _belly dome of a middle.
-		<<else>>
-			climb into bed and pull $him under the sheets with you.
-		<</if>>
-		$He's almost disappointed, but after looking into your resting face for a while, nestles $his head onto your broad chest and goes to sleep with a @@.hotpink;look of contentment@@ on $his face. When the two of you wake from your brief nap, you ask $him if $he has anything else to communicate to you. $He smiles sleepily and shakes $his head no.
-		<<set $activeSlave.devotion += 4>>
-	<</replace>>
-<</link>>
-
-<<case "mods please">>
-
-<<link "Perform it yourself">>
-	<<replace "#result">>
-		You stand up from behind your desk and head towards the body modification studio, <<if canSee($activeSlave)>>crooking a finger at<<else>>calling<</if>> $him as you as you go. $He follows bouncily, thanking you profusely, and then thanking you again when it becomes apparent to $him that you intend to do the body art yourself. $He snuggles into the chair, relaxing as the restraints bind $him in. They're not really necessary to modify a willing $girl, never mind one this enthusiastic, but they could possibly prevent $him from flinching, and it's not like $he resents being bound at this point.
-		<br><br>
-		Manipulating the machine, you
-		<<if ($activeSlave.fetish == "submissive") && ($activeSlave.fetishKnown == 1)>>
-			place the first piercing, eliciting a hum of mild pain and abject submission from $activeSlave.slaveName. The piercing session goes on and on, with the slave sinking into a boneless, mindless state in which $his being is completely in your hands. $He's almost sleepy when you finally release $him, but $he rises and <<if canSee($activeSlave)>>turns, craning around to see in the mirror<<else>>gingerly feeling around $his new piercings<</if>>. $He @@.hotpink;smiles devotedly,@@ and asks you when $he'll be healed enough that $he can be laced up.
-			<<set $activeSlave.corsetPiercing = 1>>
-		<<elseif ($activeSlave.fetish == "cumslut") && ($activeSlave.fetishKnown == 1)>>
-			hold $his mouth agape and place the first piercing. $He can't make much of a facial expression with $his mouth that wide, but there is a lewd <<if canSee($activeSlave)>>glint in $his eye<<else>>look on $his face<</if>> when $he realizes $he's getting more than one. When you're done, $he's sore enough that $he gestures $his thanks, @@.hotpink;smiling devotedly,@@ and begs you to try $him out when $he's healed up.
-			<<set $activeSlave.tonguePiercing = 2>>
-		<<elseif ($activeSlave.fetish == "humiliation") && ($activeSlave.fetishKnown == 1)>>
-			activate the ink gun, its low buzzing drawing a moan of anticipation out of $activeSlave.slaveName. Working at a touchscreen, you exercise your artistic talents, inscribing the slave's status as a sex object on $his forehead. The pain is intense, but $he tolerates it, the tears running fast out of the corners of $his eyes and low groans rising out of $his throat. When $he's finally allowed to rise<<if canSee($activeSlave)>> and sees $himself in a mirror<<elseif canHear($activeSlave)>>and listens intently on your descriptions of $his new face<</if>>, $he blushes furiously and cries harder, knowing that $his status as a humiliation slut is now permanent. This culmination of $his deeply perverse sense of self @@.hotpink;draws $him closer to you.@@
-			<<set $activeSlave.lipsTat = "degradation">>
-		<<elseif ($activeSlave.fetish == "buttslut") && ($activeSlave.fetishKnown == 1)>>
-			place a spreader to keep $his legs and cheeks apart and start piercing. $He whines with the pain, and then gasps when $he realizes that the piercing is going on much longer than $he expected. You give $him a couple of huge piercings below $his anus, big enough that $he'll never be free of them rubbing against $his slutty butthole. Not done yet, you put some small, smooth studs around it, just to make sure nobody can possibly misunderstand where to fuck this bitch. $He gets up gingerly, but @@.hotpink;smiling sluttily.@@
-			<<set $activeSlave.anusPiercing = 2>>
-		<<elseif ($activeSlave.fetish == "boobs") && ($activeSlave.fetishKnown == 1)>>
-			<<if ($activeSlave.nipples.includes("inverted"))>>
-				use a couple of its actuators to stimulate $his nipples until they're almost all the way protruded, and then direct them to pull them out all the way. $He screams wholeheartedly at the pain, yelling on and on until $he's out of breath and relaxes against the restraints, gasping and crying.
-			<<else>>
-				use its actuators to pull $his nipples out as far as they will go, forcing a gasp of pain out of $him.
-			<</if>>
-			$He expects a simple nipple piercing, one for each boob; what $he gets is a set of heavy rings in each nipple. $He's no masochist, so the pleasure will come later, but $he moans as $he feels the gradual addition of weight to $his nipples. $He rises very carefully, trying to keep $his boobs still, and @@.hotpink;smiles devotedly@@ at you. Soon enough, $he'll be able to orgasm by walking.
-			<<set $activeSlave.nipplesPiercing = 2>>
-		<<elseif ($activeSlave.fetish == "pregnancy") && ($activeSlave.fetishKnown == 1)>>
-			<<if $activeSlave.belly >= 10001>>
-				hold $his _belly stomach steady and pierce $his navel with the largest, heaviest ring available. There is a lewd <<if canSee($activeSlave)>>glint in $his eye<<else>>look on $his face<</if>> as $he feels the new weight settle against $his middle. $He rises very carefully, trying to keep $his new piercing from moving, and @@.hotpink;smiles devotedly@@ at you. Soon enough, all eyes will be on $his belly as $he waddles by.
-				<<set $activeSlave.navelPiercing = 2>>
-			<<else>>
-				activate the ink gun, its low buzzing drawing a moan of anticipation out of $activeSlave.slaveName. Working at a touchscreen, you exercise your artistic talents, beautifying $his <<if $activeSlave.belly >= 150>> _belly stomach<<else>>abdomen<</if>> with an inducement to fuck $him.
-				<<if canSee($activeSlave)>>
-					<<if $activeSlave.belly >= 5000>>
-						$He can't see what you are inking into the underside of $his belly, but $he tries anyway.
-					<<else>>
-						$He's just able to crane $his head enough to see the work, and eagerly watches.
-					<</if>>
-					When you're done, $he stares at $himself for a long time,
-				<<else>>
-					Once you finish $his new tattoo, you describe it to $him in detail. $He pauses for a moment,
-				<</if>>
-				a curiously mixed expression on $his face. This is $his life now; it's permanently a part of $him, and @@.hotpink;$he knows it.@@
-				<<set $activeSlave.vaginaTat = "lewd crest">>
-			<</if>>
-		<<elseif ($activeSlave.fetish == "dom") && ($activeSlave.fetishKnown == 1)>>
-			activate the ink gun, its low buzzing drawing a moan of anticipation out of $activeSlave.slaveName. Working at a touchscreen, you exercise your artistic talents, making the side of $his face fierce with tribal patterns. Tattooing over such thin and sensitive skin is intensely painful, but $he tolerates it, permitting nothing but a low and continuing growl to escape. $He's obviously tired out by the pain when $he's finally allowed to rise, but $he <<if canSee($activeSlave)>>looks at $himself in the mirror<<elseif canHear($activeSlave)>>listens to your description<<else>>traces the design with $his fingertips<</if>> with @@.hotpink;obvious approval.@@
-			<<set $activeSlave.lipsTat = "tribal patterns">>
-		<<elseif ($activeSlave.fetish == "sadist") && ($activeSlave.fetishKnown == 1)>>
-			<<if canAchieveErection($activeSlave)>>
-				take hold of $his most intimate parts and put a set of massive piercings straight through $his shaft. $He shrieks with agony, the noise going on and on before diminishing into breathless sobbing. Much later, when $he gets gingerly up from the chair, $he doesn't look eager to stick $his cock in anything, but $he's @@.hotpink;thankful enough.@@
-				<<set $activeSlave.dickPiercing = 2>>
-			<<elseif $activeSlave.dick > 0>>
-				hold $his mouth agape and place the first piercing. $He can't make much of a facial expression with $his mouth that wide, but there is a lewd <<if canSee($activeSlave)>>glint in $his eye<<else>>look on $his face<</if>> when $he realizes $he's getting more than one. When you're done, $he's sore enough that $he gestures $his thanks, @@.hotpink;smiling devotedly;@@ $he looks eager to try out $his new piercing on a fresh pussy.
-				<<set $activeSlave.tonguePiercing = 2>>
-			<<else>>
-				take hold of $his most intimate parts and put a set of massive piercings straight through $his pussylips. $He shrieks with agony, the noise going on and on before diminishing into breathless sobbing. Much later, when $he gets gingerly up from the chair, $he doesn't look eager to trib anything, but $he's @@.hotpink;thankful enough.@@
-				<<set $activeSlave.vaginaPiercing = 2>>
-			<</if>>
-		<<elseif ($activeSlave.fetish == "masochist") && ($activeSlave.fetishKnown == 1)>>
-			take hold of $his most intimate parts and put a series of massive piercing straight through $his
-			<<if $activeSlave.dick > 0>>
-				shaft.
-				<<set $activeSlave.dickPiercing = 2>>
-			<<else>>
-				pussylips.
-				<<set $activeSlave.vaginaPiercing = 2>>
-			<</if>>
-			$He shrieks with agony and then orgasms as strongly as you've ever seen a slave climax, $his every fiber tensing against the restraints. For a long, long time $he has to work to breathe, the overstimulation clearing slowly. When you finally let $him up, $he hasn't remembered how to talk yet, but $his gaze says it for $him. It looks like $he's just had @@.hotpink;the best sex of $his life.@@
-		<<else>>
-			<<if ($activeSlave.nipples.includes("inverted"))>>
-				use a couple of its actuators to stimulate $his nipples until they're almost all the way protruded, and then direct them to pull them out all the way. $He screams wholeheartedly at the pain, yelling on and on until $he's out of breath and relaxes against the restraints, gasping and crying.
-			<<else>>
-				use its actuators to pull $his nipples out as far as they will go, forcing a gasp of pain out of $him.
-			<</if>>
-			This done, you give $him a simple pair of barbell nipple piercings. The machine makes this take less time than it takes to describe it, and after a shocked squeal of pain $he's released. $He rises carefully, trying to keep $his boobs still, and @@.hotpink;smiles thankfully@@ at you. $He <<if canSee($activeSlave)>>glances at $himself in the mirror<<else>>listens to your description of $him<</if>>, looking pleased.
-			<<set $activeSlave.nipplesPiercing = 1>>
-		<</if>>
-		<<set $activeSlave.devotion += 5>>
-	<</replace>>
-<</link>>
-<br><<link "$He's beautiful just the way $he is">>
-	<<replace "#result">>
-		You tell $him firmly that $he's beautiful just the way $he is. $He blushes and giggles at the absurdly trite statement. You conclude the inspection, and $he continues on to the next item in $his life as a sex slave, @@.mediumaquamarine;pleased and reassured@@ that you have a plan for what $he should look like.
-		<<set $activeSlave.trust += 4>>
-	<</replace>>
-<</link>>
-<br><<link "No, and slaves should not make requests of this kind">>
-	<<replace "#result">>
-		You tell $him firmly that you don't intend to apply body modifications to $him, your tone communicating that further requests on this subject are not permitted. $He understands clearly and looks a little crushed, but trusts that $he won't be punished for violating a rule you hadn't promulgated. You repair the oversight immediately, directing your personal assistant to spread notice that decisions about body modifications are yours alone.
-		<<set $modRequestsAllowed = 0>>
-	<</replace>>
-<</link>>
-
-<<case "resistant anal virgin">>
-
-<<link "Let $him earn continued anal virginity">>
-	<<replace "#result">>
-		You tell $him $he's a sex slave, and that $he needs to learn how to take a dick up the ass.
-		<<if !canTalk($activeSlave) && hasAnyArms($activeSlave)>>
-			$He frantically begs with gestures, pleading <<if hasBothLegs($activeSlave)>>on $his knees<<else>>desperately<</if>>.
-		<<elseif !canTalk($activeSlave)>>
-			$He frantically mouths pleas that you leave $his butt alone.
-		<<else>>
-			$He begs, "Plea<<s>>e no, <<Master>>, plea<<s>>e don't rape me in my a<<ss>>, <<Master>>!"
-		<</if>>
-		You make a show of considering, and then tell $him that if $he's extra obedient, you might let $him keep $his butt — for now. You tell $him to <<if $PC.dick != 0>>blow you<<if $PC.vagina != -1>> and <</if>><</if>><<if $PC.vagina != -1>>lick your pussy<</if>>, and $he does with unusual obedience. When $he's done, you bend down and whisper in $his ear that if $he shows any sign of rebelliousness, you'll ruin $his little asshole. @@.gold;$He's terrified.@@
-		<<set $activeSlave.trust -= 5>>
-		<<run seX($activeSlave, "oral", $PC, "penetrative")>>
-	<</replace>>
-<</link>>
-<<if hasAnyLegs($activeSlave)>>
-	<br><<link "Force $him to degrade $himself">>
-		<<replace "#result">>
-			Suction cup dildos are terribly useful. You place a moderate-sized one on a low table in your office<<if ($activeSlave.chastityAnus)>>, unlock $his chastity belt<</if>>, and order $him to squat down on it and fuck $his own asshole. $He hesitates, incredulous, and finds $himself bound to the couch and thoroughly whipped. It isn't a sexual whipping, either, but a methodical and scientific administration of pain right up to the border of damage. When $he's been reduced to a state of abject, sobbing surrender, you free $him and repeat your orders as though nothing had happened. Still crying, $he hobbles over and up onto the table,
-			<<if $activeSlave.belly >= 300000 || $activeSlave.weight > 190>>
-				struggles to line $himself up, and finds it slammed into $his asshole when the table gives out under $his<<if $activeSlave.belly >= 300000>> gravid<</if>> weight. You leave $him there to struggle with the dildo wedged in $his rear until $he finally manages to pop it free from the table fragment stuck under mass and roll over. You haul $him onto
-			<<else>>
-				<<if $activeSlave.belly > 20>>gingerly lowers $his <<if $activeSlave.bellyPreg >= 3000>>pregnant <</if>>bulk onto it,<</if>> and fucks $his little ass open on the dildo. You keep $him up there until $his legs give out<<if $activeSlave.belly >= 10000 || $activeSlave.weight > 190>>and $his <<if $activeSlave.bellyPreg >= 3000>>gravid <</if>>weight pins $him on the toy;<<else>>, and<</if>> then let $him lie down on
-			<</if>>
-			the couch, telling $him to keep working the dildo with $his hand<<if hasBothArms($activeSlave)>>s<</if>> or suffer another whipping. After $he's had $his ass filled for a good while, $he has no trouble taking a <<if $PC.dick == 0>>strap-on<<else>>real dick<</if>> for the first time, and is by this point too exhausted to do anything but lie there and be a good little anal slave. @@.gold;$He fears you,@@ and @@.lime;$his butthole has been broken in.@@
-			<<set $activeSlave.trust -= 5, $activeSlave.anus = 1>>
-			<<= VCheck.Anal($activeSlave, 1)>>
-		<</replace>>
-	<</link>> //This option will take $his anal virginity//
-	<<if $activeSlave.vagina == 0>>
-		<br><<link "Make $him choose between $his virginities">>
-			<<replace "#result">>
-				You tell $him $he's a sex slave, and that $he needs to learn how to take a dick up the ass.
-				<<if !canTalk($activeSlave) && hasAnyArms($activeSlave)>>
-					$He frantically begs with gestures, pleading <<if hasBothLegs($activeSlave)>>on $his knees<<else>>desperately<</if>>.
-				<<elseif !canTalk($activeSlave)>>
-					$He frantically mouths pleas that you leave $his butt alone.
-				<<else>>
-					$He begs, "Plea<<s>>e no, <<Master>>, plea<<s>>e don't rape me in my a<<ss>>, <<Master>>!"
-				<</if>>
-				You make a show of considering, and then tell $him you know a way $he can continue being an anal virgin — for now. You want a new hole to play with, and $he has two untouched holes. $He gasps when $he realizes what you want. $He hesitates to answer, uncertain of which $he values more, and finds $himself bound to the couch<<if ($activeSlave.chastityAnus)>>, stripped of $his chastity,<</if>> and thoroughly whipped. It isn't a sexual whipping, either, but a methodical and scientific administration of pain right up to the border of damage. When $he's been reduced to a state of abject, sobbing surrender, you free $him and repeat your orders as though nothing had happened. Still crying, $he prostrates $himself and
-				<<if $activeSlave.trust < 20>>
-					spreads $his butt for you.
-				<<else>>
-					$his pussylips for you.
-				<</if>>
-				You callously ram a dildo into $his fresh hole and tell $him to keep working $himself with it or suffer another whipping. After $he's fucked $himself for a good while, $he has no trouble taking a <<if $PC.dick == 0>>strap-on<<else>>real dick<</if>> for the first time, and is by this point too exhausted to do anything but lie there and take it a good little slave. @@.gold;$He fears you@@ but @@.hotpink;loses $himself to your rule.@@
-				<<if $activeSlave.trust < 20>>
-					@@.lime;$His butthole has been broken in.@@
-					<<set $activeSlave.anus = 1>>
-					<<= VCheck.Anal($activeSlave, 1)>>
-				<<else>>
-					@@.lime;$His pussy has been broken in.@@
-					<<set $activeSlave.vagina = 1>>
-					<<= VCheck.Vaginal($activeSlave, 1)>>
-				<</if>>
-				<<set $activeSlave.trust -= 5, $activeSlave.devotion += 3>>
-			<</replace>>
-		<</link>> //This option will take one of $his virginities//
-	<</if>>
-<</if>>
-
 <<case "diet">>
 
 <<link "Catch $him at it and punish $him">>