diff --git a/css/general/textColors.css b/css/general/textColors.css
index b79e14950b09b2ba7c9c767344c7170ce8dbeef7..bb6a8c0d6394b65ede67dbfaaed9934233aef6f8 100644
--- a/css/general/textColors.css
+++ b/css/general/textColors.css
@@ -149,7 +149,7 @@
 
 /* generally bad stuff */
 /* note: .error is for unexpected behavior, .warning for player feedback */
-.red, .red a, .health.dec, .health.dec a, .cash.dec, .cash.dec a, .stat.drop, .stat.drop a, .flaw.gain, .flaw.gain a,
+.red, .red a, .health.dec, .health.dec a, .cash.dec, .cash.dec a, .stat.drop, .stat.drop a, .flaw, .flaw a, .flaw.gain, .flaw.gain a,
 .mindbreak, .mindbreak a, .error, .error a, .elites.loss, .elites.loss a, .reputation.dec, .reputation.dec a,
 .warning, .warning a {
     color: red
diff --git a/src/005-passages/interactPassages.js b/src/005-passages/interactPassages.js
index a9c049851d00428dfbfe53193e6c5185b9370f64..fab909050b5b3a969410555cfd92e811a0553e0f 100644
--- a/src/005-passages/interactPassages.js
+++ b/src/005-passages/interactPassages.js
@@ -228,3 +228,11 @@ new App.DomPassage("Sell Slave",
 		return App.Interact.sellSlave(getSlave(V.AS));
 	}
 );
