diff --git a/src/interaction/prostheticConfig.tw b/src/interaction/prostheticConfig.tw
index 8a68dbe21a99b923a830f662d4882e026c8c74ad..dc84c4ea06d63de195ca06c57a653ff27a52fd64 100644
--- a/src/interaction/prostheticConfig.tw
+++ b/src/interaction/prostheticConfig.tw
@@ -1,7 +1,5 @@
 :: Prosthetics Configuration [nobr]
 
-<<set $AS = $activeSlave.ID>>
-
 <<switch $prostheticsConfig>>
 
 <<case "main">>
diff --git a/src/npc/children/childInteract.tw b/src/npc/children/childInteract.tw
index 644d87be929ac274d419e75c4d656b3a4dca80bf..f0fdb48c4aa603549207ce3b861bee927f69c753 100644
--- a/src/npc/children/childInteract.tw
+++ b/src/npc/children/childInteract.tw
@@ -63,7 +63,7 @@ FIXME:
 | [[Auto salon|Salon][$degradation = 0, $tattooChoice = "", $piercingLevel = ""]]
 | [[Body mod studio|Body Modification][$degradation = 0, $tattooChoice = undefined]]
 | [[Remote surgery|Remote Surgery][$degradation = 0]]
-| [[Configure cybernetics|Prosthetics Configuration][$prostheticsConfig = "main"]]
+| [[Configure cybernetics|Prosthetics Configuration][$AS = $.ID>>$prostheticsConfig = "main"]]
 */
 
 /*TODO: These will most likely need to be reworked*/
diff --git a/src/npc/descriptions/limbs.js b/src/npc/descriptions/limbs.js
index fc556744b0eca312249feb0ffd5aabec7b22598d..1d18a1c071bab589ad77869a311de0591ab3552e 100644
--- a/src/npc/descriptions/limbs.js
+++ b/src/npc/descriptions/limbs.js
@@ -183,6 +183,7 @@ App.Desc.limbChange = function() {
 
 		function apply() {
 			let s;
+			V.AS = slave.ID;
 			if (!returnTo) {
 				s = `<<set $prostheticsConfig = "limbs", $oldLimbs = ${JSON.stringify(oldLimbs)}>>` +
 					'<<goto "Prosthetics Configuration">>';
diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw
index ea15a666959f5fd837b354e61a9a818dffade905..019d2157436ec4e0f592c60c7e6e2923d5e69b9f 100644
--- a/src/pregmod/incubator.tw
+++ b/src/pregmod/incubator.tw
@@ -116,7 +116,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $
 				<<if (_reservedIncubator + _reservedNursery < _WL) && ($reservedChildren < _freeTanks)>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					<<if $pregnancyMonitoringUpgrade == 1>>
-						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $i]] | ">>
+						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">>
 					<</if>>
 					<<print "[[Keep another child|Incubator][WombAddToGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">>
 					<<if _reservedIncubator > 0>>
@@ -131,7 +131,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $
 				<<elseif (_reservedIncubator == _WL) || ($reservedChildren == _freeTanks) || (_reservedIncubator + _reservedNursery == _WL)>>
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					<<if $pregnancyMonitoringUpgrade == 1>>
-						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $i]] | ">>
+						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">>
 					<</if>>
 					<<print "[[Keep one less child|Incubator][WombCleanGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">>
 					<<if _reservedIncubator > 1>>
@@ -143,14 +143,14 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $
 					//$His children are already reserved for $nurseryName//
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					<<if $pregnancyMonitoringUpgrade == 1>>
-						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $i]] | ">>
+						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">>
 					<</if>>
 					<<print "[[Keep " + $his + " " + ((_WL > 1) ? "children" : "child") + " here instead|Incubator][WombChangeReserveType($slaves[" + _u + "], 'nursery', 'incubator')]]">>
 				<<else>>
 					You have <<if _freeTanks == 1>>an<</if>> @@.lime;available aging tank<<if _freeTanks > 1>>s<</if>>.@@
 					<br>&nbsp;&nbsp;&nbsp;&nbsp;
 					<<if $pregnancyMonitoringUpgrade == 1>>
