diff --git a/src/004-base/facility.js b/src/004-base/facility.js
index 13de061f875f89e92f7fda30b82d013aedb0a235..ad3095f1f5a7ae25535d6252ed53bc2b38e961cb 100644
--- a/src/004-base/facility.js
+++ b/src/004-base/facility.js
@@ -355,7 +355,9 @@ App.Entity.Facilities.Facility = class {
 	 */
 	isHosted(slave) {
 		for (const j in this._jobs) {
-			if (this._jobs[j].isEmployed(slave)) { return true; }
+			if (this._jobs[j].isEmployed(slave)) {
+				return true;
+			}
 		}
 
 		return false;
diff --git a/src/SpecialForce/Proposal.tw b/src/SpecialForce/Proposal.tw
index 72ca2c8bb32f7ad3d7694ec5aa4d74a9951ab7cb..fd04ace1eb007934f4453ade086258277c914d85 100644
--- a/src/SpecialForce/Proposal.tw
+++ b/src/SpecialForce/Proposal.tw
@@ -1,34 +1,21 @@
 :: Security Force Proposal [nobr]
 
-<<set $nextButton = " ">>
-<span id="result">
+<<set $nextButton = " ", _price = 20000>>
+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.
+<br><br>
+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.
+<br><br>
+They've also seen the results of your policies. Your actions towards the arming of both yourself and the arcology proved critical, and ensured their safety when the old world came for them. And your victory over the Daughters of Liberty, who the citizens know would have executed every single one of them, has created an opportunity. If you insisted upon the creation of a standing 'special' force for the arcology, many would support you and, more importantly, nobody of note would object.
+<br><br>
+Such a force would solve many problems. More soldiers would mean more control, which is very good for you. More soldiers would mean more security for the arcology and the approaches to it, which is very good for business. More soldiers would mean more obedience from rebellious slaves who can see how powerless they truly are, which is very good for everybody. The force would be tiny compared to the old world militaries that still exist, but money and technology can, of course, overcome massive numerical inferiority. This being the Free Cities, they would have other uses besides security. Perhaps, in time, you could exert some manner of influence on the old world itself.
+<br><br>
+''This is a unique and very important opportunity'', and is possible only because of your recent victory over the Daughters. If you do not seize it, the memories and fears of your citizens will fade,and you will not be able to raise the matter again.
 
-	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.
-	<br><br>
-	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.
-	<br><br>
-	They've also seen the results of your policies. Your actions towards the arming of both yourself and the arcology proved critical, and ensured their safety when the old world came for them. And your victory over the Daughters of Liberty, who the citizens know would have executed every single one of them, has created an opportunity. If you insisted upon the creation of a standing 'special' force for the arcology, many would support you and, more importantly, nobody of note would object.
-	<br><br>
-	Such a force would solve many problems. More soldiers would mean more control, which is very good for you. More soldiers would mean more security for the arcology and the approaches to it, which is very good for business. More soldiers would mean more obedience from rebellious slaves who can see how powerless they truly are, which is very good for everybody. The force would be tiny compared to the old world militaries that still exist, but money and technology can, of course, overcome massive numerical inferiority. This being the Free Cities, they would have other uses besides security. Perhaps, in time, you could exert some manner of influence on the old world itself.
-	<br><br>
-	''This is a unique and very important opportunity'', and is possible only because of your recent victory over the Daughters. If you do not seize it, the memories and fears of your citizens will fade,and you will not be able to raise the matter again.
-
-	<<set _price = 20000>>
-	<<if $PC.warfare >= 100>>
-		<<set _price *= .5>>
-	<<elseif $PC.warfare >= 50||$PC.career === "arcology owner">>
-		<<set _price *= .75>>
-	<</if>>
-	<br><<link "Prepare for an announcement." "Security Force Naming-Colonel">>
-		<<replace "#result">>
-			<<= App.SF.Init()>>
-			<<set $SF.IntroProgress = -1>>
-			<<run cashX(forceNeg(_price), "specialForces")>>
-		<</replace>>
-	<</link>><br>//Initial costs are @@.yellowgreen;<<print cashFormat(_price)>>@@ and upon establishment the force will have significant support costs until it is self-sufficient.//
-	<br><<link "The current measures are enough." "RIE Eligibility Check">>
-		<<replace "#result">>
-			<<set $SF.Active = 0>>
-		<</replace>>
-	<</link>>
-</span>
\ No newline at end of file
+<<if $PC.warfare >= 100>>
+	<<set _price *= 0.5>>
+<<elseif $PC.warfare >= 50||$PC.career === "arcology owner">>
+	<<set _price *= 0.75>>
+<</if>>
+<br>[[Prepare for an announcement.|Security Force Naming-Colonel][$SF.Active = 1, $SF.IntroProgress = -1, App.SF.Init(), cashX(-_price, "specialForces")]]
+<br>&nbsp;//Initial costs are @@.yellowgreen;<<print cashFormat(_price)>>@@ and upon establishment the force will have significant support costs until it is self-sufficient.//
+<br>[[The current measures are enough|RIE Eligibility Check][$SF.Active = 0]]
\ No newline at end of file
diff --git a/src/SpecialForce/SpecialForce.js b/src/SpecialForce/SpecialForce.js
index 7c94a665095ca8e0d6fc181b311e3a72bf71e148..57f05c859dc42e3aacc0174aa5f1f609892c2395 100644
--- a/src/SpecialForce/SpecialForce.js
+++ b/src/SpecialForce/SpecialForce.js
@@ -1,62 +1,66 @@
 // V=SugarCube.State.variables, T=SugarCube.State.temporary;
 App.SF.Init = function() {
 	const V = State.variables;
-	if (V.SF === undefined) V.SF = {};
-	if (V.SF.UC === undefined) V.SF.UC = {};
-	V.SF.Depravity = V.SF.Depravity || 0;
-	V.SF.Size = V.SF.Size || 0;
-	V.SF.Upgrade = V.SF.Upgrade || 0;
-	V.SF.Gift = V.SF.Gift || 0;
-	V.SF.UC.Assign = V.SF.UC.Assign || 0;
-	V.SF.UC.Lock = V.SF.UC.Lock || 0;
-	V.SF.UC.num = V.SF.UC.num || 0;
-	V.SF.ROE = V.SF.ROE || "hold";
-	V.SF.Target = V.SF.Target || "recruit";
-	V.SF.Regs = V.SF.Regs || "strict";
-	V.SF.Caps = V.SF.Caps || "The Special Force";
-	V.SF.Lower = V.SF.Lower || "the special force";
-
-	if (V.SF.Squad === undefined) V.SF.Squad = {};
-	V.SF.Squad.Troops = V.SF.Squad.Troops || 40;
-	V.SF.Squad.Armoury = V.SF.Squad.Armoury || 0;
-	V.SF.Squad.Firebase = V.SF.Squad.Firebase || 0;
-	V.SF.Squad.AV = V.SF.Squad.AV || 0;
-	V.SF.Squad.TV = V.SF.Squad.TV || 0;
-	V.SF.Squad.Drones = V.SF.Squad.Drones || 0;
-	V.SF.Squad.Drugs = V.SF.Squad.Drugs || 0;
-	V.SF.Squad.PGT = V.SF.Squad.PGT || 0;
-	V.SF.Squad.AA = V.SF.Squad.AA || 0;
-	V.SF.Squad.TA = V.SF.Squad.TA || 0;
-	V.SF.Squad.SpacePlane = V.SF.Squad.SpacePlane || 0;
-	V.SF.Squad.GunS = V.SF.Squad.GunS || 0;
-
-	if (V.SF.Squad.Satellite === undefined) V.SF.Squad.Satellite = {};
-	V.SF.Squad.Satellite.lv = V.SF.Squad.Satellite.lv || 0;
-	V.SF.Squad.Satellite.InOrbit = V.SF.Squad.Satellite.InOrbit || 0;
-	V.SF.Squad.GiantRobot = V.SF.Squad.GiantRobot || 0;
-	V.SF.Squad.MissileSilo = V.SF.Squad.MissileSilo || 0;
-	V.SF.Squad.AircraftCarrier = V.SF.Squad.AircraftCarrier || 0;
-	V.SF.Squad.Sub = V.SF.Squad.sub || 0;
-	V.SF.Squad.HAT = V.SF.Squad.HAT || 0;
-
-	if (V.SF.Colonel === undefined) V.SF.Colonel = {};
-	V.SF.Colonel.Core = V.SF.Colonel.Core || "";
-	V.SF.Colonel.Talk = V.SF.Colonel.Talk || 0;
-	V.SF.Colonel.Fun = V.SF.Colonel.Fun || 0;
-	V.SF.Colonel.Status = V.SF.Colonel.Status || 0;
-
-	if (V.SF.MercCon === undefined) V.SF.MercCon = {};
-	V.SF.MercCon.History = V.SF.MercCon.History || 0;
-	V.SF.MercCon.CanAttend = V.SF.MercCon.CanAttend || -2;
-	V.SF.MercCon.Income = V.SF.MercCon.Income || 0;
-	V.SF.MercCon.Revenue = V.SF.MercCon.Revenue || 0;
-	V.SF.MercCon.Mercs = V.SF.MercCon.Mercs || 0;
-	V.SF.MercCon.Menials = V.SF.MercCon.Menials || 0;
-	V.SF.MercCon.TotalMenials = V.SF.MercCon.TotalMenials || 0;
-	V.SF.MercCon.TotalMercs = V.SF.MercCon.TotalMercs || 0;
-
+	if (passage() === "init" || passage() === "New Game Plus") V.SF = {Active: -1};
+	V.SF.Toggle = V.SF.Toggle || 0;
+	V.SF.FS = V.SF.FS || {};
 	V.SF.FS.Tension = V.SF.FS.Tension || -1;
-	App.SF.AAR(0);
+	if (V.SF.Toggle && V.SF.Active >= 1) {
+		V.SF.UC = V.SF.UC || {};
+		V.SF.Depravity = V.SF.Depravity || 0;
+		V.SF.Size = V.SF.Size || 0;
+		V.SF.Upgrade = V.SF.Upgrade || 0;
+		V.SF.Gift = V.SF.Gift || 0;
+		V.SF.UC.Assign = V.SF.UC.Assign || 0;
+		V.SF.UC.Lock = V.SF.UC.Lock || 0;
+		V.SF.UC.num = V.SF.UC.num || 0;
+		V.SF.ROE = V.SF.ROE || "hold";
+		V.SF.Target = V.SF.Target || "recruit";
+		V.SF.Regs = V.SF.Regs || "strict";
+		V.SF.Caps = V.SF.Caps || "The Special Force";
+		V.SF.Lower = V.SF.Lower || "the special force";
+
+		V.SF.Squad = V.SF.Squad || {};
+		V.SF.Squad.Troops = V.SF.Squad.Troops || 40;
+		V.SF.Squad.Armoury = V.SF.Squad.Armoury || 0;
+		V.SF.Squad.Firebase = V.SF.Squad.Firebase || 0;
+		V.SF.Squad.AV = V.SF.Squad.AV || 0;
+		V.SF.Squad.TV = V.SF.Squad.TV || 0;
+		V.SF.Squad.Drones = V.SF.Squad.Drones || 0;
+		V.SF.Squad.Drugs = V.SF.Squad.Drugs || 0;
+		V.SF.Squad.PGT = V.SF.Squad.PGT || 0;
+		V.SF.Squad.AA = V.SF.Squad.AA || 0;
+		V.SF.Squad.TA = V.SF.Squad.TA || 0;
+		V.SF.Squad.SpacePlane = V.SF.Squad.SpacePlane || 0;
+		V.SF.Squad.GunS = V.SF.Squad.GunS || 0;
+
+		V.SF.Squad.Satellite = V.SF.Squad.Satellite || {};
+		V.SF.Squad.Satellite.lv = V.SF.Squad.Satellite.lv || 0;
+		V.SF.Squad.Satellite.InOrbit = V.SF.Squad.Satellite.InOrbit || 0;
+		V.SF.Squad.GiantRobot = V.SF.Squad.GiantRobot || 0;
+		V.SF.Squad.MissileSilo = V.SF.Squad.MissileSilo || 0;
+		V.SF.Squad.AircraftCarrier = V.SF.Squad.AircraftCarrier || 0;
+		V.SF.Squad.Sub = V.SF.Squad.sub || 0;
+		V.SF.Squad.HAT = V.SF.Squad.HAT || 0;
+
+		V.SF.Colonel = V.SF.Colonel || {};
+		V.SF.Colonel.Core = V.SF.Colonel.Core || "";
+		V.SF.Colonel.Talk = V.SF.Colonel.Talk || 0;
+		V.SF.Colonel.Fun = V.SF.Colonel.Fun || 0;
+		V.SF.Colonel.Status = V.SF.Colonel.Status || 0;
+
+		V.SF.MercCon = V.SF.MercCon || {};
+		V.SF.MercCon.History = V.SF.MercCon.History || 0;
+		V.SF.MercCon.CanAttend = V.SF.MercCon.CanAttend || -2;
+		V.SF.MercCon.Income = V.SF.MercCon.Income || 0;
+		V.SF.MercCon.Revenue = V.SF.MercCon.Revenue || 0;
+		V.SF.MercCon.Mercs = V.SF.MercCon.Mercs || 0;
+		V.SF.MercCon.Menials = V.SF.MercCon.Menials || 0;
+		V.SF.MercCon.TotalMenials = V.SF.MercCon.TotalMenials || 0;
+		V.SF.MercCon.TotalMercs = V.SF.MercCon.TotalMercs || 0;
+
+		App.SF.AAR(0);
+	}
 	// V.arcologies[0].SFRaid = 1; V.arcologies[0].SFRaidTarget = -1;
 	/* if (typeof V.SF.Facility === "undefined") {
 		V.SF.Facility = {
@@ -261,62 +265,55 @@ App.SF.BC = function() {
 			App.SF.Init();
 		}
 	} else if (typeof V.SF === "object") {
-		if (V.SF.MercCon && V.SF.MercCon.View) { delete V.SF.MercCon.View; }
-		if (V.SF.UC === undefined) {
-			if (V.SF.SpecOps !== undefined && V.SF.SpecOpsLock !== undefined) {
-				V.SF.UC = {Assign: V.SF.SpecOps, Lock: V.SF.SpecOpsLock};
-			} else {
-				V.SF.UC = {Assign: 0, Lock: 0};
+		App.SF.Init();
+		
+		if (V.SF.MercCon !== undefined) {
+			if( V.SF.MercCon.View !== undefined) {
+				delete V.SF.MercCon.View;
 			}
-			delete V.SF.SpecOps;
-			delete V.SF.SpecOpsLock;
+			if (V.SF.MercCon.Helots !== undefined) {
+				V.SF.MercCon.Menials = V.SF.MercCon.Helots;
+				delete V.SF.MercCon.Helots;
+			}
+			if (V.SF.MercCon.TotalHelots !== undefined) {
+				V.SF.MercCon.TotalMenials = V.SF.MercCon.TotalHelots;
+				delete V.SF.MercCon.TotalHelots;
+			}
+		}
+		
+		if (V.SF.SpecOps !== undefined && V.SF.SpecOpsLock !== undefined) {
+			V.SF.UC = {Assign: V.SF.SpecOps, Lock: V.SF.SpecOpsLock};
 		}
-		if (V.SF.UC.num === undefined) {
+		delete V.SF.SpecOps;
+		delete V.SF.SpecOpsLock;
+		if (V.SFUC !== undefined) {
 			V.SF.UC.num = V.SFUC || 0;
 		}
 		delete V.SFUC;
-		if (V.SF.Active === -1) {
-			App.SF.Init();
-		}
-		if (V.SF.MWU) {
+
+		if (V.SF.MWU !== undefined) {
 			delete V.SF.MWU;
 		}
 		if (V.SpecOpsLock !== undefined) {
 			V.SF.SpecOpsLock = V.SpecOpsLock;
 		}
 		delete V.SpecOpsLock;
-		if (V.SF.Upgrade === undefined) {
+		if (V.SF.U !== undefined) {
 			V.SF.Upgrade = V.SF.U || 0;
 		}
 		delete V.SF.U;
-		if (V.SF.Gift === undefined) {
+		if (V.SF.WG !== undefined) {
 			V.SF.Gift = V.SF.WG || 0;
 		}
 		delete V.SF.WG;
 
-		if (V.SF.MercCon === undefined) {
-			App.SF.Init();
-		}
-		if (V.SF.MercCon.Helots !== undefined) {
-			V.SF.MercCon.Menials = V.SF.MercCon.Helots;
-			delete V.SF.MercCon.Helots;
-		} else {
-			V.SF.MercCon.Menials = 0;
-		}
-		if (V.SF.MercCon.TotalHelots !== undefined) {
-			V.SF.MercCon.TotalMenials = V.SF.MercCon.TotalHelots;
-			delete V.SF.MercCon.TotalHelots;
-		} else {
-			V.SF.MercCon.TotalMenials = 0;
-		}
-
 		if (V.SF.Bonus !== undefined) {
 			delete V.SF.Bonus;
 		}
 		if (V.SF.Depravity < 0) {
 			V.SF.Depravity = 0;
 		}
-		if (V.SF.Size === undefined) {
+		if (V.SF.Units !== undefined) {
 			V.SF.Size = V.SF.Units;
 		}
 		delete V.SF.Units;
@@ -332,27 +329,14 @@ App.SF.BC = function() {
 				V.SF.Colonel = V.SFColonel;
 			}
 			delete V.SFColonel;
-			if (V.SF.Squad.Satellite !== undefined && V.SatLaunched === undefined) {
-				V.SF.Squad.Sat = {lv: 0, InOrbit: 0};
+			if (V.SF.Squad !== undefined && V.SF.Squad.Satellite !== undefined && V.SatLaunched !== undefined) {
+				V.SF.Squad.Sat = {lv: V.SF.Squad.Satellite, InOrbit: V.SatLaunched};
 				V.SF.Squad.Satellite = V.SF.Squad.Sat;
 				delete V.SF.Squad.Sat;
 				delete V.SatLaunched;
 				delete V.SFUnit;
 			}
 		}
-		if (V.SF.Squad !== undefined && V.SF.Squad.Satellite.lv === undefined) {
-			V.SF.Squad.Sat = {lv: V.SF.Squad.Satellite, InOrbit: 0};
-			V.SF.Squad.Satellite = V.SF.Squad.Sat;
-			delete V.SF.Squad.Sat;
-		}
-		// if (V.SF.Facility === undefined) App.SF.Init();
-		if (V.SF.Squad.Satellite === undefined) {
-			V.SF.Squad.Satellite = {lv: 0, InOrbit: 0};
-		}
-		if (V.SF.FS === undefined) {
-			V.SF.FS = {Tension: -1};
-		}
-		if (V.SF.Toggle && V.SF.Active >= 1) App.SF.Init();
 	}
 	InitClean();
 	MainClean();
@@ -2754,6 +2738,9 @@ App.SF.Count = function() {
 	V.SF.Size = C(V.SF.Size, 0, T.max);
 	T.T1 = 0;
 
+	T.SFSubsidy = 5000 * (1 + ((S.Troops / 100) + (V.SF.Size / 100)));
+	App.SF.NameCapsCheck();
+
 	if (E > 100) {
 		T.Env = 4;
 	} else if (E > 67) {
@@ -2765,33 +2752,33 @@ App.SF.Count = function() {
 	if (V.SF.Size >= 30) {
 		T.T1 = 1;
 	}
-	T.SFSubsidy = 5000 * (1 + ((V.SF.Squad.Troops / 100) + (V.SF.Size / 100)));
-	App.SF.NameCapsCheck();
+	
 	if (V.SF.IntroProgress > -1) {
 		delete V.SF.IntroProgress;
 	}
-	if (V.SF.MercCon === undefined) {
-		App.SF.Init();
-	}
+	
 	if (V.SF.Size === T.max) {
 		delete V.SF.Upgrade;
 	}
+	
 	if (V.SF.BadOutcome !== undefined) {
 		delete V.SF.BadOutcome;
 	}
-	if (V.SF.FS === undefined) {
-		V.SF.FS = {Tension: -1};
-	}
-	if (V.SF.tour === undefined) {
+
+	if (V.Tour !== undefined) {
 		V.SF.tour = V.Tour || 0;
+		delete V.Tour;
 	}
-	delete V.Tour;
+	V.SF.tour = V.SF.tour || 0;
+	
 	if (V.arcologies[0].SFRaid !== undefined) {
 		delete V.arcologies[0].SFRaid;
 	}
+	
 	if (V.arcologies[0].SFRaidTarget !== undefined) {
 		delete V.arcologies[0].SFRaidTarget;
 	}
+	
 	if (V.SF.Facility !== undefined) {
 		delete V.SF.Facility;
 	}
@@ -2817,7 +2804,7 @@ App.SF.UpgradeCost = function(cost, unit) {
 	return Math.ceil(value);
 };
 
-window.progress = function(x, max) {
+App.SF.progress = function(x, max) {
 	"use strict";
 	let out = `⏐`,
 		z, i;
diff --git a/src/SpecialForce/Upgrades.tw b/src/SpecialForce/Upgrades.tw
index b05bacee2b483ee8747d121c82310a9dfb95a7ca..bf1659e52816786f336b22b4caa42df033e38549 100644
--- a/src/SpecialForce/Upgrades.tw
+++ b/src/SpecialForce/Upgrades.tw
@@ -2,7 +2,7 @@
 
 <br><br>
 <<if $SF.Size !== _max>>
-	Total upgrade progress: <<print progress($SF.Size,_max)>> $SF.Size/_max(<<print ($SF.Size/_max).toFixed(2)*100>>%) <<if $SF.Size < 30>> <br>//<<print (30-$SF.Size )>> more upgrades is needed until the next tier unlocks.// <</if>>
+	Total upgrade progress: <<print App.SF.progress($SF.Size,_max)>> $SF.Size/_max(<<print ($SF.Size/_max).toFixed(2)*100>>%) <<if $SF.Size < 30>> <br>//<<print (30-$SF.Size )>> more upgrades is needed until the next tier unlocks.// <</if>>
 <<else>>
 	There are no more upgrades available.
 <</if>>
@@ -22,7 +22,7 @@
 		<<else>>
 			//Cannot afford to upgrade the Firebase.//
 		<</if>>
-		//Costs @@.red;<<print cashFormat(_cF)>>@@// <span style="float:right;"> <<print progress($SF.Squad.Firebase)>> </span> <br>
+		//Costs @@.red;<<print cashFormat(_cF)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.Firebase)>> </span> <br>
 	<<elseif $SF.Squad.Firebase === _FU>>
 		//The Firebase has been fully upgraded.// <br>
 	<</if>>
@@ -34,7 +34,7 @@
 		<<else>>
 			//Cannot afford to upgrade the Armory.//
 		<</if>>
-		//Costs @@.red;<<print cashFormat(_cA)>>@@// <span style="float:right;"> <<print progress($SF.Squad.Armoury)>> </span> <br>
+		//Costs @@.red;<<print cashFormat(_cA)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.Armoury)>> </span> <br>
 	<<elseif $SF.Squad.Armoury === _AU>>
 		//The Armory has been fully upgraded.// <br>
 	<</if>>
@@ -46,7 +46,7 @@
 		<<else>>
 				//Cannot afford to upgrade the Drug Lab.//
 		<</if>>
-		//Costs @@.red;<<print cashFormat(_cDrugs)>>@@// <span style="float:right;"> <<print progress($SF.Squad.Drugs)>> </span> <br>
+		//Costs @@.red;<<print cashFormat(_cDrugs)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.Drugs)>> </span> <br>
 	<<elseif $SF.Squad.Drugs === _DrugsU>>
 		//The Drug Lab has been fully upgraded.// <br>
 	<</if>>
@@ -58,7 +58,7 @@
 		<<else>>
 			//Cannot afford to upgrade the Drone Bay.//
 		<</if>>
-		//Costs @@.red;<<print cashFormat(_cDrones)>>@@// <span style="float:right;"> <<print progress($SF.Squad.Drones)>> </span> <br>
+		//Costs @@.red;<<print cashFormat(_cDrones)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.Drones)>> </span> <br>
 	<<elseif $SF.Squad.Drones === _DU>>
 		//The Drone Bay has been fully upgraded.// <br>
 	<</if>>
@@ -72,7 +72,7 @@
 			<<else>>
 				//Cannot afford to upgrade the Attack Vehicle Fleet.//
 			<</if>>
-			//Costs @@.red;<<print cashFormat(_cAV)>>@@// <span style="float:right;"> <<print progress($SF.Squad.AV)>> </span> <br>
+			//Costs @@.red;<<print cashFormat(_cAV)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.AV)>> </span> <br>
 		<<elseif $SF.Squad.AV === _AVU>>
 			//The Attack Vehicle Fleet has been fully upgraded.// <br>
 		<</if>>
@@ -86,7 +86,7 @@
 			<<else>>
 				//Cannot afford to upgrade Transport Vehicle Fleet.//
 			<</if>>
-			//Costs @@.red;<<print cashFormat(_cTV)>>@@// <span style="float:right;"> <<print progress($SF.Squad.TV)>> </span> <br>
+			//Costs @@.red;<<print cashFormat(_cTV)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.TV)>> </span> <br>
 		<<elseif $SF.Squad.TV === _TVU>>
 			//The Transport Vehicle Fleet has been fully upgraded.// <br>
 		<</if>>
@@ -100,9 +100,9 @@
 			<<else>>
 				//Cannot afford to upgrade Prototype Goliath Tank.//
 			<</if>>
-			//Costs @@.red;<<print cashFormat(_cPGT)>>@@// <span style="float:right;"> <<print progress($SF.Squad.PGT)>> </span> <br>
+			//Costs @@.red;<<print cashFormat(_cPGT)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.PGT)>> </span> <br>
 		<<elseif $SF.Squad.PGT === _PGTU && $PC.warfare < 75>>
-			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.PGT)>> </span> <br>
+			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.PGT)>> </span> <br>
 		<<elseif $SF.Squad.PGT === _PGTU>>
 			//The Prototype Goliath Tank has been fully upgraded.// <br>
 		<</if>>
@@ -118,7 +118,7 @@
 			<<else>>
 				//Cannot afford to upgrade Attack Aircraft Fleet.//
 			<</if>>
-			//Costs @@.red;<<print cashFormat(_cAA)>>@@// <span style="float:right;"> <<print progress($SF.Squad.AA)>> </span> <br>
+			//Costs @@.red;<<print cashFormat(_cAA)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.AA)>> </span> <br>
 		<<elseif $SF.Squad.AA === _AAU>>
 			//The Attack Aircraft Fleet has been fully upgraded.// <br>
 		<</if>>
@@ -132,7 +132,7 @@
 			<<else>>
 				//Cannot afford to upgrade the Transport Aircraft Fleet.//
 			<</if>>
-			//Costs @@.red;<<print cashFormat(_cTA)>>@@// <span style="float:right;"> <<print progress($SF.Squad.TA)>> </span> <br>
+			//Costs @@.red;<<print cashFormat(_cTA)>>@@// <span style="float:right;"> <<print App.SF.progress($SF.Squad.TA)>> </span> <br>
 		<<elseif $SF.Squad.TA === _TAU>>
 			//The Transport Aircraft Fleet has been fully upgraded.// <br>
 		<</if>>
@@ -146,9 +146,9 @@
 			<<else>>
 				//Cannot afford to upgrade the Spaceplane.//
 			<</if>>
-			//Costs @@.red;<<print cashFormat(_cSP)>>@@//<span style="float:right;"> <<print progress($SF.Squad.SpacePlane)>> </span> <br>
+			//Costs @@.red;<<print cashFormat(_cSP)>>@@//<span style="float:right;"> <<print App.SF.progress($SF.Squad.SpacePlane)>> </span> <br>
 		<<elseif $SF.Squad.SpacePlane === _SPU && $PC.warfare < 75>>
-			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.SpacePlane)>> </span> <br>
+			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.SpacePlane)>> </span> <br>
 		<<elseif $SF.Squad.SpacePlane === _SPU>>
 			//The Spaceplane has been fully upgraded.// <br>
 		<</if>>
@@ -162,9 +162,9 @@
 			<<else>>
 				//Cannot afford to upgrade Gunship.//
 			<</if>>
-			//Costs @@.red;<<print cashFormat(_cGunS)>>@@//<span style="float:right;"> <<print progress($SF.Squad.GunS)>> </span> <br>
+			//Costs @@.red;<<print cashFormat(_cGunS)>>@@//<span style="float:right;"> <<print App.SF.progress($SF.Squad.GunS)>> </span> <br>
 		<<elseif $SF.Squad.GunS === _GunSU && $PC.warfare < 75>>
-			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.GunS)>> </span> <br>
+			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.GunS)>> </span> <br>
 		<<elseif $SF.Squad.GunS === _GunSU>>
 			//The Gunship has been fully upgraded.// <br>
 		<</if>>
@@ -180,9 +180,9 @@
 			<<else>>
 				//Cannot afford to upgrade Satellite.//
 			<</if>>
-			//Costs @@.red;<<print cashFormat(_cSat)>>@@//<span style="float:right;"> <<print progress($SF.Squad.Satellite.lv)>> </span> <br>
+			//Costs @@.red;<<print cashFormat(_cSat)>>@@//<span style="float:right;"> <<print App.SF.progress($SF.Squad.Satellite.lv)>> </span> <br>
 		<<elseif $SF.Squad.Satellite.lv === _SatU && $PC.warfare < 75>>
-			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.Satellite.lv)>> </span> <br>
+			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.Satellite.lv)>> </span> <br>
 		<<else>>
 			//The Satellite has been fully upgraded.// <br>
 		<</if>>
@@ -197,9 +197,9 @@
 				<<else>>
 					//Cannot afford to upgrade the Giant Robot.//
 				<</if>>
-				//Costs @@.red;<<print cashFormat(_cGR)>>@@//<span style="float:right;"> <<print progress($SF.Squad.GiantRobot)>> </span> <br>
+				//Costs @@.red;<<print cashFormat(_cGR)>>@@//<span style="float:right;"> <<print App.SF.progress($SF.Squad.GiantRobot)>> </span> <br>
 			<<elseif $SF.Squad.GiantRobot === _GRU && $PC.warfare < 75>>
-				//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.GiantRobot)>> </span> <br>
+				//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.GiantRobot)>> </span> <br>
 			<<else>>
 				//The Giant Robot has been fully upgraded.// <br>
 			<</if>>
@@ -213,9 +213,9 @@
 				<<else>>
 					//Cannot afford to upgrade Cruise Missile.//
 				<</if>>
-				//Costs @@.red;<<print cashFormat(_cMS)>>@@//<span style="float:right;"> <<print progress($SF.Squad.MissileSilo)>> </span> <br>
+				//Costs @@.red;<<print cashFormat(_cMS)>>@@//<span style="float:right;"> <<print App.SF.progress($SF.Squad.MissileSilo)>> </span> <br>
 			<<elseif $SF.Squad.MissileSilo === _MSU && $PC.warfare < 75>>
-				//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.MissileSilo)>> </span> <br>
+				//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.MissileSilo)>> </span> <br>
 			<<else>>
 				//The Cruise Missile has been fully upgraded.// <br>
 			<</if>>
@@ -231,9 +231,9 @@
 			<<else>>
 				//Cannot afford to upgrade Aircraft Carrier.//
 			<</if>>
-			//Costs @@.red;<<print cashFormat(_cAC)>>@@//<span style="float:right;"> <<print progress($SF.Squad.AircraftCarrier)>> </span> <br>
+			//Costs @@.red;<<print cashFormat(_cAC)>>@@//<span style="float:right;"> <<print App.SF.progress($SF.Squad.AircraftCarrier)>> </span> <br>
 		<<elseif $SF.Squad.AircraftCarrier === _ACU && $PC.warfare < 75>>
-			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.AircraftCarrier)>> </span> <br>
+			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.AircraftCarrier)>> </span> <br>
 		<<else>>
 			//The Aircraft Carrier has been fully upgraded.// <br>
 		<</if>>
@@ -247,9 +247,9 @@
 			<<else>>
 				//Cannot afford to upgrade Submarine//
 			<</if>>
-			//Costs @@.red;<<print cashFormat(_cSub)>>@@//<span style="float:right;"> <<print progress($SF.Squad.Sub)>> </span>
+			//Costs @@.red;<<print cashFormat(_cSub)>>@@//<span style="float:right;"> <<print App.SF.progress($SF.Squad.Sub)>> </span>
 		<<elseif $SF.Squad.Sub === _SubU && $PC.warfare < 75>>
-			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.Sub)>> </span>
+			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.Sub)>> </span>
 		<<else>>
 			//The Submarine has been fully upgraded.// <br>
 		<</if>>
@@ -263,9 +263,9 @@
 			<<else>>
 				//Cannot afford to upgrade Amphibious Transport.//
 			<</if>>
-			//Costs @@.red;<<print cashFormat(_cHAT)>>@@//<span style="float:right;"> <<print progress($SF.Squad.HAT)>> </span>
+			//Costs @@.red;<<print cashFormat(_cHAT)>>@@//<span style="float:right;"> <<print App.SF.progress($SF.Squad.HAT)>> </span>
 		<<elseif $SF.Squad.HAT === _HATU && $PC.warfare < 75>>
-			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.HAT)>> </span> <br>
+			//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print App.SF.progress($SF.Squad.HAT)>> </span> <br>
 		<<else>>
 			//The Amphibious Transport has been fully upgraded.// <br>
 		<</if>>
diff --git a/src/debugging/debugJS.js b/src/debugging/debugJS.js
index dd29a88a2e75db3ab8635e1d5d3ca20c0c0f4478..c189e30b7cc3358f688d374889a9d0b8ab7b9003 100644
--- a/src/debugging/debugJS.js
+++ b/src/debugging/debugJS.js
@@ -55,19 +55,18 @@ window.diffFlatten = function diffFlatten(data) {
 			result[prop] = cur;
 		} else if (Array.isArray(cur)) {
 			// eslint-disable-next-line no-var
-			for (var i=0, l=cur.length; i<l; i++) // don't change the "var" to "let"
+			for (var i=0, l=cur.length; i<l; i++) { // don't change the "var" to "let"
 				recurse(cur[i], prop + "[" + i + "]");
+		}
 			// eslint-disable-next-line block-scoped-var
-			if (l === 0)
-				result[prop] = [];
+			if (l === 0) { result[prop] = []; }
 		} else {
 			let isEmpty = true;
 			for (let p in cur) {
 				isEmpty = false;
 				recurse(cur[p], prop ? prop+"."+p : p);
 			}
-			if (isEmpty && prop)
-				result[prop] = {};
+			if (isEmpty && prop) { result[prop] = {}; }
 		}
 	}
 	recurse(data, "");
diff --git a/src/endWeek/saChoosesOwnClothes.js b/src/endWeek/saChoosesOwnClothes.js
index 1b3792e2cc2f9e692a6f89d20e4e52c771f78eb4..2c1f45205333d271066279d3c48bf159e5e76d97 100644
--- a/src/endWeek/saChoosesOwnClothes.js
+++ b/src/endWeek/saChoosesOwnClothes.js
@@ -23,7 +23,7 @@ window.saChoosesOwnClothes = (function() {
 		V = State.variables;
 		player = V.PC;
 		r = "";
-		if (slave.choosesOwnClothes !== 1) return r;
+		if (slave.choosesOwnClothes !== 1) { return r; }
 		pronouns = getPronouns(slave);
 		he = pronouns.pronoun;
 		him = pronouns.object;
@@ -219,9 +219,7 @@ window.saChoosesOwnClothes = (function() {
 		} else {
 			if (V.arcologies[0].FSChattelReligionist > 0) {
 				clothing.push({text: `and wears a chattel habit to conform to your arcology's culture.`, clothes: "a chattel habit"});
-			}
-			/* Chooses clothes according to assignment (no exceptions)*/
-			else if (slave.assignment === "be the Nurse") {
+			} else if (slave.assignment === "be the Nurse") { /* Chooses clothes according to assignment (no exceptions)*/
 				if (slave.energy > 95 || slave.need > 100) {
 					wardrobeAssignment.push({text: `and wears a slutty nurse outfit to make it clear just how much this nurse needs ${his} daily lay.`, clothes: "a slutty nurse outfit"});
 				} else if (slave.energy > 80) {
@@ -604,9 +602,11 @@ window.saChoosesOwnClothes = (function() {
 					if (isItemAccessible("a monokini")) {
 						wardrobeFS.push({text: `and wears a swimsuit that leaves ${his} breasts uncovered.`, clothes: "a monokini"});
 					}
+					/*
 					if (isItemAccessible("pasties")) {
 						wardrobeFS.push({text: `and wears nothing more than a pair of pasties over ${his} nipples.`, clothes: "pasties"});
 					}
+					*/
 					if (slave.lactation > 0) {
 						wardrobeFS.push({text: `and dresses up as a slutty wet nurse.`, clothes: "a slutty nurse outfit"});
 					}
@@ -830,9 +830,11 @@ window.saChoosesOwnClothes = (function() {
 						if (isItemAccessible("kitty lingerie")) {
 							wardrobeTastes.push({text: `and chooses a lingerie set that leaves ${his} cleavage on public display.`, clothes: "kitty lingerie"});
 						}
+						/*
 						if (isItemAccessible("pasties")) {
 							wardrobeTastes.push({text: `and wears nothing but a pair of pasties to draw eyes straight to ${his} nipples.`, clothes: "pasties"});
 						}
+						*/
 						if (isItemAccessible("a bra")) {
 							wardrobeTastes.push({text: `and wears nothing but a bra in the hopes that the outlandish get up fixes eyes on ${his} chest.`, clothes: "a bra"});
 						}
@@ -880,9 +882,11 @@ window.saChoosesOwnClothes = (function() {
 						if (isItemAccessible("kitty lingerie")) {
 							wardrobeTastes.push({text: `and oddly chooses a lingerie set with a cleavage cutout in the bra.`, clothes: "kitty lingerie"});
 						}
+						/*
 						if (isItemAccessible("pasties")) {
 							wardrobeTastes.push({text: `and oddly opts for just a pair of pasties attached to ${his} nipples.`, clothes: "pasties"});
 						}
+						*/
 						if (isItemAccessible("a bra")) {
 							wardrobeTastes.push({text: `and oddly opts for nothing more than a bra.`, clothes: "a bra"});
 						}
diff --git a/src/init/dummy.tw b/src/init/dummy.tw
index 5f1d6258ca5476bf97be27cedfdf84f19aa2f3ae..795c1885c88fb1dde265b0f832f3c6abd8b6d7ae 100644
--- a/src/init/dummy.tw
+++ b/src/init/dummy.tw
@@ -32,4 +32,8 @@ $Girl
 $corpPeopleEnslaved, $slaveAssets, $slaveAssetPrice, $corpProfit, $corpValue, $sharePrice, $oldSharePrice, $generalAssetPrice, $generalAssets, $entrapmentAssets, $entrapmentAssetPrice, $captureAssets, $captureAssetPrice, $trainingAssets, $trainingAssetPrice, $surgicalAssets, $surgicalAssetPrice, $drugAssets, $drugAssetPrice
 $TradeShowMenials
 $readySlaves
+$mammaryUseWeight
+$activeSlave.readyLimbs, _Slave.readyLimbs, $args[0].readyLimbs
+$brothelSpots
+$JobIDArray
 */
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 19e852c6bfc4a437ca6b86fdba4215c839646a5c..ecf9ab8e02631fc19c2307103d6826359871cfbf 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -1514,7 +1514,6 @@ You should have received a copy of the GNU General Public License along with thi
 <<set $DefaultBirthDestination = "individually decided fates">>
 <<set $abbreviateHormoneBalance = 2>>
 
-<<if def $SF.Toggle>> <<set $SF = {Toggle:$SF.Toggle}>> <<else>> <<set $SF = {Toggle:0}>> <</if>>
-<<set $SF.Active=-1, $SF.FS = {Tension:-1}>>
+<<= App.SF.Init()>>
 
 <<goto "Alpha disclaimer">>
diff --git a/src/interaction/main/mainLinks.js b/src/interaction/main/mainLinks.js
index 32554adc37994a6deaa31ccc97d459cfcf05f850..80a9153ca67bbc43c82f6024ed878c23aa38fa9a 100644
--- a/src/interaction/main/mainLinks.js
+++ b/src/interaction/main/mainLinks.js
@@ -1,10 +1,8 @@
 /* OPEN MAIN */
-App.UI.View.MainLinks = function() {
+App.UI.View.MainLinks = function () {
 	"use strict";
 	const V = State.variables;
-	const PA = Array.isArray(V.personalAttention) ? V.personalAttention.map(function(x) {
-		return getSlave(x.ID);
-	}) : [];
+	const PA = Array.isArray(V.personalAttention) ? V.personalAttention.map(x => getSlave(x.ID)) : [];
 	let r = '';
 
 	if (V.PCWounded === 1) {
@@ -124,10 +122,7 @@ App.UI.View.MainLinks = function() {
 		/* cycle through slaves, for each slave cycle through completed organs and track how many are of the interrogated slave (and if organs have a slaves to be implanted on) */
 		for (let i = 0; i < V.slaves.length; i++) {
 			let slaveOrgans = 0;
-			V.completedOrgans.forEach(organ => {
-				if (organ.ID === V.slaves[i].ID)
-					slaveOrgans++;
-			});
+			V.completedOrgans.forEach(organ => { if (organ.ID === V.slaves[i].ID) { slaveOrgans++; } });
 			/* if the interrogated slave has one or more organs ready: */
 			if (slaveOrgans > 0) {
 				r += '<br><span class="yellow">The fabricator has completed ';
@@ -150,7 +145,7 @@ App.UI.View.MainLinks = function() {
 	if (V.adjustProstheticsCompleted > 0) {
 		for (let j = 0; j < V.adjustProsthetics.length; j++) {
 			if (getSlave(V.adjustProsthetics[j].slaveID) !== undefined) {
-				let i = V.slaveIndices[V.adjustProsthetics[j].slaveID];
+				const i = V.slaveIndices[V.adjustProsthetics[j].slaveID];
 				if (V.adjustProsthetics[j].workLeft <= 0) {
 					r += `<br><span class="yellow">The lab has completed <<= addA(setup.prosthetics[$adjustProsthetics[${j}].id].name)>> for</span> <span id="name"><<= "[[SlaveFullName($slaves[${i}])|Slave Interact][$activeSlave = $slaves[${i}]]]">>,</span> <span class="yellow"> which is ready to be attached.</span>`;
 				}
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index 364f14241e46f71ab56fa5b1ce41f63f4f7bcd96..90ed3d4ce5e15732d65c95663fee18ee48d31239 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -14,7 +14,7 @@ window.DefaultRules = (function() {
 	 * @returns {object}
 	 */
 	function DefaultRules(slave) {
-		if (slave.useRulesAssistant === 0) return r; // exempted
+		if (slave.useRulesAssistant === 0) { return r; } // exempted
 
 		V = State.variables;
 		r = "";
@@ -23,7 +23,7 @@ window.DefaultRules = (function() {
 		him = pronouns.object;
 		his = pronouns.possessive;
 		let rule = MergeRules(slave);
-		if (Object.keys(rule).length === 0) return r; // no rules apply
+		if (Object.keys(rule).length === 0) { return r; } // no rules apply
 
 		AssignJobToSlave(slave, rule);
 		if (slave.fuckdoll === 0) {
diff --git a/src/js/accordianJS.js b/src/js/accordianJS.js
index 34158aa86d151a03748c25af995f13ab36e4994d..f65b7d736a4efbe0f5d739b5043cea6e39cc8cb9 100644
--- a/src/js/accordianJS.js
+++ b/src/js/accordianJS.js
@@ -13,7 +13,7 @@
  * 000-250-006 03092017
  */
 
-postdisplay["doAccordionSet"] = function() {
+postdisplay.doAccordionSet = function() {
 	if (variables().useAccordion === 1) {
 		Array.prototype.slice.call(document.querySelectorAll(".macro-include"))
 			.forEach(function(element) {
@@ -22,7 +22,7 @@ postdisplay["doAccordionSet"] = function() {
 	}
 };
 
-postdisplay["doAccordion"] = function() {
+postdisplay.doAccordion = function() {
 	const acc = document.getElementsByClassName("accordion");
 
 	for (let i = 0; i < acc.length; i += 1) {
@@ -30,7 +30,7 @@ postdisplay["doAccordion"] = function() {
 			this.classList.toggle("active");
 			let panel = this.nextElementSibling;
 			if (panel === null || panel === undefined) {
-				panel = document.getElementById(`${this.id }accHidden`);
+				panel = document.getElementById(`${this.id}accHidden`);
 				if (panel.style.display === "none") {
 					panel.style.display = "";
 				} else {
@@ -40,7 +40,7 @@ postdisplay["doAccordion"] = function() {
 				if (panel.style.maxHeight) {
 					panel.style.maxHeight = null;
 				} else {
-					panel.style.maxHeight = `${2 * panel.scrollHeight }px`;
+					panel.style.maxHeight = `${2 * panel.scrollHeight}px`;
 				}
 			}
 		};
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index cec836adee457e3d484aafed48264c914e354f40..423edce9a3bd8ed45924768e5597dd860c2ac92e 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -311,19 +311,19 @@ window.removeSlave = function removeSlave(index) {
 	State.variables.slaveIndices = slaves2indices();
 	return ret;
 };
+
 window.removeChild = function removeChild(index) {
-	const ret = State.variables.cribs.deleteAt(index);
-	return ret;
+	return State.variables.cribs.deleteAt(index);
 };
 
 /**
  * @param {App.Entity.SlaveState[]} [slaves]
  * @returns {Object.<number, number>}
  */
-window.slaves2indices = function slaves2indices(slaves) {
-	slaves = slaves || State.variables.slaves;
+window.slaves2indices = function slaves2indices(slaves = State.variables.slaves) {
 	return slaves.reduce((acc, slave, i) => { acc[slave.ID] = i; return acc; }, {});
 };
+
 /**
  * @param {number} ID
  * @returns {App.Entity.SlaveState}
@@ -332,9 +332,9 @@ window.getSlave = function getSlave(ID) {
 	const index = State.variables.slaveIndices[ID];
 	return index === undefined ? undefined : State.variables.slaves[index];
 };
+
 window.getChild = function getChild(ID) {
-	const V = State.variables;
-	return V.cribs.find(function(s) {return s.ID === ID;});
+	return State.variables.cribs.find(s => s.ID === ID);
 };
 
 App.Utils.Pronouns = class {
diff --git a/src/js/colorinput.js b/src/js/colorinput.js
index b27365c2e6461c5ad165f26dd88d465f6bee69bc..b97711b59ca92104febaa67be13e31c62d3f4ebc 100644
--- a/src/js/colorinput.js
+++ b/src/js/colorinput.js
@@ -4,9 +4,9 @@ Macro.add("colorinput", {
 			let e = [];
 			return this.args.length < 1 && e.push("variable name"), this.args.length < 2 && e.push("default value"), this.error("no " + e.join(" or ") + " specified");
 		}
-		if ("string" !== typeof this.args[0]) return this.error("variable name argument is not a string");
+		if ("string" !== typeof this.args[0]) { return this.error("variable name argument is not a string"); }
 		let varName = this.args[0].trim();
-		if ("$" !== varName[0] && "_" !== varName[0]) return this.error('variable name "' + this.args[0] + '" is missing its sigil ($ or _)');
+		if ("$" !== varName[0] && "_" !== varName[0]) { return this.error('variable name "' + this.args[0] + '" is missing its sigil ($ or _)'); }
 		Config.debug && this.debugView.modes({
 			block: true
 		});
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 0a425fdf3ccc4b7917d63c5ae41e6dc46fba65aa..0fcc266f1b98cae9238c5791aca57e66ea26e45e 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -37,13 +37,13 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function() {
 				}
 			}
 			if (slave.hasOwnProperty("pornFameType")) {
-				slave.porn.fameType = slave["pornFameType"];
-				delete slave["pornFameType"];
+				slave.porn.fameType = slave.pornFameType;
+				delete slave.pornFameType;
 			}
 
 			if (slave.hasOwnProperty("pornFocus")) {
-				slave.porn.focus = slave["pornFocus"];
-				delete slave["pornFocus"];
+				slave.porn.focus = slave.pornFocus;
+				delete slave.pornFocus;
 			}
 		}
 	}
@@ -54,18 +54,18 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function() {
 	function migrateSkills(slave) {
 		if (!slave.hasOwnProperty("skill")) {
 			slave.skill = new App.Entity.SlaveSkillsState();
-			slave.skill.anal = slave["analSkill"];
-			slave.skill.combat = slave["combatSkill"];
-			slave.skill.entertainment = slave["entertainSkill"];
-			slave.skill.oral = slave["oralSkill"];
-			slave.skill.vaginal = slave["vaginalSkill"];
-			slave.skill.whoring = slave["whoreSkill"];
-			delete slave["analSkill"];
-			delete slave["combatSkill"];
-			delete slave["entertainSkill"];
-			delete slave["oralSkill"];
-			delete slave["vaginalSkill"];
-			delete slave["whoreSkill"];
+			slave.skill.anal = slave.analSkill;
+			slave.skill.combat = slave.combatSkill;
+			slave.skill.entertainment = slave.entertainSkill;
+			slave.skill.oral = slave.oralSkill;
+			slave.skill.vaginal = slave.vaginalSkill;
+			slave.skill.whoring = slave.whoreSkill;
+			delete slave.analSkill;
+			delete slave.combatSkill;
+			delete slave.entertainSkill;
+			delete slave.oralSkill;
+			delete slave.vaginalSkill;
+			delete slave.whoreSkill;
 
 			const nameMap = {
 				"HG": "headGirl",
@@ -201,12 +201,13 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 
 	/**
 	 * @param {App.Entity.SlaveState} slave
-	 * @param {number} isIncubatorSlave
+	 * @param {boolean} [isIncubatorSlave]
 	 */
-	function SlaveDatatypeCleanup(slave, isIncubatorSlave) {
+	function SlaveDatatypeCleanup(slave, isIncubatorSlave = false) {
 		V = State.variables;
-		if (isIncubatorSlave !== true)
+		if (!isIncubatorSlave) {
 			slaveAgeDatatypeCleanup(slave);
+		}
 		slavePhysicalDatatypeCleanup(slave);
 		slaveFaceDatatypeCleanup(slave);
 		slaveHairDatatypeCleanup(slave);
@@ -1671,9 +1672,7 @@ window.FacilityDatatypeCleanup = (function() {
 			if (!Array.isArray(facilityIDArray)) {
 				facilityIDArray = [];
 			} else if (typeof facilityIDArray[0] === "object") {
-				facilityIDArray = facilityIDArray.map(function(a) {
-					return a.ID;
-				});
+				facilityIDArray = facilityIDArray.map(a => a.ID);
 			}
 		}
 		helperFunction(V.BrothiIDs);
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index 20d8a96c5e6b590c47b3bcf350dd541e62fea4ea..2978e8bc2286023d5363b1cb5dd59c73bee09825 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -260,7 +260,7 @@ window.calculateCosts = (function() {
 			} else {
 				soldierMod = 2;
 			}
-			const militiaUnits = V.militiaUnits.length, slaveUnits = V.slaveUnits.length, mercUnits = V.mercUnits.length; //predefined for optimization
+			const militiaUnits = V.militiaUnits.length, slaveUnits = V.slaveUnits.length, mercUnits = V.mercUnits.length; // predefined for optimization
 			if (V.militiaUnits !== null) {
 				for (let i = 0; i < militiaUnits; i++) {
 					if (V.militiaUnits[i] !== null) {
@@ -505,7 +505,7 @@ window.calculateCosts = (function() {
 		return costs;
 	}
 
-	//the cost of keeping a slave under restrictive rules
+	// the cost of keeping a slave under restrictive rules
 	function getSlaveMinorCosts(slave) {
 		let costs = 0;
 		const rulesCost = State.variables.rulesCost;
@@ -1399,8 +1399,7 @@ window.getSlaveStatisticData = function(s, facility) {
 	return data;
 };
 
-window.initFacilityStatistics = function(facility) {
-	facility = facility || {};
+window.initFacilityStatistics = function(facility = {}) {
 	facility.adsIncome = 0;
 	facility.maintenance = 0;
 	facility.totalIncome = 0;
@@ -1464,7 +1463,7 @@ window.cashX = function(cost, what, who) {
 			who.lastWeeksCashIncome += cost;
 			who.lifetimeCashIncome += cost;
 		}
-	} else if (cost < 0) { //EXPENSES
+	} else if (cost < 0) { // EXPENSES
 		// record the action
 		if (typeof V.lastWeeksCashExpenses[what] !== 'undefined') {
 			V.lastWeeksCashExpenses[what] += cost;
@@ -1514,7 +1513,7 @@ window.repX = function(rep, what, who) {
 		} else {
 			V.lastWeeksRepErrors += `Unknown place "${what}" gained you ${rep}<br>`;
 		}
-	} else if (rep < 0) { //EXPENSES
+	} else if (rep < 0) { // EXPENSES
 		// record the action
 		if (typeof V.lastWeeksRepExpenses[what] !== 'undefined') {
 			V.lastWeeksRepExpenses[what] += rep;
diff --git a/src/js/futureSocietyJS.js b/src/js/futureSocietyJS.js
index d86c0a56a06ca3af10929582a8786ff9278dcfdd..03dc2cdece4d59e73b6cfd65b988ab89aa830a1f 100644
--- a/src/js/futureSocietyJS.js
+++ b/src/js/futureSocietyJS.js
@@ -41,19 +41,17 @@ window.FutureSocieties = (function() {
 	function removeFS(FS) {
 		const V = State.variables;
 		const arcology = V.arcologies[0];
-		const FSDecoration = `${FS }Decoration`;
-		const FSSMR = `${FS }SMR`;
-		let FSLaw = `${FS }Law`;
+		const FSDecoration = `${FS}Decoration`;
+		const FSSMR = `${FS}SMR`;
+		let FSLaw = `${FS}Law`;
 		if (arcology[FS] === undefined) {
 			// eslint-disable-next-line no-console
 			console.log(`ERROR: bad FS reference, $arcologies[0].${FS} not defined`);
 			return;
 		}
 
-		if (FS === "FSSupremacist" || FS === "FSSubjugationist")
-			FSLaw += "ME";
-		if (FS !== "FSNull")
-			arcology[FSDecoration] = 20;
+		if (FS === "FSSupremacist" || FS === "FSSubjugationist") { FSLaw += "ME"; }
+		if (FS !== "FSNull") { arcology[FSDecoration] = 20; }
 		arcology[FS] = "unset";
 		switch (FS) {
 			case "FSPaternalist":
@@ -132,14 +130,13 @@ window.FutureSocieties = (function() {
 			}
 		}
 		if (arcology.FSNull > 0) { // multiculturalism is accounted for separately
-			if (V.FSCreditCount === 4)
+			if (V.FSCreditCount === 4) {
 				activeFS += arcology.FSNull / 25;
-			else if (V.FSCreditCount === 6)
+			} else if (V.FSCreditCount === 6) {
 				activeFS += arcology.FSNull / 17;
-			else if (V.FSCreditCount === 7)
+			} else if (V.FSCreditCount === 7) {
 				activeFS += arcology.FSNull / 15;
-			else
-				activeFS += arcology.FSNull / 20;
+			} else { activeFS += arcology.FSNull / 20; }
 		}
 		V.FSCredits = Math.max(Math.trunc(V.FSGotRepCredits - activeFS), 0);
 	}
@@ -211,7 +208,7 @@ window.FutureSocieties = (function() {
 	 * Returns the highest decoration level of active future societies, call as FutureSocieties.HighestDecoration()
 	 * @returns {number}
 	 */
-	function FSHighestDecoration() {		
+	function FSHighestDecoration() {
 		const arcology = State.variables.arcologies[0];
 		const decorationList = SocietyList.map(FS => FS + "Decoration");
 		let level = 20; // All decorations start at 20
diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js
index b0945ebdb0560de62358e9c839516cec55e781d9..9d200ffbce731b6b143a5d13732f5b7306ef6398 100644
--- a/src/js/generateGenetics.js
+++ b/src/js/generateGenetics.js
@@ -306,8 +306,8 @@ window.generateGenetics = (function() {
 
 		let prop = "";
 		for (prop in skinToMelanin) {
-			if (!skinToMelanin.hasOwnProperty(prop)) continue;
-			if (skinIndex >= skinToMelanin[prop]) return prop;
+			if (!skinToMelanin.hasOwnProperty(prop)) { continue; }
+			if (skinIndex >= skinToMelanin[prop]) { return prop; }
 		}
 		return prop; // skinIndex can be zero - now false?
 	}
@@ -560,7 +560,7 @@ window.generateGenetics = (function() {
 		} else {
 			fetish = jsEither(["none", "none", "none", "none", "none", mother.fetish, mother.fetish]);
 		}
-		if (fetish === "mindbroken") {fetish = "none";}
+		if (fetish === "mindbroken") { fetish = "none"; }
 		return fetish;
 	}
 
@@ -1584,11 +1584,11 @@ window.generateChild = function(mother, ova, destination) {
 		child.birthWeek = 0;
 		child.energy = 0;
 		child.anus = 0;
-		if (child.vagina > 0) {child.vagina = 0;}
-		if (child.fetish !== "none") {child.fetishStrength = 20;}
-		if (child.dick > 0) {child.foreskin = 1; child.balls = 1; child.scrotum = 1;}
-		if (genes.faceShape !== undefined) {child.faceShape = genes.faceShape;}
-		if (mother.addict > 0) {child.addict = Math.trunc(mother.addict / 2);}
+		if (child.vagina > 0) { child.vagina = 0; }
+		if (child.fetish !== "none") { child.fetishStrength = 20; }
+		if (child.dick > 0) { child.foreskin = 1; child.balls = 1; child.scrotum = 1; }
+		if (genes.faceShape !== undefined) { child.faceShape = genes.faceShape; }
+		if (mother.addict > 0) { child.addict = Math.trunc(mother.addict / 2); }
 		child.career = "a slave since birth";
 		child.birthName = child.slaveName;
 		child.birthSurname = child.slaveSurname;
diff --git a/src/js/hTagMacroJS.js b/src/js/hTagMacroJS.js
index cda739f03305721de4ba74bc221624561ab5c990..6918db8d6270cf5814f550071268aa1d61710645 100644
--- a/src/js/hTagMacroJS.js
+++ b/src/js/hTagMacroJS.js
@@ -1,4 +1,5 @@
-/*
+
+	/*
 * <<htag>> macro
 * A simple macro which allows to create wrapping html elements with dynamic IDs.
 *	idea blatantly robbed from the spanMacroJS.tw but expanded to a more generic
@@ -20,23 +21,24 @@ Macro.add('htag', {
 		let attributes;
 
 		function munge(val, key) {
-			return `${key }="${ val }"`;
+			return `${key}="${val}"`;
 		}
 
-		if (1 > this.args.length)
-			return this.error('invalid syntax, format: <<htag [id [ tag ] | attributes [ tag ] >>');
-		if (1 < this.args.length)
-			htag = String(this.args[1]).trim();
-		if ("object" === typeof this.args[0])
+		if (1 > this.args.length) { return this.error('invalid syntax, format: <<htag [id [ tag ] | attributes [ tag ] >>'); }
+		if (1 < this.args.length) { htag = String(this.args[1]).trim(); }
+		if ("object" === typeof this.args[0]) {
 			attributes = $.map(this.args[0], munge).join(" ");
-		else
-			attributes = `id="${ String(this.args[0]).trim() }"`;
+		} else {
+			attributes = `id="${String(this.args[0]).trim()}"`;
+		}
 		if (Config.debug)
-			this.debugView.modes({
+			{ 
+this.debugView.modes({
 				block: true
-			});
+			}); 
+}
 
-		jQuery(`<${ htag } ${ attributes } />`)
+		jQuery(`<${htag} ${attributes} />`)
 			.wiki(payload)
 			.appendTo(this.output);
 	}
diff --git a/src/js/heroCreator.js b/src/js/heroCreator.js
index 1539fecb5f492203adaaca8f0e0bfd473ee99032..1200dc10bd31b2393952563c997c3e0f336eb2fa 100644
--- a/src/js/heroCreator.js
+++ b/src/js/heroCreator.js
@@ -11,9 +11,9 @@ App.Utils.getHeroSlave = function(heroSlave, baseHeroSlave) {
 	function deepAssign(target, source) {
 		if (isObject(target) && isObject(source)) {
 			for (const key in source) {
-				if (!source.hasOwnProperty(key)) continue;
+				if (!source.hasOwnProperty(key)) { continue; }
 				if (isObject(source[key])) {
-					if (!target.hasOwnProperty(key)) target[key] = {};
+					if (!target.hasOwnProperty(key)) { target[key] = {}; }
 					deepAssign(target[key], source[key]);
 				} else {
 					Object.assign(target, {
diff --git a/src/js/physicalDevelopment.js b/src/js/physicalDevelopment.js
index 3a9764d4ff11dc052dc39dc46cec09c5a59cfe7d..5c5d8d2367e7105fed7b2f74dd7a99302ef206cd 100644
--- a/src/js/physicalDevelopment.js
+++ b/src/js/physicalDevelopment.js
@@ -2463,7 +2463,9 @@ window.physicalDevelopment = (function physicalDevelopment() {
 		dickMod = (slave.geneticQuirks.wellHung === 2 ? 2 : 1);
 
 		if (slave.hormoneBalance >= 200) {
+			//
 		} else if (slave.hormoneBalance >= 100) {
+			//
 		} else if (slave.hormoneBalance <= -200) {
 			if (slave.physicalAge === 8) {
 				if (slave.dick < 6) {
@@ -2739,7 +2741,9 @@ window.physicalDevelopment = (function physicalDevelopment() {
 	*/
 	function increaseBalls(slave) {
 		if (slave.hormoneBalance >= 200) {
+			//
 		} else if (slave.hormoneBalance >= 100) {
+			//
 		} else if (slave.hormoneBalance <= -200) {
 			if (slave.physicalAge === 8) {
 				if (slave.balls < 6) {
diff --git a/src/js/pregJS.js b/src/js/pregJS.js
index 641ef7329c818484e4baec887d273b81f071fc89..853e4d66669c5c5c5cfc03816ebe5b13a1af97d4 100644
--- a/src/js/pregJS.js
+++ b/src/js/pregJS.js
@@ -22,7 +22,6 @@ window.getPregBellySize = function(s) {
  * @returns {string}
  */
 window.bellyAdjective = function(slave) {
-	slave = slave || State.variables.activeSlave;
 	if (slave.belly >= 1500) {
 		if (slave.belly >= 1000000) {
 			if (slave.preg > slave.pregData.normalBirth/4) {
diff --git a/src/js/rbuttonJS.js b/src/js/rbuttonJS.js
index b7e820536b6b9de6ba9a098c88ff8c2b79fe11b1..2f2df1d7ca5b21c6f159e1b82f9d82935ec337f0 100644
--- a/src/js/rbuttonJS.js
+++ b/src/js/rbuttonJS.js
@@ -12,8 +12,8 @@ Macro.add('rbutton', {
 	handler() {
 		if (this.args.length < 2) {
 			const errors = [];
-			if (this.args.length < 1) {errors.push('variable name');}
-			if (this.args.length < 2) {errors.push('checked value');}
+			if (this.args.length < 1) { errors.push('variable name'); }
+			if (this.args.length < 2) { errors.push('checked value'); }
 			return this.error(`no ${errors.join(' or ')} specified`);
 		}
 
diff --git a/src/js/slaveGenerationJS.js b/src/js/slaveGenerationJS.js
index a5e7d3fdb7924f14125c5000f6fa841b5feead62..e05b2e9cb99d73328b7e34e0c12d72bcd9efe28b 100644
--- a/src/js/slaveGenerationJS.js
+++ b/src/js/slaveGenerationJS.js
@@ -27,10 +27,9 @@ window.raceToNationality = function raceToNationality(slave) {
  * @param {string | Object} nationality
  * @param {string | Object} race
  * @param {boolean} male
- * @param {undefined} [filter]
+ * @param {undefined} [filter] Default: allow all
  */
-window.generateName = function generateName(nationality, race, male, filter) {
-	filter = filter || _.stubTrue; /* default: allow all */
+window.generateName = function generateName(nationality, race, male, filter = _.stubTrue) {
 	const lookup = (male ? setup.malenamePoolSelector : setup.namePoolSelector);
 	const result = jsEither(
 		(lookup[`${nationality}.${race}`] || lookup[nationality] ||
@@ -46,10 +45,9 @@ window.generateName = function generateName(nationality, race, male, filter) {
  * @param {string | number} nationality
  * @param {any} race
  * @param {any} male
- * @param {() => true} filter
+ * @param {() => true} [filter]  Default: allow all
  */
-window.generateSurname = function generateSurname(nationality, race, male, filter) {
-	filter = filter || _.stubTrue; /* default: allow all */
+window.generateSurname = function generateSurname(nationality, race, male, filter = _.stubTrue) {
 	const result = jsEither(
 		(setup.surnamePoolSelector[`${nationality}.${race}`] ||
 			setup.surnamePoolSelector[nationality] ||
diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js
index b76da962f4a9f0a14fdfe1d5eed1ef27afe5eede..2b1f75997c81d9f30a508d179a24a49facaa2def 100644
--- a/src/js/slaveListing.js
+++ b/src/js/slaveListing.js
@@ -23,6 +23,9 @@ App.UI.SlaveList.render = function() {
 	/** @type {boolean} */
 	let slaveImagePrinted;
 
+	// potentially can be a problem if played long enough to reach Number.MAX_SAFE_INTEGER
+	let listID = Number.MIN_SAFE_INTEGER;
+
 	return renderList;
 
 	/**
@@ -59,7 +62,7 @@ App.UI.SlaveList.render = function() {
 
 		for (const _si of indices) {
 			let ss = renderSlave(_si, interactionLink, showTransfers, postNote);
-			res.push(`<div id="slave_${slaves[_si].ID}" style="clear:both">${ss}</div>`);
+			res.push(`<div id="slave-${slaves[_si].ID}" style="clear:both">${ss}</div>`);
 		}
 
 		for (const rs of rejectedSlaves) {
@@ -73,7 +76,7 @@ App.UI.SlaveList.render = function() {
 		}
 
 		$(document).one(':passagedisplay', function() {
-			$("[data-quick-index]").click(function() {
+			$('[data-quick-index]').unbind().click(function() {
 				let which = this.attributes["data-quick-index"].value;
 				let quick = $("div#list_index" + which);
 				quick.toggleClass("hidden");
@@ -81,6 +84,10 @@ App.UI.SlaveList.render = function() {
 			quickListBuildLinks();
 		});
 
+		if (V.useSlaveListInPageJSNavigation === 1) {
+			listID++;
+		}
+
 		return res.join("");
 	}
 
@@ -156,7 +163,6 @@ App.UI.SlaveList.render = function() {
 	*/
 	function createQuickList(indices) {
 		let res = "";
-		let _tableCount = 0;
 
 		/* 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 + '/' + $SlaveSummaryFiler + ']'>>
@@ -169,12 +175,12 @@ App.UI.SlaveList.render = function() {
 				_offset = -25;
 			}
 			res += "<br />";
-			_tableCount++;
 			/*
-			 * we want <button data-quick-index="<<= _tableCount>>">...
+			 * we want <button data-quick-index="<<= listID>>">...
 			 */
 			const _buttonAttributes = {
-				'data-quick-index': _tableCount
+				'id':`quick-list-toggle${listID}`,
+				'data-quick-index': listID
 			};
 			res += App.UI.htag("Quick Index", _buttonAttributes, 'button');
 			/*
@@ -218,7 +224,7 @@ App.UI.SlaveList.render = function() {
 				listIndexContent += '</div>';
 			}
 			res += App.UI.htag(listIndexContent, {
-				id: `list_index${_tableCount}`,
+				id: `list_index${listID}`,
 				class: 'hidden'
 			});
 		}
diff --git a/src/js/slaveStatsChecker.js b/src/js/slaveStatsChecker.js
index 3a225da8e2683093a5d319d4e5d2c07c571675f0..b9c0d306b971023d5af65e6f0079d643d150a44d 100644
--- a/src/js/slaveStatsChecker.js
+++ b/src/js/slaveStatsChecker.js
@@ -653,8 +653,7 @@ window.tooBigButt = function(slave) {
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean}
  */
-window.isVegetable = function(slave) {
-	slave = slave || State.variables.activeSlave;
+window.isVegetable = function (slave) {
 	if (!slave) {
 		return false;
 	}
diff --git a/src/js/spanMacroJS.js b/src/js/spanMacroJS.js
index f6404eccf51bbc3d273974151f476460f386405d..61760b318d2d82c24865279255ce48018f846033 100644
--- a/src/js/spanMacroJS.js
+++ b/src/js/spanMacroJS.js
@@ -25,7 +25,7 @@ Macro.add('span', {
 
 		Config.debug && this.debugView.modes({block: true});
 
-		jQuery(`<span id='${ String(result) }' />`)
+		jQuery(`<span id='${String(result)}' />`)
 			.wiki(payload)
 			.appendTo(this.output);
 	}
diff --git a/src/js/storyJS.js b/src/js/storyJS.js
index 67b99d1ddffdc6fa9f47556ac4b07af6f275ec76..feee5723793dde47d5f952897c5398661fce146d 100644
--- a/src/js/storyJS.js
+++ b/src/js/storyJS.js
@@ -363,12 +363,10 @@ window.lispReplace = function(text) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * @param {Object} arcology		// I think
+ * @param {Object} arcology
  * @returns {number}
  */
 window.repGainSacrifice = function(slave, arcology) {
-	slave = slave || State.variables.activeSlave;
-	arcology = arcology || State.variables.arcologies[0];
 	if (!slave || !arcology || arcology.FSAztecRevivalist === "unset" || arcology.FSAztecRevivalist <= 0) {
 		return 0;
 	}
@@ -435,8 +433,7 @@ window.toJson = function(obj) {
  * @param {App.Entity.SlaveState} slave
  * @returns {string}
  */
-window.nippleColor = function(slave) {
-	slave = slave || State.variables.activeSlave;
+window.nippleColor = function (slave) {
 	if (skinToneLevel(slave.skin) < 8) {
 		if (slave.preg > slave.pregData.normalBirth / 4 || (slave.counter.birthsTotal > 0 && slave.lactation > 0)) {
 			return "brown";
diff --git a/src/js/textbox2.js b/src/js/textbox2.js
index a434e8015b787503c360c42c83df75f41f85eba2..cebb01edecd516ec0c1e319a9e5a37ffac76051f 100644
--- a/src/js/textbox2.js
+++ b/src/js/textbox2.js
@@ -2,11 +2,11 @@ Macro.add("textbox2", {
 	handler: function() {
 		if (this.args.length < 2) {
 			const e = [];
-			return this.args.length < 1 && e.push("variable name"), this.args.length < 2 && e.push("default value"), this.error(`no ${ e.join(" or ") } specified`);
+			return this.args.length < 1 && e.push("variable name"), this.args.length < 2 && e.push("default value"), this.error(`no ${e.join(" or ")} specified`);
 		}
-		if ("string" !== typeof this.args[0]) return this.error("variable name argument is not a string");
+		if ("string" !== typeof this.args[0]) { return this.error("variable name argument is not a string"); }
 		const t = this.args[0].trim();
-		if ("$" !== t[0] && "_" !== t[0]) return this.error(`variable name "${ this.args[0] }" is missing its sigil ($ or _)`);
+		if ("$" !== t[0] && "_" !== t[0]) { return this.error(`variable name "${this.args[0]}" is missing its sigil ($ or _)`); }
 		Config.debug && this.debugView.modes({
 			block: true
 		});
@@ -46,7 +46,7 @@ Macro.add("textbox2", {
 				}
 				Engine.play(passage);
 				if (currentPassage === passage) {
-					Scripting.evalJavaScript(`window.scrollTo(0, ${ currentScrollPosition });`);
+					Scripting.evalJavaScript(`window.scrollTo(0, ${currentScrollPosition});`);
 				}
 			}
 		}
@@ -63,11 +63,11 @@ Macro.add("textbox2", {
 		}
 
 		jQuery(inputElement).attr({
-			id: `${this.name }-${ r}`,
-			name: `${this.name }-${ r}`,
+			id: `${this.name}-${r}`,
+			name: `${this.name}-${r}`,
 			// type: isNumber ? "number" : "text", /* TODO - hide spinner if we do this */
 			tabindex: 0
-		}).addClass(`macro-${ this.name}`)
+		}).addClass(`macro-${this.name}`)
 			.on("change", function() {
 				State.setVar(t, valueToNumberIfSame(this.value));
 			}).on("blur", function() {
@@ -79,7 +79,7 @@ Macro.add("textbox2", {
 			})
 			.on("keypress", function(e) {
 				13 === e.which && (e.preventDefault(), State.setVar(t, valueToNumberIfSame(this.value)), gotoPassage());
-			}).appendTo(this.output), State.setVar(t, a), inputElement.value = a, autofocus && (inputElement.setAttribute("autofocus", "autofocus"), postdisplay[`#autofocus:${ inputElement.id}`] = function(e) {
+			}).appendTo(this.output), State.setVar(t, a), inputElement.value = a, autofocus && (inputElement.setAttribute("autofocus", "autofocus"), postdisplay[`#autofocus:${inputElement.id}`] = function(e) {
 			delete postdisplay[e], setTimeout(function() {
 				return inputElement.focus();
 			}, Engine.minDomActionDelay);
diff --git a/src/js/textboxJS.js b/src/js/textboxJS.js
index 52adb138876e93d22bae1b08bc7cba80e03c86c2..573fac9a376304f75ca63366eaed93e6af5e080a 100644
--- a/src/js/textboxJS.js
+++ b/src/js/textboxJS.js
@@ -1,25 +1,25 @@
 /* Nicked off greyelf, works for replace textboxes */
 window.setReplaceTextboxMaxLength = function(storyVarName, maxLength) {
-	const textboxId = `#textbox-${ Util.slugify(storyVarName)}`;
+	const textboxId = `#textbox-${Util.slugify(storyVarName)}`;
 	$(textboxId)
 		.attr("maxlength", maxLength)
 		.css({
 			"min-width": "initial",
-			"width": `${maxLength }em`,
+			"width": `${maxLength}em`,
 			"padding": "3px 2px"
 		});
 };
 
 /* Nicked off TheMadExile, works for non-replace textboxes */
 window.setTextboxMaxLength = function(storyVarName, maxLength) {
-	const textboxId = `#textbox-${ Util.slugify(storyVarName)}`;
-	postdisplay[`${textboxId }-maxlength`] = function(taskName) {
+	const textboxId = `#textbox-${Util.slugify(storyVarName)}`;
+	postdisplay[`${textboxId}-maxlength`] = function(taskName) {
 		delete postdisplay[taskName];
 		$(textboxId)
 			.attr("maxlength", maxLength)
 			.css({
 				"min-width": "initial",
-				"width": `${maxLength }em`,
+				"width": `${maxLength}em`,
 				"padding": "3px 2px"
 			});
 	};
diff --git a/src/js/utilJS.js b/src/js/utilJS.js
index 89d46f85020a2ea950f5da11fbc89c9f6914e869..1b50db806cadce49dff7d79489088d93591a9813 100644
--- a/src/js/utilJS.js
+++ b/src/js/utilJS.js
@@ -2191,7 +2191,7 @@ App.UI.htag = function (text, attributes, tag = 'div') {
 		attributes = `id="${attributes.trim()}"`;
 	}
 
-	return `<${tag}${attributes}>${payload}</${tag}>`;
+	return `<${tag} ${attributes}>${payload}</${tag}>`;
 };
 
 window.SkillIncrease = (function() {
diff --git a/src/npc/databases/ddSlavesDatabase.tw b/src/npc/databases/ddSlavesDatabase.tw
index 940ce5e0f8b6027b0a9c76e0062371b89f1bb52a..3f0114d53df5d0b0b22c6d39effebcf417537b85 100644
--- a/src/npc/databases/ddSlavesDatabase.tw
+++ b/src/npc/databases/ddSlavesDatabase.tw
@@ -28,7 +28,7 @@
 /*Added origin, removed anal virginity -BoneyM*/
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Mrs.' Maria", _HS.birthName = "Maria", _HS.genes = "XY", _HS.origin = "$He was once a successful drug lord, but was turned into $his current self after making too many enemies.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.physicalAge = 28, _HS.visualAge = 28, _HS.ovaryAge = 28, _HS.health = 100, _HS.devotion = 75, _HS.muscles = 20, _HS.height = 175, _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.skin = "spray tanned", _HS.hLength = 10, _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.nipplesPiercing = 1, _HS.lips = 55, _HS.lipsImplant = 10, _HS.vagina = -1, _HS.preg = -2, _HS.clitPiercing = 3, _HS.clitSetting = "anal", _HS.dick = 5, _HS.anus = 2, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.tattoo = "$He has a brand of a former master on $his left testicle.", _HS.brand = "a brand of a former master", _HS.brandLocation = "left testicle", _HS.stampTat = "$He has a fairly generic tramp stamp.", _HS.career = "a gang leader">>
+<<set _HS.slaveName = "'Mrs.' Maria", _HS.birthName = "Maria", _HS.genes = "XY", _HS.origin = "$He was once a successful drug lord, but was turned into $his current self after making too many enemies.", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 28, _HS.physicalAge = 28, _HS.visualAge = 28, _HS.ovaryAge = 28, _HS.health = 100, _HS.devotion = 75, _HS.muscles = 20, _HS.height = 175, _HS.hColor = "blonde", _HS.pubicHColor = "blonde", _HS.override_Skin = 1, _HS.skin = "spray tanned", _HS.hLength = 10, _HS.boobs = 1000, _HS.boobsImplant = 600, _HS.nipplesPiercing = 1, _HS.lips = 55, _HS.lipsImplant = 10, _HS.vagina = -1, _HS.preg = -2, _HS.clitPiercing = 3, _HS.clitSetting = "anal", _HS.dick = 5, _HS.anus = 2, _HS.prostate = 1, _HS.balls = 2, _HS.scrotum = 2, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXX = 40, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.brand = "a brand of a former master", , _HS.brandLocation = "left testicle", _HS.stampTat = "$He has a fairly generic tramp stamp.", _HS.career = "a gang leader">>
 <<set $heroSlaves.push(_HS)>>
 /*branded nut*/
 /*Added brand to customtat, added origin -BoneyM*/
diff --git a/src/npc/fBeg.tw b/src/npc/fBeg.tw
index d542ec325e59e7af2debb1ce08eabe543084a156..00ed32a385697ee713f5bebbf9a27597b8a9cfcc 100644
--- a/src/npc/fBeg.tw
+++ b/src/npc/fBeg.tw
@@ -34,7 +34,7 @@ You call $him over to you for inspection. <<BoobsDescription>> You look at $him
 <</if>>
 <<if ($activeSlave.devotion > -20)>>
 	$He begins to undress with
-	<<if ($activeSlave.entertainSkill >= 100)>>
+	<<if ($activeSlave.skill.entertainment >= 100)>>
 		masterful skill, teasing and taunting all the way down. $He rolls $his hips and most sexual parts as $he removes $his clothing.
 	<<elseif ($activeSlave.skill.entertainment >= 80)>>
 		arousing skill. Even though the goal is just to get $him naked, your slave knows that $his job is to entertain you with $his every move.
diff --git a/src/pregmod/manageCorporation.tw b/src/pregmod/manageCorporation.tw
index a0471bb6a4c5a91de386f7c97bb6386187869bc0..4af979d3a86b68008bb5c5b09597b1fd37c714c8 100644
--- a/src/pregmod/manageCorporation.tw
+++ b/src/pregmod/manageCorporation.tw
@@ -1499,7 +1499,7 @@ __Slave specialization__
 			<br>Slaves are made to be lactating [[Naturally|Manage Corporation][$corpSpecMilk = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Through Implant|Manage Corporation][$corpSpecMilk = 2, $corpSpecToken -= 1, $corpSpecTimer = 2]]
 		<</if>>
 		<<if ndef $corpSpecSexEd && $corpDivWhore > 0>> /*This used to be $trainingUpgradeSexEd, it is the escort division specialization*/
-			<br>Slaves are sexually [[Clueless|Manage Corporation][$corpSpecSexEd = 0, $corpSpecToken -= 1, $corpSpecTimer = 2]] | [[Competent|Manage Corporation][$corpSpecSexEd = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
+			<br>Slaves are sexually [[Clueless|Manage Corporation][$corpSpecSexEd = 0, $corpSpecToken -= 0, $corpSpecTimer = 2]] | [[Competent|Manage Corporation][$corpSpecSexEd = 1, $corpSpecToken -= 1, $corpSpecTimer = 2]] -- //Further specializations possible//
 		<</if>>
 	<</if>>
 <<else>>
@@ -2145,6 +2145,11 @@ __Slave specialization__
 		<<if $corpSpecTimer == 0>>
 			[[Basic Training|Manage Corporation][$corpSpecSexEd = 1, $corpSpecToken +=1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecSexEd>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
 		<</if>>
+	<<elseif $corpSpecSexEd == 0>>
+		<br>The corporation teaches no sexual techniques to its slaves.
+		<<if $corpSpecTimer == 0>>
+			[[Basic Training|Manage Corporation][$corpSpecSexEd = 1, $corpSpecToken -=1, $corpSpecTimer = 2]] | <<link "No Focus">><<unset $corpSpecSexEd>><<set $corpSpecToken += 1, $corpSpecTimer = 2>><<goto "Manage Corporation">><</link>>
+		<</if>>
 	<</if>>
 <</if>> /*End of activated specializations*/
 
diff --git a/src/societies/aztec/slaveSacrifice.tw b/src/societies/aztec/slaveSacrifice.tw
index 34347e97a1f70bb6ea4dd6f5b46c19652d7bcadd..2de0d8319a3b09b09d6712dbb3fd872a8e103e73 100644
--- a/src/societies/aztec/slaveSacrifice.tw
+++ b/src/societies/aztec/slaveSacrifice.tw
@@ -4,7 +4,7 @@
 <<setLocalPronouns $activeSlave >>
 <<run Enunciate($activeSlave)>>
 
-<<set _activeSlaveRepSacrifice = repGainSacrifice()>>
+<<set _activeSlaveRepSacrifice = repGainSacrifice($activeSlave, $arcologies[0])>>
 
 <<if $sacrificeType == "penance">>
 	You inform $activeSlave.slaveName that $he's been chosen to take part in a ritual sacrifice to Xochiquetzal, the goddess of carnal love, excess, and sexual release.
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index e8dd142b5fe6ceb666f68b696e3918760e946907..27d94fbfbc457e4708233f887e84b89cef78e87d 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -3688,7 +3688,6 @@ Done!
 	<</for>>
 <</if>>
 
-<<unset $showOneSlave>>
 <<unset $SlaveSummaryFiler>>
 
 <<if $releaseID < 1044>>
diff --git a/src/uncategorized/hgSelect.tw b/src/uncategorized/hgSelect.tw
index 98113a7d0fd141e97fec1f68db408e3c31c9fc64..3072a46099cb15eafaa6b419efee535991c9b0af 100644
--- a/src/uncategorized/hgSelect.tw
+++ b/src/uncategorized/hgSelect.tw
@@ -88,4 +88,4 @@ _HGName
 <br><br>''Appoint a Head Girl from among your devoted slaves:''
 <br><br>[[None|HG Workaround][$i = -1]]
 <br><br>
-<<print App.UI.SlaveList.facilityManagerSelection(App.Entity.facilities.headGirlSuite, "HG Select")>>
+<<print App.UI.SlaveList.facilityManagerSelection(App.Entity.facilities.headGirlSuite, "HG Workaround")>>
diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw
index 1ef1c36ef9a395b49f98a670447f128bd7900386..bbfd96a84677f4b6f9b96edcaefb0cac90b12649 100644
--- a/src/uncategorized/nextWeek.tw
+++ b/src/uncategorized/nextWeek.tw
@@ -429,7 +429,7 @@
 
 /% These are variables that either should be made into _temp vars or should be Zeroed out once done with them instead of here. This can also interfere with debugging or hide NaN's as zeroing things out would clear a NaN. Also could stop from NaN's getting worse? %/
 /% Integer and float variables. No real need to zero them out but doesn't hurt to have them in a known state, though this might mask variables NaN'ing out. Takes up the least amount of Memory besides a "" string. %/
-<<set $i = 0, $j = 0, $x = 0, $r = 0, $opinion = 0, $influenceBonus = 0, $averageProsperity = 0, $beauty = 0, $beautyMultiplier = 0, $FResult = 0, $groomSlave = -1, $brideSlave = -1, $mother = -1, $daughter = -1, $devMother = -1, $devDaughter = -1, $alphaTwin = -1, $betaTwin = -1, $youngerSister = -1, $olderSister = -1, $recruiterSlave = -1>>
+<<set $i = 0, $j = 0, $x = 0, $r = 0, $opinion = 0, $influenceBonus = 0, $averageProsperity = 0, $beauty = 0, $FResult = 0, $groomSlave = -1, $brideSlave = -1, $mother = -1, $daughter = -1, $devMother = -1, $devDaughter = -1, $alphaTwin = -1, $betaTwin = -1, $youngerSister = -1, $olderSister = -1, $recruiterSlave = -1>>
 <<set $boobsID = -1, $boobsInterestTargetID = -1, $buttslutID = -1, $buttslutInterestTargetID = -1, $cumslutID = -1, $cumslutInterestTargetID = -1, $humiliationID = -1, $humiliationInterestTargetID = -1, $sadistID = -1, $sadistInterestTargetID = -1, $masochistID = -1, $masochistInterestTargetID = -1, $domID = -1, $dominantInterestTargetID = -1, $subID = -1, $submissiveInterestTargetID = -1>>
 
 /% Other arrays %/
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 96ed74580ea1a4b6bf2814a1b9074d0a5d809993..b334f51c80e98d0461f86d2990e77aa191da71d7 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -391,7 +391,7 @@
 		<</if>>
 	<</if>>
 <</if>>
-<<set _activeSlaveRepSacrifice = repGainSacrifice()>>
+<<set _activeSlaveRepSacrifice = repGainSacrifice($activeSlave, $arcologies[0])>>
 <<if _activeSlaveRepSacrifice > 0 && $arcologies[0].FSPaternalist == "unset" && ($activeSlave.breedingMark == 0 || $propOutcome == 0)>>
 	| <<link "Sacrifice $him on the altar" "Aztec Slave Sacrifice">><<set $sacrificeType = "life">><</link>>//This will kill $him and gain you _activeSlaveRepSacrifice reputation//
 <</if>>
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 9139455db90769c8f61e106115c5c9fe2c271a7c..3d100ce82d07f741d4cc4f0930c1181d6d4441bb 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -876,7 +876,7 @@
 				<<else>>
 					entirely conceals $his breasts.
 				<</if>>
-			<<case "leather pants and pasties" "panties and pasties">>
+			<<case "leather pants and pasties" "panties and pasties" "pasties">>
 				$activeSlave.slaveName's breasts
 				<<if $activeSlave.boobs > 12000>>
 					are completely bare, except for the pasties covering $his nipples.
@@ -2201,7 +2201,7 @@ $His
 			<<else>>
 				butt.
 			<</if>>
-		<<case "a bra" "a button-up shirt" "a sweater" "a tank-top" "a tube top" "a striped bra" "an oversized t-shirt" "a t-shirt" "a sports bra">>
+		<<case "a bra" "a button-up shirt" "a sweater" "a tank-top" "a tube top" "a striped bra" "an oversized t-shirt" "a t-shirt" "a sports bra" "pasties">>
 			$His clothing leaves $his
 			<<if $activeSlave.butt > 10>>
 				mammoth ass completely bare.
@@ -3423,7 +3423,7 @@ $He's got a
 			<<else>>
 				$activeSlave.slaveName's panties immodestly conceal $his pussy.
 			<</if>>
-		<<case "a bra" "a button-up shirt" "a sweater" "a tank-top" "a tube top" "a striped bra" "an oversized t-shirt" "a t-shirt" "a sports bra">>
+		<<case "a bra" "a button-up shirt" "a sweater" "a tank-top" "a tube top" "a striped bra" "an oversized t-shirt" "a t-shirt" "a sports bra" "pasties">>
 			<<if $activeSlave.dick > 6>>
 				$his outfit does nothing to conceal $his swinging cock.
 			<<elseif ($activeSlave.dick > 0) && ($activeSlave.vagina > -1)>>
@@ -12907,7 +12907,7 @@ $He has
 			<<elseif $activeSlave.muscles > 30>>
 				$activeSlave.slaveName's outfit barely shows the contours of $his abdominal muscles.
 			<</if>>
-		<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
+		<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
 			<<if $activeSlave.belly >= 1000000>>
 				//WIP//
 			<<elseif $activeSlave.belly >= 750000>>
@@ -18384,7 +18384,7 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 				The heavy fabric of $activeSlave.slaveName's burqa lies taut against $his titanic implant-filled belly.
 			<<case "a nice pony outfit" "a slutty pony outfit">>
 				The leather material of $activeSlave.slaveName's pony outfit lies taut against $his titanic implant-filled belly.
-			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
+			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
 				$activeSlave.slaveName's outfit completely bares $his titanic implant-filled belly.
 			<<case "a one-piece swimsuit">>
 				$activeSlave.slaveName's swimsuit lies completely taut on $his titanic implant-filled belly.
@@ -18604,7 +18604,7 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 				$activeSlave.slaveName's burqa is filled out by $his huge implant-filled belly.
 			<<case "a nice pony outfit" "a slutty pony outfit">>
 				The leather material of $activeSlave.slaveName's pony outfit lies taut against $his huge implant-filled belly.
-			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
+			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
 				$activeSlave.slaveName's outfit completely bares $his huge implant-filled belly.
 			<<case "a one-piece swimsuit">>
 				$activeSlave.slaveName's swimsuit lies completely taut on $his huge implant-filled belly.
@@ -18823,7 +18823,7 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 				$activeSlave.slaveName's burqa is noticeably rounded out by $his huge implant-filled belly.
 			<<case "a nice pony outfit" "a slutty pony outfit">>
 				The leather material of $activeSlave.slaveName's pony outfit is noticeably rounded out by $his huge implant-filled belly.
-			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
+			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
 				$activeSlave.slaveName's outfit completely bares $his huge implant-filled belly.
 			<<case "a one-piece swimsuit">>
 				$activeSlave.slaveName's swimsuit is noticeably rounded out by $his huge implant-filled belly.
@@ -19043,7 +19043,7 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 				There is a slight roundness to the middle of $activeSlave.slaveName's burqa, thanks to $his implant-filled belly.
 			<<case "a nice pony outfit" "a slutty pony outfit">>
 				There is a slight roundness to the middle of $activeSlave.slaveName's pony outfit, thanks to $his implant-filled belly.
-			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
+			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
 				$activeSlave.slaveName's outfit completely bares $his implant-filled belly.
 			<<case "a one-piece swimsuit">>
 				There is a slight roundness to the middle of $activeSlave.slaveName's swimsuit, thanks to $his implant-filled belly.
@@ -19265,7 +19265,7 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 				$activeSlave.slaveName's fat belly just manages to brush up against $his burqa.
 			<<case "a nice pony outfit" "a slutty pony outfit">>
 				$activeSlave.slaveName's fat belly molds itself against $his pony outfit.
-			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
+			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
 				$activeSlave.slaveName's outfit completely bares $his fat belly.
 			<<case "a one-piece swimsuit">>
 				$activeSlave.slaveName's fat belly just manages to brush up against $his swimsuit.
@@ -19485,7 +19485,7 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 				$activeSlave.slaveName's burqa is filled out by $his implant-swollen belly.
 			<<case "a nice pony outfit" "a slutty pony outfit">>
 				$activeSlave.slaveName's pony outfit is rounded out by $his implant-swollen belly.
-			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
+			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
 				$activeSlave.slaveName's outfit completely bares $his implant-swollen belly.
 			<<case "a one-piece swimsuit">>
 				$activeSlave.slaveName's swimsuit is rounded out by $his implant-swollen belly.
@@ -19963,7 +19963,7 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 				$activeSlave.slaveName's burqa is noticeably rounded out by $his hugely swollen belly.
 			<<case "a nice pony outfit" "a slutty pony outfit">>
 				$activeSlave.slaveName's pony outfit is noticeably rounded out by $his hugely swollen belly.
-			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
+			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
 				$activeSlave.slaveName's outfit completely bares $his hugely swollen belly.
 			<<case "a one-piece swimsuit">>
 				$activeSlave.slaveName's swimsuit is noticeably rounded out by $his hugely swollen belly.
@@ -20178,7 +20178,7 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 				There is a slight roundness to the middle of $activeSlave.slaveName's burqa, thanks to $his jiggling <<print $activeSlave.inflationType>>-filled belly.
 			<<case "a nice pony outfit" "a slutty pony outfit">>
 				There is a slight roundness to the middle of $activeSlave.slaveName's pony outfit, thanks to $his jiggling <<print $activeSlave.inflationType>>-filled belly.
-			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
+			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
 				$activeSlave.slaveName's outfit completely bares $his jiggling <<print $activeSlave.inflationType>>-filled belly.
 			<<case "a one-piece swimsuit">>
 				There is a slight roundness to the middle of $activeSlave.slaveName's swimsuit, thanks to $his jiggling <<print $activeSlave.inflationType>>-filled belly.
@@ -20395,7 +20395,7 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 				$activeSlave.slaveName's fat belly just manages to brush up against $his burqa.
 			<<case "a nice pony outfit" "a slutty pony outfit">>
 				$activeSlave.slaveName's fat belly molds itself against $his pony outfit.
-			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
+			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
 				$activeSlave.slaveName's outfit completely bares $his fat belly.
 			<<case "a one-piece swimsuit">>
 				$activeSlave.slaveName's fat belly just manages to brush up against $his swimsuit.
@@ -20613,7 +20613,7 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 				$activeSlave.slaveName's burqa is filled out by $his <<print $activeSlave.inflationType>>-swollen belly.
 			<<case "a nice pony outfit" "a slutty pony outfit">>
 				$activeSlave.slaveName's pony outfit is rounded out by $his <<print $activeSlave.inflationType>>-swollen belly.
-			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
+			<<case "a tube top and thong" "a bra" "a thong" "a tube top" "a striped bra" "striped underwear" "a skimpy loincloth" "a slutty klan robe" "a sports bra" "boyshorts" "cutoffs" "leather pants and pasties" "leather pants" "panties" "panties and pasties" "pasties" "sport shorts and a sports bra" "jeans" "leather pants and a tube top" "sport shorts">>
 				$activeSlave.slaveName's outfit completely bares $his <<print $activeSlave.inflationType>>-swollen belly.
 			<<case "a one-piece swimsuit">>
 				$activeSlave.slaveName's swimsuit is rounded out by $his <<print $activeSlave.inflationType>>-swollen belly.
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index 41b8762bb2b73e3cc9d760aa48d4e16968d99c9b..3d905bb0f1092f882ec4fb7005bd36523f214497 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -596,7 +596,7 @@ $args[0]: array to sort
 <</widget>>
 
 /%
- Call as <<SlaveIDSort [$slaveIDs]>>
+ Call as <<SlaveIDSort [slaveIDs]>>
  $args[0]: array to sort
 %/
 <<widget "SlaveIDSort">>
@@ -604,7 +604,7 @@ $args[0]: array to sort
 <</widget>>
 
 /%
- Call as <<SlaveIndexSort [$slaveIndxs]>>
+ Call as <<SlaveIndexSort [slaveIndxs]>>
  $args[0]: array to sort
 %/
 <<widget "SlaveIndexSort">>