+
+new App.DomPassage("Personal Attention Select",
+	() => {
+		V.nextButton = "Back to Main";
+		V.nextLink = "Main";
+		return App.Interact.personalAttentionSelect();
+	}, ["jump-to-safe", "jump-from-safe"]
+);
diff --git a/src/interaction/personalAttentionSelect.js b/src/interaction/personalAttentionSelect.js
new file mode 100644
index 0000000000000000000000000000000000000000..bf5a9c821a031ff47fb15ff231108645a9f8734b
--- /dev/null
+++ b/src/interaction/personalAttentionSelect.js
@@ -0,0 +1,640 @@
+App.Interact.personalAttentionSelect = function() {
+	const fragment = new DocumentFragment();
+	/**
+	 * @type {Array<string|HTMLElement|DocumentFragment>}
+	 */
+	let r;
+	/**
+	 * @type {Array<HTMLElement>}
+	 */
+	let links;
+
+	// set up div for refreshing options
+	const refreshDiv = document.createElement("div");
+	refreshDiv.append(content());
+	fragment.append(refreshDiv);
+
+	// slave list, static
+	App.UI.DOM.appendNewElement("h2", fragment, "Select a slave to train");
+	if (V.PC.skill.slaving >= 100) {
+		App.Events.addNode(fragment,
+			["Your <span class='skill player'>slaving experience</span> allows you to divide your attention between more than one slave each week, with slightly reduced efficiency"],
+			"p", "note");
+	}
+	fragment.append(App.UI.SlaveList.slaveSelectionList(
+		s => assignmentVisible(s) && s.fuckdoll === 0,
+		s => App.UI.DOM.link(SlaveFullName(s), (id) => { selectSlave(id); }, s.ID)
+	));
+
+	return fragment;
+
+	function content() {
+		const f = new DocumentFragment();
+
+		App.UI.DOM.appendNewElement("h1", f, "Personal Attention");
+		f.append(focus());
+		if (V.secExpEnabled > 0) {
+			const p = document.createElement("p");
+			$(p).wiki(jsInclude("proclamations"));
+			f.append(p);
+		}
+		if (V.PC.actualAge >= V.IsInPrimePC) {
+			f.append(playerSkills());
+		}
+		f.append(slaveAttention());
+
+		return f;
+	}
+
+	function refresh() {
+		App.UI.DOM.replace(refreshDiv, content());
+	}
+
+	/**
+	 * @returns {HTMLParagraphElement}
+	 */
+	function focus() {
+		const p = document.createElement("p");
+		links = [];
+
+		if (V.PC.career === "gang" || V.PC.career === "hoodlum" || V.PC.career === "street urchin") {
+			links.push(focusLink("Focus on business", "business"));
+			links.push(focusLink('Help people "pass" things around', "smuggling"));
+		} else if (V.PC.career === "escort" || V.PC.career === "prostitute" || V.PC.career === "child prostitute") {
+			links.push(focusLink('Focus on "connecting"', "whoring"));
+		} else if (V.PC.career === "servant" || V.PC.career === "handmaiden" || V.PC.career === "child servant") {
+			links.push(focusLink("Maintain your home", "upkeep"));
+		} else {
+			links.push(focusLink("Focus on business", "business"));
+		}
+
+		if (V.PC.skill.warfare > 25) {
+			links.push(focusLink("Survey your arcology's defenses in person", "defensive survey"));
+		}
+
+		if (V.PC.skill.engineering > 25) {
+			if ((V.arcologies[0].prosperity + (1 + Math.ceil(V.PC.skill.engineering / 100))) < V.AProsperityCap) {
+				links.push(focusLink("Contribute to a local development project", "development project"));
+			} else {
+				links.push(App.UI.DOM.disabledLink("Contribute to a local development project", ["You don't have anything worth contributing."]));
+			}
+		}
+
+		if (V.PC.skill.hacking > 25) {
+			links.push(focusLink("Sell your intrusion services to the highest bidder", "technical accidents"));
+		}
+
+		if (V.HeadGirlID !== 0) {
+			links.push(focusLink("Support your Head Girl", "HG"));
+		}
+
+		links.push(focusLink("Have as much sex with your slaves as possible", "sex"));
+
+		p.append("Focus on a task: ");
+		p.append(App.UI.DOM.generateLinksStrip(links));
+
+		return p;
+	}
+
+	/**
+	 * @param {string} text
+	 * @param {string} attention
+	 * @returns {HTMLElement}
+	 */
+	function focusLink(text, attention) {
+		if (V.personalAttention === attention) {
+			return App.UI.DOM.disabledLink(text, [`You are already focusing on this task.`]);
+		} else {
+			return App.UI.DOM.link(text, () => {
+				V.personalAttention = attention;
+				refresh();
+			});
+		}
+	}
+
+	/**
+	 * @returns {HTMLParagraphElement}
+	 */
+	function playerSkills() {
+		const tooOld = V.PC.actualAge >= V.IsPastPrimePC;
+		const p = document.createElement("p");
+
+
+		if (!tooOld
+			&& (V.PC.skill.medicine < 100 ||
+				V.PC.skill.engineering < 100 ||
+				V.PC.skill.slaving < 100 ||
+				V.PC.skill.warfare < 100 ||
+				V.PC.skill.trading < 100 ||
+				V.PC.skill.hacking < 100)
+		) {
+			const cost = 10000 * V.AgeEffectOnTrainerPricingPC;
+			r = [];
+			r.push("Train your personal skills: ");
+			r.push(`<span class='detail'>Training will cost ${cashFormat(cost)} per week.</span>`);
+			App.Events.addNode(p, r);
+		}
+
+		const grid = document.createElement("div");
+		grid.classList.add("grid-2columns-auto");
+
+		skillTraining(grid, "trader", "trading", "You are already training in venture capitalism.", "Hire a merchant to train you in commerce.");
+		skillTraining(grid, "tactician", "warfare", "You are already training in tactics.", "Hire a mercenary to train you in warfare.");
+		skillTraining(grid, "slaver", "slaving", "You are already training in slaving.", "Hire a slaver to train you in slaving.");
+		skillTraining(grid, "arcology engineer", "engineering", "You are already training in arcology engineering.", "Hire an engineer to train you in engineering.", true);
+		skillTraining(grid, "surgeon", "medicine", "You are already training in slave surgery.", "Hire a doctor to train you in medicine.");
+		skillTraining(grid, "hacker", "hacking", "You are already training in hacking and data manipulation.", "Hire a specialist to train you in hacking.");
+
+		p.append(grid);
+
+		return p;
+
+		/**
+		 * @param {HTMLDivElement} parent
+		 * @param {string} name
+		 * @param {string} key
+		 * @param {string} activeDesc
+		 * @param {string} startDesc
+		 * @param {boolean} an true, if name requires "an", not "a"
+		 */
+		function skillTraining(parent, name, key, activeDesc, startDesc, an = false) {
+			if (V.PC.skill[key] >= 100) {
+				App.UI.DOM.appendNewElement("div", parent, `You are a master ${name}.`, "note");
+				parent.append(document.createElement("div"));
+			} else {
+				/**
+				 * @type {string}
+				 */
+				let note;
+				if (V.PC.skill[key] > 60) {
+					note = `You are an expert ${name}.`;
+				} else {
+					name = `${an ? "an" : "a"} ${name}`;
+					if (V.PC.skill[key] > 30) {
+						note = `You have some skill as ${name}.`;
+					} else if (V.PC.skill[key] > 10) {
+						note = `You have basic knowledge as ${name}.`;
+					} else {
+						note = `You have no knowledge as ${name}.`;
+					}
+				}
+				App.UI.DOM.appendNewElement("div", parent, note, "note");
+				if (V.personalAttention === key) {
+					App.UI.DOM.appendNewElement("div", parent, App.UI.DOM.disabledLink(startDesc, [activeDesc]));
+				} else if (V.PC.skill[key] < 100 && !tooOld) {
+					App.UI.DOM.appendNewElement("div", parent, App.UI.DOM.link(startDesc, () => {
+						V.personalAttention = key;
+						refresh();
+					}));
+				} else {
+					parent.append(document.createElement("div"));
+				}
+			}
+		}
+	}
+
+	/**
+	 * @returns {DocumentFragment}
+	 */
+	function slaveAttention() {
+		/**
+		 * @param {number} index
+		 * @param {string} text
+		 * @param {string} target
+		 * @returns {HTMLElement}
+		 */
+		function attentionLink(index, text, target) {
+			if (V.personalAttention[index].trainingRegimen === target) {
+				return App.UI.DOM.disabledLink(text, ["You are already working on it."]);
+			} else {
+				return App.UI.DOM.link(text, () => {
+					V.personalAttention[index].trainingRegimen = target;
+					refresh();
+				});
+			}
+		}
+
+		const f = new DocumentFragment();
+
+		if (typeof V.personalAttention !== "object" || V.personalAttention.length === 0) {
+			App.UI.DOM.appendNewElement("p", f, "You have not selected a slave for your personal attention.");
+		} else {
+			if (V.personalAttention.length > (V.PC.skill.slaving >= 100 ? 2 : 1)) {
+				V.personalAttention.shift();
+			}
+
+			for (let i = 0; i < V.personalAttention.length; i++) {
+				let slave = getSlave(V.personalAttention[i].ID);
+				/* duplicate check — should not happen if slaveSummary is doing its job */
+				if (V.personalAttention.map(function(s) { return s.ID; }).count(slave.ID) > 1) {
+					// TODO check validity
+					V.personalAttention.deleteAt(i);
+					V.personalAttention.deleteAt(i);
+					i--;
+					continue;
+				}
+
+				if (V.personalAttention[i].trainingRegimen === "undecided") {
+					if ((slave.health.condition < -20)) {
+						V.personalAttention[i].trainingRegimen = "look after her";
+					} else if ((slave.behavioralFlaw !== "none")) {
+						if ((slave.devotion >= -20)) {
+							V.personalAttention[i].trainingRegimen = "soften her behavioral flaw";
+						} else {
+							V.personalAttention[i].trainingRegimen = "fix her behavioral flaw";
+						}
+					} else if ((slave.sexualFlaw !== "none")) {
+						if ((slave.devotion >= -20)) {
+							V.personalAttention[i].trainingRegimen = "soften her sexual flaw";
+						} else {
+							V.personalAttention[i].trainingRegimen = "fix her sexual flaw";
+						}
+					} else if ((slave.fetishKnown !== 1)) {
+						V.personalAttention[i].trainingRegimen = "explore her sexuality";
+					} else if ((slave.devotion <= 20) && (slave.trust >= -20)) {
+						V.personalAttention[i].trainingRegimen = "break her will";
+					} else {
+						V.personalAttention[i].trainingRegimen = "build her devotion";
+					}
+				}
+
+				const p = document.createElement("p");
+				const {He, his, him} = getPronouns(slave);
+
+				r = [];
+				r.push(`You will give`);
+				r.push(App.UI.DOM.referenceSlaveWithPreview(slave, SlaveFullName(slave)));
+				r.push("your personal attention this week.");
+
+				r.push(App.UI.DOM.link("Stop", () => {
+					V.personalAttention.deleteAt(i);
+					if (V.personalAttention.length === 0) {
+						V.personalAttention = "sex";
+					}
+					refresh();
+				}));
+				App.Events.addNode(p, r, "div");
+
+				r = [];
+				r.push("Your training will seek to");
+				r.push(App.UI.DOM.makeElement("span", `${V.personalAttention[i].trainingRegimen.replace("her", his)}.`, "bold"));
+				App.Events.addNode(p, r, "div");
+
+				App.UI.DOM.appendNewElement("div", p, "Change training objective:");
+				if ((slave.devotion <= 20) && (slave.trust >= -20)) {
+					links = [];
+					links.push(attentionLink(i, `Break ${his} will`, "break her will"));
+					links.push(attentionLink(i, "Use enhanced breaking techniques", "harshly break her will"));
+					App.UI.DOM.appendNewElement("div", p, App.UI.DOM.generateLinksStrip(links), "choices");
+				} else {
+					r = [];
+					r.push("Current devotion:");
+					r.push(devotionText(slave));
+					r.push(attentionLink(i, "Build", "build her devotion"));
+					App.Events.addNode(p, r, "div", "choices");
+				}
+
+				r = [];
+				if (slave.fetishKnown === 0 || slave.attrKnown === 0) {
+					r.push(attentionLink(i, `Explore ${his} sexuality and fetishes`, "explore her sexuality"));
+				} else {
+					r.push(App.UI.DOM.disabledLink(`Explore ${his} sexuality and fetishes`, [`You already understand ${his} sexuality.`]));
+				}
+				App.Events.addNode(p, r, "div", "choices");
+
+				if ((slave.behavioralFlaw !== "none")) {
+					r = [];
+					r.push(`Current behavioral flaw: <span class='flaw'>${capFirstChar(slave.behavioralFlaw)}.</span>`);
+					links = [];
+					links.push(attentionLink(i, `Remove`, "fix her behavioral flaw"));
+					if (slave.devotion < -20) {
+						links.push(App.UI.DOM.disabledLink("Soften", [`${He} must be broken before ${his} flaws can be softened.`]));
+					} else {
+						links.push(attentionLink(i, `Soften`, "soften her behavioral flaw"));
+					}
+					r.push(App.UI.DOM.generateLinksStrip(links));
+					App.Events.addNode(p, r, "div", "choices");
+				}
+
+				if (slave.sexualFlaw !== "none") {
+					r = [];
+					r.push(`Current sexual flaw: <span class='flaw'>${capFirstChar(slave.sexualFlaw)}.</span>`);
+					links = [];
+					links.push(attentionLink(i, `Remove`, "fix her sexual flaw"));
+					if (slave.devotion < -20) {
+						links.push(App.UI.DOM.disabledLink("Soften", [`${He} must be broken before ${his} flaws can be softened.`]));
+					} else if (["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "self hating"].includes(slave.sexualFlaw)) {
+						links.push(App.UI.DOM.disabledLink("Soften", [`Paraphilias cannot be softened.`]));
+					} else {
+						links.push(attentionLink(i, `Soften`, "soften her sexual flaw"));
+					}
+					r.push(App.UI.DOM.generateLinksStrip(links));
+					App.Events.addNode(p, r, "div", "choices");
+				}
+
+				if ((slave.devotion <= 20) && (slave.trust >= -20)) {
+					App.UI.DOM.appendNewElement("div", p,
+						App.UI.DOM.disabledLink(`Teach ${him}`, [`${He}'s too disobedient to learn sex skills.`]),
+						"choices");
+				} else if (slave.skill.anal >= 100 && slave.skill.oral >= 100 && slave.skill.whoring >= 30 && slave.skill.entertainment >= 30) {
+					if (slave.skill.vaginal >= 100 && slave.vagina > -1) {
+						App.UI.DOM.appendNewElement("div", p,
+							App.UI.DOM.disabledLink(`Teach ${him}`, [`${He} knows all the skills you can teach.`]),
+							"choices");
+					} else if (slave.dick === 0 && slave.scrotum === 0 && slave.vagina === -1) {
+						App.UI.DOM.appendNewElement("div", p,
+							App.UI.DOM.disabledLink(`Teach ${him}`, [`${He} knows all the skills you can teach a null slave.`]),
+							"choices");
+					} else if (slave.dick > 0 && slave.balls === 0) {
+						App.UI.DOM.appendNewElement("div", p,
+							App.UI.DOM.disabledLink(`Teach ${him}`, [`${He} knows all the skills you can teach a gelded slave.`]),
+							"choices");
+					} else if (slave.dick > 0 && slave.boobs > 300 && slave.vagina === -1) {
+						App.UI.DOM.appendNewElement("div", p,
+							App.UI.DOM.disabledLink(`Teach ${him}`, [`${He} knows all the skills you can teach a shemale slave.`]),
+							"choices");
+					} else {
+						App.UI.DOM.appendNewElement("div", p, attentionLink(i, `Teach ${him}`, "learn skills"), "choices");
+					}
+				} else {
+					App.UI.DOM.appendNewElement("div", p, attentionLink(i, `Teach ${him}`, "learn skills"), "choices");
+				}
+
+				r = [];
+				r.push("Current health:");
+				r.push(healthText(slave));
+				r.push(attentionLink(i, `Care for ${him}`, "look after her"));
+				App.Events.addNode(p, r, "div", "choices");
+
+				App.UI.DOM.appendNewElement("div", p, "Inducing flaws is difficult and bad for slaves' obedience.", ["note", "choices"]);
+
+				/**
+				 * @type {{name: string, flaw: FC.BehavioralFlaw, quirk: FC.BehavioralQuirk, training: string}[]}
+				 */
+				const behavioralFlaws = [
+					{
+						name: "Arrogance",
+						flaw: "arrogant",
+						quirk: "confident",
+						training: "induce arrogance",
+					},
+					{
+						name: "Bitchiness",
+						flaw: "bitchy",
+						quirk: "cutting",
+						training: "induce bitchiness",
+					},
+					{
+						name: "Odd behavior",
+						flaw: "odd",
+						quirk: "funny",
+						training: "induce odd behavior",
+					},
+					{
+						name: "Hatred of men",
+						flaw: "hates men",
+						quirk: "adores women",
+						training: "induce hatred of men",
+					},
+					{
+						name: "Hatred of women",
+						flaw: "hates women",
+						quirk: "adores men",
+						training: "induce hatred of women",
+					},
+					{
+						name: "Gluttony",
+						flaw: "gluttonous",
+						quirk: "fitness",
+						training: "induce gluttony",
+					},
+					{
+						name: "Anorexia",
+						flaw: "anorexic",
+						quirk: "insecure",
+						training: "induce anorexia",
+					},
+					{
+						name: "Religious devotion",
+						flaw: "devout",
+						quirk: "sinful",
+						training: "induce religious devotion",
+					},
+					{
+						name: "Liberation",
+						flaw: "liberated",
+						quirk: "advocate",
+						training: "induce liberation",
+					},
+				];
+				links = [];
+				for (const flaw of behavioralFlaws) {
+					if (slave.behavioralFlaw === flaw.flaw) {
+						links.push(App.UI.DOM.disabledLink(flaw.name, [`${He} already has this flaw.`]));
+					} else if (slave.behavioralQuirk === flaw.quirk) {
+						links.push(App.UI.DOM.disabledLink(flaw.name, [`${He} already has the corresponding quirk.`]));
+					} else {
+						links.push(attentionLink(i, flaw.name, flaw.training));
+					}
+				}
+				App.Events.addNode(p, ["Induce a behavioral flaw:", App.UI.DOM.generateLinksStrip(links)], "div", "choices");
+
+
+				/**
+				 * @type {{name: string, flaw: FC.SexualFlaw, quirk: FC.SexualQuirk, training: string}[]}
+				 */
+				const sexualFlaws = [
+					{
+						name: "Hatred of oral",
+						flaw: "hates oral",
+						quirk: "gagfuck queen",
+						training: "induce hatred of oral"
+					},
+					{
+						name: "Hatred of anal",
+						flaw: "hates anal",
+						quirk: "painal queen",
+						training: "induce hatred of anal"
+					},
+					{
+						name: "Hatred of penetration",
+						flaw: "hates penetration",
+						quirk: "strugglefuck queen",
+						training: "induce hatred of penetration"
+					},
+					{
+						name: "Shame",
+						flaw: "shamefast",
+						quirk: "tease",
+						training: "induce shame"
+					},
+					{
+						name: "Sexual idealism",
+						flaw: "idealistic",
+						quirk: "romantic",
+						training: "induce sexual idealism"
+					},
+					{
+						name: "Sexual repression",
+						flaw: "repressed",
+						quirk: "perverted",
+						training: "induce sexual repression"
+					},
+					{
+						name: "Sexual apathy",
+						flaw: "apathetic",
+						quirk: "caring",
+						training: "induce sexual apathy"
+					},
+					{
+						name: "Crudity",
+						flaw: "crude",
+						quirk: "unflinching",
+						training: "induce crudity"
+					},
+					{
+						name: "Judgment",
+						flaw: "judgemental",
+						quirk: "size queen",
+						training: "induce judgement"
+					},
+				];
+				links = [];
+				for (const flaw of sexualFlaws) {
+					if (slave.sexualFlaw === flaw.flaw) {
+						links.push(App.UI.DOM.disabledLink(flaw.name, [`${He} already has this flaw.`]));
+					} else if (slave.sexualQuirk === flaw.quirk) {
+						links.push(App.UI.DOM.disabledLink(flaw.name, [`${He} already has the corresponding quirk.`]));
+					} else {
+						links.push(attentionLink(i, flaw.name, flaw.training));
+					}
+				}
+				App.Events.addNode(p, ["Induce a sexual flaw:", App.UI.DOM.generateLinksStrip(links)], "div", "choices");
+
+
+				if (slave.fetishStrength > 95) {
+					/**
+					 * @type {{name: string, flaw: string, fetish: FC.Fetish, training: string}[]}
+					 */
+					const paraphilias = [
+						{
+							name: "Anal addiction",
+							flaw: "cum addict",
+							fetish: "cumslut",
+							training: "induce cum addiction"
+						},
+						{
+							name: "Cum addiction",
+							flaw: "anal addict",
+							fetish: "buttslut",
+							training: "induce anal addiction"
+						},
+						{
+							name: "Attention whoring",
+							flaw: "attention whore",
+							fetish: "humiliation",
+							training: "induce attention whoring"
+						},
+						{
+							name: "Breast growth obsession",
+							flaw: "breast growth",
+							fetish: "boobs",
+							training: "induce breast growth obsession"
+						},
+						{
+							name: "Abusiveness",
+							flaw: "abusive",
+							fetish: "dom",
+							training: "induce abusiveness"
+						},
+						{
+							name: "Maliciousness",
+							flaw: "malicious",
+							fetish: "sadist",
+							training: "induce maliciousness"
+						},
+						{
+							name: "Self hatred",
+							flaw: "self hatred",
+							fetish: "masochist",
+							training: "induce self hatred"
+						},
+						{
+							name: "Sexual self neglect",
+							flaw: "neglectful",
+							fetish: "submissive",
+							training: "induce sexual self neglect"
+						},
+						{
+							name: "Breeding obsession",
+							flaw: "breeder",
+							fetish: "pregnancy",
+							training: "induce breeding obsession"
+						},
+					];
+					links = [];
+					for (const paraphilia of paraphilias) {
+						if (slave.sexualFlaw === paraphilia.flaw) {
+							links.push(App.UI.DOM.disabledLink(paraphilia.name, [`${He} already has this paraphilia.`]));
+						} else if (slave.fetish !== paraphilia.fetish) {
+							// TODO: Too much clutter?
+							// links.push(App.UI.DOM.disabledLink(paraphilia.name, [`${He} needs the corresponding fetish first.`]));
+						} else {
+							links.push(attentionLink(i, paraphilia.name, paraphilia.training));
+						}
+					}
+					App.Events.addNode(p, ["Induce a paraphilia:", App.UI.DOM.generateLinksStrip(links)], "div", "choices");
+				} else {
+					App.Events.addNode(p, ["Paraphilias can only be induced from a strong fetish"], "div", ["note", "choices"]);
+				}
+				f.append(p);
+			}
+		}
+		return f;
+	}
+
+	function selectSlave(id) {
+		if (!Array.isArray(V.personalAttention)) { // first PA target
+			V.personalAttention = [{
+				ID: id,
+				trainingRegimen: "undecided"
+			}];
+		} else {
+			const paIndex = V.personalAttention.findIndex(s => s.ID === id);
+			if (paIndex === -1) { // not already a PA target; add
+				V.personalAttention.push({
+					ID: id,
+					trainingRegimen: "undecided"
+				});
+			} else { // already a PA target; remove
+				V.personalAttention.deleteAt(paIndex);
+				if (V.personalAttention.length === 0) {
+					V.personalAttention = "sex";
+				}
+			}
+		}
+		refresh();
+		// if the player has scrolled too far down in the list, they otherwise would not get any visual feedback.
+		window.scrollTo(0, 0);
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {DocumentFragment}
+	 */
+	function devotionText(slave) {
+		const f = document.createDocumentFragment();
+		App.UI.SlaveSummaryImpl.helpers.makeRatedStyledSpan(f, App.Data.SlaveSummary.long.mental.devotion, slave.devotion, 100, true);
+		return f;
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 * @returns {DocumentFragment}
+	 */
+	function healthText(slave) {
+		const f = document.createDocumentFragment();
+		App.UI.SlaveSummaryImpl.helpers.makeRatedStyledSpan(f, App.Data.SlaveSummary.long.health.health, slave.health.condition, 100, true);
+		return f;
+	}
+};
diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js
index 7027cc784ad839ff48128cb701fcecdc0dcd10fe..06c4f51a07ceffe92920ed22bf0023ee40d6e383 100644
--- a/src/js/slaveListing.js
+++ b/src/js/slaveListing.js
@@ -529,33 +529,6 @@ App.UI.SlaveList.SlaveInteract.penthouseInteract = function(slave) {
 	return stdLink;
 };
 
-/**
- * Adds/removes a slave with the given id to/from the personal attention array
- * @param {number} id slave id
- */
-App.UI.selectSlaveForPersonalAttention = function(id) {
-	if (!Array.isArray(V.personalAttention)) { // first PA target
-		V.personalAttention = [{
-			ID: id,
-			trainingRegimen: "undecided"
-		}];
-	} else {
-		const _pai = V.personalAttention.findIndex(s => s.ID === id);
-		if (_pai === -1) { // not already a PA target; add
-			V.personalAttention.push({
-				ID: id,
-				trainingRegimen: "undecided"
-			});
-		} else { // already a PA target; remove
-			V.personalAttention.deleteAt(_pai);
-			if (V.personalAttention.length === 0) {
-				V.personalAttention = "sex";
-			}
-		}
-	}
-	SugarCube.Engine.play("Personal Attention Select");
-};
-
 /**
  * @param {string} passage
  * @returns {HTMLElement}
diff --git a/src/js/slaveSummaryHelpers.js b/src/js/slaveSummaryHelpers.js
index 94b521497f64fd6ddcc2f1e1b181d7e5903fddac..1e1048b8b327e212f390123acb37fc66adbc472b 100644
--- a/src/js/slaveSummaryHelpers.js
+++ b/src/js/slaveSummaryHelpers.js
@@ -1695,23 +1695,3 @@ App.UI.SlaveSummaryImpl = function() {
 		bits: bits
 	};
 }();
-
-/**
- * @param {App.Entity.SlaveState} slave
- * @returns {node}
- */
-App.UI.personalAttentionDevotionText = function(slave) {
-	const node = document.createDocumentFragment();
-	App.UI.SlaveSummaryImpl.helpers.makeRatedStyledSpan(node, App.Data.SlaveSummary.long.mental.devotion, slave.devotion, 100, true);
-	return node;
-};
-
-/**
- * @param {App.Entity.SlaveState} slave
- * @returns {node}
- */
-App.UI.personalAttentionHealthText = function(slave) {
-	const node = document.createDocumentFragment();
-	App.UI.SlaveSummaryImpl.helpers.makeRatedStyledSpan(node, App.Data.SlaveSummary.long.health.health, slave.health.condition, 100, true);
-	return node;
-};
diff --git a/src/uncategorized/personalAttentionSelect.tw b/src/uncategorized/personalAttentionSelect.tw
deleted file mode 100644
index 146d15b0988e98c30483b962c297f35ad2b8edc1..0000000000000000000000000000000000000000
--- a/src/uncategorized/personalAttentionSelect.tw
+++ /dev/null
@@ -1,374 +0,0 @@
-:: Personal Attention Select [nobr jump-to-safe jump-from-safe]
-
-<<set $nextButton = "Back to Main", $nextLink = "Main">>
-
-<<if $PC.career == "gang" || $PC.career == "hoodlum" || $PC.career == "street urchin">>
-	[[Focus on business|Main][$personalAttention = "business"]]
-	<br>[[Help people "pass" things around|Main][$personalAttention = "smuggling"]]
-<<elseif $PC.career == "escort" || $PC.career == "prostitute" || $PC.career == "child prostitute">>
-	<br>[[Focus on "connecting"|Main][$personalAttention = "whoring"]]
-<<elseif $PC.career == "servant" || $PC.career == "handmaiden" || $PC.career == "child servant">>
-	<br>[[Maintain your home|Main][$personalAttention = "upkeep"]]
-<<else>>
-	[[Focus on business|Main][$personalAttention = "business"]]
-<</if>>
-<<if $PC.skill.warfare > 25>>
-	<br>[[Survey your arcology's defenses in person|Main][$personalAttention = "defensive survey"]]
-<</if>>
-<<if $PC.skill.engineering > 25>> <br>
-	<<if ($arcologies[0].prosperity + 1 * (1 + Math.ceil($PC.skill.engineering/100))) < $AProsperityCap>>
-		[[Contribute to a local development project|Main][$personalAttention = "development project"]]
-	<<else>>
-		Contributing to a local development project @@.yellow;would be futile.@@
-	<</if>>
-<</if>>
-<<if $PC.skill.hacking > 25>>
-	<br>[[Sell your intrusion services to the highest bidder|Main][$personalAttention = "technical accidents"]]
-<</if>>
-<<if $HeadGirlID != 0>>
-	<br>[[Support your Head Girl|Main][$personalAttention = "HG"]]
-<</if>>
-<br>[[Have as much sex with your slaves as possible|Main][$personalAttention = "sex"]]
-<<if $secExpEnabled > 0>> <br>
-	<<include "proclamations">>
-<</if>>
-<br>
-
-<<if $PC.actualAge >= $IsInPrimePC>>
-<<set _cost = 10000*$AgeEffectOnTrainerPricingPC>>
-<br>
-<<if $PC.skill.trading >= 100>>
-	//You are a master trader.//
-<<else>>
-	<<if $PC.skill.trading > 60>>
-		//You are an expert trader.//
-	<<elseif $PC.skill.trading > 30>>
-		//You have some skill as a trader.//
-	<<elseif $PC.skill.trading > 10>>
-		//You have basic knowledge as a trader.//
-	<<else>>
-		//You have no knowledge as a trader.//
-	<</if>>
-	<<if $personalAttention == "trading">>
-		You are training in venture capitalism.
-	<<elseif $PC.skill.trading < 100 && $PC.actualAge < $IsPastPrimePC>>
-		[[Hire a merchant to train you in commerce|Main][$personalAttention = "trading"]]
-	<</if>>
-<</if>>
-<br>
-<<if $PC.skill.warfare >= 100>>
-	//You are a master tactician.//
-<<else>>
-	<<if $PC.skill.warfare > 60>>
-		//You are an expert tactician.//
-	<<elseif $PC.skill.warfare > 30>>
-		//You have some skill as a tactician.//
-	<<elseif $PC.skill.warfare > 10>>
-		//You have basic knowledge as a tactician.//
-	<<else>>
-		//You have no knowledge as a tactician.//
-	<</if>>
-	<<if $personalAttention == "warfare">>
-		You are training in tactics.
-	<<elseif $PC.skill.warfare < 100 && $PC.actualAge < $IsPastPrimePC>>
-		[[Hire a mercenary to train you in warfare|Main][$personalAttention = "warfare"]]
-	<</if>>
-<</if>>
-<br>
-<<if $PC.skill.slaving >= 100>>
-	//You are a master slaver.//
-<<else>>
-	<<if $PC.skill.slaving > 60>>
-		//You are an expert slaver.//
-	<<elseif $PC.skill.slaving > 30>>
-		//You have some skill as a slaver.//
-	<<elseif $PC.skill.slaving > 10>>
-		//You have basic knowledge as a slaver.//
-	<<else>>
-		//You have no knowledge as a slaver.//
-	<</if>>
-	<<if $personalAttention == "slaving">>
-		You are training in slaving.
-	<<elseif $PC.skill.slaving < 100 && $PC.actualAge < $IsPastPrimePC>>
-		[[Hire a slaver to train you in slaving|Main][$personalAttention = "slaving"]]
-	<</if>>
-<</if>>
-<br>
-<<if $PC.skill.engineering >= 100>>
-	//You are a master arcology engineer.//
-<<else>>
-	<<if $PC.skill.engineering > 60>>
-		//You are an expert arcology engineer.//
-	<<elseif $PC.skill.engineering > 30>>
-		//You have some skill as an arcology engineer.//
-	<<elseif $PC.skill.engineering > 10>>
-		//You have basic knowledge as an arcology engineer.//
-	<<else>>
-		//You have no knowledge as an arcology engineer.//
-	<</if>>
-	<<if $personalAttention == "engineering">>
-		You are training in arcology engineering.
-	<<elseif $PC.skill.engineering < 100 && $PC.actualAge < $IsPastPrimePC>>
-		[[Hire an engineer to train you in engineering|Main][$personalAttention = "engineering"]]
-	<</if>>
-<</if>>
-<br>
-<<if $PC.skill.medicine >= 100>>
-	//You are a master surgeon.//
-<<else>>
-	<<if $PC.skill.medicine > 60>>
-		//You are an expert surgeon.//
-	<<elseif $PC.skill.medicine > 30>>
-		//You have some skill as a surgeon.//
-	<<elseif $PC.skill.medicine > 10>>
-		//You have basic knowledge as a surgeon.//
-	<<else>>
-		//You have no knowledge as a surgeon.//
-	<</if>>
-	<<if $personalAttention == "medicine">>
-		You are training in slave surgery.
-	<<elseif $PC.skill.medicine < 100 && $PC.actualAge < $IsPastPrimePC>>
-		[[Hire a doctor to train you in medicine|Main][$personalAttention = "medicine"]]
-	<</if>>
-<</if>>
-<br>
-<<if $PC.skill.hacking >= 100>>
-	//You are a master hacker.//
-<<else>>
-	<<if $PC.skill.hacking > 60>>
-		//You are an expert hacker.//
-	<<elseif $PC.skill.hacking > 30>>
-		//You have some skill as a hacker.//
-	<<elseif $PC.skill.hacking > 10>>
-		//You have basic knowledge as a hacker.//
-	<<else>>
-		//You have no knowledge as a hacker.//
-	<</if>>
-	<<if $personalAttention == "hacking">>
-		You are training in hacking and data manipulation.
-	<<elseif $PC.skill.hacking < 100 && $PC.actualAge < $IsPastPrimePC>>
-		[[Hire a specialist to train you in hacking|Main][$personalAttention = "hacking"]]
-	<</if>>
-<</if>>
-<</if>>
-<<if $PC.actualAge >= $IsInPrimePC && $PC.actualAge < $IsPastPrimePC && ($PC.skill.medicine < 100 || $PC.skill.engineering < 100 || $PC.skill.slaving < 100 || $PC.skill.warfare < 100 || $PC.skill.trading < 100 || $PC.skill.hacking < 100)>><br>//Training will cost <<print cashFormat(_cost)>> per week.//<</if>>
-<br><br>
-
-<<if typeof $personalAttention != "object" || $personalAttention.length == 0>>
-	You have not selected a slave for your personal attention.
-<<else>>
-	<<if $personalAttention.length > ($PC.skill.slaving >= 100 ? 2 : 1)>>
-		<<set $personalAttention.deleteAt(0)>>
-	<</if>>
-
-	<<for _i = 0; _i < $personalAttention.length; _i++>>
-		<<set _slave = getSlave($personalAttention[_i].ID)>>
-		/* duplicate check — should not happen if slaveSummary is doing its job */
-		<<if $personalAttention.map(function(s) { return s.ID; }).count(_slave.ID) > 1>>
-			<<set $personalAttention.deleteAt(_i), $personalAttention.deleteAt(_i), _i-->>
-			<<continue>>
-		<</if>>
-
-		<<if $personalAttention[_i].trainingRegimen == "undecided">>
-			<<if (_slave.health.condition < -20)>>
-				<<set $personalAttention[_i].trainingRegimen = "look after her">>
-			<<elseif (_slave.behavioralFlaw != "none")>>
-				<<if (_slave.devotion >= -20)>>
-					<<set $personalAttention[_i].trainingRegimen = "soften her behavioral flaw">>
-				<<else>>
-					<<set $personalAttention[_i].trainingRegimen = "fix her behavioral flaw">>
-				<</if>>
-			<<elseif (_slave.sexualFlaw != "none")>>
-				<<if (_slave.devotion >= -20)>>
-					<<set $personalAttention[_i].trainingRegimen = "soften her sexual flaw">>
-				<<else>>
-					<<set $personalAttention[_i].trainingRegimen = "fix her sexual flaw">>
-				<</if>>
-			<<elseif (_slave.fetishKnown != 1)>>
-				<<set $personalAttention[_i].trainingRegimen = "explore her sexuality">>
-			<<elseif (_slave.devotion <= 20) && (_slave.trust >= -20)>>
-				<<set $personalAttention[_i].trainingRegimen = "break her will">>
-			<<else>>
-				<<set $personalAttention[_i].trainingRegimen = "build her devotion">>
-			<</if>>
-		<</if>>
-
-		<<capture _slave, _i>>
-
-		<<if _i > 0>><br><br><</if>>
-
-		<<run App.Utils.setLocalPronouns(_slave)>>
-
-		You will give <span class='slave-name'><<= SlaveFullName(_slave)>></span> your personal attention this week.
-		<<link "Clear" "Personal Attention Select">> <<set $personalAttention.deleteAt(_i)>> <</link>>
-		<br>Your training will seek to <<span "training"+_i>><strong><<print $personalAttention[_i].trainingRegimen.replace("her", $his)>></strong><</span>>.
-
-		<br>Change training objective:
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		<<if (_slave.devotion <= 20) && (_slave.trust >= -20)>>
-			<<link "Break $his will">><<set $personalAttention[_i].trainingRegimen = "break her will">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			| <<link "Use enhanced breaking techniques">><<set $personalAttention[_i].trainingRegimen = "harshly break her will">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<<else>>
-			Current devotion: <<includeDOM App.UI.personalAttentionDevotionText(_slave)>>
-			<<link "Build">><<set $personalAttention[_i].trainingRegimen = "build her devotion">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		<<if _slave.fetishKnown == 0 || _slave.attrKnown == 0>>
-			<<link "Explore $his sexuality and fetishes">><<set $personalAttention[_i].trainingRegimen = "explore her sexuality">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<<else>>
-			//You already understand $his sexuality//
-		<</if>>
-
-		<<if (_slave.behavioralFlaw != "none")>>
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-			Current behavioral flaw: <span class='red'><<= capFirstChar(_slave.behavioralFlaw)>>.</span>
-			<<link "Remove">><<set $personalAttention[_i].trainingRegimen = "fix her behavioral flaw">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<<if (_slave.devotion < -20)>>
-				| //$He must be broken before $his flaws can be softened//
-			<<else>>
-				| <<link "Soften">><<set $personalAttention[_i].trainingRegimen = "soften her behavioral flaw">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-		<</if>>
-
-		<<if (_slave.sexualFlaw != "none")>>
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-			Current sexual flaw: <span class='red'><<= capFirstChar(_slave.sexualFlaw)>>.</span>
-			<<link "Remove">><<set $personalAttention[_i].trainingRegimen = "fix her sexual flaw">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<<if (_slave.devotion < -20)>>
-				<<if (_slave.behavioralFlaw == "none")>>
-				| //$He must be broken before $his flaws can be softened//
-				<</if>>
-			<<elseif ["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "self hating"].includes(_slave.sexualFlaw)>>
-				| //Paraphilias cannot be softened//
-			<<else>>
-				| <<link "Soften">><<set $personalAttention[_i].trainingRegimen = "soften her sexual flaw">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-		<</if>>
-
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		<<if (_slave.devotion <= 20) && (_slave.trust >= -20)>>
-			//$He's too disobedient to learn sex skills//
-		<<elseif _slave.skill.anal >= 100 && _slave.skill.oral >= 100 && _slave.skill.whoring >= 30 && _slave.skill.entertainment >= 30>>
-			<<if _slave.skill.vaginal >= 100 && _slave.vagina > -1>>
-				//$He knows all the skills you can teach//
-			<<elseif _slave.dick == 0 && _slave.scrotum == 0 && _slave.vagina == -1>>
-				//$He knows all the skills you can teach a null slave//
-			<<elseif _slave.dick > 0 && _slave.balls == 0>>
-				//$He knows all the skills you can teach a gelded slave//
-			<<elseif _slave.dick > 0 && _slave.boobs > 300 && _slave.vagina == -1>>
-				//$He knows all the skills you can teach a shemale slave//
-			<<else>>
-				<<link "Teach $him">><<set $personalAttention[_i].trainingRegimen = "learn skills">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-		<<else>>
-			<<link "Teach $him">><<set $personalAttention[_i].trainingRegimen = "learn skills">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		Current health: <<includeDOM App.UI.personalAttentionHealthText(_slave)>>
-		<<link "Care for $him">><<set $personalAttention[_i].trainingRegimen = "look after her">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		//Inducing flaws is difficult and bad for slaves' obedience.//
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		Induce a behavioral flaw:
-		<<if _slave.behavioralQuirk != "confident" && _slave.behavioralFlaw != "arrogant">>
-			<<link "Arrogance">><<set $personalAttention[_i].trainingRegimen = "induce arrogance">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.behavioralQuirk != "cutting" && _slave.behavioralFlaw != "bitchy">>
-			| <<link "Bitchiness">><<set $personalAttention[_i].trainingRegimen = "induce bitchiness">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.behavioralQuirk != "funny" && _slave.behavioralFlaw != "odd">>
-			| <<link "Odd behavior">><<set $personalAttention[_i].trainingRegimen = "induce odd behavior">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.behavioralQuirk != "adores women" && _slave.behavioralFlaw != "hates men">>
-			| <<link "Hatred of men">><<set $personalAttention[_i].trainingRegimen = "induce hatred of men">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.behavioralQuirk != "adores men" && _slave.behavioralFlaw != "hates women">>
-			| <<link "Hatred of women">><<set $personalAttention[_i].trainingRegimen = "induce hatred of women">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.behavioralQuirk != "fitness" && _slave.behavioralFlaw != "gluttonous">>
-			| <<link "Gluttony">><<set $personalAttention[_i].trainingRegimen = "induce gluttony">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.behavioralQuirk != "insecure" && _slave.behavioralFlaw != "anorexic">>
-			| <<link "Anorexia">><<set $personalAttention[_i].trainingRegimen = "induce anorexia">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.behavioralQuirk != "sinful" && _slave.behavioralFlaw != "devout">>
-			| <<link "Religious devotion">><<set $personalAttention[_i].trainingRegimen = "induce religious devotion">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.behavioralQuirk != "advocate" && _slave.behavioralFlaw != "liberated">>
-			| <<link "Liberation">><<set $personalAttention[_i].trainingRegimen = "induce liberation">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		Induce a sexual flaw:
-		<<if _slave.sexualQuirk != "gagfuck queen" && _slave.sexualFlaw != "hates oral">>
-			<<link "Hatred of oral">><<set $personalAttention[_i].trainingRegimen = "induce hatred of oral">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.sexualQuirk != "painal queen" && _slave.sexualFlaw != "hates anal">>
-			| <<link "Hatred of anal">><<set $personalAttention[_i].trainingRegimen = "induce hatred of anal">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.sexualQuirk != "strugglefuck queen" && _slave.sexualFlaw != "hates penetration">>
-			| <<link "Hatred of penetration">><<set $personalAttention[_i].trainingRegimen = "induce hatred of penetration">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.sexualQuirk != "tease" && _slave.sexualFlaw != "shamefast">>
-			| <<link "Shame">><<set $personalAttention[_i].trainingRegimen = "induce shame">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.sexualQuirk != "romantic" && _slave.sexualFlaw != "idealistic">>
-			| <<link "Sexual idealism">><<set $personalAttention[_i].trainingRegimen = "induce sexual idealism">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.sexualQuirk != "perverted" && _slave.sexualFlaw != "repressed">>
-			| <<link "Sexual repression">><<set $personalAttention[_i].trainingRegimen = "induce sexual repression">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.sexualQuirk != "caring" && _slave.sexualFlaw != "apathetic">>
-			| <<link "Sexual apathy">><<set $personalAttention[_i].trainingRegimen = "induce sexual apathy">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.sexualQuirk != "unflinching" && _slave.sexualFlaw != "crude">>
-			| <<link "Crudity">><<set $personalAttention[_i].trainingRegimen = "induce crudity">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.sexualQuirk != "size queen" && _slave.sexualFlaw != "judgemental">>
-			| <<link "Judgment">><<set $personalAttention[_i].trainingRegimen = "induce judgement">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-		<</if>>
-		<<if _slave.fetishStrength > 95>>
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-			Induce a paraphilia:
-			<<if _slave.fetish == "cumslut" && _slave.sexualFlaw != "cum addict">>
-				| <<link "Cum addiction">><<set $personalAttention[_i].trainingRegimen = "induce cum addiction">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-			<<if _slave.fetish == "buttslut" && _slave.sexualFlaw != "anal addict">>
-				| <<link "Anal addiction">><<set $personalAttention[_i].trainingRegimen = "induce anal addiction">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-			<<if _slave.fetish == "humiliation" && _slave.sexualFlaw != "attention whore">>
-				| <<link "Attention whoring">><<set $personalAttention[_i].trainingRegimen = "induce attention whoring">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-			<<if _slave.fetish == "boobs" && _slave.sexualFlaw != "breast growth">>
-				| <<link "Breast growth obsession">><<set $personalAttention[_i].trainingRegimen = "induce breast growth obsession">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-			<<if _slave.fetish == "dom" && _slave.sexualFlaw != "abusive">>
-				| <<link "Abusiveness">><<set $personalAttention[_i].trainingRegimen = "induce abusiveness">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-			<<if _slave.fetish == "sadist" && _slave.sexualFlaw != "malicious">>
-				| <<link "Maliciousness">><<set $personalAttention[_i].trainingRegimen = "induce maliciousness">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-			<<if _slave.fetish == "masochist" && _slave.sexualFlaw != "self hatred">>
-				| <<link "Self hatred">><<set $personalAttention[_i].trainingRegimen = "induce self hatred">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-			<<if _slave.fetish == "submissive" && _slave.sexualFlaw != "neglectful">>
-				| <<link "Sexual self neglect">><<set $personalAttention[_i].trainingRegimen = "induce sexual self neglect">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-			<<if _slave.fetish == "pregnancy" && _slave.sexualFlaw != "breeder">>
-				| <<link "Breeding obsession">><<set $personalAttention[_i].trainingRegimen = "induce breeding obsession">><<replace `"#training"+_i`>><strong>$personalAttention[_i].trainingRegimen</strong><</replace>><</link>>
-			<</if>>
-		<<else>>
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-			//Paraphilias can only be induced from a strong fetish//
-		<</if>>
-		<</capture>> /* _slave, _i */
-	<</for>>
-<</if>> /* CLOSES NO SLAVE SELECTED */
-
-<br><br>__Select a slave to train:__ <<if $PC.skill.slaving >= 100>>//Your @@.springgreen;slaving experience@@ allows you to divide your attention between more than one slave each week, with slightly reduced efficiency//<</if>>
-<<includeDOM App.UI.SlaveList.slaveSelectionList(
-		s => assignmentVisible(s) && s.fuckdoll === 0,
-		s => App.UI.DOM.link(SlaveFullName(s), (id) => {App.UI.selectSlaveForPersonalAttention(id); }, s.ID)
-	)>>
\ No newline at end of file