-						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $i]] | ">>
+						<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">>
 					<</if>>
 					<<print "[[Keep "+ ((_WL > 1) ? "a" : "the") +" child|Incubator][WombAddToGenericReserve($slaves[" + _u + "], 'incubator', 1)]]">>
 					<<if (_WL > 1) && ($reservedChildren + _WL - _reservedIncubator) <= _freeTanks>>
@@ -160,7 +160,7 @@ Reserve an eligible mother-to-be's child to be placed in a tank upon birth. Of $
 			<<elseif $reservedChildren == _freeTanks>>
 				<br>&nbsp;&nbsp;&nbsp;&nbsp;
 				<<if $pregnancyMonitoringUpgrade == 1>>
-					<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $i]] | ">>
+					<<print "[[Inspect pregnancy|Analyze Pregnancy][$i = " + _u + "; $AS = $slaves[$i].ID]] | ">>
 				<</if>>
 				You have @@.red;no room for $his offspring.@@
 			<</if>>
diff --git a/src/uncategorized/multiImplant.tw b/src/uncategorized/multiImplant.tw
index 09e661aec1177c6ea24c58aa7994f95c0258f07a..adb5c7250e14f6ad6cd5ac5f78904289b7684565 100644
--- a/src/uncategorized/multiImplant.tw
+++ b/src/uncategorized/multiImplant.tw
@@ -17,12 +17,12 @@ that are ready be sent down.
 <h1>Implant Organs</h1>
 
 <<set _F = App.Medicine.OrganFarm>>
-<<for _i = 0; _i < $slaves.length; _i++>>
-	<<set $activeSlave = $slaves[_i]>>
-	<<set _sortedOrgans = _F.getSortedOrgans($activeSlave)>>
+<<for _i = 0; _i < $slaves.length; _i++>>	
+	<<set $AS = $slaves[_i].ID>>
+	<<set _sortedOrgans = _F.getSortedOrgans(getSlave($AS))>>
 	<<if _sortedOrgans.length === 0>><<continue>><</if>>
 
-	<h2>$activeSlave.slaveName</h2>
+	<h2>getSlave($AS).slaveName</h2>
 
 	<<for _k = 0; _k < _sortedOrgans.length; _k++>>
 		<h3><<print _F.Organs[_sortedOrgans[_k]].name>></h3>
@@ -30,22 +30,22 @@ that are ready be sent down.
 		<<set _manual = false, _success = false, _break = false>>
 		<<for _l = 0; _l < _actions.length; _l++>>
 			<<if !_actions[_l].autoImplant>>
-				<<if _actions[_l].canImplant($activeSlave)>>
+				<<if _actions[_l].canImplant(getSlave($AS))>>
 					<<set _manual = true>>
 				<</if>>
 				<<continue>>
 			<</if>>
-			<<if !_actions[_l].canImplant($activeSlave)>>
-				<<set _error = _actions[_l].implantError($activeSlave)>>
+			<<if !_actions[_l].canImplant(getSlave($AS))>>
+				<<set _error = _actions[_l].implantError(getSlave($AS))>>
 				<<if _error !== "">>
 					@@.red;ERROR: <<print _error>>@@<br>
 				<</if>>
-			<<elseif $activeSlave.health.health - _actions[_l].healthImpact < -75>>
+			<<elseif getSlave($AS).health.health - _actions[_l].healthImpact < -75>>
 				Estimated health impact too high, skipping further surgeries.
 				<<set _break = true>>
 				<<break>>
 			<<else>>
-				<<run App.Medicine.OrganFarm.implant($activeSlave, _sortedOrgans[_k], _l)>>
+				<<run App.Medicine.OrganFarm.implant(getSlave($AS), _sortedOrgans[_k], _l)>>
 				<<include "Surgery Degradation">><br><br>
 				<<set _success = true>>
 			<</if>>
