diff --git a/src/npc/agent/agentWorkaround.tw b/src/npc/agent/agentWorkaround.tw
index bb38dcbd44fff5b397132b39d489de9b3d5bca7d..86bf766107decfd37f42e521d275d3f204432131 100644
--- a/src/npc/agent/agentWorkaround.tw
+++ b/src/npc/agent/agentWorkaround.tw
@@ -31,7 +31,7 @@
 
 <<set $activeArcology.leaderID = _ID, $activeArcology.government = "your agent">>
 
-<<SlaveTitle $slaves[$i]>>
+<<set $desc = SlaveTitle($slaves[$i])>>
 
 You order $slaves[$i].slaveName to come into your office for orders. The devoted $desc has no prior warning that this is anything unusual, and from the <<if $slaves[$i].energy > 95>>horny glint<<else>>glow of sexual availability<</if>> in her $slaves[$i].eyeColor eyes as she <<if canWalk($slaves[$i])>>enters<<else>>is helped in<</if>>, she <<if $slaves[$i].energy > 95>>seems to be hoping<<else>>wouldn't mind hearing<</if>> that you've called her in for a quick fuck. In fact, the matter at hand is about as far as it could possibly be from that, on the spectrum of interactions between <<if $PC.title != 0>>master<<else>>mistress<</if>> and slave.
 
diff --git a/src/npc/descriptions/fVagina.tw b/src/npc/descriptions/fVagina.tw
index aa208dac77e4db3ba5e8038fcb89cde8a055135d..d66817424ffd1e69aec03efee6874fb0a2f741ec 100644
--- a/src/npc/descriptions/fVagina.tw
+++ b/src/npc/descriptions/fVagina.tw
@@ -1,6 +1,6 @@
 :: FVagina [nobr]
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 <<run clearSummaryCache($activeSlave)>>
 <<setLocalPronouns $activeSlave>>
 
diff --git a/src/pregmod/newChildIntro.tw b/src/pregmod/newChildIntro.tw
index c2e4d79e1be8b30dea4f5c686d0a2871b51c0345..eb20c8089a118c4bc364b25fb19b8ae284f891c9 100644
--- a/src/pregmod/newChildIntro.tw
+++ b/src/pregmod/newChildIntro.tw
@@ -2,7 +2,7 @@
 
 <<set $showEncyclopedia = 0>>
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 
 <<if $activeSlave.mother > 0>>
 	<<set _tempMom = getSlave($activeSlave.mother)>>
diff --git a/src/pregmod/widgets/slaveSummaryWidgets.tw b/src/pregmod/widgets/slaveSummaryWidgets.tw
deleted file mode 100644
index 1ef14f1e4b45320d886d03612ab0381a05fdd240..0000000000000000000000000000000000000000
--- a/src/pregmod/widgets/slaveSummaryWidgets.tw
+++ /dev/null
@@ -1,8 +0,0 @@
-:: Slave Summary Widgets [nobr widget]
-
-/* Try to use cached summary */
-<<run setup.summaryCache = {}>>
-
-<<widget "SlaveSummary">><<=SlaveSummary($args[0])>><</widget>>
-
-<<widget "SlaveSummaryUncached">><<=SlaveSummaryUncached($args[0])>><</widget>>
diff --git a/src/uncategorized/PESS.tw b/src/uncategorized/PESS.tw
index 3dc043e0d20fcb545f57be19bc58a458d008ba95..403165dcfd57d98d867d844dd7409a2476f327ce 100644
--- a/src/uncategorized/PESS.tw
+++ b/src/uncategorized/PESS.tw
@@ -68,7 +68,7 @@
 <</if>>
 /* 000-250-006 */
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 <<Enunciate $activeSlave>>
 
 <<switch $PESSevent>>
