diff --git a/src/npc/fucktoyWorkaround.tw b/src/npc/fucktoyWorkaround.tw
deleted file mode 100644
index 86343cdfbaa91836e445b1cd00f0f156d7cc665b..0000000000000000000000000000000000000000
--- a/src/npc/fucktoyWorkaround.tw
+++ /dev/null
@@ -1,6 +0,0 @@
-:: Fucktoy Workaround [silently]
-
-<<assignJob $slaves[$i] "please you">>
-
-<<goto "Main">>
-
diff --git a/src/npc/restWorkaround.tw b/src/npc/restWorkaround.tw
deleted file mode 100644
index 439a7300a1261fe32213a9dcb9bff45e22bd0c69..0000000000000000000000000000000000000000
--- a/src/npc/restWorkaround.tw
+++ /dev/null
@@ -1,6 +0,0 @@
-:: Rest Workaround [silently]
-
-<<removeJob $slaves[$i] $slaves[$i].assignment>>
-
-<<goto "Main">>
-
diff --git a/src/npc/servantWorkaround.tw b/src/npc/servantWorkaround.tw
deleted file mode 100644
index 427529ebf4e572238143909dcf8ead3f8a841d52..0000000000000000000000000000000000000000
--- a/src/npc/servantWorkaround.tw
+++ /dev/null
@@ -1,6 +0,0 @@
-:: Servant Workaround [silently]
-
-<<assignJob $slaves[$i] "be a servant">>
-
-<<goto "Main">>
-
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 1867dda4c0116084553afb25ef8034e71c87af38..83efb9eb52a578af86c334c0da8a633d087b992f 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -130,13 +130,14 @@
 <<if ndef $peacekeepers>>
 	<<set $peacekeepers = 0>>
 <</if>>
-
 <<if def $modestClothes>>
 	<<unset $modestClothes>>
 <</if>>
-
 <<if ndef $completedOrgans>>
-<<set $completedOrgans = []>>
+	<<set $completedOrgans = []>>
+<</if>>
+<<if def $eventSlaves>>
+	<<unset $eventSlaves>>
 <</if>>
 
 /* pregmod stuff */
diff --git a/src/uncategorized/classesWorkaround.tw b/src/uncategorized/classesWorkaround.tw
deleted file mode 100644
index 1e61bdde3157f3cf45d94048649d1e481e215e61..0000000000000000000000000000000000000000
--- a/src/uncategorized/classesWorkaround.tw
+++ /dev/null
@@ -1,6 +0,0 @@
-:: Classes Workaround [silently]
-
-<<assignJob $slaves[$i] "take classes">>
-
-<<goto "Main">>
-
diff --git a/src/uncategorized/confinementWorkaround.tw b/src/uncategorized/confinementWorkaround.tw
deleted file mode 100644
index c157a6185f5578bd9e418db9ced21db16b7ab437..0000000000000000000000000000000000000000
--- a/src/uncategorized/confinementWorkaround.tw
+++ /dev/null
@@ -1,6 +0,0 @@
-:: Confinement Workaround [silently]
-
-<<assignJob $slaves[$i] "stay confined">>
-
-<<goto "Main">>
-
diff --git a/src/uncategorized/holeWorkaround.tw b/src/uncategorized/holeWorkaround.tw
deleted file mode 100644
index f5a07f47aea80ebf8ada4482c909ddfc3ba5621a..0000000000000000000000000000000000000000
--- a/src/uncategorized/holeWorkaround.tw
+++ /dev/null
@@ -1,6 +0,0 @@
-:: Hole Workaround [silently]
-
-<<assignJob $slaves[$i] "work a glory hole">>
-
-<<goto "Main">>
-
diff --git a/src/uncategorized/milkingWorkaround.tw b/src/uncategorized/milkingWorkaround.tw
deleted file mode 100644
index f64bf7c03172e99732e4dcedb7215947204099e6..0000000000000000000000000000000000000000
--- a/src/uncategorized/milkingWorkaround.tw
+++ /dev/null
@@ -1,6 +0,0 @@
-:: Milking Workaround [silently]
-
-<<assignJob $slaves[$i] "get milked">>
-
-<<goto "Main">>
-
diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index bfe6c4df194d815e8640bfdfddc7a0d2af3e7048..bc67af4ce9388e88a34cfcc4e22bb387e18a6ed4 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -10,13 +10,11 @@
 <<SlaveTitle $activeSlave>>
 
 <<if $specialSlave == 1>>