@@ -55,8 +55,6 @@ that are ready be sent down.
 			//Cannot implant <<print _F.Organs[_sortedOrgans[_k]].name.toLowerCase()>> automatically, try implanting manually in the remote surgery.//
 		<</if>>
 	<</for>>
-
-	<<set $slaves[_i] = $activeSlave>>
 <</for>>
 
 
@@ -64,10 +62,10 @@ that are ready be sent down.
 
 /* prosthetics */
 <<for _i = 0; _i < $slaves.length; _i++>>
-	<<set $activeSlave = $slaves[_i]>>
+	<<set $AS = $slaves[_i].ID>>
 
 	/* count for estimating health impact */
-	<<set _prostheticCount = $adjustProsthetics.filter(p => p.slaveID == $activeSlave.ID && p.workLeft <= 0).length>>
+	<<set _prostheticCount = $adjustProsthetics.filter(p => p.slaveID == getSlave($AS).ID && p.workLeft <= 0).length>>
 
 	/* since we already have count, skip slaves that don't need work */
 	<<if _prostheticCount < 1>>
@@ -77,102 +75,102 @@ that are ready be sent down.
 	Ensures that a slave can never die during the execution of this passage.
 	Calculation based on worst case, so when changing worst case change it here too.
 	*/
-	<<if $activeSlave.health.health - (_prostheticCount * 20) < -75>>
+	<<if getSlave($AS).health.health - (_prostheticCount * 20) < -75>>
 		<br><hr>
-		@@.red;Estimated health impact too great; $activeSlave.slaveName skipped.@@
+		@@.red;Estimated health impact too great; getSlave($AS).slaveName skipped.@@
 		<<continue>>
 	<</if>>
 
 	<<for _k = 0; _k < $adjustProsthetics.length; _k++>>
 		<<set _p = $adjustProsthetics[_k]>>
-		<<if _p.slaveID == $activeSlave.ID && _p.workLeft <= 0>>
+		<<if _p.slaveID == getSlave($AS).ID && _p.workLeft <= 0>>
 			<<set $adjustProsthetics.splice(_k, 1), _k-->>
 			<<set $adjustProstheticsCompleted-->>
-			<<set addProsthetic($activeSlave, _p.id)>>
+			<<set addProsthetic(getSlave($AS), _p.id)>>
 			<br><hr>
 			<<switch _p.id>>
 			<<case "ocular">>
-				<<if getBestVision($activeSlave) === 0>>
-					<<run eyeSurgery($activeSlave, "both", "cybernetic"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
-					<<set surgeryDamage($activeSlave, 20), $surgeryType = "ocular implant">>
+				<<if getBestVision(getSlave($AS)) === 0>>
+					<<run eyeSurgery(getSlave($AS), "both", "cybernetic"), cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS))>>
+					<<set surgeryDamage(getSlave($AS), 20), $surgeryType = "ocular implant">>
 					<<include "Surgery Degradation">>
 				<<else>>
 					//Since $he has working eyes the <<= setup.prosthetics.ocular.name>> will be put into storage.//
 				<</if>>
 			<<case "cochlear">>
-				<<if $activeSlave.hears != 0>>
-					<<set $activeSlave.earImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 20), $surgeryType = "cochlear implant">>
+				<<if getSlave($AS).hears != 0>>
+					<<set getSlave($AS).earImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 20), $surgeryType = "cochlear implant">>
 					<<include "Surgery Degradation">>
 				<<else>>
 					//Since $he has working ears the <<= setup.prosthetics.cochlear.name>> will be put into storage.//
 				<</if>>
 			<<case "electrolarynx">>