diff --git a/src/uncategorized/PETS.tw b/src/uncategorized/PETS.tw
index 40476072e96da0773889034a10b902f96a40711c..72ef4418e10ea775f67eb7a76fd263da5a1239df 100644
--- a/src/uncategorized/PETS.tw
+++ b/src/uncategorized/PETS.tw
@@ -54,7 +54,7 @@
 		<<set $activeSlave = $Attendant, $subSlave = $slaves.find(function(s) { return s.assignment == "rest in the spa"; })>>
 <</switch>>
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 
 /* 000-250-006 */
 <<if $seeImages == 1>>
diff --git a/src/uncategorized/RECI.tw b/src/uncategorized/RECI.tw
index 6663bdbe7d09e35a9273cc3561b4cc423e8e010b..31db4737d027487b5d74d8fcc62a512967d5cf35 100644
--- a/src/uncategorized/RECI.tw
+++ b/src/uncategorized/RECI.tw
@@ -52,7 +52,7 @@
 /* 000-250-006 */
 
 <<Enunciate $activeSlave>>
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 
 <<switch $RECIevent>>
 
diff --git a/src/uncategorized/REFI.tw b/src/uncategorized/REFI.tw
index ae4314161f144f792afd81864188954633ba3bb4..baa5dba67ca12c428e8591c6b2305db53c1f20ef 100644
--- a/src/uncategorized/REFI.tw
+++ b/src/uncategorized/REFI.tw
@@ -60,7 +60,7 @@
 
 <<set $nextButton = "Continue", $nextLink = "AS Dump", $returnTo = "RIE Eligibility Check">>
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 <<Enunciate $activeSlave>>
 <<set _belly = bellyAdjective($activeSlave)>>
 
diff --git a/src/uncategorized/REFS.tw b/src/uncategorized/REFS.tw
index 786d091546defcdfc9450434feba740af0298c33..1ce3a544f3f73e4e46d9fbc8a786d560601bf753 100644
--- a/src/uncategorized/REFS.tw
+++ b/src/uncategorized/REFS.tw
@@ -40,7 +40,7 @@
 
 <<set $nextButton = "Continue", $nextLink = "RIE Eligibility Check", $returnTo = "RIE Eligibility Check">>
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 <<Enunciate $activeSlave>>
 
 <<switch $REFSevent>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 374e9fac2dc4ee1aa362ab4633290c4a2eab0700..312493546907416df6d06b0290a504277862717f 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -53,7 +53,7 @@
 /* 000-250-006 */
 </span>
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 <<Enunciate $activeSlave>>
 <<set _belly = bellyAdjective($activeSlave)>>
 
diff --git a/src/uncategorized/RESSTR.tw b/src/uncategorized/RESSTR.tw
index 7404e1c23abf3499203eb311434a3a6fc147c153..320de515890d1fda3ceb98e4816fa80d5b9b7044 100644
--- a/src/uncategorized/RESSTR.tw
+++ b/src/uncategorized/RESSTR.tw
@@ -51,7 +51,7 @@
 <</if>>
 /* 000-250-006 */
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 <<Enunciate $activeSlave>>
 
 <<switch $RESSTRevent>>
diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw
index ae5f4e6801e7ae7a2bc68d08f8f0fa6f510dc7cf..c1c0290d31e938e43d46e0db95d47c58a3e4023c 100644
--- a/src/uncategorized/RETS.tw
+++ b/src/uncategorized/RETS.tw
@@ -161,7 +161,7 @@
 	<br>ERROR: bad RETS event $RETSevent
 <</switch>>
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 
 /* 000-250-006 */
 <<if $seeImages == 1>>
@@ -720,9 +720,9 @@ Mere moments after you absorb this arresting scene, $subSlave.slaveName thrusts
 <<set $activeSlave.penetrativeCount++, $penetrativeTotal++>>
 <<set _vaginal = 0>>
 <<if $subSlave.vagina != 0 && canDoVaginal($subSlave)>><<set _vaginal = 1>><</if>>