-	<<for $i = 0; $i < $heroSlaves.length; $i++>>
-		<<if $activeSlave.ID == $heroSlaves[$i].ID>>
-			<<set $heroSlaves.deleteAt($i)>>
-			<<set $specialSlave = 0>>
-			<<break>>
-		<</if>>
-	<</for>>
+	<<set $i = $heroSlaves.findIndex(function(s) { return s.ID == $activeSlave.ID; })>>
+	<<if $i != -1>>
+		<<set $heroSlaves.deleteAt($i)>>
+	<</if>>
+	<<set $specialSlave = 0>>
 <</if>>
 
 <br>
@@ -503,7 +501,7 @@ The legalities completed, ''__@@.pink;<<SlaveFullName $activeSlave>>@@__'' <<if
 	<</if>>
 <<elseif $arcologies[0].FSChineseRevivalist >= 50>>
 	<<if $activeSlave.intelligenceImplant == 1>>
-		Though she knows it's not a truly authentic ancient Chinese restoration, her educated mind grasps the potential benefits of ancient Confucian philosophy for slaves, and she @@.mediumaquamarine;hopes@@ your arcology at least maintains some pretence of order and conservatism.
+		Though she knows it's not a truly authentic ancient Chinese restoration, her educated mind grasps the potential benefits of ancient Confucian philosophy for slaves, and she @@.mediumaquamarine;hopes@@ your arcology at least maintains some pretense of order and conservatism.
 		<<set $activeSlave.trust += 2>>
 	<</if>>
 <</if>>
@@ -1077,7 +1075,7 @@ The legalities completed, ''__@@.pink;<<SlaveFullName $activeSlave>>@@__'' <<if
 				She will never bear children, and will @@.mediumorchid;remember her status@@ with every fucking she receives. Your absolute power over her body is rightfully @@.gold;terrifying.@@
 				<<set $activeSlave.trust -= 20, $activeSlave.devotion -= 50>>
 			<</if>>
-			Society @@.green;approves@@ of your promptly rendering her sterile; this advances the idea that all only the elite should breed.
+			Society @@.green;approves@@ of your promptly rendering her sterile; this advances the idea that only the elite should breed.
 			<<FSChange "Eugenics" 1>>
 			<<if $activeSlave.pregKnown == 1>>
 				Since you snuffed out an unworthy life in the process, the sterilization has an even @@.green;bigger impact.@@
diff --git a/src/uncategorized/officeDescription.tw b/src/uncategorized/officeDescription.tw
index 51cd28d6af2f884f27c3fb988661c3929feb40a7..bd8ffa9b7e723fe3768b5457273829dec34eb230 100644
--- a/src/uncategorized/officeDescription.tw
+++ b/src/uncategorized/officeDescription.tw
@@ -6,14 +6,9 @@
 
 <<if $clubAdsSpending >= 5000>>
 	A corner of your desk is piled with sample merchandise from the campaign promoting your club.
-	<<set $eventSlaves = []>>
-	<<for _odi = 0; _odi < $slaves.length; _odi++>>
-	<<if ($slaves[_odi].assignment == "serve in the club") && canWalk($slaves[_odi])>>
-		<<set $eventSlaves.push($slaves[_odi])>>
-	<</if>>
-	<</for>>
-	<<if $eventSlaves.length > 0>>
-	<<set $activeSlave = $eventSlaves.random()>>
+	<<set _eventSlaves = $slaves.filter(function(s) { return s.assignment == "serve in the club" && canWalk(s); })>>
+	<<if _eventSlaves.length > 0>>
+	<<set $activeSlave = _eventSlaves.random()>>
 	<<if random(1,2) == 1>>
 		This includes a sex toy based on $activeSlave.slaveName's
 		<<if (random(1,3) == 1) && ($activeSlave.vaginalSkill >= 100)>>