-				<<if $activeSlave.voice <= 0>>
-					<<set $activeSlave.electrolarynx = 1, $activeSlave.voice = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 20), $surgeryType = "electrolarynx">>
+				<<if getSlave($AS).voice <= 0>>
+					<<set getSlave($AS).electrolarynx = 1, getSlave($AS).voice = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 20), $surgeryType = "electrolarynx">>
 					<<include "Surgery Degradation">>
 				<<else>>
 					//Since $he has a voice the <<= setup.prosthetics.electrolarynx.name>> will be put into storage.//
 				<</if>>
 			<<case "interfaceP1">>
-				<<if hasAnyNaturalLimbs($activeSlave)>>
+				<<if hasAnyNaturalLimbs(getSlave($AS))>>
 					//Since $he has at least one healthy limb the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.//
-				<<elseif $activeSlave.PLimb == 2>>
+				<<elseif getSlave($AS).PLimb == 2>>
 					//Since $he already has <<= addA(setup.prosthetics.interfaceP2.name)>> installed the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.//
 				<<else>>
-					<<set $activeSlave.PLimb = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 20), $surgeryType = "PLimb interface1">>
+					<<set getSlave($AS).PLimb = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 20), $surgeryType = "PLimb interface1">>
 					<<include "Surgery Degradation">>
 				<</if>>
 			<<case "interfaceP2">>
-				<<if hasAllNaturalLimbs($activeSlave)>>
+				<<if hasAllNaturalLimbs(getSlave($AS))>>
 					//Since $he has no amputated limbs the <<= setup.prosthetics.interfaceP2.name>> will be put into storage.//
-				<<elseif $activeSlave.PLimb == 1>>
-					<<set $activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 5), $surgeryType = "PLimb interface3">>
+				<<elseif getSlave($AS).PLimb == 1>>
+					<<set getSlave($AS).PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 5), $surgeryType = "PLimb interface3">>
 					<<include "Surgery Degradation">>
 				<<else>>
-					<<set $activeSlave.PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 20), $surgeryType = "PLimb interface2">>
+					<<set getSlave($AS).PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 20), $surgeryType = "PLimb interface2">>
 					<<include "Surgery Degradation">>
 				<</if>>
 			<<case "basicL" "sexL" "beautyL" "combatL" "cyberneticL">>
-				<<if $activeSlave.fuckdoll != 0>>
+				<<if getSlave($AS).fuckdoll != 0>>
 					//Since a Fuckdoll can't use prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
-				<<elseif hasAllNaturalLimbs($activeSlave)>>
+				<<elseif hasAllNaturalLimbs(getSlave($AS))>>
 					//Since $he needs an amputated limb to attach prosthetics the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
-				<<elseif $activeSlave.PLimb == 0>>
+				<<elseif getSlave($AS).PLimb == 0>>
 					//Since $he must have a prosthetic interface installed to attach prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
 				<<else>>
 					<<if _p.id == "basicL">>
-						<<set _state = App.Desc.limbChange().currentLimbs($activeSlave), _change = upgradeLimbs($activeSlave, 2)>>
+						<<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 2)>>
 						<<if _change>>
-							<<= App.Desc.limbChange().reaction($activeSlave, _state)>>
+							<<= App.Desc.limbChange().reaction(getSlave($AS), _state)>>
 						<<else>>
 							//Since $he already has more advanced prosthetic limbs attached the <<= setup.prosthetics.basicL.name>> will be put into storage.//
 						<</if>>
 					<<elseif _p.id == "sexL">>
-						<<set _state = App.Desc.limbChange().currentLimbs($activeSlave), _change = upgradeLimbs($activeSlave, 3)>>
+						<<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 3)>>
 						<<if _change>>
-							<<= App.Desc.limbChange().reaction($activeSlave, _state)>>
+							<<= App.Desc.limbChange().reaction(getSlave($AS), _state)>>
 						<<else>>
 							//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.sexL.name>> will be put into storage.//
 						<</if>>
 					<<elseif _p.id == "beautyL">>