-You round a corner and almost trip over <<EventNameLink $activeSlave>>. She's on top of another slave, humping away; her <<if $activeSlave.butt > 8>>monstrous, naked ass jiggles lewdly<<elseif $activeSlave.anus > 2>>loose asspussy winks lewdly<<elseif $activeSlave.muscles > 30>>heavily muscled butt flexes powerfully<<elseif $activeSlave.butt > 3>>big butt pumps energetically<<else>>nice little butt flexes cutely<</if>> as she thrusts. You can't see much of the slave <<if _vaginal>>lying on her back<<else>>face-down<</if>> underneath $activeSlave.slaveName, but you recognize her as $subSlave.slaveName by her sobbing. She's struggling a little, but $activeSlave.slaveName has her pinned to the floor by her wrists, and $activeSlave.slaveName is quickly raping the resistance out of the <<SlaveTitle $subSlave>>$desc.
+You round a corner and almost trip over <<EventNameLink $activeSlave>>. She's on top of another slave, humping away; her <<if $activeSlave.butt > 8>>monstrous, naked ass jiggles lewdly<<elseif $activeSlave.anus > 2>>loose asspussy winks lewdly<<elseif $activeSlave.muscles > 30>>heavily muscled butt flexes powerfully<<elseif $activeSlave.butt > 3>>big butt pumps energetically<<else>>nice little butt flexes cutely<</if>> as she thrusts. You can't see much of the slave <<if _vaginal>>lying on her back<<else>>face-down<</if>> underneath $activeSlave.slaveName, but you recognize her as $subSlave.slaveName by her sobbing. She's struggling a little, but $activeSlave.slaveName has her pinned to the floor by her wrists, and $activeSlave.slaveName is quickly raping the resistance out of the <<print SlaveTitle($subSlave)>>.
 <br><br>
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 $activeSlave.slaveName senses your presence above and behind her, and twists her $activeSlave.hColor head around to <<if canSee($activeSlave)>>see who it is. She sees that it's you<<else>>discern who it is. She realizes that it's you<</if>>, and greets you cheerfully. "Hi, <<Master>>," she trills.
 <<if $activeSlave.fetishKnown && $activeSlave.fetish == "sadist">>
 	"Thi<<s>> i<<s>> <<s>>o awe<<s>>ome," the sadistic $desc gushes. "The crying, the <<s>>truggling. Thank you for letting u<<s>> do thi<<s>>."
@@ -856,9 +856,9 @@ Her objections sound a bit feigned, and she's obviously in no hurry to put an en
 <<elseif $activeSlave.ID == $HeadGirl.ID>>
 	listening to the Head Girl beg to be allowed to put her cock inside her. Usually, it's $activeSlave.slaveName giving the orders.
 <<elseif $activeSlave.fetishKnown && ($activeSlave.fetish == "dom" || $activeSlave.fetish == "sadist")>>
-	having a dominant <<SlaveTitle $activeSlave>>$desc like $activeSlave.slaveName beg her for sex.
+	having a dominant $desc like $activeSlave.slaveName beg her for sex.
 <<elseif $activeSlave.face > 40>>
-	having a <<if $activeSlave.face > 95>>perfect<<else>>really very pretty<</if>> <<SlaveTitle $activeSlave>>$desc beg her for sex.
+	having a <<if $activeSlave.face > 95>>perfect<<else>>really very pretty<</if>> $desc beg her for sex.
 <<else>>
 	having somebody beg her for sex. She's a sex slave, and she doesn't always have the luxury of feeling so wanted.
 <</if>>
@@ -879,7 +879,7 @@ The slaves are about to go to bed; they're naked, and the horny $activeSlave.sla
 <<elseif $activeSlave.fetishKnown && $activeSlave.fetish == "pregnancy" && $subSlave.bellyPreg >= 5000>>
 	"You're <<s>>o hot with that belly," she wheedles. "It'<<s>> ju<<s>>t <<s>>o big, and round, and, um, out there." She swallows, getting distracted.
 <<elseif $subSlave.face > 95>>