@@ -41,14 +36,9 @@
 	<<else>>
 	A corner of your desk is piled with sample merchandise from the campaign promoting $brothelName.
 	<</if>>
-	<<set $eventSlaves = []>>
-	<<for _odi = 0; _odi < $slaves.length; _odi++>>
-	<<if ($slaves[_odi].assignment == "work in the brothel") && canWalk($slaves[_odi])>>
-		<<set $eventSlaves.push($slaves[_odi])>>
-	<</if>>
-	<</for>>
-	<<if $eventSlaves.length > 0>>
-	<<set $activeSlave = $eventSlaves.random()>>
+	<<set _eventSlaves = $slaves.filter(function(s) { return s.assignment == "work in the brothel" && canWalk(s); })>>
+	<<if _eventSlaves.length > 0>>
+	<<set $activeSlave = _eventSlaves.random()>>
 	<<if random(1,2) == 1>>
 		This includes a sex toy based on $activeSlave.slaveName's
 		<<if (random(1,3) == 1) && ($activeSlave.vaginalSkill >= 100)>>
diff --git a/src/uncategorized/publicServantWorkaround.tw b/src/uncategorized/publicServantWorkaround.tw
deleted file mode 100644
index 7742aa735e90130b14ed87fd47e18ad5bbe51a86..0000000000000000000000000000000000000000
--- a/src/uncategorized/publicServantWorkaround.tw
+++ /dev/null
@@ -1,6 +0,0 @@
-:: Public Servant Workaround [silently]
-
-<<assignJob $slaves[$i] "serve the public">>
-
-<<goto "Main">>
-
diff --git a/src/uncategorized/reRecruit.tw b/src/uncategorized/reRecruit.tw
index 37cec934e06860d04861d8a5d31e75081c9118a3..2574ae273d479e00305b4aa09ecf0c5982b8b7a1 100644
--- a/src/uncategorized/reRecruit.tw
+++ b/src/uncategorized/reRecruit.tw
@@ -2132,7 +2132,7 @@ Your desk flags a video message as having potential. It's a rather homely farmer
 	<<case "held POW">>
 		You complete the legalities and biometric scanning quickly and without fuss; her will to fight long since broken. Though you do catch a faint glimmer of joy in her eyes as you tell her she's been purchased by a notorious Pit Master and will likely spend the rest of her life in combat.
 	<<case "embryo appropriation">>
-		<<set _profit = $slaveCost*$activeSlave.pregCount>>
+		<<set _profit = $slaveCost*$activeSlave.pregType>>
 		<<set $cash += _profit>>
 		She sobs as the biometric scanners scrupulously record her every particular as belonging not to a person but to a piece of human property. She tries to resist placing her biometric signature in testament to the truth of her debt, but when you observe that the alternative is the death of her and her unborn, she complies. A purchasing agent appears to take her away, but not after the slave breeder that bought her paid a ludicrous amount of ¤ per child. An additional @@.yellowgreen;¤<<print _profit>>@@ overall.
 	<<case "rogue cyborg">>
diff --git a/src/uncategorized/slaveSummary.tw b/src/uncategorized/slaveSummary.tw
index 9723c15df0afd24a7dc74811bb065c1aab64e244..34c7638ce6e245331f084673595f781254796c03 100644
--- a/src/uncategorized/slaveSummary.tw
+++ b/src/uncategorized/slaveSummary.tw
@@ -90,7 +90,7 @@
 
 <<switch _Pass>>
 <<case "Main">>
