diff --git a/src/npc/generate/newSlaveIntro.js b/src/npc/generate/newSlaveIntro.js
index c30f98f32aba47512e6cd03f82298d631dc70d65..3382b650eb3b52cee6acdd73ec56733b78f00f5f 100644
--- a/src/npc/generate/newSlaveIntro.js
+++ b/src/npc/generate/newSlaveIntro.js
@@ -1,8 +1,9 @@
 /**
  *
  * @param {App.Entity.SlaveState} slave
+ * @param {App.Entity.SlaveState} [slave2]
  */
-App.UI.newSlaveIntro = function(slave) {
+App.UI.newSlaveIntro = function(slave, slave2 = V.eventSlave) {
 	const desc = SlaveTitle(slave);
 	const {title: Master} = getEnunciation(slave);
 	const {
@@ -228,12 +229,12 @@ App.UI.newSlaveIntro = function(slave) {
 				slave.origRace = slave.race;
 			}
 			if (slave.race !== slave.origRace) {
-				r.push(`A blood test reveals that ${he} was originally ${slave.origRace}, not slave.race ${(V.PC.skill.medicine >= 50 || V.PC.skill.slaving >= 50) ? `, just as you suspected`:``}.`);
+				r.push(`A blood test reveals that ${he} was originally ${slave.origRace}, not slave.race ${(V.PC.skill.medicine >= 50 || V.PC.skill.slaving >= 50) ? `, just as you suspected` : ``}.`);
 			}
 		}
 		if (slave.skin !== slave.origSkin) {
 			if (slave.skin !== "sun tanned" && slave.skin !== "spray tanned") {
-				r.push(`An epidermis scan reveals that ${his} skin was originally ${slave.origSkin}, not slave.skin${(V.PC.skill.medicine >= 75 || V.PC.skill.slaving >= 75)?`, just as you suspected`:``}.`);
+				r.push(`An epidermis scan reveals that ${his} skin was originally ${slave.origSkin}, not slave.skin${(V.PC.skill.medicine >= 75 || V.PC.skill.slaving >= 75) ? `, just as you suspected` : ``}.`);
 			}
 		}
 
@@ -421,10 +422,10 @@ App.UI.newSlaveIntro = function(slave) {
 		if (V.PC.boobs >= 1400) {
 			if (slave.fetish === "boobs") {
 				if (slave.fetishKnown === 0) {
-					r.push(`${He} keeps stealing glances at your huge rack${canAchieveErection(slave)?`, ${his} dick rapidly hardening`:``}. You stretch ${(canSee(slave)) ? `, giving ${him} a fantastic view of your breasts,`: ``} before circling around behind ${him} and cupping ${his} chest. Between your tits against ${his} back, and how teasingly big you are pretending ${his} breasts will be, ${he} can't contain ${himself}; ${he} cums from overstimulation, completely pinning ${him} <span class="green">as a breast fetishist!</span>`);
+					r.push(`${He} keeps stealing glances at your huge rack${canAchieveErection(slave) ? `, ${his} dick rapidly hardening` : ``}. You stretch ${(canSee(slave)) ? `, giving ${him} a fantastic view of your breasts,` : ``} before circling around behind ${him} and cupping ${his} chest. Between your tits against ${his} back, and how teasingly big you are pretending ${his} breasts will be, ${he} can't contain ${himself}; ${he} cums from overstimulation, completely pinning ${him} <span class="green">as a breast fetishist!</span>`);
 					slave.fetishKnown = 1;
 				} else {
-					r.push(`${He} keeps stealing glances at your huge rack${(canAchieveErection(slave)) ? `, ${his} dick rapidly hardening`:``}. As you inspect ${him}, you take care to keep "accidentally" bumping ${him} with your tits, before "tripping" and landing with ${his} face buried in your chest. ${He} is practically bursting with lust by the end and <span class="hotpink">eager to please you</span> so ${he} can be close to those boobs.`);
+					r.push(`${He} keeps stealing glances at your huge rack${(canAchieveErection(slave)) ? `, ${his} dick rapidly hardening` : ``}. As you inspect ${him}, you take care to keep "accidentally" bumping ${him} with your tits, before "tripping" and landing with ${his} face buried in your chest. ${He} is practically bursting with lust by the end and <span class="hotpink">eager to please you</span> so ${he} can be close to those boobs.`);
 					slave.devotion += 5;
 				}
 			}
@@ -873,7 +874,7 @@ App.UI.newSlaveIntro = function(slave) {
 						linkName: `Brand ${him} on the ${brandTarget} to introduce ${him} to life as a slave whore`,
 						result: function(slave) {
 							const r = [];
-							r.push(`You tell ${him} you'll be marking ${him} as one of your working ${girl}s. ${He} looks resigned as ${he} follows you to the body modification studio, and lets you strap ${him} down with ${his} ${brandTarget} bare. ${He} understands what's coming. You've got ${him} positioned just right${canDoAnal(slave) ? `, so your cock slides up ${his} experienced asshole easily`:``}. You bring the brand in close so ${he} can feel the radiated heat, which breaks through even ${his} jaded exterior and makes ${him} tighten with fear. When you're close, you apply the brand${canDoAnal(slave) ? `, making the poor whore cinch ${his} sphincter down hard in agony, bringing you to climax`:``}. ${He} knows you know how to <span class="gold">apply pain,</span> now, and ${he} <span class="mediumorchid">learns to dislike you</span> even as ${his} <span class="red">wound</span> heals.`);
+							r.push(`You tell ${him} you'll be marking ${him} as one of your working ${girl}s. ${He} looks resigned as ${he} follows you to the body modification studio, and lets you strap ${him} down with ${his} ${brandTarget} bare. ${He} understands what's coming. You've got ${him} positioned just right${canDoAnal(slave) ? `, so your cock slides up ${his} experienced asshole easily` : ``}. You bring the brand in close so ${he} can feel the radiated heat, which breaks through even ${his} jaded exterior and makes ${him} tighten with fear. When you're close, you apply the brand${canDoAnal(slave) ? `, making the poor whore cinch ${his} sphincter down hard in agony, bringing you to climax` : ``}. ${He} knows you know how to <span class="gold">apply pain,</span> now, and ${he} <span class="mediumorchid">learns to dislike you</span> even as ${his} <span class="red">wound</span> heals.`);
 							if (canDoAnal(slave)) {
 								r.push(VCheck.Anal());
 							}
@@ -1256,7 +1257,7 @@ App.UI.newSlaveIntro = function(slave) {
 						linkName: `Make sure ${he} enjoys ${his} first anal sex`,
 						result: function(slave) {
 							const r = [];
-							r.push(`You introduce ${him} to obedience and proper manners regarding ${his} ${WrittenMaster(slave)} before sending ${him} off for a physical. That night, ${he}'s returned to your room, and finds you doing business on a tablet in bed. ${He} looks doubtful, but obeys when you direct ${him} to get into bed${(V.PC.dick === 0) ? `, even after ${he} realizes you're wearing a strap-on`: ``}. You turn out the light and spoon ${him} from behind, kissing ${his} neck and ears, cupping ${his} swollen breasts, and running your hands across ${his} pregnant belly with its taut ${slave.skin} skin. ${He}'s awkward at first but ${his} body responds to the tenderness. Before long ${he}'s humping ${his} pussy back and forth against`);
+							r.push(`You introduce ${him} to obedience and proper manners regarding ${his} ${WrittenMaster(slave)} before sending ${him} off for a physical. That night, ${he}'s returned to your room, and finds you doing business on a tablet in bed. ${He} looks doubtful, but obeys when you direct ${him} to get into bed${(V.PC.dick === 0) ? `, even after ${he} realizes you're wearing a strap-on` : ``}. You turn out the light and spoon ${him} from behind, kissing ${his} neck and ears, cupping ${his} swollen breasts, and running your hands across ${his} pregnant belly with its taut ${slave.skin} skin. ${He}'s awkward at first but ${his} body responds to the tenderness. Before long ${he}'s humping ${his} pussy back and forth against`);
 							if (V.PC.dick !== 0) {
 								r.push(`your cock.`);
 							} else {
@@ -1386,67 +1387,65 @@ App.UI.newSlaveIntro = function(slave) {
 				case "$He was recruited into your service by $his older sibling.":
 					choice({
 						get introText() {
-							const {sisterU} = getNonlocalPronouns(V.seeDicks).appendSuffix('U');
-							return `and since ${he} was recruited by ${his} older ${sisterU}...`;
+							const {sister2} = getPronouns(slave2).appendSuffix('2');
+							return `and since ${he} was recruited by ${his} older ${sister2}...`;
 						},
 						get linkName() {
-							const {sisterU} = getNonlocalPronouns(V.seeDicks).appendSuffix('U');
-							return `Use ${his} big ${sisterU} as an example`;
+							const {sister2} = getPronouns(slave2).appendSuffix('2');
+							return `Use ${his} big ${sister2} as an example`;
 						},
 						result: function(slave) {
 							const r = [];
-							const {He2, he2, his2, him2, sister2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2');
-							r.push(`Your new slave appears`);
+							const {He2, he2, his2, him2} = getPronouns(slave2).appendSuffix('2');
+							r.push(`Your new slave appears `);
 							if (slave.devotion < -10) {
 								r.push(`reluctant to assume ${his} new duties.`);
 							} else {
 								r.push(`unsure what ${his} new duties are.`);
 							}
-							r.push(`You gesture towards ${slave.slaveName}. ${He2} is`);
-							if (slave.intelligence + slave.intelligenceImplant > 15) {
+							r.push(`You gesture towards ${slave2.slaveName}. ${He2} is `);
+							if (slave2.intelligence + slave2.intelligenceImplant > 15) {
 								r.push(`bright enough`);
-							} else if (((slave.skill.vaginal + slave.skill.anal + slave.skill.oral) > 100)) {
+							} else if ((slave2.skill.vaginal + slave2.skill.anal + slave2.skill.oral) > 100) {
 								r.push(`skilled enough`);
 							} else {
 								r.push(`obedient enough`);
 							}
-							r.push(`to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a`);
-							if (slave.skill.entertainment >= 100) {
+							r.push(` to understand you mean a demonstration is in order. ${slave2.slaveName} starts things off with a `);
+							if (slave2.skill.entertainment >= 100) {
 								r.push(`masterful`);
-							} else if (slave.skill.entertainment > 10) {
+							} else if (slave2.skill.entertainment > 10) {
 								r.push(`skillful`);
 							} else {
 								r.push(`passable`);
 							}
-							r.push(`striptease, culminating in ${him2}`);
-							if (slave.anus > 0 && slave.fetish !== "cumslut") {
+							r.push(` striptease, culminating in ${him2} `);
+							if (slave2.anus > 0 && slave2.fetish !== "cumslut") {
 								r.push(`bending over`);
 							} else {
 								r.push(`kneeling`);
 							}
-							r.push(`in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your`);
-							if (slave.energy > 95) {
-								r.push(`seed like the slut ${he2} is.`);
-							} else if (slave.skill.whoring > 30) {
-								r.push(`seed like the whore ${he2} is.`);
-							} else if ((slave.assignment === "serve in the master suite") || (slave.assignment === "please you")) {
-								r.push(`seed like the fucktoy ${he2} is.`);
-							} else {
-								r.push(`seed.`);
+							r.push(` in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your seed`);
+							if (slave2.energy > 95) {
+								r.push(` like the slut ${he2} is`);
+							} else if (slave2.skill.whoring > 30) {
+								r.push(` like the whore ${he2} is`);
+							} else if ((slave2.assignment === "serve in the master suite") || (slave2.assignment === "please you")) {
+								r.push(` like the fucktoy ${he2} is`);
 							}
-							r.push(`As you finish, ${he2}`);
-							if (slave.fetish === "cumslut") {
-								r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again.`);
-							} else if ((slave.fetish === "buttslut") || (slave.fetish === "submissive")) {
-								r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white.`);
+							r.push(`. As you finish, ${he2} `);
+							if (slave2.fetish === "cumslut") {
+								r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again`);
+							} else if ((slave2.fetish === "buttslut") || (slave2.fetish === "submissive")) {
+								r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white`);
 							} else {
-								r.push(`thanks you.`);
+								r.push(`thanks you`);
 							}
-							r.push(`Witnessing this display of servitude from ${his} big ${sister2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`);
+							r.push(`. Witnessing this display of servitude from ${his} big _sister2 <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`);
 							if (slave.anus > 0 && slave.fetish !== "cumslut") {
-								actX(slave, "anal");
+								actX(slave2, "anal");
 							} else {
-								actX(slave, "oral");
+								actX(slave2, "oral");
 							}
 							slave.devotion += 4;
 							slave.trust += 4;
@@ -1457,67 +1456,64 @@ App.UI.newSlaveIntro = function(slave) {
 				case "$He was recruited into your service by $his younger sibling.":
 					choice({
 						get introText() {
-							const {sisterU} = getNonlocalPronouns(V.seeDicks).appendSuffix('U');
-							return `and since ${he} was recruited by ${his} younger ${sisterU}...`;
+							const {sister2} = getPronouns(slave2).appendSuffix('2');
+							return `and since ${he} was recruited by ${his} younger ${sister2}...`;
 						},
 						get linkName() {
-							const {sisterU} = getNonlocalPronouns(V.seeDicks).appendSuffix('U');
-							return `"Use ${his} little ${sisterU} as an example`;
+							const {sister2} = getPronouns(slave2).appendSuffix('2');
+							return `"Use ${his} little ${sister2} as an example`;
 						},
 						result: function(slave) {
 							const r = [];
-							const {He2, he2, his2, him2, sister2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2');
-							r.push(`Your new slave appears`);
+							const {He2, he2, his2, him2} = getPronouns(slave2).appendSuffix('2');
+							r.push(`Your new slave appears `);
 							if (slave.devotion < -10) {
-								r.push(`reluctant to assume ${his} new duties.`);
+								r.push(`reluctant to assume ${his} new duties`);
 							} else {
-								r.push(`unsure what ${his} new duties are.`);
+								r.push(`unsure what ${his} new duties are`);
 							}
-							r.push(`You gesture towards ${slave.slaveName}. ${He2} is`);
-							if (slave.intelligence + slave.intelligenceImplant > 15) {
+							r.push(`. You gesture towards ${slave2.slaveName}. ${He2} is `);
+							if (slave2.intelligence + slave2.intelligenceImplant > 15) {
 								r.push(`bright enough`);
-							} else if (((slave.skill.vaginal + slave.skill.anal + slave.skill.oral) > 100)) {
+							} else if (((slave2.skill.vaginal + slave2.skill.anal + slave2.skill.oral) > 100)) {
 								r.push(`skilled enough`);
 							} else {
 								r.push(`obedient enough`);
 							}
-							r.push(`to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a`);
-							if (slave.skill.entertainment >= 100) {
+							r.push(` to understand you mean a demonstration is in order. ${slave2.slaveName} starts things off with a `);
+							if (slave2.skill.entertainment >= 100) {
 								r.push(`masterful`);
-							} else if (slave.skill.entertainment > 10) {
+							} else if (slave2.skill.entertainment > 10) {
 								r.push(`skillful`);
 							} else {
 								r.push(`passable`);
 							}
-							r.push(`striptease, culminating in ${him2}`);
-							if (slave.anus > 0 && slave.fetish !== "cumslut") {
+							r.push(` striptease, culminating in ${him2} `);
+							if (slave2.anus > 0 && slave2.fetish !== "cumslut") {
 								r.push(`bending over`);
 							} else {
 								r.push(`kneeling`);
 							}
-							r.push(`in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your`);
-							if (slave.energy > 95) {
-								r.push(`seed like the slut ${he2} is.`);
-							} else if (slave.skill.whoring > 30) {
-								r.push(`seed like the whore ${he2} is.`);
-							} else if ((slave.assignment === "serve in the master suite") || (slave.assignment === "please you")) {
-								r.push(`seed like the fucktoy ${he2} is.`);
-							} else {
-								r.push(`seed.`);
+							r.push(` in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your seed`);
+							if (slave2.energy > 95) {
+								r.push(` like the slut ${he2} is`);
+							} else if (slave2.skill.whoring > 30) {
+								r.push(` like the whore ${he2} is`);
+							} else if ((slave2.assignment === "serve in the master suite") || (slave2.assignment === "please you")) {
+								r.push(` like the fucktoy ${he2} is`);
 							}
-							r.push(`As you finish, ${he2}`);
-							if (slave.fetish === "cumslut") {
-								r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again.`);
-							} else if ((slave.fetish === "buttslut") || (slave.fetish === "submissive")) {
-								r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white.`);
+							r.push(`. As you finish, ${he2} `);
+							if (slave2.fetish === "cumslut") {
+								r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again`);
+							} else if ((slave2.fetish === "buttslut") || (slave2.fetish === "submissive")) {
+								r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white`);
 							} else {
-								r.push(`thanks you.`);
+								r.push(`thanks you`);
 							}
-							r.push(`Witnessing this display of servitude from ${his} little ${sister2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`);
-							if (slave.anus > 0 && slave.fetish !== "cumslut") {
-								actX(slave, "anal");
+							r.push(`. Witnessing this display of servitude from ${his} little _sister2 <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`); if (slave.anus > 0 && slave.fetish !== "cumslut") {
+								actX(slave2, "anal");
 							} else {
-								actX(slave, "oral");
+								actX(slave2, "oral");
 							}
 							slave.devotion += 4;
 							slave.trust += 4;
@@ -1529,63 +1525,61 @@ App.UI.newSlaveIntro = function(slave) {
 					choice({
 						introText: `and since ${he} was recruited by ${his} twin...`,
 						get linkName() {
-							const {sisterU} = getNonlocalPronouns(V.seeDicks).appendSuffix('U');
-							return `"Use ${his} ${sisterU} as an example`;
+							const {sister2} = getPronouns(slave2).appendSuffix('2');
+							return `"Use ${his} ${sister2} as an example`;
 						},
 						result: function(slave) {
 							const r = [];
-							const {He2, he2, his2, him2, sister2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2');
-							r.push(`Your new slave appears`);
+							const {He2, he2, his2, him2} = getPronouns(slave2).appendSuffix('2');
+							r.push(`Your new slave appears `);
 							if (slave.devotion < -10) {
 								r.push(`reluctant to assume ${his} new duties.`);
 							} else {
 								r.push(`unsure what ${his} new duties are.`);
 							}
-							r.push(`You gesture towards ${slave.slaveName}. ${He2} is`);
-							if (slave.intelligence + slave.intelligenceImplant > 15) {
+							r.push(`You gesture towards ${slave2.slaveName}. ${He2} is `);
+							if (slave2.intelligence + slave2.intelligenceImplant > 15) {
 								r.push(`bright enough`);
-							} else if ((slave.skill.vaginal + slave.skill.anal + slave.skill.oral) > 100) {
+							} else if (((slave2.skill.vaginal + slave2.skill.anal + slave2.skill.oral) > 100)) {
 								r.push(`skilled enough`);
 							} else {
 								r.push(`obedient enough`);
 							}
-							r.push(`to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a`);
-							if (slave.skill.entertainment >= 100) {
+							r.push(` to understand you mean a demonstration is in order. ${slave2.slaveName} starts things off with a `);
+							if (slave2.skill.entertainment >= 100) {
 								r.push(`masterful`);
-							} else if (slave.skill.entertainment > 10) {
+							} else if (slave2.skill.entertainment > 10) {
 								r.push(`skillful`);
 							} else {
 								r.push(`passable`);
 							}
-							r.push(`striptease, culminating in ${him2}`);
-							if (slave.anus > 0 && slave.fetish !== "cumslut") {
+							r.push(` striptease, culminating in ${him2} `);
+							if (slave2.anus > 0 && slave2.fetish !== "cumslut") {
 								r.push(`bending over`);
 							} else {
 								r.push(`kneeling`);
 							}
-							r.push(`in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your`);
-							if (slave.energy > 95) {
-								r.push(`seed like the slut ${he2} is.`);
-							} else if (slave.skill.whoring > 30) {
-								r.push(`seed like the whore ${he2} is.`);
-							} else if ((slave.assignment === "serve in the master suite") || (slave.assignment === "please you")) {
-								r.push(`seed like the fucktoy ${he2} is.`);
-							} else {
-								r.push(`seed.`);
+							r.push(` in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your seed`);
+							if (slave2.energy > 95) {
+								r.push(` like the slut ${he2} is`);
+							} else if (slave2.skill.whoring > 30) {
+								r.push(` like the whore ${he2} is`);
+							} else if ((slave2.assignment === "serve in the master suite") || (slave2.assignment === "please you")) {
+								r.push(` like the fucktoy ${he2} is`);
 							}
-							r.push(`As you finish, ${he2}`);
-							if (slave.fetish === "cumslut") {
+							r.push(`. As you finish, ${he2} `);
+							if (slave2.fetish === "cumslut") {
 								r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again`);
-							} else if ((slave.fetish === "buttslut") || (slave.fetish === "submissive")) {
-								r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white.`);
+							} else if ((slave2.fetish === "buttslut") || (slave2.fetish === "submissive")) {
+								r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white`);
 							} else {
-								r.push(`thanks you.`);
+								r.push(`thanks you`);
 							}
-							r.push(`Witnessing this display of servitude from ${his} twin ${sister2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`);
+							r.push(`. Witnessing this display of servitude from ${his} twin _sister2 <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`);
 							if (slave.anus > 0 && slave.fetish !== "cumslut") {
-								actX(slave, "anal");
+								actX(slave2, "anal");
 							} else {
-								actX(slave, "oral");
+								actX(slave2, "oral");
 							}
 							slave.devotion += 4;
 							slave.trust += 4;
@@ -1599,58 +1593,56 @@ App.UI.newSlaveIntro = function(slave) {
 						linkName: `Use ${his} parent as an example`,
 						result: function(slave) {
 							const r = [];
-							const {He2, he2, his2, him2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2');
-							r.push(`You gesture towards ${slave.slaveName}. ${He2} is`);
-							if (slave.intelligence + slave.intelligenceImplant > 15) {
+							const {He2, he2, his2, him2} = getPronouns(slave2).appendSuffix('2');
+							r.push(`You gesture towards ${slave2.slaveName}. ${He2} is `);
+							if (slave2.intelligence + slave2.intelligenceImplant > 15) {
 								r.push(`bright enough`);
-							} else if (((slave.skill.vaginal + slave.skill.anal + slave.skill.oral) > 100)) {
+							} else if ((slave2.skill.vaginal + slave2.skill.anal + slave2.skill.oral) > 100) {
 								r.push(`skilled enough`);
 							} else {
 								r.push(`obedient enough`);
 							}
-							r.push(`to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a`);
-							if (slave.skill.entertainment >= 100) {
+							r.push(` to understand you mean a demonstration is in order. ${slave2.slaveName} starts things off with a `);
+							if (slave2.skill.entertainment >= 100) {
 								r.push(`masterful`);
-							} else if (slave.skill.entertainment > 10) {
+							} else if (slave2.skill.entertainment > 10) {
 								r.push(`skillful`);
 							} else {
 								r.push(`passable`);
 							}
-							r.push(`striptease, culminating in ${him2}`);
-							if (slave.anus > 0 && slave.fetish !== "cumslut") {
+							r.push(` striptease, culminating in ${him2} `);
+							if (slave2.anus > 0 && slave2.fetish !== "cumslut") {
 								r.push(`bending over`);
 							} else {
 								r.push(`kneeling`);
 							}
-							r.push(`in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your`);
-							if (slave.energy > 95) {
-								r.push(`seed like the slut ${he2} is.`);
-							} else if (slave.skill.whoring > 30) {
-								r.push(`seed like the whore ${he2} is.`);
-							} else if ((slave.assignment === "serve in the master suite") || (slave.assignment === "please you")) {
-								r.push(`seed like the fucktoy ${he2} is.`);
-							} else {
-								r.push(`seed.`);
+							r.push(` in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your seed`);
+							if (slave2.energy > 95) {
+								r.push(` like the slut ${he2} is`);
+							} else if (slave2.skill.whoring > 30) {
+								r.push(` like the whore ${he2} is`);
+							} else if ((slave2.assignment === "serve in the master suite") || (slave2.assignment === "please you")) {
+								r.push(` like the fucktoy ${he2} is`);
 							}
-							r.push(`As you finish, ${he2}`);
-							if (slave.fetish === "cumslut") {
+							r.push(`. As you finish, ${he2} `);
+							if (slave2.fetish === "cumslut") {
 								r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again`);
-							} else if ((slave.fetish === "buttslut") || (slave.fetish === "submissive")) {
-								r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white.`);
+							} else if ((slave2.fetish === "buttslut") || (slave2.fetish === "submissive")) {
+								r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white`);
 							} else {
-								r.push(`thanks you.`);
+								r.push(`thanks you`);
 							}
-							r.push(`Witnessing this display of servitude from ${his}`);
-							if (slave.mother === slave.ID) {
+							r.push(`. Witnessing this display of servitude from ${his} `);
+							if (slave.mother === slave2.ID) {
 								r.push(`mother`);
 							} else {
 								r.push(`father`);
 							}
-							r.push(`<span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`);
+							r.push(` <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`);
 							if (slave.anus > 0 && slave.fetish !== "cumslut") {
-								actX(slave, "anal");
+								actX(slave2, "anal");
 							} else {
-								actX(slave, "oral");
+								actX(slave2, "oral");
 							}
 							slave.devotion += 4;
 							slave.trust += 4;
@@ -1661,57 +1653,55 @@ App.UI.newSlaveIntro = function(slave) {
 				case "$He was recruited into your service by $his child.":
 					choice({
 						get introText() {
-							const {daughterU} = getNonlocalPronouns(V.seeDicks).appendSuffix('U');
-							return `and since ${he} was recruited by ${his} ${daughterU}...`;
+							const {daughter2} = getPronouns(slave2).appendSuffix('2');
+							return `and since ${he} was recruited by ${his} ${daughter2}...`;
 						},
 						get linkName() {
-							const {daughterU} = getNonlocalPronouns(V.seeDicks).appendSuffix('U');
-							return `Use ${his} ${daughterU} as an example`;
+							const {daughter2} = getPronouns(slave2).appendSuffix('2');
+							return `Use ${his} ${daughter2} as an example`;
 						},
 						result: function(slave) {
 							const r = [];
-							const {He2, he2, his2, him2, daughter2} = getNonlocalPronouns(V.seeDicks).appendSuffix('2');
-							r.push(`You gesture towards ${slave.slaveName}. ${He2} is`);
-							if (slave.intelligence + slave.intelligenceImplant > 15) {
+							const {He2, he2, his2, him2} = getPronouns(slave2).appendSuffix('2');
+							r.push(`You gesture towards ${slave2.slaveName}. ${He2} is `);
+							if (slave2.intelligence + slave2.intelligenceImplant > 15) {
 								r.push(`bright enough`);
-							} else if (((slave.skill.vaginal + slave.skill.anal + slave.skill.oral) > 100)) {
+							} else if (((slave2.skill.vaginal + slave2.skill.anal + slave2.skill.oral) > 100)) {
 								r.push(`skilled enough`);
 							} else {
 								r.push(`obedient enough`);
 							}
-							r.push(`to understand you mean a demonstration is in order. ${slave.slaveName} starts things off with a`);
-							if (slave.skill.entertainment >= 100) {
+							r.push(` to understand you mean a demonstration is in order. ${slave2.slaveName} starts things off with a `);
+							if (slave2.skill.entertainment >= 100) {
 								r.push(`masterful`);
-							} else if (slave.skill.entertainment > 10) {
+							} else if (slave2.skill.entertainment > 10) {
 								r.push(`skillful`);
 							} else {
 								r.push(`passable`);
 							}
-							r.push(`striptease, culminating in ${him2}`);
-							if (slave.anus > 0 && slave.fetish !== "cumslut") {
+							r.push(` striptease, culminating in ${him2} `);
+							if (slave2.anus > 0 && slave2.fetish !== "cumslut") {
 								r.push(`bending over`);
 							} else {
 								r.push(`kneeling`);
 							}
-							r.push(`in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your`);
-							if (slave.energy > 95) {
-								r.push(`seed like the slut ${he2} is.`);
-							} else if (slave.skill.whoring > 30) {
-								r.push(`seed like the whore ${he2} is.`);
-							} else if ((slave.assignment === "serve in the master suite") || (slave.assignment === "please you")) {
-								r.push(`seed like the fucktoy ${he2} is.`);
-							} else {
-								r.push(`seed.`);
+							r.push(` in front of you. ${He2} eagerly moans as you enter ${him2}, begging for your seed`);
+							if (slave2.energy > 95) {
+								r.push(` like the slut ${he2} is`);
+							} else if (slave2.skill.whoring > 30) {
+								r.push(` like the whore ${he2} is`);
+							} else if ((slave2.assignment === "serve in the master suite") || (slave2.assignment === "please you")) {
+								r.push(` like the fucktoy ${he2} is`);
 							}
-							r.push(`As you finish, ${he2}`);
-							if (slave.fetish === "cumslut") {
+							r.push(`. As you finish, ${he2} `);
+							if (slave2.fetish === "cumslut") {
 								r.push(`opens ${his2} mouth and savors your gift, thanking you once ${he2}'s swallowed enough to be able to talk again`);
-							} else if ((slave.fetish === "buttslut") || (slave.fetish === "submissive")) {
-								r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white.`);
+							} else if ((slave2.fetish === "buttslut") || (slave2.fetish === "submissive")) {
+								r.push(`collapses on the floor with ${his2} ass high in the air, thanking you for painting ${his2} hole white`);
 							} else {
-								r.push(`thanks you.`);
+								r.push(`thanks you`);
 							}
-							r.push(`Witnessing this display of servitude from ${his} ${daughter2} <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`);
+							r.push(`. Witnessing this display of servitude from ${his} _daughter2 <span class="hotpink">eases ${slave.slaveName} into ${his} new life,</span> and <span class="mediumaquamarine">gives ${him} hope</span> ${he} can find a place here.`);
 							if (slave.anus > 0 && slave.fetish !== "cumslut") {
 								actX(slave, "anal");
 							} else {
@@ -1735,7 +1725,7 @@ App.UI.newSlaveIntro = function(slave) {
 									if (V.PC.dick === 0) {
 										r.push(`fake`);
 									}
-									r.push(`cock down ${his} throat as far as it will go. Over the course of the next several hours, you ensure that ${he} understands the fine points of nonconsensual oral${slave.vagina > -1 ? `, vaginal,`: ``} and anal intercourse as intimately as possible. When you're finally too tired to continue,you unshackle ${his} <span class="red">bruised and bloody body</span> and ask ${him} what ${he} learned. ${His} voice hoarse from the same brutal fucking that has gaped ${his} <span class="lime">asshole</span> ${(slave.vagina > -1) ? `and <span class="lime">pussy</span>`: ``}, ${he} hesitantly replies that ${he} has <span class="hotpink">learned a great deal about true dominance,</span> before fainting on the spot from a mixture of total exhaustion and pure terror. You've taught your student well.`);
+									r.push(`cock down ${his} throat as far as it will go. Over the course of the next several hours, you ensure that ${he} understands the fine points of nonconsensual oral${slave.vagina > -1 ? `, vaginal,` : ``} and anal intercourse as intimately as possible. When you're finally too tired to continue,you unshackle ${his} <span class="red">bruised and bloody body</span> and ask ${him} what ${he} learned. ${His} voice hoarse from the same brutal fucking that has gaped ${his} <span class="lime">asshole</span> ${(slave.vagina > -1) ? `and <span class="lime">pussy</span>` : ``}, ${he} hesitantly replies that ${he} has <span class="hotpink">learned a great deal about true dominance,</span> before fainting on the spot from a mixture of total exhaustion and pure terror. You've taught your student well.`);
 									actX(slave, "oral", 15);
 									slave.anus = 2;
 									actX(slave, "anal", 15);
@@ -2132,7 +2122,7 @@ App.UI.newSlaveIntro = function(slave) {
 						} else {
 							r.push(`womb`);
 						}
-						r.push(`and ovaries are extracted${canSee(slave)?`before ${his} eyes`:``}.`);
+						r.push(`and ovaries are extracted${canSee(slave) ? `before ${his} eyes` : ``}.`);
 
 						if (slave.fetish === "pregnancy" && slave.pregKnown === 1) {
 							if ((slave.preg > slave.pregData.normalBirth / 1.6) && (canSee(slave))) {
@@ -2183,7 +2173,7 @@ App.UI.newSlaveIntro = function(slave) {
 						if (slave.scrotum > 0) {
 							r.push(`face-down with ${his}`);
 							if (hasAnyLegs(slave)) {
-								r.push(`${hasBothLegs(slave) ? `legs`:`leg`} spread.`);
+								r.push(`${hasBothLegs(slave) ? `legs` : `leg`} spread.`);
 							} else {
 								r.push(`testicles exposed.`);
 							}
@@ -2938,7 +2928,7 @@ App.UI.newSlaveIntro = function(slave) {
 						linkName: `Make sure ${he} knows pregnant women can still enjoy sex`,
 						result(slave) {
 							const r = [];
-							r.push(`You introduce ${him} to obedience and proper manners regarding ${his} ${WrittenMaster(slave)} before sending ${him} off for a physical.That night, ${he} 's returned to your room, and finds you doing business on a tablet in bed. ${He} looks doubtful, but obeys when you direct ${him} to get into bed${V.PC.dick === 0 ? `, even after ${he} realizes you're wearing a strap-on`: ``}. You turn out the light and spoon ${him} from behind, kissing ${his} neck and ears, cupping ${his} swollen breasts, and running your hands across ${his} pregnant belly with its taut ${slave.skin} skin. ${He}'s awkward at first but ${his} body responds to the tenderness. Before long ${he}'s humping ${his} pussy back and forth against`);
+							r.push(`You introduce ${him} to obedience and proper manners regarding ${his} ${WrittenMaster(slave)} before sending ${him} off for a physical.That night, ${he} 's returned to your room, and finds you doing business on a tablet in bed. ${He} looks doubtful, but obeys when you direct ${him} to get into bed${V.PC.dick === 0 ? `, even after ${he} realizes you're wearing a strap-on` : ``}. You turn out the light and spoon ${him} from behind, kissing ${his} neck and ears, cupping ${his} swollen breasts, and running your hands across ${his} pregnant belly with its taut ${slave.skin} skin. ${He}'s awkward at first but ${his} body responds to the tenderness. Before long ${he}'s humping ${his} pussy back and forth against`);
 							if (V.PC.dick !== 0) {
 								r.push(`your cock.`);
 							} else {
@@ -2950,7 +2940,7 @@ App.UI.newSlaveIntro = function(slave) {
 							} else {
 								r.push(`its tip`);
 							}
-							r.push(`up ${his} used pussy. ${He}'s unsure of ${himself}, but you keep ${him} nice and relaxed. After several minutes of gentle loving, ${he}'s nothing but a satisfied puddle in your arms. ${He} believes that ${he} can <span class="mediumaquamarine">trust</span> you won't harm ${him} or ${his} ${(slave.pregType === 1)?`child`:`children`}.`);
+							r.push(`up ${his} used pussy. ${He}'s unsure of ${himself}, but you keep ${him} nice and relaxed. After several minutes of gentle loving, ${he}'s nothing but a satisfied puddle in your arms. ${He} believes that ${he} can <span class="mediumaquamarine">trust</span> you won't harm ${him} or ${his} ${(slave.pregType === 1) ? `child` : `children`}.`);
 
 							slave.trust += 5;
 							r.push(VCheck.Vaginal());
@@ -3067,7 +3057,7 @@ App.UI.newSlaveIntro = function(slave) {
 							} else if (slave.dick === 6) {
 								r.push(`You grin sadistically at ${him} as ${his} massive dick fills both of your hands.`);
 							}
-							r.push(`As ${he} begins to moan with lust, you grip down tightly and force ${him} to the floor. You straddle ${him} and lower your dripping pussy onto ${his} face${V.PC.dick !== 0 ? `, your erect cock coming to rest on ${his} forehead`: ``}. You continue stroking your toy's rod as ${he} eagerly begins eating you out. As ${his} cock begins to throb, anticipating ${his} upcoming orgasm, you quickly bind the base of ${his} penis, denying ${his} release. You grind your cunt into ${his} face, telling ${him} that YOU are the one who'll be orgasming here, not ${him}. Only once you have initiated the new slave by soaking ${his} face in your cum do you release ${his} dick and lean back to avoid the coming blast. A few strokes later and your hand is coated in ${his} cum. You turn around and order the exhausted ${girl} to clean ${his} cum off your hand`);
+							r.push(`As ${he} begins to moan with lust, you grip down tightly and force ${him} to the floor. You straddle ${him} and lower your dripping pussy onto ${his} face${V.PC.dick !== 0 ? `, your erect cock coming to rest on ${his} forehead` : ``}. You continue stroking your toy's rod as ${he} eagerly begins eating you out. As ${his} cock begins to throb, anticipating ${his} upcoming orgasm, you quickly bind the base of ${his} penis, denying ${his} release. You grind your cunt into ${his} face, telling ${him} that YOU are the one who'll be orgasming here, not ${him}. Only once you have initiated the new slave by soaking ${his} face in your cum do you release ${his} dick and lean back to avoid the coming blast. A few strokes later and your hand is coated in ${his} cum. You turn around and order the exhausted ${girl} to clean ${his} cum off your hand`);
 							if (V.PC.dick !== 0) {
 								r.push(`and to finish off ${his} twitching dick`);
 							}
@@ -3095,7 +3085,7 @@ App.UI.newSlaveIntro = function(slave) {
 							}
 							r.push(`until ${he} has no choice but to be pushed to the ground. Standing over ${him}, staring ${him} down as ${he} peeks around your firm globe of a middle, you order ${him} to worship your pregnancy.`);
 							if (slave.fetish === "pregnancy") {
-								r.push(`${He} complies eagerly. ${He} begins with sucking your popped navel before running ${his} tongue across the taut, smooth surface of your pregnancy. Once ${he} has finished with your belly, ${he} lowers ${himself} under it to begin work on your needy pussy. Before long, ${his} overzealous efforts have you quaking in pleasure, rousing your ${(V.PC.pregType === 1) ?`child`:`children`}. Once ${he} finishes you off, ${he} returns to rubbing your belly, soothing your rowdy child`);
+								r.push(`${He} complies eagerly. ${He} begins with sucking your popped navel before running ${his} tongue across the taut, smooth surface of your pregnancy. Once ${he} has finished with your belly, ${he} lowers ${himself} under it to begin work on your needy pussy. Before long, ${his} overzealous efforts have you quaking in pleasure, rousing your ${(V.PC.pregType === 1) ? `child` : `children`}. Once ${he} finishes you off, ${he} returns to rubbing your belly, soothing your rowdy child`);
 								if (V.PC.pregType > 1) {
 									r.push(`ren`);
 								}
@@ -3679,7 +3669,7 @@ App.UI.newSlaveIntro = function(slave) {
 					linkName: `Fill ${him} with cum`,
 					result(slave) {
 						const r = [];
-						r.push(`You securely restrain your new slave${(V.dairyRestraintsSetting > 1)?`in a milking stall`:``}. A quick finger check of ${his} holes allows you to choose wisely from a selection of hollow phalluses, which push into your helpless new slave's mouth,`);
+						r.push(`You securely restrain your new slave${(V.dairyRestraintsSetting > 1) ? `in a milking stall` : ``}. A quick finger check of ${his} holes allows you to choose wisely from a selection of hollow phalluses, which push into your helpless new slave's mouth,`);
 						actX(slave, "oral");
 						if (slave.vagina > 0) {
 							r.push(`vagina,`);
@@ -3873,7 +3863,7 @@ App.UI.newSlaveIntro = function(slave) {
 								if (slave.vagina > -1) {
 									r.push(`and triple`);
 								}
-								r.push(`penetration. By nighttime ${he}'s properly prepared to take ${V.dairyName}'s giant phalli, and you're bored, so you consign ${him} to ${his} fate. ${He} might have some opinion on how ${he}'s spent ${his} day, but it's unlikely ${he}'ll remember it by tomorrow, what with the forearm-sized dildos sliding in and out of ${his} throat${(slave.vagina > -1) ? `, cunt,`: ``} and asshole.`);
+								r.push(`penetration. By nighttime ${he}'s properly prepared to take ${V.dairyName}'s giant phalli, and you're bored, so you consign ${him} to ${his} fate. ${He} might have some opinion on how ${he}'s spent ${his} day, but it's unlikely ${he}'ll remember it by tomorrow, what with the forearm-sized dildos sliding in and out of ${his} throat${(slave.vagina > -1) ? `, cunt,` : ``} and asshole.`);
 
 								return r.join(" ");
 							},
@@ -4094,7 +4084,7 @@ App.UI.newSlaveIntro = function(slave) {
 							} else {
 								r.push(S.HeadGirl.slaveName);
 							}
-							r.push(`to get ${slave.slaveName} set up in ${V.arcadeName}. The new slave does not know what V.arcadeName is, not really, and ${he} doesn't know what being set up there means, either. ${He}'ll be confined inside a small space, not too different from the indignities ${he}'s suffered already. It's only when the restraints lock into place that ${he}'ll understand ${his} doom. ${His} mouth will be forced open and presented at one wall of V.arcadeName, and ${his} ass will protrude from its other side, ${his} holes available for public relief at both ends. ${He}'ll probably refuse to believe the truth, until the first cockhead enters ${his} mouth${(slave.vagina > -1) ? `, parts ${his} pussylips,`: ``} or presses against ${his} poor anus.`);
+							r.push(`to get ${slave.slaveName} set up in ${V.arcadeName}. The new slave does not know what V.arcadeName is, not really, and ${he} doesn't know what being set up there means, either. ${He}'ll be confined inside a small space, not too different from the indignities ${he}'s suffered already. It's only when the restraints lock into place that ${he}'ll understand ${his} doom. ${His} mouth will be forced open and presented at one wall of V.arcadeName, and ${his} ass will protrude from its other side, ${his} holes available for public relief at both ends. ${He}'ll probably refuse to believe the truth, until the first cockhead enters ${his} mouth${(slave.vagina > -1) ? `, parts ${his} pussylips,` : ``} or presses against ${his} poor anus.`);
 							if (V.arcade <= App.Entity.facilities.arcade.employeesIDs().size) {
 								r.push(`Mere`);
 								if (V.showInches === 2) {