-	"You're the prettie<<s>>t <<SlaveTitle $subSlave>>$desc in the whole arcology," she wheedles. "I can't look at your perfect $subSlave.faceShape fa<<c>>e and not want to make love to you<<if !_vaginal>>r butt<</if>>!"
+	"You're the prettie<<s>>t <<print SlaveTitle($subSlave)>> in the whole arcology," she wheedles. "I can't look at your perfect $subSlave.faceShape fa<<c>>e and not want to make love to you<<if !_vaginal>>r butt<</if>>!"
 <<elseif !_vaginal && $subSlave.butt > 3>>
 	"You've got <<s>>uch a ni<<c>>e a<<ss>>," she wheedles. "It'<<s>> ju<<s>>t <<s>>o big, and round, and, um, out there." She swallows, getting distracted.
 <<elseif $subSlave.boobShape == "perky">>
@@ -1869,9 +1869,9 @@ she adds impishly. Hearing this, $subSlave.slaveName lets the breast pop free of
 	<<if !_vaginal || $subSlave.vaginaLube > 1>>She lets a gob of her saliva fall onto her cockhead, <<if !_vaginal>>out of politeness to $subSlave.slaveName's asshole<<elseif $subSlave.vaginaLube > 0>>out of politeness, since she knows $subSlave.slaveName might not be really wet for her<<else>>since she knows that $subSlave.slaveName has a chronically dry cunt<</if>>.<</if>>
 	Then she
 	<<if _vaginal>>
-		gets down between $subSlave.slaveName's legs, guiding herself inside the <<SlaveTitle $subSlave>>$desc's womanhood. $subSlave.slaveName kisses $activeSlave.slaveName on the lips, wordlessly encouraging her, and the randy <<SlaveTitle $activeSlave>>$desc starts fucking her harder, moaning with satisfaction.
+		gets down between $subSlave.slaveName's legs, guiding herself inside the <<print SlaveTitle($subSlave)>>'s womanhood. $subSlave.slaveName kisses $activeSlave.slaveName on the lips, wordlessly encouraging her, and the randy <<print SlaveTitle($activeSlave)>> starts fucking her harder, moaning with satisfaction.
 	<<else>>
-		turns to $subSlave.slaveName, shoving her dick up the <<SlaveTitle $subSlave>>$desc's butt. $subSlave.slaveName gasps, wriggles herself into a more comfortable position, and then flexes her ass a little, letting the <<SlaveTitle $activeSlave>>$desc whose cock is inside her anus know that she can go for it. $activeSlave.slaveName does, thrusting happily.
+		turns to $subSlave.slaveName, shoving her dick up the <<print SlaveTitle($subSlave)>>'s butt. $subSlave.slaveName gasps, wriggles herself into a more comfortable position, and then flexes her ass a little, letting the <<print SlaveTitle($activeSlave)>> whose cock is inside her anus know that she can go for it. $activeSlave.slaveName does, thrusting happily.
 	<</if>>
 	<<set $activeSlave.devotion += 5, $activeSlave.penetrativeCount++, $penetrativeTotal++>>
 	<<if _vaginal>>
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index 2a18d53c0b377f95d7a7f476ab21ed0d8e3cca55..c044d6bf715b23556eba60b6464227e525d3f6a9 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -68,7 +68,7 @@ is
 	<</if>>
 <</if>>
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 ''@@.coral;$desc.@@''
 
 <<if $activeSlave.indenture > -1>>
diff --git a/src/uncategorized/matchmaking.tw b/src/uncategorized/matchmaking.tw
index f07ba4adfd0e3f80980f852ab757be635921b752..5e90eda66f0d5a2db177828add840ec429081ee6 100644
--- a/src/uncategorized/matchmaking.tw
+++ b/src/uncategorized/matchmaking.tw
@@ -4,7 +4,7 @@
 
 <<if $subSlave == 0>>
 