-	
+
 	<<if $useSlaveSummaryTabs == 1>>
 		<<if $slaveAssignmentTab == "overview">>
 			<<if $showOneSlave == "Head Girl">>
@@ -100,7 +100,7 @@
 			<<elseif $showOneSlave == "guard you">>
 				<<if (_Slave.assignment != "guard you")>><<continue>><</if>>
 			<</if>>
-			
+
 		<<elseif $slaveAssignmentTab == "resting">>
 			<<if _Slave.assignment != "rest">><<continue>><</if>>
 		<<elseif $slaveAssignmentTab == "stay confined">>
@@ -129,7 +129,7 @@
 			<</if>>
 		<</if>>
 	<</if>>
-	
+
 	<<if (_Slave.choosesOwnClothes == 1) && (_Slave.clothes == "choosing her own clothes")>>
 		<<set $i = _ssi, _oldDevotion = _Slave.devotion>>
 		<<silently>><<include "SA chooses own clothes">><</silently>>
@@ -142,7 +142,7 @@
 	<</if>>
 	<<if Array.isArray($personalAttention) && $personalAttention.findIndex(function(s) { return s.ID == _Slave.ID; }) != -1>>''@@.lightcoral;PA@@''<</if>>
 	[[_slaveName|Slave Interact][$activeSlave = $slaves[_ssi]]] /* lists their names */
-	
+
 <<case "Personal Attention Select">>
 	<br style="clear:both" /><<if $lineSeparations == 0>><br><<else>><hr style="margin:0"><</if>><<if ($seeImages == 1) && ($seeSummaryImages == 1)>><div class="imageRef smlImg"><<SlaveArt _Slave 1>></div><</if>>
 	<<link _slaveName>>
@@ -508,18 +508,18 @@ will
 
 <<if ($displayAssignments == 1) && (_Pass == "Main") && (_Slave.ID != $HeadGirl.ID) && (_Slave.ID != $Recruiter.ID) && (_Slave.ID != $Bodyguard.ID)>>
 	<<if _Slave.assignment != "rest">>
-		[[Rest|Rest Workaround][$i = _ssi]]
+		<<link "Rest" "Main">><<removeJob $slaves[_ssi] $slaves[_ssi].assignment>><</link>>
 	<<else>>
 		Rest
 	<</if>>
 	<<if _Slave.assignment != "please you">>
-		| [[Fucktoy|Fucktoy Workaround][$i = _ssi]]
+		| <<link "Fucktoy" "Main">><<assignJob $slaves[_ssi] "please you">><</link>>
 	<<else>>
 		| Fucktoy
 	<</if>>
 	<<if _Slave.indentureRestrictions <= 0 && _Slave.breedingMark != 1>>
 		<<if _Slave.assignment != "work a glory hole">>
-			| [[Gloryhole|Hole Workaround][$i = _ssi]]
+			| <<link "Gloryhole" "Main">><<assignJob $slaves[_ssi] "work a glory hole">><</link>>
 		<<else>>
 			| Hole
 		<</if>>
@@ -527,37 +527,37 @@ will
 	<<if _Slave.fuckdoll == 0>> /* NON-FUCKDOLL ASSIGNMENTS */
 		<<if (_Slave.assignment != "take classes")>>
 			<<if (_Slave.intelligenceImplant != 1) && ((_Slave.devotion >= -20) || ((_Slave.trust < -20) && (_Slave.devotion >= -50)) || (_Slave.trust < -50)) && (_Slave.fetish != "mindbroken")>>
-				| [[Classes|Classes Workaround][$i = _ssi]]
+				| <<link "Classes" "Main">><<assignJob $slaves[_ssi] "take classes">><</link>>
 			<</if>>
 		<<else>>
 			| Classes
 		<</if>>
 		<<if (_Slave.assignment != "be a servant")>>
 			<<if ((_Slave.devotion >= -20) || ((_Slave.trust < -20) && (_Slave.devotion >= -50)) || (_Slave.trust < -50)) && canWalk(_Slave) && canSee(_Slave)>>
