diff --git a/src/endWeek/reports/personalAttention.js b/src/endWeek/reports/personalAttention.js
new file mode 100644
index 0000000000000000000000000000000000000000..ab8400eded4f29336a50670f434b9fceb28701cb
--- /dev/null
+++ b/src/endWeek/reports/personalAttention.js
@@ -0,0 +1,85 @@
+/**
+ *
+ * @param {App.Entity.SlaveState} slave
+ * @returns {Node}
+ */
+globalThis.induceFlawAbuseEffects = function(slave) {
+	const el = new DocumentFragment();
+	const {He, His, him, his} = getPronouns(slave);
+	slave.devotion -= 5;
+	slave.trust -= 5;
+	el.append(`${He}'s `);
+	if (slave.devotion > 20) {
+		App.UI.DOM.appendNewElement("span", el, `desperately confused`, "mediumorchid");
+		el.append(` by this treatment, since the effect would be ruined if you explained it to ${him}, and ${his} `);
+		App.UI.DOM.appendNewElement("span", el, `trust in you is reduced. `, "gold");
+	} else if (slave.devotion >= -20) {
+		App.UI.DOM.appendNewElement("span", el, `confused, depressed`, "mediumorchid");
+		el.append(` and `);
+		App.UI.DOM.appendNewElement("span", el, `frightened`, "gold");
+		el.append(` by this treatment, since the effect would be ruined if you explained it to ${him}. `);
+	} else {
+		App.UI.DOM.appendNewElement("span", el, `angry`, "mediumorchid");
+		el.append(` and `);
+		App.UI.DOM.appendNewElement("span", el, `afraid`, "gold");
+		el.append(` that you would treat ${him} like this. `);
+	}
+	if (slave.energy > 10) {
+		slave.energy -= 2;
+		el.append(`${His} `);
+		App.UI.DOM.appendNewElement("span", el, `appetite for sex is also reduced. `, "red");
+	}
+	return el;
+};
+/**
+ *
+ * @param {App.Entity.SlaveState} slave
+ * @returns {Node}
+ */
+globalThis.induceFlawLenityEffects = function(slave) {
+	const el = new DocumentFragment();
+	if (slave.devotion <= 20) {
+		const {He, him} = getPronouns(slave);
+		slave.trust += 5;
+		el.append(`${He} doesn't understand what you intend by this strange treatment, but it does make ${him} `);
+		App.UI.DOM.appendNewElement("span", el, `inappropriately trusting. `, "mediumaquamarine");
+	}
+	return el;
+};
+/**
+ *
+ * @param {App.Entity.SlaveState} slave
+ * @returns {Node}
+ */
+globalThis.basicTrainingDefaulter = function(slave) {
+	const el = document.createElement("p");
+	const {He, His, his, he} = getPronouns(slave);
+	const pti = V.personalAttention.findIndex(function(s) { return s.ID === slave.ID; });
+	const pa = V.personalAttention[pti];
+	if (slave.devotion > 20 && slave.behavioralFlaw !== "none" && slave.behavioralQuirk === "none") {
+		el.append(`Since ${he}'s obedient, `);
+		App.UI.DOM.appendNewElement("span", el, `${his} training assignment has defaulted to softening ${his} behavioral flaw. `, "yellow");
+		pa.trainingRegimen = "soften her behavioral flaw";
+	} else if ((slave.devotion > 20) && (slave.sexualQuirk === "none") && !["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "none", "self hating"].includes(slave.sexualFlaw)) {
+		el.append(`Since ${he}'s obedient, `);
+		App.UI.DOM.appendNewElement("span", el, `${his} training assignment has defaulted to softening ${his} sexual flaw. `, "yellow");
+		pa.trainingRegimen = "soften her sexual flaw";
+	} else if (slave.devotion > 20 && slave.behavioralFlaw !== "none" && slave.behavioralQuirk !== "none") {
+		el.append(`Since ${he}'s obedient and already has a behavioral quirk, `);
+		App.UI.DOM.appendNewElement("span", el, `${his} training assignment has defaulted to removing ${his} behavioral flaw. `, "yellow");
+		pa.trainingRegimen = "fix her behavioral flaw";
+	} else if ((slave.devotion > 20) && !["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "none", "self hating"].includes(slave.sexualFlaw)) {
+		el.append(`Since ${he}'s obedient and already has a sexual quirk, `);
+		App.UI.DOM.appendNewElement("span", el, `${his} training assignment has defaulted to removing ${his} sexual flaw. `, "yellow");
+		pa.trainingRegimen = "fix her sexual flaw";
+	} else if (slave.devotion <= 20 && slave.trust >= -20) {
+		App.UI.DOM.appendNewElement("span", el, `${His} training assignment has defaulted to breaking ${his} will. `, "yellow");
+		pa.trainingRegimen = "break her will";
+	} else {
+		el.append(`${He} is now fully broken; `);
+		App.UI.DOM.appendNewElement("span", el, `${his} training assignment has defaulted to fostering devotion. `, "yellow");
+		pa.trainingRegimen = "build her devotion";
+	}
+	slave.training = 0;
+	return el;
+};
diff --git a/src/uncategorized/ptWorkaround.tw b/src/uncategorized/ptWorkaround.tw
index f4740b8d0b9605d10b35c8bba4c77903a05846a4..66d3b30ee3d45493335f2749b14f6fed18939577 100644
--- a/src/uncategorized/ptWorkaround.tw
+++ b/src/uncategorized/ptWorkaround.tw
@@ -979,65 +979,65 @@
 		<</switch>>
 		so your investigation is complete.
 	<</if>>
-	<<BasicTrainingDefaulter>>
+	<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<<= IncreasePCSkills('slaving', 0.1)>>
 
 <<case "induce arrogance">>
 	Since you've decided to incite $him to arrogance, you praise $him effusively, and give orders that others are to do so as well. Other slaves are punished for things $he's allowed to get away with.
-	<<InduceFlawLenityEffects>>
+	<<includeDOM induceFlawLenityEffects($activeSlave)>>
 	<<if $activeSlave.training < 100>>
 		$He isn't seriously affected; you'll have to be more subtle next week.
 	<<else>>
 		<<set $activeSlave.training = 0>>
 		$He begins to think $himself special, and is now @@.red;arrogant.@@
 		<<set $activeSlave.behavioralFlaw = "arrogant">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce bitchiness">>
 	Since you've decided to induce $him to bitchiness, you keep $him in your office and induce $him to criticize other slaves, rewarding $him when $he's especially catty.
-	<<InduceFlawLenityEffects>>
+	<<includeDOM induceFlawLenityEffects($activeSlave)>>
 	<<if $activeSlave.training < 100>>
 		$He goes along, but remains cautious and will need more practice.
 	<<else>>
 		$He starts making @@.red;bitchy@@ remarks without being prompted.
 		<<set $activeSlave.behavioralFlaw = "bitchy">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce odd behavior">>
 	Since you've decided to abuse $him into odd behavior, you target $him for a campaign of surprise sex. You constantly ambush $him, shove $him onto the ground, and fuck $him. Sometimes $he wakes up from bad dreams to find you penetrating $him.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal($activeSlave, 10)>><<elseif canDoAnal($activeSlave)>><<= VCheck.Anal($activeSlave, 10)>><<else>><<set $activeSlave.counter.oral += 10, $oralTotal += 10>><</if>>
 	<<if $activeSlave.training < 100>>
 		$He does $his best to tolerate the abuse.
 	<<else>>
 		$He starts @@.red;behaving oddly,@@ jumping at noises and mumbling to $himself.
 		<<set $activeSlave.behavioralFlaw = "odd">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce hatred of men">>
 	In order to make $him hate men, you sometimes simply <<if $PC.dick != 0>>stick your dick in $him without asking<<else>>stuff a strap-on inside $him without asking<</if>>, and sometimes force shockingly juvenile pranks on $him. $He is regularly smacked in the face with floppy dildos.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal($activeSlave, 10)>><<elseif canDoAnal($activeSlave)>><<= VCheck.Anal($activeSlave, 10)>><<else>><<set $activeSlave.counter.oral += 10, $oralTotal += 10>><</if>>
 	<<if $activeSlave.training < 100>>
 		$He focuses more on you than on the masculine aspects of this. You'll need to be more subtle next week.
 	<<else>>
 		You notice $him starting to @@.red;shoot hateful glances@@ at any men $he sees.
 		<<set $activeSlave.behavioralFlaw = "hates men">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce hatred of women">>
 	In order to make $him hate women, you keep $him in your office when $he's not otherwise occupied, and <<if $PC.vagina == -1>>make $him eat other slaves out<<else>>sit on $his face<</if>> until $he's thoroughly sick of pussy.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<if $activeSlave.training < 100>>
 		$He focuses more on you than on the feminine aspects of this. You'll need to be more subtle next week.
 	<<else>>
 		You notice $him starting to @@.red;shoot hateful glances@@ at any vaginas $he sees.
 		<<set $activeSlave.behavioralFlaw = "hates women">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce gluttony">>
@@ -1048,145 +1048,145 @@
 	<<else>>
 		You notice $him starting to @@.red;enjoy eating@@ for its own sake, even when $he's not hungry.
 		<<set $activeSlave.behavioralFlaw = "gluttonous">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce anorexia">>
 	You criticize $him cruelly whenever $he eats, and praise thinner slaves to $his face at every opportunity.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<if $activeSlave.training < 100>>
 		$He continues consuming $his rations when ordered, and will need further training.
 	<<else>>
 		$He begins to @@.red;eat only when repeatedly ordered to.@@
 		<<set $activeSlave.behavioralFlaw = "anorexic">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce religious devotion">>
 	You direct a campaign of abuse and threats at $him, and surreptitiously ensure that a little religious text from $his home country finds its way into a hiding place in $his living area.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<if $activeSlave.training < 100>>
 		$He keeps $his head down and shows no sign of religious introspection, at least this week.
 	<<else>>
 		$He begins to read it when $he thinks $he's alone, and @@.red;talks to God@@ when $he thinks only He is listening.
 		<<set $activeSlave.behavioralFlaw = "devout">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce liberation">>
 	You direct a campaign of abuse and threats at $him, making sure to threaten $him with the absolute worst of slavery in your arcology. You also arrange for $him to witness other citizen's slaves in situations that aren't much fun.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<if $activeSlave.training < 100>>
 		$He does $his best to endure the abuse, unknowingly condemning $himself to more.
 	<<else>>
 		A deep @@.red;anger about slavery@@ builds within $him.
 		<<set $activeSlave.behavioralFlaw = "liberated">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce hatred of oral">>
 	Since you've decided to force $him to dislike oral sex, you're forced to use a complicated and refined slave breaking technique: constantly raping $his face.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<set $activeSlave.counter.oral += 10, $oralTotal += 10>>
 	<<if $activeSlave.training < 100>>
 		$He does $his best to comply with the oral abuse, unknowingly condemning $himself to more.
 	<<else>>
 		After gagging enough, $he finally starts to @@.red;hate oral.@@
 		<<set $activeSlave.sexualFlaw = "hates oral">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce hatred of anal">>
 	Since you've decided to force $him to dislike anal sex, you're forced to use a complicated and refined slave breaking technique: constantly raping $his ass.
 	<<if !canDoAnal($activeSlave)>>Every time you catch $him with $his chastity off, you're there to penetrate $his rectum<</if>>.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<= VCheck.Anal($activeSlave, 10)>>
 	<<if $activeSlave.training < 100>>
 		$He does $his best to comply with your abuse of $his butthole, unknowingly condemning $himself to more assrape.
 	<<else>>
 		After feeling $his poor sphincter grow sorer and sorer, $he starts to @@.red;hate anal.@@
 		<<set $activeSlave.sexualFlaw = "hates anal">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce hatred of penetration">>
 	Since you've decided to force $him to dislike penetration, you're forced to use a complicated and refined slave breaking technique: constantly raping $him.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal($activeSlave, 10)>><<elseif canDoAnal($activeSlave)>><<= VCheck.Anal($activeSlave, 10)>><<else>><<set $activeSlave.counter.oral += 10, $oralTotal += 10>><</if>>
 	<<if $activeSlave.training < 100>>
 		$He does $his best to comply with your abuse, unknowingly condemning $himself to more of it.
 	<<else>>
 		After feeling $his poor holes grow sorer and sorer, $he starts to @@.red;hate getting fucked.@@
 		<<set $activeSlave.sexualFlaw = "hates penetration">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce shame">>
 	Since you've decided to force shame on $him, you keep $him in your office whenever $he's not otherwise occupied, and heap derision on $him at every opportunity, even inviting visitors to join you in chats about how unattractive and worthless $he is.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<if $activeSlave.training < 100>>
 		$He does $his best to keep $his chin up, unknowingly condemning $himself to more of this abuse.
 	<<else>>
 		$He wants nothing more than to hide in corner and cry, and is now @@.red;shamefast.@@
 		<<set $activeSlave.sexualFlaw = "shamefast">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce sexual idealism">>
 	Since you've decided to induce $him to sexual idealism, you keep $him in your office, and when the two of you are all alone, gossip with $him about other slaves and even citizens. You do your best to encourage $him to believe absurdities.
-	<<InduceFlawLenityEffects>>
+	<<includeDOM induceFlawLenityEffects($activeSlave)>>
 	<<if $activeSlave.training < 100>>
 		$He doesn't know what to make of this; you'll have to keep at it.
 	<<else>>
 		$He follows along, and is now @@.red;sexually idealistic.@@
 		<<set $activeSlave.sexualFlaw = "idealistic">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce sexual repression">>
 	Since you've decided to force sexual repression on $him, you keep $him in your office whenever $he's not otherwise occupied. You use the monitoring systems to reveal $his sexual arousal whenever it appears, and castigate and punish $him for it.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<if $activeSlave.training < 100>>
 		$He does $his best to keep $his chin up, unknowingly condemning $himself to more of this abuse.
 	<<else>>
 		$He desperately tries to avoid even thinking about subjects that get $him punished, and is now @@.red;sexually repressed.@@
 		<<set $activeSlave.sexualFlaw = "repressed">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce sexual apathy">>
 	Since you've decided to force sexual apathy on $him, you keep $him in your office whenever $he's not otherwise occupied. You use $him regularly, and punish $him whenever $he shows any sign of enjoyment.
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal($activeSlave, 10)>><<elseif canDoAnal($activeSlave)>><<= VCheck.Anal($activeSlave, 10)>><<else>><<set $activeSlave.counter.oral += 10, $oralTotal += 10>><</if>>
 	<<if $activeSlave.training < 100>>
 		$He continues to experience arousal when fucked, and will need more of this treatment.
 	<<else>>
 		$He desperately tries to avoid arousal, and is now @@.red;sexually apathetic.@@
 		<<set $activeSlave.sexualFlaw = "apathetic">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce crudity">>
 	Since you've decided to force sexual crudeness on $him, you keep $him in your office whenever $he's not otherwise occupied, and degrade $him cruelly. You relax the normal cleanliness rules, and require $him to leave $his used holes as they are until $he's too disgusting to fuck.
 	<<if canDoVaginal($activeSlave)>><<= VCheck.Vaginal($activeSlave, 10)>><<elseif canDoAnal($activeSlave)>><<= VCheck.Anal($activeSlave, 10)>><<else>><<set $activeSlave.counter.oral += 10, $oralTotal += 10>><</if>>
-	<<InduceFlawAbuseEffects>>
+	<<includeDOM induceFlawAbuseEffects($activeSlave)>>
 	<<if $activeSlave.training < 100>>
 		$He does $his best to tolerate the unclean feelings, condemning $himself to more of this.
 	<<else>>
 		$He slowly stops caring, and is now @@.red;sexually crude.@@
 		<<set $activeSlave.sexualFlaw = "crude">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce judgement">>
 	Since you've decided to make $him sexually judgemental, you keep $him in your office and fuck $him, <<if $PC.dick != 0>>praising $him whenever $he takes your big dick well<<else>>using a huge strap-on on $him and praising $him when $he takes it like a good $girl<</if>>. You also judge others' endowments in $his presence.
-	<<InduceFlawLenityEffects>>
+	<<includeDOM induceFlawLenityEffects($activeSlave)>>
 	<<if $activeSlave.training < 100>>
 		$He writes this off as bravado, and will need more training.
 	<<else>>
 		$He starts to consider $himself reserved for special sexual treatment, and is now @@.red;sexually judgemental.@@
 		<<set $activeSlave.sexualFlaw = "judgemental">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce cum addiction">>
@@ -1197,7 +1197,7 @@
 	<<else>>
 		$He begins to develop a psychological @@.yellow;addiction to cum.@@
 		<<set $activeSlave.sexualFlaw = "cum addict">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce anal addiction">>
@@ -1208,7 +1208,7 @@
 	<<else>>
 		$He begins to develop a psychological @@.yellow;addiction to anal sex.@@
 		<<set $activeSlave.sexualFlaw = "anal addict">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce attention whoring">>
@@ -1219,7 +1219,7 @@
 	<<else>>
 		$He becomes a @@.yellow;true attention whore,@@ caring more about the spectators than the sex.
 		<<set $activeSlave.sexualFlaw = "attention whore">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce breast growth obsession">>
@@ -1229,7 +1229,7 @@
 	<<else>>
 		$He begins to believe you despite $himself, and becomes @@.yellow;obsessed with breast growth.@@
 		<<set $activeSlave.sexualFlaw = "breast growth">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce abusiveness">>
@@ -1240,7 +1240,7 @@
 	<<else>>
 		$He becomes @@.yellow;sexually abusive,@@ looking over each slave that comes into your office in the hope they'll resist.
 		<<set $activeSlave.sexualFlaw = "abusive">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce maliciousness">>
@@ -1251,7 +1251,7 @@
 	<<else>>
 		$He becomes @@.yellow;sexually malicious,@@ going so far as to lick tears off $his victims' faces.
 		<<set $activeSlave.sexualFlaw = "malicious">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce self hatred">>
@@ -1262,7 +1262,7 @@
 	<<else>>
 		$He becomes @@.yellow;sexually self hating,@@ and tearfully begs to you do worse to $him, no matter how bad it gets.
 		<<set $activeSlave.sexualFlaw = "self hating">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce sexual self neglect">>
@@ -1273,7 +1273,7 @@
 	<<else>>
 		$He becomes @@.yellow;sexually self neglectful,@@ and loses all expectation that those who use $him will address $his pleasure at all.
 		<<set $activeSlave.sexualFlaw = "neglectful">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <<case "induce breeding obsession">>
@@ -1284,7 +1284,7 @@
 	<<else>>
 		$He develops an @@.yellow;obsession with breeding,@@ and begins to stroke $his belly in a disturbingly masturbatory way.
 		<<set $activeSlave.sexualFlaw = "breeder">>
-		<<BasicTrainingDefaulter>>
+		<<includeDOM basicTrainingDefaulter($activeSlave)>>
 	<</if>>
 	<<= IncreasePCSkills('slaving', _currentSlaveValue)>>
 <</switch>>
diff --git a/src/utility/ptWidgets.tw b/src/utility/ptWidgets.tw
deleted file mode 100644
index 895fc54c3a04d13338ea9682e5b610abb5a44ae6..0000000000000000000000000000000000000000
--- a/src/utility/ptWidgets.tw
+++ /dev/null
@@ -1,49 +0,0 @@
-:: PT widgets [widget nobr]
-
-<<widget "InduceFlawAbuseEffects">>
-	<<if $activeSlave.devotion > 20>>
-		$He's @@.mediumorchid;desperately confused@@ by this treatment, since the effect would be ruined if you explained it to $him, and $his @@.gold;trust in you is reduced.@@
-	<<elseif $activeSlave.devotion >= -20>>
-		$He's @@.mediumorchid;confused, depressed@@ and @@.gold;frightened@@ by this treatment, since the effect would be ruined if you explained it to $him.
-	<<else>>
-		$He's @@.mediumorchid;angry@@ and @@.gold;afraid@@ that you would treat $him like this.
-	<</if>>
-	<<if $activeSlave.energy > 10>>
-		$His @@.red;appetite for sex is also reduced.@@
-		<<set $activeSlave.energy -= 2>>
-	<</if>>
-	<<set $activeSlave.devotion -= 5>>
-	<<set $activeSlave.trust -= 5>>
-<</widget>>
-
-<<widget "InduceFlawLenityEffects">>
-	<<if $activeSlave.devotion <= 20>>
-		$He doesn't understand what you intend by this strange treatment, but it does make $him @@.mediumaquamarine;inappropriately trusting.@@
-		<<set $activeSlave.trust += 5>>
-	<</if>>
-<</widget>>
-
-<<widget "BasicTrainingDefaulter">>
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;
-	<<set _pti = $personalAttention.findIndex(function(s) { return s.ID == $activeSlave.ID; })>>
-	<<if ($activeSlave.devotion > 20) && ($activeSlave.behavioralFlaw != "none") && ($activeSlave.behavioralQuirk == "none")>>
-		Since $he's obedient, @@.yellow;$his training assignment has defaulted to softening $his behavioral flaw.@@
-		<<set $personalAttention[_pti].trainingRegimen = "soften her behavioral flaw">>
-	<<elseif ($activeSlave.devotion > 20) && ($activeSlave.sexualQuirk == "none") && !["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "none", "self hating"].includes($activeSlave.sexualFlaw)>>
-		Since $he's obedient, @@.yellow;$his training assignment has defaulted to softening $his sexual flaw.@@
-		<<set $personalAttention[_pti].trainingRegimen = "soften her sexual flaw">>
-	<<elseif ($activeSlave.devotion > 20) && ($activeSlave.behavioralFlaw != "none") && ($activeSlave.behavioralQuirk != "none")>>
-		Since $he's obedient and already has a behavioral quirk, @@.yellow;$his training assignment has defaulted to removing $his behavioral flaw.@@
-		<<set $personalAttention[_pti].trainingRegimen = "fix her behavioral flaw">>
-	<<elseif ($activeSlave.devotion > 20) && !["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "none", "self hating"].includes($activeSlave.sexualFlaw)>>
-		Since $he's obedient and already has a sexual quirk, @@.yellow;$his training assignment has defaulted to removing $his sexual flaw.@@
-		<<set $personalAttention[_pti].trainingRegimen = "fix her sexual flaw">>
-	<<elseif ($activeSlave.devotion <= 20) && ($activeSlave.trust >= -20)>>
-		@@.yellow;$His training assignment has defaulted to breaking $his will.@@
-		<<set $personalAttention[_pti].trainingRegimen = "break her will">>
-	<<else>>
-		$He is now fully broken; @@.yellow;$his training assignment has defaulted to fostering devotion.@@
-		<<set $personalAttention[_pti].trainingRegimen = "build her devotion">>
-	<</if>>
-	<<set $activeSlave.training = 0, $slaves[$slaveIndices[$activeSlave.ID]].training = 0>>
-<</widget>>