-<<SlaveTitle $eventSlave>>
+<<set $desc = SlaveTitle($eventSlave)>>
 <<set _belly = bellyAdjective($eventSlave)>>
 
 /* 000-250-006 */
diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index f89121e68312e898085030bacd7bc144b1bc563f..ee66968b5d27928cc7b74871bf014b2bb5b29039 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -7,7 +7,7 @@
 	<<set $returnTo = $nextLink, $nextLink = "AS Dump">>
 <</if>>
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 <<Enunciate $activeSlave>>
 
 <<if $specialSlave == 1>>
diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw
index ffa9e7636b5b0253a25d6491c276960b93034716..bcbff9fa85b9a0a5607d08a0485576f98f66e356 100644
--- a/src/uncategorized/reRelativeRecruiter.tw
+++ b/src/uncategorized/reRelativeRecruiter.tw
@@ -737,7 +737,7 @@ You look up the _relationType. She costs <<print cashFormat($slaveCost)>>, a bar
 			<<set $missingParentID-->>
 		<</if>>
 	<</switch>>
-	<<SlaveTitle $eventSlave>>
+	<<set $desc = SlaveTitle($eventSlave)>>
 	<<replace "#result">>
 	You complete the legalities and biometric scanning quickly and without fuss. $activeSlave.slaveName arrives shortly. The two slaves remember each other only dimly - they parted a long time ago - but they embrace. The devoted $desc explains the situation and encourages her _relationType to be a good slave to you. $activeSlave.slaveName looks a little fearful but clearly realizes that she's lucky to be here.
 	<<include "New Slave Intro">>
@@ -1026,7 +1026,7 @@ You look up the $activeSlave.relation. She costs <<print cashFormat($slaveCost)>
 	<<set $slaves[$i].relation = relationTargetWord($activeSlave)>>
 	<<set $slaves[$i].relationTarget = $activeSlave.ID>>
 	<<set $cash -= $slaveCost>>
-	<<SlaveTitle $eventSlave>>
+	<<set $desc = SlaveTitle($eventSlave)>>
 	You complete the legalities and biometric scanning quickly and without fuss. $activeSlave.slaveName arrives shortly. The two slaves remember each other only dimly - they parted a long time ago - but they embrace. The devoted $desc explains the situation and encourages her $activeSlave.relation to be a good slave to you. $activeSlave.slaveName looks a little fearful but clearly realizes that she's lucky to be here.
 	<<include "New Slave Intro">>
 	<</replace>>
diff --git a/src/uncategorized/reStandardPunishment.tw b/src/uncategorized/reStandardPunishment.tw
index a6f26c65eb8f4cb39f887c5313472fdf698a6cf5..8235cc042645597f05b25447939c212f65c7ff9e 100644
--- a/src/uncategorized/reStandardPunishment.tw
+++ b/src/uncategorized/reStandardPunishment.tw
@@ -14,7 +14,7 @@
 <</if>>
 /* 000-250-006 */
 
-<<SlaveTitle $activeSlave>>
+<<set $desc = SlaveTitle($activeSlave)>>
 
 <<set _sins = []>>
 
diff --git a/src/uncategorized/saChoosesOwnJob.tw b/src/uncategorized/saChoosesOwnJob.tw
index f0bc897270ee9c6b8b44285898ecf6434fcbc35f..f394aead752960e85e6cbce3113a452bb9099cdd 100644
--- a/src/uncategorized/saChoosesOwnJob.tw
+++ b/src/uncategorized/saChoosesOwnJob.tw
@@ -7,7 +7,7 @@
 	/* display text but don't change assignment (already done) */
 
 	<<run SlavePronouns($slaves[$i])>>