-				| [[House Servant|Servant Workaround][$i = _ssi]]
+				| <<link "House Servant" "Main">><<assignJob $slaves[_ssi] "be a servant">><</link>>
 			<</if>>
 		<<else>>
 			| House Servant
 		<</if>>
 		<<if (_Slave.assignment != "whore") && _Slave.breedingMark != 1>>
-			| [[Whore|Whore Workaround][$i = _ssi]]
+			| <<link "Whore" "Main">><<assignJob $slaves[_ssi] "whore">><</link>>
 		<<else>>
 			| Whore
 		<</if>>
 		<<if (_Slave.assignment != "serve the public") && _Slave.breedingMark != 1>>
-			| [[Public Servant|Public Servant Workaround][$i = _ssi]]
+			| <<link "Public Servant" "Main">><<assignJob $slaves[_ssi] "serve the public">><</link>>
 		<<else>>
 			| Public Servant
 		<</if>>
 		<<if (_Slave.lactation > 0) || (_Slave.balls > 0)>>
 			<<if (_Slave.assignment != "get milked")>>
-				| [[Milked|Milking Workaround][$i = _ssi]]
+			    | <<link "Milked" "Main">><<assignJob $slaves[_ssi] "get milked">><</link>>
 			<<else>>
 				| Milked
 			<</if>>
 		<</if>>
 		<<if (_Slave.assignment != "stay confined")>>
-			| [[Confinement|Confinement Workaround][$i = _ssi]]
+			| <<link "Confinement" "Main">><<assignJob $slaves[_ssi] "stay confined">><</link>>
 		<<else>>
 			| Confinement
 		<</if>>
@@ -565,7 +565,7 @@ will
 <</if>>
 
 <<set _numFacilities = $brothel+$club+$dairy+$servantsQuarters+$masterSuite+$spa+$clinic+$schoolroom+$cellblock+$arcade+$HGSuite>>
-	
+
 <<if _numFacilities > 0>>
 
 	<<if _Pass == "Main" || _Pass == "Head Girl Suite" || _Pass == "Spa" || _Pass == "Brothel" || _Pass == "Club" || _Pass == "Arcade" || _Pass == "Clinic" || _Pass == "Schoolroom" || _Pass == "Dairy" || _Pass == "Servants' Quarters" || _Pass == "Master Suite" || _Pass == "Cellblock" >>
@@ -574,11 +574,11 @@ will
 	<br>Transfer to:
 
 	<<if _Slave.assignment != "rest" && _Slave.assignment != "please you" && _Slave.assignment != "take classes" && _Slave.assignment != "be a servant" && _Slave.assignment != "whore" && _Slave.assignment != "serve the public" && _Slave.assignment != "get milked" && _Slave.assignment != "stay confined">>
-		[[Penthouse|Rest Workaround][$i = _ssi]] |
+		<<link "Penthouse" "Main">><<removeJob $slaves[_ssi] $slaves[_ssi].assignment>><</link>>
 	<<else>>
 		Penthouse |
 	<</if>>
-			
+
 	<<if $arcade != 0>>
 		<<if $arcade > $arcadeSlaves && (_Slave.indentureRestrictions <= 0) && _Slave.breedingMark != 1>>
 			[[Arcade|Assign][$assignTo = "Arcade", $i = _ssi]] /* $i = -1 tells Assign to use _Slave as-is */
diff --git a/src/uncategorized/whoreWorkaround.tw b/src/uncategorized/whoreWorkaround.tw
deleted file mode 100644
index d5ada4531e76dffaccd5b636a20a0915ac8cc151..0000000000000000000000000000000000000000
--- a/src/uncategorized/whoreWorkaround.tw
+++ /dev/null
@@ -1,6 +0,0 @@
-:: Whore Workaround [silently]
-
-<<assignJob $slaves[$i] "whore">>
-
-<<goto "Main">>
-