diff --git a/src/endWeek/saRecruitGirls.js b/src/endWeek/saRecruitGirls.js
index 942096d0e7c21ab77d050bfd998770da3619aeb5..e60bbc5fbb2967b88a2051f95673079b5b8c5b4b 100644
--- a/src/endWeek/saRecruitGirls.js
+++ b/src/endWeek/saRecruitGirls.js
@@ -10,9 +10,6 @@ App.SlaveAssignment.recruitGirls = (function() {
 	let arcology;
 	let targetArcology;
 	let slaveInt;
-	let recruiterRelation;
-	let clubSeed;
-	let masterSuiteAvgEnergy;
 
 	return recruitGirls;
 
@@ -24,10 +21,8 @@ App.SlaveAssignment.recruitGirls = (function() {
 		r = [];
 
 		arcology = V.arcologies[0];
+		targetArcology = V.arcologies.find((s) => s.direction === arcology.influenceTarget);
 		slaveInt = slave.intelligence + slave.intelligenceImplant;
-		recruiterRelation = arcology.FSEgyptianRevivalist !== "unset" ? randomRelatedAvailableSlave(slave) : null;
-		clubSeed = arcology.FSEdoRevivalist !== "unset" ? getClubSeed() : 0;
-		({energy: masterSuiteAvgEnergy} = App.Utils.masterSuiteAverages());
 
 		({
 			// eslint-disable-next-line no-unused-vars
@@ -49,17 +44,20 @@ App.SlaveAssignment.recruitGirls = (function() {
 		return r.join(" ");
 	}
 
-	/** Get club seed for Edo Revivalist bonuses
+	/** Get club ads bonus for Edo Revivalist recruitment
 	 * @returns {number}
 	 */
-	function getClubSeed() {
+	function getClubAdsBonus() {
 		let seed = 0;
-		if (V.clubDecoration !== "standard" && App.Entity.facilities.club.employeesIDs().size > 1) {
-			if (V.clubAdsSpending > 0) {
-				seed = (V.clubBonuses + Math.abs(V.clubAdsOld) + Math.abs(V.clubAdsStacked) + Math.abs(V.clubAdsImplanted) + Math.abs(V.clubAdsModded) + Math.abs(V.clubAdsXX));
-			} else {
-				seed = V.clubBonuses;
-				// protip: some FS reduce bonuses available, use ad spending to get counted in that category
+		const sluts = App.Entity.facilities.club.employees();
+		if (V.clubDecoration !== "standard" && sluts.length > 1) {
+			const adMgr = new App.Ads.AdManager("club");
+			sluts.forEach((s) => adMgr.tallySlave(s));
+			for (const cat of App.Ads.getAllCategories()) {
+				// protip: spend money on *accurate* ads, whether or not they match societal preferences
+				if (adMgr.varietyBonus(cat) === 1 || adMgr.slavesMatchAds(cat)) {
+					seed++;
+				}
 			}
 		}
 		return seed;
@@ -140,7 +138,6 @@ App.SlaveAssignment.recruitGirls = (function() {
 	function tooTired(slave) {
 		r.push(`uses the week to recover from fatigue and`);
 		if (V.recruiterTarget === "other arcologies") {
-			targetArcology = V.arcologies.find((s) => s.direction === arcology.influenceTarget);
 			if (targetArcology !== undefined) {
 				r.push(`better prepare to manipulate ${targetArcology.name}'s culture.`);
 			} else {
@@ -165,7 +162,6 @@ App.SlaveAssignment.recruitGirls = (function() {
 	 */
 	function influenceNeighbor(slave) {
 		let influenced = 0;
-		targetArcology = V.arcologies.find((s) => s.direction === arcology.influenceTarget);
 
 		if (targetArcology !== undefined) {
 			r.push(`acts as a sexual Ambassador to ${targetArcology.name}, which mostly means that ${he} travels there in ${his} official capacity and has culturally influential sex with its leading citizens.`);
@@ -970,18 +966,59 @@ App.SlaveAssignment.recruitGirls = (function() {
 
 		r.push(`${He} uses ${his} extra time and <span class="cash">recruitment allowance</span> this week to tour the arcology and post to your household's social media accounts more actively than usual, <span class="reputation inc">building up your reputation.</span>`);
 
+		/** Conditional push:
+		 *  if V.showEWM is set, is a function that pushes the arguments into r
+		 *  otherwise is a function that just silently consumes the arguments
+		 * @type {function(...string): void}
+		 */
+		const pushEWM = V.showEWM === 1 ? (...str) => r.push(...str) : () => {};
+
 		seed = 10;
-		if (slave.face > 40) {
-			seed += slave.face * slave.skill.entertainment / 30;
+		if (slave.skill.entertainment > 10) {
+			if (slave.face > 40) {
+				if (slave.skill.entertainment >= 100) {
+					pushEWM(`${His} good looks and innate artistry awe the arcology and leave many starstruck.`);
+				} else if (slave.skill.entertainment > 60) {
+					pushEWM(`${His} good looks draw quite an audience; ${he} entertains them reasonably well.`);
+				} else if (slave.skill.entertainment > 30) {
+					pushEWM(`${His} face appeals to a certain crowd, mostly looking for sex tapes rather than quality entertainment.`);
+				}
+				seed += slave.face * slave.skill.entertainment / 30;
+			} else {
+				if (slave.skill.entertainment >= 100) {
+					pushEWM(`All`);
+				} else if (slave.skill.entertainment > 60) {
+					pushEWM(`Many`);
+				} else if (slave.skill.entertainment > 30) {
+					pushEWM(`Some`);
+				} else {
+					pushEWM(`A few`);
+				}
+				pushEWM(`of ${his} wittier lines are liked and re-shared, but ${his} face just doesn't catch many eyes.`);
+				seed += slave.skill.entertainment / 30;
+			}
 		} else {
-			seed += slave.skill.entertainment / 30;
+			pushEWM(`More than a few sign up to watch ${his} feeds, but unsubscribe due to ${his} amateur presentation.`);
 		}
 		if (slaveInt > 15) {
+			pushEWM(`${He} offers thoughtful commentaries on trending topics.`);
 			seed += FSIntMod;
+		} else {
+			pushEWM(`${He} lacks the intelligence to compose thoughtful remarks; a lot the time ${he} merely +1s what others have said.`);
 		}
 		if (V.studio && slave.porn.viewerCount >= 10000 && slave.porn.prestige > 0) {
+			pushEWM(`${His} fan base from arcology porn significantly drives up ${his} followers count.`);
 			seed += slave.porn.prestige * 3;
 		}
+
+		/** @type {string[]} */
+		const FSstrings = [];
+
+		/** Conditional push for FS match strings (which will get concatenated to r AFTER the FS match/defend summary)
+		 * @type {function(...string): void}
+		 */
+		const pushFS = V.showEWM === 1 ? (...str) => FSstrings.push(...str) : () => {};
+
 		if (V.recruiterIOUs > 0) {
 			seed += V.recruiterIOUs;
 			FSdefend += V.recruiterIOUs;
@@ -994,8 +1031,15 @@ App.SlaveAssignment.recruitGirls = (function() {
 				FSdefend++;
 				arcology.FSSupremacist += 0.01 * V.FSSingleSlaveRep * FSIntMod;
 				if (slave.race !== arcology.FSSupremacistRace) {
+					pushFS(`${He} patiently explains how ${slave.race} ${girl}s like ${himself} benefit from the firm guidance of their proper ${arcology.FSSupremacistRace} masters.`);
 					arcology.FSSupremacist += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${He} makes the clear case for ${arcology.FSSupremacistRace} superiority, although as an enslaved ${slave.race} ${woman} ${his} words are a bit hollow.`);
 				}
+			} else if (slave.race !== arcology.FSSupremacistRace) {
+				pushFS(`The dumb ${slave.race} bitch can't even repeat ${his} Supremacist indoctrination properly.`);
+			} else {
+				pushFS(`${He} flubs ${his} lines so badly that no one would ever believe ${arcology.FSSupremacistRace} people make better leaders.`);
 			}
 		}
 		if (arcology.FSSubjugationist !== "unset") {
@@ -1004,92 +1048,182 @@ App.SlaveAssignment.recruitGirls = (function() {
 				FSdefend++;
 				arcology.FSSubjugationist += 0.01 * V.FSSingleSlaveRep * FSIntMod;
 				if (slave.race === arcology.FSSubjugationistRace) {
+					pushFS(`It's always a pleasure to hear a ${slave.race} slave admit to all the failings for which ${his} kind need to be taken in hand.`);
 					arcology.FSSubjugationist += 0.01 * V.FSSingleSlaveRep;
 				}
+			} else if (slave.race !== arcology.FSSupremacistRace) {
+				pushFS(`The dumb ${slave.race} bitch can't even repeat ${his} Supremacist indoctrination properly.`);
+			} else {
+				pushFS(`${He} flubs ${his} lines so badly that no one would ever believe ${arcology.FSSupremacistRace} people make better leaders.`);
 			}
 		}
 		if (arcology.FSGenderRadicalist !== "unset") {
 			if (slave.dick > 0 && (slave.balls < 1 || slave.boobs > 400)) {
 				if (slave.anus > 0 && canDoAnal(slave)) {
+					pushFS(`${His} public demonstrations of just how hard feminized sissies can orgasm with buttsex — at a different interior balcony each day — draw plenty of attention.`);
 					seed += 4;
 				} else {
+					pushFS(`${He} attracts a little attention by gaily showing off ${his}`);
+					if (slave.balls < 1) {
+						pushFS(`soft bitch-clit`);
+					} else {
+						pushFS(`intersex anatomy`);
+					}
+					pushFS(`on the public thoroughfares of your arcology,`);
+					if (!canDoAnal(slave)) {
+						pushFS(`since ${he} can't take it any further.`);
+					} else {
+						pushFS(`being careful not to risk ${his} virgin backdoor.`);
+					}
 					seed += 1;
 				}
 				FSmatch++;
 				arcology.FSGenderRadicalist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He} just doesn't have the right combination of body parts to personally demonstrate your utopia of eager, girly-dicked buttsluts.`);
 			}
 		} else if (arcology.FSGenderFundamentalist !== "unset") {
-			if (arcology.FSRestart !== "unset") {
-				if (slave.balls < 1) {
+			if (slave.balls < 1 && slave.dick < 1 && slave.vagina >= 0) {
+				if (arcology.FSRestart !== "unset") {
+					pushFS(`${He} posts plenty of seductive photos emphasizing ${his} feminine curves, including lewds showing off ${his} natural vagina, bringing more attention to your campaign for natural females.`);
 					seed += 1;
-				}
-			} else {
-				if (slave.balls < 1 && (slave.bellyPreg >= 1500 || setup.fakeBellies.includes(slave.bellyAccessory))) {
+				} else if (slave.bellyPreg >= 1500 || setup.fakeBellies.includes(slave.bellyAccessory)) {
 					if (slave.bellyPreg >= 1500) {
+						pushFS(`${He} unashamedly live streams an obstetric health check in the nude, promising to broadcast similar footage right up until, and during, the birth.`);
 						seed += 4;
 					} else {
+						pushFS(`With some discreet editing, ${he} uploads fake ultrasounds to match ${his} plastic pregnancy, bringing a little more attention to your fertility campaigns.`);
 						seed += 1;
 					}
-					FSmatch++;
-					arcology.FSGenderFundamentalist += 0.01 * V.FSSingleSlaveRep;
+				} else if (slave.vagina >= 0) {
+					pushFS(`${He} posts plenty of seductive photos emphasizing ${his} feminine curves, including lewds showing off ${his} natural vagina, bringing more attention to your campaign for natural females.`);
 				}
+				FSmatch++;
+				arcology.FSGenderFundamentalist += 0.01 * V.FSSingleSlaveRep;
+			} else if (slave.balls < 1 && slave.dick < 1) { // null - no vagina and also no dick or balls
+				pushFS(`${He} tries to post photos emphasizing ${his} feminine curves, although ${his} attempts to tastefully conceal ${his} lack of female genitalia are noticed by some viewers.`);
+			} else { // masculine - has dick or balls
+				pushFS(`On the topic of natural female deference to their owners around the house, your recruiter would be more convincing if ${he} didn't keep readjusting ${his} junk.`);
 			}
 		}
 		if (arcology.FSPaternalist !== "unset") {
 			if (slave.devotion + slave.trust > 150 || slave.relationship === -3) {
-				seed += 1;
-				FSdefend++;
 				if (slave.intelligenceImplant >= 15) {
+					pushFS(`All week ${he} shares original poetry in which ${his} love for you shines `);
+					if (slave.health.condition > 40) {
+						pushFS(`through, and ${his} healthy body shines in every live appearance.`);
+						seed += 1;
+					} else {
+						pushFS(`through.`);
+					}
 					seed += 1;
 					arcology.FSPaternalist += 0.02 * V.FSSingleSlaveRep;
 				} else {
+					pushFS(`Even though ${he} clearly adores ${his} ${getWrittenTitle(slave)},`);
+					if (slave.health.condition > 40) {
+						pushFS(`with ${his} perfect health visibly manifesting your care,`);
+						seed += 1;
+					}
+					pushFS(`the uneducated slave struggles to fully and cogently express ${his} affection.`);
 					arcology.FSPaternalist += 0.01 * V.FSSingleSlaveRep;
 				}
-			}
-			if (slave.health.condition > 40) {
 				seed += 1;
+				FSdefend++;
+			} else {
+				pushFS(`${His} praise of your good works lacks the special touch of personal affection, so it doesn't impress much.`);
 			}
 		} else if (arcology.FSDegradationist !== "unset") {
 			if (slaveInt > 50) {
+				pushFS(`Ordinarily you would punish a slave who displays independent thinking, but when ${slave.slaveName}`);
+				if (modScore.total > 15 || (modScore.piercing > 8 && modScore.tat > 5)) {
+					pushFS(`goes public in all ${his} garish, modded glory to defend the legal right of slaveowners to use their property however they please, ${he}'s earned a brief reprieve.`);
+					seed += 1;
+					FSmatch++;
+					arcology.FSDegradationist += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`defends the right of owners to use their property however they please, ${he}'s earned some consideration: perhaps you could "reward" ${him} with an extra piercing or a slutty new tat.`);
+				}
 				seed += 1;
 				FSdefend++;
 				arcology.FSDegradationist += 0.01 * V.FSSingleSlaveRep*FSIntMod;
-			}
-			if (modScore.total > 15 || (modScore.piercing > 8 && modScore.tat > 5)) {
-				seed += 1;
-				FSmatch++;
-				arcology.FSDegradationist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				if (modScore.total > 15 || (modScore.piercing > 8 && modScore.tat > 5)) {
+					pushFS(`Just the sight of ${slave.slaveName}'s provocatively decorated body entices ${his} online "friends" to share multiple scenarios for raping ${him}, although the honor is wasted on the dumb fucktoy.`);
+					seed += 1;
+					FSmatch++;
+					arcology.FSDegradationist += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${He} isn't smart enough to understand the primal attraction of an arcology where slave holes exist only to be raped, nor is ${his} body sufficiently degraded to advertise it.`);
+				}
 			}
 		}
 		if (arcology.FSIntellectualDependency !== "unset") {
-			if (slave.energy > 95) {
-				if (arcology.FSIntellectualDependencyLawBeauty === 1 && bimboScore(slave) >= 6) {
+			if (arcology.FSIntellectualDependencyLawBeauty === 1 && bimboScore(slave) >= 6) {
+				if (slave.energy > 95) {
+					if (slaveInt < -50) {
+						pushFS(`${His} week was spent competing with other bimbos and generally being a delight to onlookers when the competition inevitably turns sexual.`);
+						seed += 3;
+					} else {
+						pushFS(`This week's softcore photo shoot clearly showcases a bimbo, even if it feels like too much thought was put into it.`);
+					}
 					seed += 1;
+					FSmatch++;
+					arcology.FSIntellectualDependency += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`While ${he} may look the part of a bimbo, ${he} lacks the sex drive to back it up.`);
 				}
+				seed += 1;
+			} else if (slave.energy > 95) {
 				if (slaveInt < -50) {
+					pushFS(`${His} week was spent wandering aimlessly throughout the arcology, delighting anyone able to spend time with ${him} with ${his} simple ways.`);
 					seed += 3;
+				} else {
+					pushFS(`${He} exhibits raw lust, but lacks other traits commonly found in bimbos, hindering ${his} efforts.`);
 				}
 				seed += 1;
 				FSmatch++;
 				arcology.FSIntellectualDependency += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He} just lacks the energy to party all night long.`);
 			}
 		} else if (arcology.FSSlaveProfessionalism !== "unset") {
-			if (slaveInt > 50 && slave.accent <= 1) {
-				if (slaveInt > 95) {
-					seed += 2;
-					FSdefend++;
-					arcology.FSSlaveProfessionalism += 0.01 * V.FSSingleSlaveRep*FSIntMod;
-				}
-				if (slave.skill.entertainment + slave.skill.whoring + slave.skill.oral + slave.skill.anal + slave.skill.vaginal >= 400) {
+			if (slave.accent <= 1) {
+				if (slaveInt > 50) {
+					if (slaveInt > 95) {
+						if (slave.skill.entertainment + slave.skill.whoring + slave.skill.oral + slave.skill.anal + slave.skill.vaginal >= 400) {
+							pushFS(`Each week ${he} hosts ${his} own seminar demonstrating new and exciting sexual techniques, some even of ${his} own creation.`);
+							seed += 1;
+						} else {
+							pushFS(`${He} uses ${his} brilliant mind to show what a slave is truly capable of, but ${he} can only go so far lacking practical skills.`);
+						}
+						seed += 2;
+						FSdefend++;
+						arcology.FSSlaveProfessionalism += 0.01 * V.FSSingleSlaveRep*FSIntMod;
+					} else if (slave.skill.entertainment + slave.skill.whoring + slave.skill.oral + slave.skill.anal + slave.skill.vaginal >= 400) {
+						pushFS(`${He} participates in a weekly article showcasing skills every slave needs. However, only being able to recite learned information limits ${him}.`);
+						seed += 1;
+					} else {
+						pushFS(`${He} attempts to be a sexual trendsetter, but is neither smart nor skilled enough to achieve anything of interest.`);
+					}
 					seed += 1;
+					FSmatch++;
+					arcology.FSSlaveProfessionalism += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${He} isn't smart enough to explain what a professional slave actually is and how it differs from a trained slave.`);
 				}
-				FSmatch++;
-				seed += 1;
-				arcology.FSSlaveProfessionalism += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${His} inability to speak ${V.language} properly makes ${him} a relatively poor spokes${woman} for trained slaves.`);
 			}
 		}
 		if (arcology.FSBodyPurist !== "unset") {
 			if (slave.corsetPiercing === 0 && modScore.piercing < 3 && modScore.tat < 2) {
+				if (slave.boobsImplant === 0 && slave.buttImplant === 0 && slave.waist >= -95) {
+					pushFS(`${He} exhibits pure sexuality in a lovely, artistic gallery of erotic photos posted this week that displays every natural ${V.showInches === 2 ? `inch` : `centimeter`} of ${his} body.`);
+				} else if (slave.boobsImplant === 0 && slave.buttImplant === 0) {
+					pushFS(`This week's softcore photo shoot delights the eye: only ${his} unnatural waistline mars ${his} beauty, and that can hardly be blamed on the model.`);
+				} else {
+					pushFS(`${His} unblemished skin shines artistically in this week's erotic studio gallery, but the shape of ${his} curves is too obviously artificial.`);
+				}
 				if (slave.boobsImplant === 0) {
 					seed += 1;
 				}
@@ -1102,46 +1236,80 @@ App.SlaveAssignment.recruitGirls = (function() {
 				seed += 1;
 				FSmatch++;
 				arcology.FSBodyPurist += 0.01 * V.FSSingleSlaveRep;
+			} else if (slave.boobsImplant === 0 && slave.buttImplant === 0 && slave.waist >= -95) {
+				pushFS(`${His} most recent photo galleries are barely passable: you can hardly see the ${woman} beneath ${his} blatant body art.`);
+			} else {
+				pushFS(`${He} is burdened by the knowledge that ${his} heavy alterations don't fit your ideal of purity, and fails to show at a scheduled photo shoot.`);
 			}
 		} else if (arcology.FSTransformationFetishist !== "unset") {
 			if (slave.boobsImplant > 0 && slave.buttImplant > 0 && slave.lipsImplant > 0) {
 				if (slave.waist < -95 || slave.teeth === "pointy" || slave.teeth === "fangs" || !hasAllNaturalLimbs(slave) || (slave.vagina > -1 && slave.dick > 6)) {
+					pushFS(`A series of cleverly staged publicity events at various businesses in the arcology subtly focuses on ${his} better-than-natural physiology in each one.`);
 					seed += 4;
 				} else {
+					if (V.seeExtreme === 1) {
+						pushFS(`${His} augmented body certainly has its appeals, yet as you look over this week's publicity recap you begin to wonder if ${he} could be still more extremely <span style="italic">transformed<span>.`);
+					} else if (slave.vagina > -1 && slave.dick > 0) {
+						pushFS(`${His} special body stands out during this week's publicity tour; and if ${his} futa cock were grown beyond a natural size, now that would really advertise ${his} improved state.`);
+					} else if (V.seeDicks > 0) {
+						pushFS(`${He} looks great in this week's publicity events at arcology businesses, always posing to show off ${his} enhancements. Now if only there were something to graft on that would take ${him} beyond implants to genuine <span style="italic">transformation<span>.`);
+					} else {
+						// game settings prohibit greater transformations
+						pushFS(`A series of cleverly staged publicity events at various businesses in the arcology subtly focuses on the beauty of ${his} implants.`);
+					}
 					seed += 2;
 				}
 				FSmatch++;
 				arcology.FSTransformationFetishist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`"Boobs, butts, and blowjobs": it's the plastic surgeon's mantra, and viewing this week's publicity footage reminds you that you've neglected your recruiter's augmentations.`);
 			}
 		}
 		if (arcology.FSYouthPreferentialist !== "unset") {
 			if (slave.physicalAge < 30) {
+				pushFS(`${His} nightly cam chats sparkle with the energy of youth.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSYouthPreferentialist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`As an older slave, ${he} doesn't have enough energy to cam chat late into the night.`);
 			}
 		} else if (arcology.FSMaturityPreferentialist !== "unset") {
 			if (slave.actualAge >= 30) {
+				pushFS(`${He} video blogs regularly about the financial, medical, and even emotional security of slave life for older ${women}.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSMaturityPreferentialist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He} uses too much youthful slang and jumps from topic to topic in ${his} video blogs, making them difficult for ${his} audience to follow.`);
 			}
 		}
 		if (arcology.FSPetiteAdmiration !== "unset") {
 			if (heightPass(slave)) {
+				pushFS(`${He} takes advantage of ${his} short stature to shock and amaze ${his} followers by having sex in unusual places.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSPetiteAdmiration += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`It's hard to play up a difference in height when ${he} stands as tall`);
+				if (slave.height >= 185) {
+					pushFS(`as, or taller than,`);
+				}
+				pushFS(`as most citizens.`);
 			}
 		} else if (arcology.FSStatuesqueGlorification !== "unset") {
 			if (heightPass(slave)) {
+				pushFS(`${His} photoshoots all use a panoramic camera to better capture ${his} height while giving them a unique flare.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSStatuesqueGlorification += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He}'s just too short for the public to pay any mind to.`);
 			}
 		}
 		if (arcology.FSRepopulationFocus !== "unset") {
 			if (slave.preg > slave.pregData.normalBirth / 1.33) {
+				pushFS(`${He} makes a habit of allowing the public to fondle and enjoy the movements within ${his} baby filled belly.`);
 				if (slave.pregType >= 30) {
 					seed += 5;
 				} else if (slave.pregType >= 10) {
@@ -1152,6 +1320,7 @@ App.SlaveAssignment.recruitGirls = (function() {
 				FSmatch++;
 				arcology.FSRepopulationFocus += 0.01 * V.FSSingleSlaveRep;
 			} else if (slave.preg > slave.pregData.normalBirth / 2) {
+				pushFS(`${He} makes a habit of allowing the public to fondle and enjoy ${his} baby rounded belly.`);
 				if (slave.pregType >= 30) {
 					seed += 4;
 				} else if (slave.pregType >= 10) {
@@ -1161,190 +1330,335 @@ App.SlaveAssignment.recruitGirls = (function() {
 				}
 				FSmatch++;
 				arcology.FSRepopulationFocus += 0.01 * V.FSSingleSlaveRep;
-			} else if (slave.bellyPreg >= 1500) {
-				if (slave.pregType >= 30) {
-					seed += 3;
-				} else if (slave.pregType >= 10) {
-					seed += 2;
-				} else {
-					seed += 1;
-				}
+			} else if (slave.counter.births > 0) {
+				pushFS(`Any time ${he} stars in an erotic photo shoot, ${he} always makes sure to follow up with a, hopefully positive, pregnancy test. Though ${he} makes sure to hype up ${his} viewers to sign up to be the one to knock ${him} up should it come up negative.`);
+				seed += 1;
 				FSmatch++;
 				arcology.FSRepopulationFocus += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${His} efforts would have more impact if ${his} womb wasn't so empty. Disappointing to any who would want to see ${him} pregnant.`);
 			}
-			if (slave.counter.births > 3 || slaveInt > 50) {
+			if (slaveInt > 50) {
+				pushFS(`${He} is smart enough to not only repeat your repopulationist goals, but to expand upon them.`);
+				FSdefend++;
+				arcology.FSRepopulationFocus += 0.01 * V.FSSingleSlaveRep;
+			} else if (slave.counter.births > 3) {
+				pushFS(`${He} uses ${his} experience as a mother as leverage to convince virgin ladies that motherhood is wonderful.`);
 				FSdefend++;
 				arcology.FSRepopulationFocus += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`Being both unintelligent and inexperienced, ${his} attempts to emphasize the joys of pregnancy only come off as someone who likes big bellies, no matter their cause.`);
 			}
 		} else if (arcology.FSRestart !== "unset") {
 			if (slave.bellyPreg >= 1500 && slave.breedingMark === 1 && V.propOutcome === 1) {
+				pushFS(`${He} prominently displays ${his} pregnancy and the mark branded upon it signifying the superior child growing within ${him}. ${His} audience is enamored by ${his} distinct status.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSRestart += 0.01 * V.FSSingleSlaveRep;
 			} else if (slave.breedingMark === 1 && V.propOutcome === 1) {
+				pushFS(`${He} prominently displays the mark branded over ${his} womb, but without the curve of pregnancy beneath it, it only goes so far.`);
 				seed += 1;
 			} else if (slave.bellyPreg < 100) {
-				if (slave.ovaries === 0 && slave.balls === 0) {
+				if (slave.dick > 0 && slave.balls === 0) {
+					pushFS(`${He} makes sure to wear tight fitting clothes to show off the bulge of ${his} dick and, most notably, the lack of testicles under it, in all ${his} photo shoots.`);
 					seed += 4;
 					FSmatch++;
 					arcology.FSRestart += 0.01 * V.FSSingleSlaveRep;
-				} else if (slave.ovaries === 0 || slave.balls === 0) {
+				} else if ((slave.ovaries === 0 && slave.mpreg === 0) || slave.preg < -1) {
+					pushFS(`${He} frequently livestreams massive orgies involving ${himself} at the center, making sure to always follow up with ${his} negative pregnancy tests.`);
 					seed += 2;
 					FSmatch++;
 					arcology.FSRestart += 0.01 * V.FSSingleSlaveRep;
-				} else if (slave.chastityVagina || slave.chastityPenis || ((slave.ovaries === 1 || slave.mpreg === 1) && slave.preg < -1)) {
+				} else if (slave.chastityVagina || slave.chastityPenis) {
+					pushFS(`In all ${his} public appearances, ${his} choice of clothing is always crotchless, leaving ${his} chastity gear as the only thing protecting ${his} modesty.`);
 					seed += 1;
 					FSmatch++;
 					arcology.FSRestart += 0.01 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${His} lack of commitment to sterilization and eugenics drive away potential listeners.`);
 				}
+			} else {
+				pushFS(`No-one cares what bloated trash has to say.`);
 			}
 		}
 		if (arcology.FSSlimnessEnthusiast !== "unset") {
 			if (slave.boobs < 500 && slave.butt < 3 && slave.weight <= 10 && slave.muscles <= 30) {
+				pushFS(`${His} trim body gives ${him} a cute, ${girl}-next-door sex appeal in every selfie, even the ones taken in your penthouse far above everyone else's doors.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSSlimnessEnthusiast += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He} shares a lot of selfies of ${his} activities in your penthouse, but ${his} bulging figure tends to hide what's going on.`);
 			}
 		} else if (arcology.FSAssetExpansionist !== "unset") {
 			if (slave.boobs > 2000 || slave.butt > 7 || slave.balls > 4 || slave.dick > 8) {
+				pushFS(`As the saying goes, "shake it if you got it," and no one can doubt ${slave.slaveName} has it after a "citizen" posts an "unauthorized" wristcam video of ${his} humongous anatomy swinging around a stripper pole.`);
 				seed += 4;
 				FSmatch++;
 				arcology.FSAssetExpansionist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`Although ${he} tries hard, none of ${his} assets interest the true size fetishist.`);
 			}
 		}
 		if (arcology.FSPastoralist !== "unset") {
-			let DairyL = App.Entity.facilities.dairy.employeesIDs().size;
-			if (V.dairy > 0 && (slave.lactation > 0 || (DairyL > 0 && FSIntMod > ((V.dairyRestraintsSetting + 1) * 30)))) {
-				if (DairyL > 0 && FSIntMod > ((V.dairyRestraintsSetting + 1) * 30) && V.dairyRestraintsSetting < 2) {
+			if (V.dairy) {
+				if (App.Entity.facilities.dairy.employeesIDs().size > 0 && FSIntMod > ((V.dairyRestraintsSetting + 1) * 30) && V.dairyRestraintsSetting < 2) {
+					if (slave.lactation > 0) {
+						pushFS(`${He} schedules VR tours of ${V.dairyName} in order to popularize your free-range practices and quality products: the highlight each time is when ${he} hooks ${his} own teats into a milker and brings ${himself} to orgasm.`);
+						seed += 1;
+						FSmatch++;
+					} else {
+						pushFS(`${He} narrates a virtual reality tour of ${V.dairyName}, explaining how your humane, free-range practices result in a high quality product.`);
+					}
 					seed += 3;
 					FSdefend++;
-				}
-				if (slave.lactation > 0) {
+					arcology.FSPastoralist += 0.01 * V.FSSingleSlaveRep;
+				} else if (slave.lactation > 0) {
+					pushFS(`${His} VR uploads include a short clip of ${him} milking ${himself} in ${V.dairyName}; ${he} squirts directly into an old-fashioned bucket while ignoring the complicated, industrial machines behind ${him}.`);
 					seed += 1;
 					FSmatch++;
+				} else if (V.dairyRestraintsSetting >= 2) {
+					pushFS(`Your dairy is too heavily industrialized to promote socially.`);
+				} else {
+					pushFS(`${He} ignores ${V.dairyName}, since ${he} can't think of any ideas to promote it.`);
 				}
-				arcology.FSPastoralist += 0.01 * V.FSSingleSlaveRep;
+			} else {
+				pushFS(`${He} can't really promote Pastoralist ideals when ${his} owner hasn't even committed to building a Dairy.`);
 			}
 		}
 		if (arcology.FSPhysicalIdealist !== "unset") {
-			if ((slave.muscles >= 50 && arcology.FSPhysicalIdealistLaw === 0) || (slave.muscles >= 20 && slave.muscles < 50 && arcology.FSPhysicalIdealistLaw === 1) || (slave.muscles > 40 && slave.health.condition > 80)) {
+			let pass = false;
+			if (slave.muscles >= 50 && arcology.FSPhysicalIdealistLaw === 0) {
+				pushFS(`${He} asks another slave to photo-document ${his} time in the gym this week: naked, of course, to show off ${his} impressive muscle definition, and in certain poses ${he} nearly seems to be making love to the equipment.`);
+				pass = true;
+			} else if (slave.muscles >= 20 && slave.muscles < 50 && arcology.FSPhysicalIdealistLaw === 1) {
+				pushFS(`${He} asks another slave to photo-document ${his} time on the track this week: naked, of course, to show off ${his} perfectly toned body in motion.`);
+				pass = true;
+			} else if (slave.muscles > 40 && slave.health.condition > 80) {
+				pushFS(`${He} asks another slave to photo-document ${his} time in the gym this week: naked, of course, to show off how ${he} keeps in such fine shape, and in certain poses ${he} nearly seems to be making love to the equipment.`);
+				pass = true;
+			} else {
+				pushFS(`${He} tries documenting ${his} exercise routine, but it's a snooze fest because ${he} doesn't have the guns to show for it.`);
+			}
+			if (pass) {
 				seed += 4;
 				FSmatch++;
 				arcology.FSPhysicalIdealist += 0.01 * V.FSSingleSlaveRep;
 			}
 		} else if (arcology.FSHedonisticDecadence !== "unset") {
 			if (arcology.FSHedonisticDecadenceResearch === 1 && arcology.FSDegradationist === "unset") {
+				pushFS(`Whenever ${he} meets a prospect, ${he} makes sure to take some of your specialized slave food with ${him} to show them they won't miss much from their prior lives. It rarely fails to make an impact.`);
 				seed += 2;
 				FSmatch++;
 			}
 			if (slave.weight > 95 || (slave.fetishStrength >= 95 && slave.weight > 10)) {
+				pushFS(`${He} frequently`);
+				if (slave.fetishStrength >= 95) {
+					pushFS(`makes public appearances where ${he} demonstrates the strength of ${his} fetishes and invites spectators to aid in satisfying ${his} desires.`);
+				} else {
+					pushFS(`livestreams ${himself} relaxing and masturbating, making sure to draw attention to ${his} lush curves and how comfortable ${his} life is.`);
+				}
 				seed += 2;
 				FSmatch++;
 				arcology.FSHedonisticDecadence += 0.01 * V.FSSingleSlaveRep;
 			}
 			if (slave.weight > 10 && slave.health.condition > 80) {
+				pushFS(`Despite ${his} weight, ${he} practically oozes health and happiness helping to ease potential worries about the excessive lifestyle slaves enjoy under you.`);
 				seed += 2;
 				FSdefend++;
 			}
 		}
 		if (arcology.FSChattelReligionist !== "unset") {
 			if (slaveInt > 15 && (slave.devotion > 95 || slave.trust > 95)) {
+				if (slave.clothes === "a chattel habit" || slave.clothes === "a fallen nuns habit" || slave.clothes === "a penitent nuns habit" || slave.clothes === "a hijab and abaya") {
+					pushFS(`Clad in ${his} holy garb, ${slave.slaveName} preaches to the atrium with a powerful appeal to the new morality, in which ${his} absolute faith in your revelations is unmistakable.`);
+					seed += 1;
+				} else if (arcology.FSNeoImperialist !== "unset" && slave.clothes === "a tight Imperial bodysuit") {
+					pushFS(`${He} lectures eloquently on the importance of hierarchy and noble lineage in a pseduo-religious fashion, dressed out in ${his} form-fitting bodysuit; most of the listeners' eyes fall on ${his} tightly-outlined chest and how ${his} nipples protrude obviously underneath the cybersuit, your crest emblazoned over the rock-hard nubs doing more of the arguing.`);
+					seed += 1;
+				} else if (arcology.FSNeoImperialist !== "unset" && slave.clothes === "Imperial Plate") {
+					pushFS(`${He} gives a lengthy speech about the importance of hierarchy and noble lineage in a pseudo-religious fashion, speaking on the divine right of the nobility to rule while dominating the floor in ${his} ultra-heavy Imperial plate.`);
+					seed += 1;
+				} else if (arcology.FSRomanRevivalist !== "unset" && slave.clothes === "a toga") {
+					pushFS(`${He} preaches in the atrium, delivering a powerful and faith-filled appeal in support of the new state religion and its Prophet-Emperor, descendant of the gods.`);
+					seed += 1;
+				} else {
+					pushFS(`${He} heads to the atrium to deliver a powerful, faith-based appeal for everyone to join the new moral order, though one cynical onlooker heckles ${him} about ${his} style of dress.`);
+				}
 				seed += 1;
 				FSdefend++;
 				arcology.FSChattelReligionist += 0.01 * V.FSSingleSlaveRep * FSIntMod;
-			}
-			if (slave.clothes === "a chattel habit" || slave.clothes === "a fallen nuns habit" || slave.clothes === "a penitent nuns habit" || slave.clothes === "a hijab and abaya" || (arcology.FSRomanRevivalist !== "unset" && slave.clothes === "a toga") || (arcology.FSNeoImperialist !== "unset" && (slave.clothes === "a tight Imperial bodysuit" || slave.clothes === "Imperial Plate"))) {
-				seed += 1;
+			} else if (slaveInt > 15) {
+				pushFS(`${His} lecture on the new religious morality is thorough, and also devastatingly boring: all bullet point scriptures and little emotion that would sway unenlightened hearts.`);
+			} else if (slave.devotion > 95 || slave.trust > 95) {
+				pushFS(`Although ${he} wears ${his} faith in you on ${his} metaphorical sleeve, ${he} can't muster the intellectual arguments to counter the shrill voices of backward old world religions.`);
+			} else {
+				pushFS(`${He} is hapless as a proselytizer for the new religious order because ${his} personal understanding and adherence remains inadequate.`);
 			}
 		} else if (arcology.FSNull !== "unset") {
+			pushFS(`${His} contribution is one voice among many in the open freedom of ${arcology.name}'s media,`);
+			if (slave.skill.entertainment > 10) {
+				pushFS(`but everything that relates to its leadership is usually well-received.`);
+			} else {
+				pushFS(`so ${his} unskilled performances this week hardly cause a ripple.`);
+			}
 			seed += ((slave.skill.entertainment / 30) * arcology.FSNull / 10);
 		}
 		if (arcology.FSRomanRevivalist !== "unset") {
 			if (slave.clothes === "a toga") {
-				seed += 1;
 				if (slave.face > 10 && slave.counter.pitKills > 0) {
+					pushFS(`${He} thrills audiences by recounting tales of ${his} exploits as a beautiful and deadly gladiatrix-<span style="italic">slash</span>-love-slave for the First Citizen of the Eternal City reborn.`);
 					// protip: it doesn't have to be YOUR pit
 					seed += 5;
 					FSmatch++;
 					arcology.FSRomanRevivalist += 0.02 * V.FSSingleSlaveRep;
+				} else if (slave.face > 10) {
+					pushFS(`${His} statuesque beauty is a fitting tribute to the glory of the Eternal City reborn, but ${he} still lacks the edge of <span style="italic">bloodthirstiness</span> that makes life here so exciting.`);
+				} else if (slave.counter.pitKills > 0) {
+					pushFS(`Even though ${his} history of gladiatorial combat is noble, when mixed with ${his} homeliness it tends to frighten the squeamish as much as it attracts the sanguinary.`);
+				} else {
+					pushFS(`${He} comes across like a historical tour guide; more worthy citizens would flock to the New Rome if your recruiter appeared as a statuesque, and possibly deadly, inamorata of its ruler.`);
 				}
+				seed += 1;
+			} else {
+				pushFS(`Dressed as ${he} is in the garments of a barbarian, the citizens of the New Rome ignore ${him}.`);
 			}
 		} else if (arcology.FSNeoImperialist !== "unset") {
 			if (slave.clothes === "a tight Imperial bodysuit") {
+				if (slave.face > 10 && slave.skill.entertainment >= 60) {
+					pushFS(`${He} thrills the watching audience with ${his} immense beauty and charm, performing just as a proper Imperial slave ought - obedient, gorgeous, and strikingly attentive.`);
+					seed += 5;
+					FSmatch++;
+					arcology.FSNeoImperialist += 0.02 * V.FSSingleSlaveRep;
+				} else if (slave.face > 10) {
+					pushFS(`${His} beauty captivates the watching audience, although ${he} is somewhat awkward and ungraceful when actually speaking with them.`);
+				} else if (slave.skill.entertainment >= 60) {
+					pushFS(`Even though ${he} acts as a perfect Imperial slave, attentive and obedient, ${his} comely features fail to attract much attention, superficial as it may be.`);
+				} else {
+					pushFS(`${He} comes across as both boring and unattractive; the emblazoned crest on ${his} chest seems more like a mark of mockery upon the stuttering, homely slave.`);
+				}
 				seed += 1;
-				if (slave.face > 10 ) {
+			} else if (slave.clothes === "Imperial Plate") {
+				if (slave.counter.pitKills > 0) {
+					pushFS(`In ${his} ultra-heavy Imperial Plate, ${he} mystifies and captivates the audience with ${his} tales of victory and domination in the arena, coming across as an awe-inspiring and slightly terrifying properly Imperial Knight.`);
 					seed += 5;
 					FSmatch++;
 					arcology.FSNeoImperialist += 0.02 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`The high-tech nature of ${his} Imperial Plate and its incredibly thick plating does more to scare off potential recruits than draw them in, particularly without any real tales of valor to tell to those who do stop to listen.`);
 				}
+				seed += 1;
+			} else {
+				pushFS(`Without clear markings to identify ${him} as an Imperial slave, ${his} attempts have little effect on the promotion of Imperial society.`);
 			}
 		} else if (arcology.FSEgyptianRevivalist !== "unset") {
-			if (recruiterRelation) {
-				// willingness; protip: relationship optional, and actual sex doesn't need to be allowed
-				if ((slave.energy > 60 || slave.sexualQuirk === "tease" || slave.sexualQuirk === "perverted") && (recruiterRelation.energy > 60 || recruiterRelation.sexualQuirk === "tease" || recruiterRelation.sexualQuirk === "perverted")) {
-					seed += 6;
-					FSmatch++;
-					arcology.FSEgyptianRevivalist += 0.02 * V.FSSingleSlaveRep;
+			if (totalRelatives(slave) > 0) {
+				const recruiterRelation = arcology.FSEgyptianRevivalist !== "unset" ? randomRelatedAvailableSlave(slave) : null;
+				if (recruiterRelation) {
+					const relationType = relativeTerm(slave, recruiterRelation);
+					if (slave.energy > 60 || slave.sexualQuirk === "tease" || slave.sexualQuirk === "perverted") {
+						if (recruiterRelation.energy > 60 || recruiterRelation.sexualQuirk === "tease" || recruiterRelation.sexualQuirk === "perverted") {
+							pushFS(`${slave.slaveName} and ${his} ${relationType} ${recruiterRelation.slaveName} collaborate on a series of short commercials showing them `);
+							if (canWalk(slave) || canWalk(recruiterRelation)) {
+								pushFS(`walking and`);
+							}
+							pushFS(`playing in your arcology's public spaces. A little `);
+							if (hasAnyArms(slave) || hasAnyArms(recruiterRelation)) {
+								pushFS(`hand on the ass`);
+							} else {
+								pushFS(`cuddling`);
+							}
+							pushFS(`here, a little lips almost touching there, and it's enough to tease your Ancient Egyptian sensibility about incest without running afoul of too many old world censors.`);
+							seed += 6;
+							FSmatch++;
+							arcology.FSEgyptianRevivalist += 0.02 * V.FSSingleSlaveRep;
+						} else if (slave.relationshipTarget === recruiterRelation.ID) {
+							pushFS(`Even though their incestuous relationship is not condemned here, ${his} ${relationType} ${recruiterRelation.slaveName} is too shy to act it out in front of the world.`);
+						} else {
+							pushFS(`The Ancient Egyptian sensibility of your arcology features slave incest, but your recruiter can't convince ${his} shy ${relationType} to play along for publicity.`);
+						}
+					} else if (slave.relationshipTarget === recruiterRelation.ID) {
+						pushFS(`Even though ${he} shares a properly incestuous relationship with ${his} ${relationType}, ${he} is too shy to bring it on camera for the whole world.`);
+					} else {
+						pushFS(`The Ancient Egyptian sensibility of your arcology features slave incest, but ${he}'s too shy even to play-act with ${his} ${relationType} for publicity.`);
+					}
+				} else {
+					pushFS(`One idea that comes up while brainstorming is to act out Ancient Egyptian incest with a family member, but all of them are confined and unavailable.`);
 				}
+			} else {
+				pushFS(`One of the most prominent features of your Egyptian Revival is an open, even expectant, attitude toward slave incest, but ${he} doesn't have any close family living in your household.`);
 			}
 		} else if (arcology.FSEdoRevivalist !== "unset") {
-			if (clubSeed >= 3) {
-				seed += 6;
-				FSmatch++;
-				arcology.FSEdoRevivalist += 0.02 * V.FSSingleSlaveRep;
+			if (V.clubDecoration !== "standard" && App.Entity.facilities.club.employeesIDs().size > 1) {
+				if (getClubAdsBonus() >= 3) {
+					pushFS(`The candid, POV-style videos of ${slave.slaveName} dancing, making out, and giving blowjobs alongside your regular sluts in ${V.clubName}'s ${V.clubDecoration} atmosphere earn a lot of thumbs up.`);
+					seed += 6;
+					FSmatch++;
+					arcology.FSEdoRevivalist += 0.02 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${He} enjoys ${himself} when ${he} films in ${V.clubName}, but the sluts there just don't earn enough attention for the visit to raise your public profile; the club may need broader marketing appeal.`);
+				}
+			} else if (V.club === 0) {
+				pushFS(`${He}'d like to integrate ${his} personal profile with your cultural Revival, but there's no clear place in your arcology to focus ${his} attention.`);
+			} else if (App.Entity.facilities.club.employeesIDs().size <= 1) {
+				pushFS(`${He} travels down to ${V.clubName} for some POV video footage, but ${he} can't get enough reliable dance partners.`);
+			} else {
+				pushFS(`${He} gets some hot POV-style footage when ${he} films in your nightclub, but there's nothing special about its atmosphere to distinguish it from any other bar in any other arcology.`);
 			}
 		} else if (arcology.FSArabianRevivalist !== "unset") {
-			if (V.masterSuiteDecoration === "Arabian Revivalist" && V.masterSuiteUpgradeLuxury > 0 && masterSuiteAvgEnergy > 60 && App.Entity.facilities.masterSuite.employeesIDs().size >= 3) {
-				seed += 6;
-				FSmatch++;
-				arcology.FSArabianRevivalist += 0.02 * V.FSSingleSlaveRep;
+			if (V.masterSuiteDecoration === "Arabian Revivalist" && V.masterSuiteUpgradeLuxury > 0 && App.Utils.masterSuiteAverages().energy > 60) {
+				if (App.Entity.facilities.masterSuite.employeesIDs().size >= 3) {
+					pushFS(`An exposé that "pulls back the curtain" on your elaborate master bedroom goes viral after several harem slaves drag ${him} into`);
+					if (V.masterSuiteUpgradeLuxury === 1) {
+						pushFS(`four-way action with their ${properMaster()}`);
+					} else {
+						pushFS(`a fuckpit daisy chain`);
+					}
+					pushFS(`and another takes over the filming.`);
+					seed += 6;
+					FSmatch++;
+					arcology.FSArabianRevivalist += 0.02 * V.FSSingleSlaveRep;
+				} else {
+					pushFS(`${He} makes a short video essay about your elaborate master suite, but the empty space unfilled by luscious slave bodies fails to impress.`);
+				}
+			} else if (V.masterSuiteUpgradeLuxury === 0) {
+				// covers if suite is unbuilt as well
+				pushFS(`${He} wants to profile the decadence of your grand bedroom, but the reality is shabby compared to the Revivalist dreams of luxurious harems in the old days.`);
+			} else if (V.masterSuiteDecoration !== "Arabian Revivalist") {
+				pushFS(`${He} thinks that "Pulling Back the Curtain" would make a good title for an exposé of your sumptuous bedroom, but it turns out that the space isn't decorated with Arabian-style curtains.`);
+			} else {
+				pushFS(`${He} makes a short video essay about your elaborate master suite, but there's no sex going on while ${he} films.`);
 			}
 		} else if (arcology.FSChineseRevivalist !== "unset") {
 			if (slaveInt > 15 && V.HeadGirlID !== 0 && V.BodyguardID !== 0 && V.HGSuite > 0) {
+				if ((S.HeadGirl.skill.entertainment / 30) + (S.HeadGirl.intelligenceImplant / 10) + S.HeadGirl.prestige >= 4) {
+					if (S.Bodyguard.prestige >= 1) {
+						pushFS(`${He} deferentially chronicles the administration of your Imperial household by Head Girl ${S.HeadGirl.slaveName} and Bodyguard ${S.Bodyguard.slaveName}. The piece explains points of Chinese Revivalist protocol where new slaves or visitors to the Forbidden Penthouse might inadvertently stumble.`);
+						FSmatch++;
+					} else {
+						pushFS(`${He} interviews your Head Girl about points of protocol and household administration for broadcast to the arcology. Your Bodyguard, ${S.Bodyguard.slaveName}, is not accustomed to fame and prefers to remain off-screen.`);
+					}
+				} else if (S.HeadGirl.intelligenceImplant < 15) {
+					pushFS(`${He} edits a documentary broadcast about the Revivalist protocols that drive your household, and in the process uncovers small but annoying lapses due to the Head Girl's lack of formal education.`);
+				} else {
+					pushFS(`${He} broadcasts a documentary about life inside your Imperial Chinese household, but the Head Girl's segment comes out flat: ${S.HeadGirl.slaveName} needs more experience working in front of a camera.`);
+				}
 				seed += (Math.min(((S.HeadGirl.skill.entertainment / 30) + (S.HeadGirl.intelligenceImplant / 10) + S.HeadGirl.prestige), 4) + Math.min(S.Bodyguard.prestige, 1));
 				FSdefend++;
 				arcology.FSChineseRevivalist += 0.03 * V.FSSingleSlaveRep;
+			} else if (V.HeadGirlID === 0 || V.BodyguardID === 0) {
+				pushFS(`${He} can't document the benefits of your Imperial Chinese administration because of unfilled posts in its leadership.`);
+			} else if (slaveInt <= 15) {
+				pushFS(`Your household is a well-run model for the arcology at large, but your recruiter doesn't completely understand its intricate Revivalist protocols and can't explain it for the masses.`);
+			} else {
+				pushFS(`${He} never considers promoting your household's Revivalist protocols, since you don't value your Head Girl enough to accord ${him} a separate apartment inside your walls.`);
 			}
 		}
-		/* and then there's Aztec revivalist, completely forgotten */
+		/* TODO: and then there's Aztec revivalist, completely forgotten */
 
 		repX(Math.trunc(seed * 5), "futureSocieties", slave);
 
-		if (V.showEWM === 1) {
-			if (slave.skill.entertainment > 10) {
-				if (slave.face > 40) {
-					if (slave.skill.entertainment >= 100) {
-						r.push(`${His} good looks and innate artistry awe the arcology and leave many starstruck.`);
-					} else if (slave.skill.entertainment > 60) {
-						r.push(`${His} good looks draw quite an audience; ${he} entertains them reasonably well.`);
-					} else if (slave.skill.entertainment > 30) {
-						r.push(`${His} face appeals to a certain crowd, mostly looking for sex tapes rather than quality entertainment.`);
-					}
-				} else {
-					if (slave.skill.entertainment >= 100) {
-						r.push(`All`);
-					} else if (slave.skill.entertainment > 60) {
-						r.push(`Many`);
-					} else if (slave.skill.entertainment > 30) {
-						r.push(`Some`);
-					} else {
-						r.push(`A few`);
-					}
-					r.push(`of ${his} wittier lines are liked and re-shared, but ${his} face just doesn't catch many eyes.`);
-				}
-			} else {
-				r.push(`More than a few sign up to watch ${his} feeds, but unsubscribe due to ${his} amateur presentation.`);
-			}
-			if (slaveInt > 15) {
-				r.push(`${He} offers thoughtful commentaries on trending topics.`);
-			} else {
-				r.push(`${He} lacks the intelligence to compose thoughtful remarks; a lot the time ${he} merely +1s what others have said.`);
-			}
-			if (V.studio && slave.porn.viewerCount >= 1000 && slave.porn.prestige > 0) {
-				r.push(`${His} fan base from arcology porn significantly drives up ${his} followers count.`);
-			}
-		}
-		// temp close EWM so next two lines always show
+		// the summary lines always show, regardless of showEWM
 		if (FSmatch > 0) {
 			r.push(`${His} personal appearance fits with your social philosophies, making the future you're building <span class="positive">more popular.</span>`);
 		}
@@ -1363,453 +1677,8 @@ App.SlaveAssignment.recruitGirls = (function() {
 			}
 			r.push(`<span class="positive">confirming your ideals</span> in the minds of some wavering individuals.`);
 		}
-		if (V.showEWM === 1) {
-			if (arcology.FSSupremacist !== "unset") {
-				if (slaveInt > 50) {
-					if (slave.race !== arcology.FSSupremacistRace) {
-						r.push(`${He} patiently explains how ${slave.race} ${girl}s like ${himself} benefit from the firm guidance of their proper ${arcology.FSSupremacistRace} masters.`);
-					} else {
-						r.push(`${He} makes the clear case for ${arcology.FSSupremacistRace} superiority, although as an enslaved ${slave.race} ${woman} ${his} words are a bit hollow.`);
-					}
-				} else if (slave.race !== arcology.FSSupremacistRace) {
-					r.push(`The dumb ${slave.race} bitch can't even repeat ${his} Supremacist indoctrination properly.`);
-				} else {
-					r.push(`${He} flubs ${his} lines so badly that no one would ever believe ${arcology.FSSupremacistRace} people make better leaders.`);
-				}
-			}
-			if (arcology.FSSubjugationist !== "unset") {
-				if (slaveInt > 50) {
-					if (slave.race === arcology.FSSubjugationistRace) {
-						r.push(`It's always a pleasure to hear a ${slave.race} slave admit to all the failings for which ${his} kind need to be taken in hand.`);
-					} else {
-						r.push(`${He} argues intelligently in favor of ${arcology.FSSubjugationistRace} subjugation, a performance undermined only slightly by miscegenationist scum releasing a competing clip of ${his} open-mic comment that ${he}'s glad not to be one of <span style="italic">them<span>.`);
-					}
-				} else if (slave.race === arcology.FSSubjugationistRace) {
-					r.push(`The subhuman idiot's floundering on the race question rather proves your point about ${arcology.FSSubjugationistRace} inferiority, but not in a way that gains any converts.`);
-				} else {
-					r.push(`${His} uninspired presentation on ${arcology.FSSubjugationistRace} failings only links to the educational materials already published in your arcology.`);
-				}
-			}
-			if (arcology.FSRepopulationFocus !== "unset") {
-				if (slave.preg > slave.pregData.normalBirth / 1.33) {
-					r.push(`${He} makes a habit of allowing the public to fondle and enjoy the movements within ${his} baby filled belly.`);
-				} else if (slave.preg > slave.pregData.normalBirth / 2) {
-					r.push(`${He} makes a habit of allowing the public to fondle and enjoy ${his} baby rounded belly.`);
-				} else if (slave.counter.births > 0) {
-					r.push(`Any time ${he} stars in an erotic photo shoot, ${he} always makes sure to follow up with a, hopefully positive, pregnancy test. Though ${he} makes sure to hype up ${his} viewers to sign up to be the one to knock ${him} up should it come up negative.`);
-				} else {
-					r.push(`${His} efforts would have more impact if ${his} womb wasn't so empty. Disappointing to any who would want to see ${him} pregnant.`);
-				}
-				if (slaveInt > 50) {
-					r.push(`${He} is smart enough to not only repeat your repopulationist goals, but to expand upon them.`);
-				} else if (slave.counter.births > 3) {
-					r.push(`${He} uses ${his} experience as a mother as leverage to convince virgin ladies that motherhood is wonderful.`);
-				} else {
-					r.push(`Being both unintelligent and inexperienced, ${his} attempts to emphasize the joys of pregnancy only come off as someone who likes big bellies, no matter their cause.`);
-				}
-			} else if (arcology.FSRestart !== "unset") {
-				if (slave.bellyPreg >= 1500 && slave.breedingMark === 1 && V.propOutcome === 1) {
-					r.push(`${He} prominently displays ${his} pregnancy and the mark branded upon it signifying the superior child growing within ${him}. ${His} audience is enamored by ${his} distinct status.`);
-				} else if (slave.breedingMark === 1 && V.propOutcome === 1) {
-					r.push(`${He} prominently displays the mark branded over ${his} womb, but without the curve of pregnancy beneath it, it only goes so far.`);
-				} else if (slave.bellyPreg < 100) {
-					if (slave.dick > 0 && slave.balls === 0) {
-						r.push(`${He} makes sure to wear tight fitting clothes to show off the bulge of ${his} dick and, most notably, the lack of testicles under it, in all ${his} photo shoots.`);
-					} else if (slave.chastityVagina || slave.chastityPenis) {
-						r.push(`In all ${his} public appearances, ${his} choice of clothing is always crotchless, leaving ${his} chastity gear as the only thing protecting ${his} modesty.`);
-					} else if ((slave.ovaries === 0 && slave.mpreg === 0) || slave.preg < -1) {
-						r.push(`${He} frequently livestreams massive orgies involving ${himself} at the center, making sure to always follow up with ${his} negative pregnancy tests.`);
-					} else {
-						r.push(`${His} lack of commitment to sterilization and eugenics drive away potential listeners.`);
-					}
-				} else {
-					r.push(`No-one cares what bloated trash has to say.`);
-				}
-			}
-			if (arcology.FSGenderRadicalist !== "unset") {
-				if (slave.dick > 0 && (slave.balls < 1 || slave.boobs > 400)) {
-					if (slave.anus > 0 && canDoAnal(slave)) {
-						r.push(`${His} public demonstrations of just how hard feminized sissies can orgasm with buttsex — at a different interior balcony each day — draw plenty of attention.`);
-					} else {
-						r.push(`${He} attracts a little attention by gaily showing off ${his}`);
-						if (slave.balls < 1) {
-							r.push(`soft bitch-clit`);
-						} else {
-							r.push(`intersex anatomy`);
-						}
-						r.push(`on the public thoroughfares of your arcology,`);
-						if (!canDoAnal(slave)) {
-							r.push(`since ${he} can't take it any further.`);
-						} else {
-							r.push(`being careful not to risk ${his} virgin backdoor.`);
-						}
-					}
-				} else {
-					r.push(`${He} just doesn't have the right combination of body parts to personally demonstrate your utopia of eager, girly-dicked buttsluts.`);
-				}
-			} else if (arcology.FSGenderFundamentalist !== "unset") {
-				if (slave.balls < 1) {
-					if (arcology.FSRestart === "unset") {
-						if (slave.bellyPreg >= 1500) {
-							r.push(`${He} unashamedly live streams an obstetric health check in the nude, promising to broadcast similar footage right up until, and during, the birth.`);
-						} else if (setup.fakeBellies.includes(slave.bellyAccessory)) {
-							r.push(`With some discreet editing, ${he} uploads fake ultrasounds to match ${his} plastic pregnancy, bringing a little more attention to your fertility campaigns.`);
-						} else {
-							r.push(`${He} posts plenty of snapshots of gravid mothers-to-be. But with no belly bump of ${his} own to feature, the impact is no different from any preggo porn already floating around the net.`);
-						}
-					} else {
-						r.push(`${He} posts plenty of seductive photos emphasizing ${his} feminine curves, including lewds showing off ${his} natural vagina, bringing more attention to your campaign for natural females.`);
-					}
-				} else {
-					r.push(`On the topic of natural female deference to their owners around the house, your recruiter would be more convincing if ${he} didn't keep readjusting ${his} junk.`);
-				}
-			}
-			if (arcology.FSPaternalist !== "unset") {
-				if (slave.devotion + slave.trust > 150 || slave.relationship === -3) {
-					if (slave.intelligenceImplant >= 15) {
-						r.push(`All week ${he} shares original poetry in which ${his} love for you shines `);
-						if (slave.health.condition > 40) {
-							r.push(`through, and ${his} healthy body shines in every live appearance`);
-						} else {
-							r.push(`through.`);
-						}
-					} else {
-						r.push(`Even though ${he} clearly adores ${his} ${getWrittenTitle(slave)}, at times the uneducated slave struggles to fully and cogently express ${his} affection.`);
-					}
-				} else {
-					r.push(`${His} praise of your good works lacks the special touch of personal affection, so it doesn't impress much.`);
-				}
-			} else if (arcology.FSDegradationist !== "unset") {
-				if (modScore.total > 15 || (modScore.piercing > 8 && modScore.tat > 5)) {
-					if (slaveInt > 50) {
-						r.push(`Ordinarily you would punish a slave who displays independent thinking, but when ${slave.slaveName} goes public in all ${his} garish, modded glory to defend the legal right of slaveowners to use their property however they please, ${he}'s earned a brief reprieve.`);
-					} else {
-						r.push(`Just the sight of ${slave.slaveName}'s provocatively decorated body entices ${his} online "friends" to share multiple scenarios for raping ${him}, although the honor is wasted on the dumb fucktoy.`);
-					}
-				} else if (slaveInt > 50) {
-					r.push(`Ordinarily you would punish a slave who displays independent thinking, but when ${slave.slaveName} defends the right of owners to use their property however they please, ${he}'s earned some consideration: perhaps you could "reward" ${him} with an extra piercing or a slutty new tat.`);
-				} else {
-					r.push(`${He} isn't smart enough to understand the primal attraction of an arcology where slave holes exist only to be raped, nor is ${his} body sufficiently degraded to advertise it.`);
-				}
-			}
-			if (arcology.FSIntellectualDependency !== "unset") {
-				if (arcology.FSIntellectualDependencyLawBeauty === 1 && bimboScore(slave) >= 6) {
-					if (slave.energy > 95) {
-						if (slaveInt < -50) {
-							r.push(`${His} week was spent competing with other bimbos and generally being a delight to onlookers when the competition inevitably turns sexual.`);
-						} else {
-							r.push(`This week's softcore photo shoot clearly showcases a bimbo, even if it feels like too much thought was put into it.`);
-						}
-					} else {
-						r.push(`While ${he} may look the part of a bimbo, ${he} lacks the sex drive to back it up.`);
-					}
-				} else if (slave.energy > 95) {
-					if (slaveInt < -50) {
-						r.push(`${His} week was spent wandering aimlessly throughout the arcology, delighting anyone able to spend time with ${him} with ${his} simple ways.`);
-					} else {
-						r.push(`${He} exhibits raw lust, but lacks other traits commonly found in bimbos, hindering ${his} efforts.`);
-					}
-				} else {
-					r.push(`${He}'s just lacks the energy to party all night long.`);
-				}
-			} else if (arcology.FSSlaveProfessionalism !== "unset") {
-				if (slave.accent <= 1) {
-					if (slaveInt > 50) {
-						if (slaveInt > 95) {
-							if (slave.skill.entertainment + slave.skill.whoring + slave.skill.oral + slave.skill.anal + slave.skill.vaginal >= 400) {
-								r.push(`Each week ${he} hosts ${his} own seminar demonstrating new and exciting sexual techniques, some even of ${his} own creation.`);
-							} else {
-								r.push(`${He} uses ${his} brilliant mind to show what a slave is truly capable of, but ${he} can only go so far lacking practical skills.`);
-							}
-						} else if (slave.skill.entertainment + slave.skill.whoring + slave.skill.oral + slave.skill.anal + slave.skill.vaginal >= 400) {
-							r.push(`${He} participates in a weekly article showcasing skills every slave needs. However, only being able to recite learned information limits ${him}.`);
-						} else {
-							r.push(`${He} attempts to be a sexual trendsetter, but is neither smart nor skilled enough to achieve anything of interest.`);
-						}
-					} else {
-						r.push(`${He} isn't smart enough to explain what a professional slave actually is and how it differs from a trained slave.`);
-					}
-				} else {
-					r.push(`${His} inability to speak ${V.language} properly makes ${him} a relatively poor spokes${woman} for trained slaves.`);
-				}
-			}
-			if (arcology.FSBodyPurist !== "unset") {
-				if (slave.corsetPiercing === 0 && modScore.piercing < 3 && modScore.tat < 2) {
-					if (slave.boobsImplant === 0 && slave.buttImplant === 0 && slave.waist >= -95) {
-						r.push(`${He} exhibits pure sexuality in a lovely, artistic gallery of erotic photos posted this week that displays every natural `);
-						if (V.showInches === 2) {
-							r.push(`inch`);
-						} else {
-							r.push(`centimeter`);
-						}
-						r.push(`of ${his} body.`);
-					} else if (slave.boobsImplant === 0 && slave.buttImplant === 0) {
-						r.push(`This week's softcore photo shoot delights the eye: only ${his} unnatural waistline mars ${his} beauty, and that can hardly be blamed on the model.`);
-					} else {
-						r.push(`${His} unblemished skin shines artistically in this week's erotic studio gallery, but the shape of ${his} curves is too obviously artificial.`);
-					}
-				} else if (slave.boobsImplant === 0 && slave.buttImplant === 0 && slave.waist >= -95) {
-					r.push(`${His} most recent photo galleries are barely passable: you can hardly see the ${woman} beneath ${his} blatant body art.`);
-				} else {
-					r.push(`${He} is burdened by the knowledge that ${his} heavy alterations don't fit your ideal of purity, and fails to show at a scheduled photo shoot.`);
-				}
-			} else if (arcology.FSTransformationFetishist !== "unset") {
-				if (slave.boobsImplant > 0 && slave.buttImplant > 0 && slave.lipsImplant > 0) {
-					if (slave.waist < -95 || slave.teeth === "pointy" || slave.teeth === "fangs" || !hasAllNaturalLimbs(slave) || (slave.vagina > -1 && slave.dick > 6)) {
-						r.push(`A series of cleverly staged publicity events at various businesses in the arcology subtly focuses on ${his} better-than-natural physiology in each one.`);
-					} else if (V.seeExtreme === 1) {
-						r.push(`${His} augmented body certainly has its appeals, yet as you look over this week's publicity recap you begin to wonder if ${he} could be still more extremely <span style="italic">transformed<span>.`);
-					} else if (slave.vagina > -1 && slave.dick > 0) {
-						r.push(`${His} special body stands out during this week's publicity tour; and if ${his} futa cock were grown beyond a natural size, now that would really advertise ${his} improved state.`);
-					} else if (V.seeDicks > 0) {
-						r.push(`${He} looks great in this week's publicity events at arcology businesses, always posing to show off ${his} enhancements. Now if only there were something to graft on that would take ${him} beyond implants to genuine <span style="italic">transformation<span>.`);
-					} else {
-						// game settings prohibit greater transformations
-						r.push(`A series of cleverly staged publicity events at various businesses in the arcology subtly focuses on the beauty of ${his} implants.`);
-					}
-				} else {
-					r.push(`"Boobs, butts, and blowjobs": it's the plastic surgeon's mantra, and viewing this week's publicity footage reminds you that you've neglected your recruiter's augmentations.`);
-				}
-			}
-			if (arcology.FSYouthPreferentialist !== "unset") {
-				if (slave.physicalAge < 30) {
-					r.push(`${His} nightly cam chats sparkle with the energy of youth.`);
-				} else {
-					r.push(`As an older slave, ${he} doesn't have enough energy to cam chat late into the night.`);
-				}
-			} else if (arcology.FSMaturityPreferentialist !== "unset") {
-				if (slave.actualAge >= 30) {
-					r.push(`${He} video blogs regularly about the financial, medical, and even emotional security of slave life for older ${women}.`);
-				} else {
-					r.push(`${He} uses too much youthful slang and jumps from topic to topic in ${his} video blogs, making them difficult for ${his} audience to follow.`);
-				}
-			}
-			if (arcology.FSPetiteAdmiration !== "unset") {
-				if (heightPass(slave)) {
-					r.push(`${He} takes advantage of ${his} short stature to shock and amaze ${his} followers by having sex in unusual places.`);
-				} else {
-					r.push(`It's hard to play up a difference in height when ${he} stands as tall`);
-					if (slave.height >= 185) {
-						r.push(`as, or taller than,`);
-					}
-					r.push(`as most citizens.`);
-				}
-			} else if (arcology.FSStatuesqueGlorification !== "unset") {
-				if (heightPass(slave)) {
-					r.push(`${His} photoshoots all use a panoramic camera to better capture ${his} height while giving them a unique flare.`);
-				} else {
-					r.push(`${He}'s just too short for the public to pay any mind to.`);
-				}
-			}
-			if (arcology.FSSlimnessEnthusiast !== "unset") {
-				if (slave.boobs < 500 && slave.butt < 3 && slave.weight <= 10 && slave.muscles <= 30) {
-					r.push(`${His} trim body gives ${him} a cute, ${girl}-next-door sex appeal in every selfie, even the ones taken in your penthouse far above everyone else's doors.`);
-				} else {
-					r.push(`${He} shares a lot of selfies of ${his} activities in your penthouse, but ${his} bulging figure tends to hide what's going on.`);
-				}
-			} else if (arcology.FSAssetExpansionist !== "unset") {
-				if (slave.boobs > 2000 || slave.butt > 7 || slave.balls > 4 || slave.dick > 8) {
-					r.push(`As the saying goes, "shake it if you got it," and no one can doubt ${slave.slaveName} has it after a "citizen" posts an "unauthorized" wristcam video of ${his} humongous anatomy swinging around a stripper pole.`);
-				} else {
-					r.push(`Although ${he} tries hard, none of ${his} assets interest the true size fetishist.`);
-				}
-			}
-			if (arcology.FSPastoralist !== "unset") {
-				if (V.dairy) {
-					if (App.Entity.facilities.dairy.employeesIDs().size > 0 && FSIntMod > ((V.dairyRestraintsSetting + 1) * 30) && V.dairyRestraintsSetting < 2) {
-						if (slave.lactation > 0) {
-							r.push(`${He} schedules VR tours of ${V.dairyName} in order to popularize your free-range practices and quality products: the highlight each time is when ${he} hooks ${his} own teats into a milker and brings ${himself} to orgasm.`);
-						} else {
-							r.push(`${He} narrates a virtual reality tour of ${V.dairyName}, explaining how your humane, free-range practices result in a high quality product.`);
-						}
-					} else if (slave.lactation > 0) {
-						r.push(`${His} VR uploads include a short clip of ${him} milking ${himself} in ${V.dairyName}; ${he} squirts directly into an old-fashioned bucket while ignoring the complicated, industrial machines behind ${him}.`);
-					} else if (V.dairyRestraintsSetting >= 2) {
-						r.push(`Your dairy is too heavily industrialized to promote socially.`);
-					} else {
-						r.push(`${He} ignores ${V.dairyName}, since ${he} can't think of any ideas to promote it.`);
-					}
-				} else {
-					r.push(`${He} can't really promote Pastoralist ideals when ${his} owner hasn't even committed to building a Dairy.`);
-				}
-			}
-			if (arcology.FSPhysicalIdealist !== "unset") {
-				if (slave.muscles >= 50 && arcology.FSPhysicalIdealistLaw === 0) {
-					r.push(`${He} asks another slave to photo-document ${his} time in the gym this week: naked, of course, to show off ${his} impressive muscle definition, and in certain poses ${he} nearly seems to be making love to the equipment.`);
-				} else if (slave.muscles >= 20 && slave.muscles < 50 && arcology.FSPhysicalIdealistLaw === 1) {
-					r.push(`${He} asks another slave to photo-document ${his} time on the track this week: naked, of course, to show off how perfectly toned body in motion.`);
-				} else if (slave.muscles > 40 && slave.health.condition > 80) {
-					r.push(`${He} asks another slave to photo-document ${his} time in the gym this week: naked, of course, to show off how ${he} keeps in such fine shape, and in certain poses ${he} nearly seems to be making love to the equipment.`);
-				} else {
-					r.push(`${He} tries documenting ${his} exercise routine, but it's a snooze fest because ${he} doesn't have the guns to show for it.`);
-				}
-			} else if (arcology.FSHedonisticDecadence !== "unset") {
-				if (slave.weight > 95 || (slave.fetishStrength >= 95 && slave.weight > 10)) {
-					r.push(`${He} frequently`);
-					if (slave.fetishStrength >= 95) {
-						r.push(`makes public appearances where ${he} demonstrates the strength of ${his} fetishes and invites spectators to aid in satisfying ${his} desires.`);
-					} else {
-						r.push(`livestreams ${himself} relaxing and masturbating, making sure to draw attention to ${his} lush curves and how comfortable ${his} life is.`);
-					}
-				}
-				if (slave.weight > 10 && slave.health.condition > 80) {
-					r.push(`Despite ${his} weight, ${he} practically oozes health and happiness helping to ease potential worries about the excessive lifestyle slaves enjoy under you.`);
-				}
-				if (arcology.FSHedonisticDecadenceResearch === 1 && arcology.FSDegradationist === "unset") {
-					r.push(`Whenever ${he} meets a prospect, ${he} makes sure to take some of your specialized slave food with ${him} to show them they won't miss much from their prior lives. It rarely fails to make an impact.`);
-				}
-			}
-			if (arcology.FSChattelReligionist !== "unset") {
-				if (slaveInt > 15 && (slave.devotion > 95 || slave.trust > 95)) {
-					if (slave.clothes === "a chattel habit" || slave.clothes === "a fallen nuns habit" || slave.clothes === "a penitent nuns habit" || slave.clothes === "a hijab and abaya") {
-						r.push(`Clad in ${his} holy garb, ${slave.slaveName} preaches to the atrium with a powerful appeal to the new morality, in which ${his} absolute faith in your revelations is unmistakable.`);
-					} else if (arcology.FSNeoImperialist !== "unset" && slave.clothes === "a tight Imperial bodysuit") {
-						r.push(`${He} lectures eloquently on the importance of hierarchy and noble lineage in a pseduo-religious fashion, dressed out in ${his} form-fitting bodysuit; most of the listeners' eyes fall on ${his} tightly-outlined chest and how ${his} nipples protrude obviously underneath the cybersuit, your crest emblazoned over the rock-hard nubs doing more of the arguing.`);
-					} else if (arcology.FSNeoImperialist !== "unset" && slave.clothes === "Imperial Plate") {
-						r.push(`${He} gives a lengthy speech about the importance of hierarchy and noble lineage in a pseudo-religious fashion, speaking on the divine right of the nobility to rule while dominating the floor in ${his} ultra-heavy Imperial plate.`);
-					} else if (arcology.FSRomanRevivalist !== "unset" && slave.clothes === "a toga") {
-						r.push(`${He} preaches in the atrium, delivering a powerful and faith-filled appeal in support of the new state religion and its Prophet-Emperor, descendant of the gods.`);
-					} else {
-						r.push(`${He} heads to the atrium to deliver a powerful, faith-based appeal for everyone to join the new moral order, though one cynical onlooker heckles ${him} about ${his} style of dress.`);
-					}
-				} else if (slaveInt > 15) {
-					r.push(`${His} lecture on the new religious morality is thorough, and also devastatingly boring: all bullet point scriptures and little emotion that would sway unenlightened hearts.`);
-				} else if (slave.devotion > 95 || slave.trust > 95) {
-					r.push(`Although ${he} wears ${his} faith in you on ${his} metaphorical sleeve, ${he} can't muster the intellectual arguments to counter the shrill voices of backward old world religions.`);
-				} else {
-					r.push(`${He} is hapless as a proselytizer for the new religious order because ${his} personal understanding and adherence remains inadequate.`);
-				}
-			} else if (arcology.FSNull !== "unset") {
-				r.push(`${His} contribution is one voice among many in the open freedom of ${arcology.name}'s media,`);
-				if (slave.skill.entertainment > 10) {
-					r.push(`but everything that relates to its leadership is usually well-received.`);
-				} else {
-					r.push(`so ${his} unskilled performances this week hardly cause a ripple.`);
-				}
-			}
-			if (arcology.FSRomanRevivalist !== "unset") {
-				if (slave.clothes === "a toga") {
-					if (slave.face > 10 && slave.counter.pitKills > 0) {
-						r.push(`${He} thrills audiences by recounting tales of ${his} exploits as a beautiful and deadly gladiatrix-<span style="italic">slash</span>-love-slave for the First Citizen of the Eternal City reborn.`);
-					} else if (slave.face > 10) {
-						r.push(`${His} statuesque beauty is a fitting tribute to the glory of the Eternal City reborn, but ${he} still lacks the edge of <span style="italic">bloodthirstiness</span> that makes life here so exciting.`);
-					} else if (slave.counter.pitKills > 0) {
-						r.push(`Even though ${his} history of gladiatorial combat is noble, when mixed with ${his} homeliness it tends to frighten the squeamish as much as it attracts the sanguinary.`);
-					} else {
-						r.push(`${He} comes across like a historical tour guide; more worthy citizens would flock to the New Rome if your recruiter appeared as a statuesque, and possibly deadly, inamorata of its ruler.`);
-					}
-				} else {
-					r.push(`Dressed as ${he} is in the garments of a barbarian, the citizens of the New Rome ignore ${him}.`);
-				}
-			} else if (arcology.FSNeoImperialist !== "unset") {
-				if (slave.clothes === "a tight Imperial bodysuit") {
-					if (slave.face > 10 && slave.skill.entertainment >= 60) {
-						r.push(`${He} thrills the watching audience with ${his} immense beauty and charm, performing just as a proper Imperial slave ought - obedient, gorgeous, and strikingly attentive.`);
-					} else if (slave.face > 10) {
-						r.push(`${His} beauty captivates the watching audience, although ${he} is somewhat awkward and ungraceful when actually speaking with them.`);
-					} else if (slave.skill.entertainment >= 60) {
-						r.push(`Even though ${he} acts as a perfect Imperial slave, attentive and obedient, ${his} comely features fail to attract much attention, superficial as it may be.`);
-					} else {
-						r.push(`${He} comes across as both boring and unattractive; the emblazoned crest on ${his} chest seems more like a mark of mockery upon the stuttering, homely slave.`);
-					}
-				} else if (slave.clothes === "Imperial Plate") {
-					if (slave.counter.pitKills > 0) {
-						r.push(`In ${his} ultra-heavy Imperial Plate, ${he} mystifies and captivates the audience with ${his} tales of victory and domination in the arena, coming across as an awe-inspiring and slightly terrifying properly Imperial Knight.`);
-					} else {
-						r.push(`The high-tech nature of ${his} Imperial Plate and its incredibly thick plating does more to scare off potential recruits than draw them in, particularly without any real tales of valor to tell to those who do stop to listen.`);
-					}
-				} else {
-					r.push(`Without clear markings to identify ${him} as an Imperial slave, ${his} attempts have little effect on the promotion of Imperial society.`);
-				}
-			} else if (arcology.FSEgyptianRevivalist !== "unset") {
-				if (totalRelatives(slave) > 0) {
-					if (recruiterRelation) {
-						const relationType = relativeTerm(slave, recruiterRelation);
-						if (slave.energy > 60 || slave.sexualQuirk === "tease" || slave.sexualQuirk === "perverted") {
-							if (recruiterRelation.energy > 60 || recruiterRelation.sexualQuirk === "tease" || recruiterRelation.sexualQuirk === "perverted") {
-								r.push(`${slave.slaveName} and ${his} ${relationType} ${recruiterRelation.slaveName} collaborate on a series of short commercials showing them `);
-								if (canWalk(slave) || canWalk(recruiterRelation)) {
-									r.push(`walking and`);
-								}
-								r.push(`playing in your arcology's public spaces. A little `);
-								if (hasAnyArms(slave) || hasAnyArms(recruiterRelation)) {
-									r.push(`hand on the ass`);
-								} else {
-									r.push(`cuddling`);
-								}
-								r.push(`here, a little lips almost touching there, and it's enough to tease your Ancient Egyptian sensibility about incest without running afoul of too many old world censors.`);
-							} else if (slave.relationshipTarget === recruiterRelation.ID) {
-								r.push(`Even though their incestuous relationship is not condemned here, ${his} ${relationType} ${recruiterRelation.slaveName} is too shy to act it out in front of the world.`);
-							} else {
-								r.push(`The Ancient Egyptian sensibility of your arcology features slave incest, but your recruiter can't convince ${his} shy ${relationType} to play along for publicity.`);
-							}
-						} else if (slave.relationshipTarget === recruiterRelation.ID) {
-							r.push(`Even though ${he} shares a properly incestuous relationship with ${his} ${relationType}, ${he} is too shy to bring it on camera for the whole world.`);
-						} else {
-							r.push(`The Ancient Egyptian sensibility of your arcology features slave incest, but ${he}'s too shy even to play-act with ${his} ${relationType} for publicity.`);
-						}
-					} else {
-						r.push(`One idea that comes up while brainstorming is to act out Ancient Egyptian incest with a family member, but all of them are confined and unavailable.`);
-					}
-				} else {
-					r.push(`One of the most prominent features of your Egyptian Revival is an open, even expectant, attitude toward slave incest, but ${he} doesn't have any close family living in your household.`);
-				}
-			} else if (arcology.FSEdoRevivalist !== "unset") {
-				if (V.clubDecoration !== "standard" && App.Entity.facilities.club.employeesIDs().size > 1) {
-					if (clubSeed >= 3) {
-						r.push(`The candid, POV-style videos of ${slave.slaveName} dancing, making out, and giving blowjobs alongside your regular sluts in ${V.clubName}'s V.clubDecoration atmosphere earn a lot of thumbs up.`);
-					} else {
-						r.push(`${He} enjoys ${himself} when ${he} films in ${V.clubName}, but the sluts there just don't earn enough attention for the visit to raise your public profile; the club may need broader marketing appeal.`);
-					}
-				} else if (V.club === 0) {
-					r.push(`${He}'d like to integrate ${his} personal profile with your cultural Revival, but there's no clear place in your arcology to focus ${his} attention.`);
-				} else if (App.Entity.facilities.club.employeesIDs().size <= 1) {
-					r.push(`${He} travels down to ${V.clubName} for some POV video footage, but ${he} can't get enough reliable dance partners.`);
-				} else {
-					r.push(`${He} gets some hot POV-style footage when ${he} films in your nightclub, but there's nothing special about its atmosphere to distinguish it from any other bar in any other arcology.`);
-				}
-			} else if (arcology.FSArabianRevivalist !== "unset") {
-				if (V.masterSuiteDecoration === "Arabian Revivalist" && V.masterSuiteUpgradeLuxury > 0 && masterSuiteAvgEnergy > 60) {
-					if (App.Entity.facilities.masterSuite.employeesIDs().size >= 3) {
-						r.push(`An exposé that "pulls back the curtain" on your elaborate master bedroom goes viral after several harem slaves drag ${him} into`);
-						if (V.masterSuiteUpgradeLuxury === 1) {
-							r.push(`four-way action with their ${properMaster()}`);
-						} else {
-							r.push(`a fuckpit daisy chain`);
-						}
-						r.push(`and another takes over the filming.`);
-					} else {
-						r.push(`${He} makes a short video essay about your elaborate master suite, but the empty space unfilled by luscious slave bodies fails to impress.`);
-					}
-				} else if (V.masterSuiteUpgradeLuxury === 0) {
-					// covers if suite is unbuilt as well
-					r.push(`${He} wants to profile the decadence of your grand bedroom, but the reality is shabby compared to the Revivalist dreams of luxurious harems in the old days.`);
-				} else if (V.masterSuiteDecoration !== "Arabian Revivalist") {
-					r.push(`${He} thinks that "Pulling Back the Curtain" would make a good title for an exposé of your sumptuous bedroom, but it turns out that the space isn't decorated with Arabian-style curtains.`);
-				} else {
-					r.push(`${He} makes a short video essay about your elaborate master suite, but there's no sex going on while ${he} films.`);
-				}
-			} else if (arcology.FSChineseRevivalist !== "unset") {
-				if (slaveInt > 50 && V.HeadGirlID !== 0 && V.BodyguardID !== 0 && V.HGSuite > 0) {
-					if ((S.HeadGirl.skill.entertainment / 30) + (S.HeadGirl.intelligenceImplant / 10) + S.HeadGirl.prestige >= 4) {
-						if (S.Bodyguard.prestige >= 1) {
-							r.push(`${He} deferentially chronicles the administration of your Imperial household by Head Girl ${S.HeadGirl.slaveName} and Bodyguard S.Bodyguard.slaveName. The piece explains points of Chinese Revivalist protocol where new slaves or visitors to the Forbidden Penthouse might inadvertently stumble.`);
-						} else {
-							r.push(`${He} interviews your Head Girl about points of protocol and household administration for broadcast to the arcology. Your Bodyguard, ${S.Bodyguard.slaveName}, is not accustomed to fame and prefers to remain off-screen.`);
-						}
-					} else if (S.HeadGirl.intelligenceImplant < 15) {
-						r.push(`${He} edits a documentary broadcast about the Revivalist protocols that drive your household, and in the process uncovers small but annoying lapses due to the Head Girl's lack of formal education.`);
-					} else {
-						r.push(`${He} broadcasts a documentary about life inside your Imperial Chinese household, but the Head Girl's segment comes out flat: ${S.HeadGirl.slaveName} needs more experience working in front of a camera.`);
-					}
-				} else if (V.HeadGirlID === 0 || V.BodyguardID === 0) {
-					r.push(`${He} can't document the benefits of your Imperial Chinese administration because of unfilled posts in its leadership.`);
-				} else if (slaveInt <= 15) {
-					r.push(`Your household is a well-run model for the arcology at large, but your recruiter doesn't completely understand its intricate Revivalist protocols and can't explain it for the masses.`);
-				} else {
-					r.push(`${He} never considers promoting your household's Revivalist protocols, since you don't value your Head Girl enough to accord ${him} a separate apartment inside your walls.`);
-				}
-			}
-		}
+
+		// concatenate the FS match/defend strings *after* the summary
+		r = r.concat(FSstrings);
 	}
 })();
diff --git a/src/facilities/ads.js b/src/facilities/ads.js
index 53c9888767d872f0e20bafbed97fdde308bfd637..54b79c0e21a8159938c1bb8bbd3b2c22a52cd3cd 100644
--- a/src/facilities/ads.js
+++ b/src/facilities/ads.js
@@ -361,7 +361,6 @@ App.Ads.report = function(building, preview) {
 				V.facility[building].adsIncome += adsIncome;
 				cashX(adsIncome, (building + "Ads"));
 			} else if (building === "club") {
-				V.clubBonuses++;
 				repX(DL*random(5, 10), (building + "Ads"));
 			}
 		}
@@ -374,7 +373,6 @@ App.Ads.report = function(building, preview) {
 				V.facility[building].adsIncome += adsIncome;
 				cashX(adsIncome, (building + "Ads"));
 			} else if (building === "club") {
-				V.clubBonuses++;
 				repX(DL*random(5, 10), (building + "Ads"));
 			}
 		}
diff --git a/src/uncategorized/clubReport.tw b/src/uncategorized/clubReport.tw
index 070d3b369294634b59d33c01357922b152421262..6bc9c1b6cc86b92ed3fe4322475ac58ce46a04ea 100644
--- a/src/uncategorized/clubReport.tw
+++ b/src/uncategorized/clubReport.tw
@@ -3,7 +3,7 @@
 <span id="club-stats"></span>
 
 <<set _slaves = App.Utils.sortedEmployees(App.Entity.facilities.club)>>
-<<set _DL = _slaves.length, _SL = $slaves.length, $clubBonuses = 0, $legendaryEntertainerID = 0, _FLsFetish = 0>>
+<<set _DL = _slaves.length, _SL = $slaves.length, $legendaryEntertainerID = 0, _FLsFetish = 0>>
 <<set $legendaryWombID = 0>>
 <<set _minBonus = 50, _maxBonus = 150>>