-	<<SlaveTitle $slaves[$i]>>
+	<<set $desc = SlaveTitle($slaves[$i])>>
 	<<set _oself = $object + "self">>
 	<<print $slaves[$i].choosesOwnAssignmentText>>
 	<<set $slaves[$i].choosesOwnAssignmentText = "", $slaves[$i].choosesOwnAssignment = 1>> /* continue cycle for next week */
diff --git a/src/uncategorized/saServeThePublic.tw b/src/uncategorized/saServeThePublic.tw
index 4e042c6eddc4cf5211ee9adfe0583b7fca4cd108..763aca9c96d50f1e14d947f19eca7c44e5e56653 100644
--- a/src/uncategorized/saServeThePublic.tw
+++ b/src/uncategorized/saServeThePublic.tw
@@ -270,7 +270,7 @@ Her appearance attracted $beauty members of the public (<<print Math.trunc($beau
 	<<set $slaves[$i].health -= 7>>
 	<<set $injury = 1>>
 <<elseif ($slaves[$i].vagina < 0)>>
-	<<SlaveTitle $slaves[$i]>>
+	<<set $desc = SlaveTitle($slaves[$i])>>
 	<<if (($slaves[$i].analSkill + $slaves[$i].oralSkill) >= 200)>>
 	She's such an expert public servant that she copes with the stress of being a $desc slut.
 	<<elseif random(1,100) > 40+(10*($slaves[$i].analSkill + $slaves[$i].oralSkill))>>
diff --git a/src/uncategorized/saWhore.tw b/src/uncategorized/saWhore.tw
index b3904c472bc63e36f504d4366bbf45d21472b261..14882f6f5602aabab40b2a51146f782f70c2874e 100644
--- a/src/uncategorized/saWhore.tw
+++ b/src/uncategorized/saWhore.tw
@@ -254,7 +254,7 @@ Her appearance attracted $beauty customers (<<print Math.trunc($beauty/7)>> a da
 	<<set $slaves[$i].health -= 7>>
 	<<set $injury = 1>>
 <<elseif ($slaves[$i].vagina < 0)>>
-	<<SlaveTitle $slaves[$i]>>
+	<<set $desc = SlaveTitle($slaves[$i])>>
 	<<if (($slaves[$i].analSkill + $slaves[$i].oralSkill) >= 200)>>
 	She's such an expert whore that she copes with the stress of being a $desc prostitute.
 	<<elseif random(1,100) > 40+(10*($slaves[$i].analSkill + $slaves[$i].oralSkill))>>
diff --git a/src/uncategorized/slaveSummary.tw b/src/uncategorized/slaveSummary.tw
index 817a32724c23f8d31d9f645c02ca456f6df0f313..632439cbe7c33f0704980b5c1d50613dc32a2e15 100644
--- a/src/uncategorized/slaveSummary.tw
+++ b/src/uncategorized/slaveSummary.tw
@@ -732,7 +732,7 @@ will
 <br/>
 <<if $seeImages != 1 || $seeSummaryImages != 1 || $imageChoice == 1>>&nbsp;&nbsp;&nbsp;&nbsp;<</if>>
 
-<<SlaveSummary _Slave>>
+<<= SlaveSummary(_Slave)>>
 
 <<set $slaves[_ssi] = _Slave>>
 
diff --git a/src/utility/assayWidgets.tw b/src/utility/assayWidgets.tw
index 52ef51089bf76c1a67faba2c1f05700964dd8637..8d252bb0955da896470672dd5c8c1bf152d4d4a4 100644
--- a/src/utility/assayWidgets.tw
+++ b/src/utility/assayWidgets.tw
@@ -1220,10 +1220,6 @@
 
 <</widget>>
 
-<<widget "SlaveTitle">>
-	 <<set $desc = SlaveTitle($args[0])>>
-<</widget>>
-
 <<widget "slaveCost">>
 
 <<Beauty $args[0]>>