-						<<set _state = App.Desc.limbChange().currentLimbs($activeSlave), _change = upgradeLimbs($activeSlave, 4)>>
+						<<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 4)>>
 						<<if _change>>
-							<<= App.Desc.limbChange().reaction($activeSlave, _state)>>
+							<<= App.Desc.limbChange().reaction(getSlave($AS), _state)>>
 						<<else>>
 							//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.beautyL.name>> will be put into storage.//
 						<</if>>
 					<<elseif _p.id == "combatL">>
-						<<set _state = App.Desc.limbChange().currentLimbs($activeSlave), _change = upgradeLimbs($activeSlave, 5)>>
+						<<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 5)>>
 						<<if _change>>
-							<<= App.Desc.limbChange().reaction($activeSlave, _state)>>
+							<<= App.Desc.limbChange().reaction(getSlave($AS), _state)>>
 						<<else>>
 							//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.combatL.name>> will be put into storage.//
 						<</if>>
 					<<else>>
-						<<if $activeSlave.PLimb == 2>>
-							<<set _state = App.Desc.limbChange().currentLimbs($activeSlave), _change = upgradeLimbs($activeSlave, 2)>>
+						<<if getSlave($AS).PLimb == 2>>
+							<<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 2)>>
 							<<if _change>>
-								<<= App.Desc.limbChange().reaction($activeSlave, _state)>>
+								<<= App.Desc.limbChange().reaction(getSlave($AS), _state)>>
 							<</if>>
 						<<else>>
 							//Since $he must have <<= addA(setup.prosthetics.interfaceP2.name)>> installed to attach cybernetic limbs the <<= setup.prosthetics.cyberneticL.name>> will be put into storage.//
@@ -180,21 +178,21 @@ that are ready be sent down.
 					<</if>>
 				<</if>>
 			<<case "interfaceTail">>
-				<<set $activeSlave.PTail = 1, $activeSlave.tail = "none", $activeSlave.tailColor = "none", cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave, 10), $surgeryType = "tailInterface">>
+				<<set getSlave($AS).PTail = 1, getSlave($AS).tail = "none", getSlave($AS).tailColor = "none", cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 10), $surgeryType = "tailInterface">>
 				<<include "Surgery Degradation">>
 			<<case "modT" "sexT" "combatT">>
-				<<if $activeSlave.PTail == 0>>
+				<<if getSlave($AS).PTail == 0>>
 					//Since $he must have <<= addA(setup.prosthetics.interfaceTail.name)>> installed to attach tails the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
-				<<elseif $activeSlave.tail != "none">>
+				<<elseif getSlave($AS).tail != "none">>
 					//Since $he currently has a tail attached the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
 				<<elseif _p.id == "modT">>
 					//Since installing <<= addA(setup.prosthetics.modT.name)>> is complicated it can't be automated.//
 					/*Reason: there are different designs player can choose from.*/
 				<<elseif _p.id == "combatT">>
-					<<set $prostheticsConfig = "attachTail", $activeSlave.tail = "combat", $activeSlave.tailColor = "jet black">>
+					<<set $prostheticsConfig = "attachTail", getSlave($AS).tail = "combat", getSlave($AS).tailColor = "jet black">>
 					<<include "Prosthetics Configuration">>
 				<<elseif _p.id == "sexT">>
-					<<set $prostheticsConfig = "attachTail", $activeSlave.tail = "sex", $activeSlave.tailColor = "pink">>
+					<<set $prostheticsConfig = "attachTail", getSlave($AS).tail = "sex", getSlave($AS).tailColor = "pink">>
 					<<include "Prosthetics Configuration">>
 				<</if>>
 			<<default>>
@@ -203,8 +201,6 @@ that are ready be sent down.
 			<br>
 		<</if>>
 	<</for>>
-	/* updates the interrogated slave */
-	<<set $slaves[_i] = $activeSlave>>
 <</for>> /* end of the $slaves loop */
 
 /* This needs to be down here to over-ride any Surgery Degradation calls */