diff --git a/src/uncategorized/brothelReport.js b/src/uncategorized/brothelReport.js
index f475f2f0f69b2fb214e0e53dd3ff8fec0b9610ce..084c0ccdeca8b4e2a95573e66926e87d266d0e12 100644
--- a/src/uncategorized/brothelReport.js
+++ b/src/uncategorized/brothelReport.js
@@ -18,230 +18,234 @@ globalThis.brothelReport = function() {
 	V.facility.brothel = initFacilityStatistics(V.facility.brothel);
 	const brothelNameCaps = capFirstChar(V.brothelName);
 
-	if (V.MadamID !== 0) {
-		if (S.Madam.health.condition < -80) {
-			improveCondition(S.Madam, 20);
-		} else if (S.Madam.health.condition < -40) {
-			improveCondition(S.Madam, 15);
-		} else if (S.Madam.health.condition < 0) {
-			improveCondition(S.Madam, 10);
-		} else if (S.Madam.health.condition < 90) {
-			improveCondition(S.Madam, 7);
-		}
-		if (S.Madam.devotion <= 45) {
-			S.Madam.devotion += 5;
-		}
-		if (S.Madam.trust < 45) {
-			S.Madam.trust += 5;
-		}
-		if (S.Madam.rules.living !== "luxurious") {
-			S.Madam.rules.living = "luxurious";
-		}
-		if (S.Madam.rules.rest !== "restrictive") {
-			S.Madam.rules.rest = "restrictive";
-		}
-		if (S.Madam.fetishStrength <= 95) {
-			if (S.Madam.fetish !== "dom") {
-				if (fetishChangeChance(S.Madam) > random(0, 100)) {
+	function madamText() {
+		let r = [];
+		if (V.MadamID !== 0) {
+			if (S.Madam.health.condition < -80) {
+				improveCondition(S.Madam, 20);
+			} else if (S.Madam.health.condition < -40) {
+				improveCondition(S.Madam, 15);
+			} else if (S.Madam.health.condition < 0) {
+				improveCondition(S.Madam, 10);
+			} else if (S.Madam.health.condition < 90) {
+				improveCondition(S.Madam, 7);
+			}
+			if (S.Madam.devotion <= 45) {
+				S.Madam.devotion += 5;
+			}
+			if (S.Madam.trust < 45) {
+				S.Madam.trust += 5;
+			}
+			if (S.Madam.rules.living !== "luxurious") {
+				S.Madam.rules.living = "luxurious";
+			}
+			if (S.Madam.rules.rest !== "restrictive") {
+				S.Madam.rules.rest = "restrictive";
+			}
+			if (S.Madam.fetishStrength <= 95) {
+				if (S.Madam.fetish !== "dom") {
+					if (fetishChangeChance(S.Madam) > random(0, 100)) {
+						FLsFetish = 1;
+						S.Madam.fetishKnown = 1;
+						S.Madam.fetish = "dom";
+					}
+				} else if (S.Madam.fetishKnown === 0) {
 					FLsFetish = 1;
 					S.Madam.fetishKnown = 1;
-					S.Madam.fetish = "dom";
+				} else {
+					FLsFetish = 2;
+					S.Madam.fetishStrength += 4;
 				}
-			} else if (S.Madam.fetishKnown === 0) {
-				FLsFetish = 1;
-				S.Madam.fetishKnown = 1;
-			} else {
-				FLsFetish = 2;
-				S.Madam.fetishStrength += 4;
 			}
-		}
-		/* Make sure we have registered living expenses as for any other slave */
-		getSlaveStatisticData(S.Madam, V.facility.brothel);
-		({
-			he, him, his, himself, He, His, wife
-		} = getPronouns(S.Madam));
-		const slave = S.Madam;
-		V.i = V.slaveIndices[slave.ID];
-		/* apply following SA passages to facility leader */
-
-		r = [];
-		if (S.Madam.relationship === -3 && S.Madam.devotion > 50) {
-			r.push(`As your loving ${wife}, ${he} does ${his} best to attract attention to your brothel.`);
-		}
-		if (FLsFetish === 1) {
-			r.push(`${He} isn't above sampling the merchandise ${himself}; before long it's obvious to ${his} girls that ${he}`);
-			r.push(App.UI.DOM.makeElement("span", `really likes fucking them.`, "fetish-gain"));
-		} else if ((FLsFetish === 2)) {
-			r.push(`${He}'s careful that all of the whores under ${his} supervision are all warmed up and ready to get fucked every morning, and ${he}`);
-			r.push(App.UI.DOM.makeElement("span", `really likes fucking them.`, ["fetish", "inc"]));
-		}
-		const improve = App.UI.DOM.makeElement("span", "improve", ["cash", "inc"]);
-		if (S.Madam.skill.whoring <= 10) {
-			r.push(`Though ${S.Madam.slaveName} does ${his} best to manage the brothel, with ${his} lack of skill ${he} can do little.`);
-		} else if ((S.Madam.skill.whoring <= 30)) {
-			r.push(`${S.Madam.slaveName}'s basic skills marginally`, improve, `business at ${V.brothelName}.`);
-		} else if ((S.Madam.skill.whoring <= 60)) {
-			r.push(`${S.Madam.slaveName}'s skills`, improve, `business at ${V.brothelName}.`);
-		} else if ((S.Madam.skill.whoring < 100)) {
-			r.push(`${S.Madam.slaveName}'s skills greatly`, improve, `business at ${V.brothelName}.`);
-		} else {
-			r.push(`${S.Madam.slaveName}'s mastery immensely`, improve, `business at ${V.brothelName}.`);
-		}
-		if (S.Madam.actualAge > 35) {
-			r.push(`${His} age and experience also contribute.`);
-		}
-		if (setup.madamCareers.includes(S.Madam.career)) {
-			r.push(`${He} has experience from ${his} life before ${he} was a slave that helps ${him} in the seedy business of selling other people's bodies for sex.`);
-		} else if (S.Madam.skill.madam >= V.masteredXP) {
-			r.push(`${He} has experience from working for you that helps ${him} in the seedy business of selling other people's bodies for sex.`);
-		}
-		if (S.Madam.intelligence + S.Madam.intelligenceImplant > 15) {
-			r.push(`${He} is a clever manager.`);
-		}
-		if ((S.Madam.dick > 2) && (canPenetrate(S.Madam))) {
-			r.push(`${His} turgid dick helps ${him} manage the bitches.`);
-		}
-		App.Events.addParagraph(el, r);
-
-		for (const slave of slaves) {
-			V.i = V.slaveIndices[slave.ID];
+			/* Make sure we have registered living expenses as for any other slave */
+			getSlaveStatisticData(S.Madam, V.facility.brothel);
 			({
 				he, him, his, himself, He, His, wife
-			} = getPronouns(slave).appendSuffix('2'));
+			} = getPronouns(S.Madam));
+			/* apply following SA passages to facility leader */
+
 			r = [];
-			/* for the included passages */
+			if (S.Madam.relationship === -3 && S.Madam.devotion > 50) {
+				r.push(`As your loving ${wife}, ${he} does ${his} best to attract attention to your brothel.`);
+			}
+			if (FLsFetish === 1) {
+				r.push(`${He} isn't above sampling the merchandise ${himself}; before long it's obvious to ${his} girls that ${he}`);
+				r.push(App.UI.DOM.makeElement("span", `really likes fucking them.`, "fetish-gain"));
+			} else if ((FLsFetish === 2)) {
+				r.push(`${He}'s careful that all of the whores under ${his} supervision are all warmed up and ready to get fucked every morning, and ${he}`);
+				r.push(App.UI.DOM.makeElement("span", `really likes fucking them.`, ["fetish", "inc"]));
+			}
+			const improve = App.UI.DOM.makeElement("span", "improve", ["cash", "inc"]);
+			if (S.Madam.skill.whoring <= 10) {
+				r.push(`Though ${S.Madam.slaveName} does ${his} best to manage the brothel, with ${his} lack of skill ${he} can do little.`);
+			} else if ((S.Madam.skill.whoring <= 30)) {
+				r.push(`${S.Madam.slaveName}'s basic skills marginally`, improve, `business at ${V.brothelName}.`);
+			} else if ((S.Madam.skill.whoring <= 60)) {
+				r.push(`${S.Madam.slaveName}'s skills`, improve, `business at ${V.brothelName}.`);
+			} else if ((S.Madam.skill.whoring < 100)) {
+				r.push(`${S.Madam.slaveName}'s skills greatly`, improve, `business at ${V.brothelName}.`);
+			} else {
+				r.push(`${S.Madam.slaveName}'s mastery immensely`, improve, `business at ${V.brothelName}.`);
+			}
+			if (S.Madam.actualAge > 35) {
+				r.push(`${His} age and experience also contribute.`);
+			}
+			if (setup.madamCareers.includes(S.Madam.career)) {
+				r.push(`${He} has experience from ${his} life before ${he} was a slave that helps ${him} in the seedy business of selling other people's bodies for sex.`);
+			} else if (S.Madam.skill.madam >= V.masteredXP) {
+				r.push(`${He} has experience from working for you that helps ${him} in the seedy business of selling other people's bodies for sex.`);
+			}
+			if (S.Madam.intelligence + S.Madam.intelligenceImplant > 15) {
+				r.push(`${He} is a clever manager.`);
+			}
+			if ((S.Madam.dick > 2) && (canPenetrate(S.Madam))) {
+				r.push(`${His} turgid dick helps ${him} manage the bitches.`);
+			}
+			App.Events.addParagraph(el, r);
 
-			if (S.Madam.rivalryTarget === slave.ID) {
-				r.push(`${He} forces ${his} ${rivalryTerm(S.Madam)}, to service all the men in the brothel.`);
-				slave.devotion -= 2;
-				slave.trust -= 2;
-				if (canDoVaginal(slave)) {
-					seX(slave, "vaginal", "public", "penetrative", 10);
-				}
-				if (canDoAnal(slave)) {
-					seX(slave, "anal", "public", "penetrative", 12);
-				}
-				seX(slave, "anal", "public", "penetrative", 10);
-				if (random(1, 100) > 65) {
-					S.Madam.rivalry++;
-					slave.rivalry++;
+			for (const slave of slaves) {
+				({
+					he, him, his, himself, He, His, wife
+				} = getPronouns(slave).appendSuffix('2'));
+				r = [];
+				/* for the included passages */
+
+				if (S.Madam.rivalryTarget === slave.ID) {
+					r.push(`${He} forces ${his} ${rivalryTerm(S.Madam)}, to service all the men in the brothel.`);
+					slave.devotion -= 2;
+					slave.trust -= 2;
+					if (canDoVaginal(slave)) {
+						seX(slave, "vaginal", "public", "penetrative", 10);
+					}
+					if (canDoAnal(slave)) {
+						seX(slave, "anal", "public", "penetrative", 12);
+					}
+					seX(slave, "anal", "public", "penetrative", 10);
+					if (random(1, 100) > 65) {
+						S.Madam.rivalry++;
+						slave.rivalry++;
+					}
+				} else if (S.Madam.relationshipTarget === slave.ID) {
+					r.push(`${He} dotes over ${his} ${relationshipTerm(S.Madam)}, ${slave.slaveName}, making sure ${he2} is safe, but unfortunately driving potential customers away from ${him2}.`);
+					slave.devotion++;
+				} else if (areRelated(S.Madam, slave)) {
+					r.push(`${He} pays special attention to ${his} ${relativeTerm(S.Madam, slave)}, ${slave.slaveName}, making sure ${he2} is treated well and showing off ${his2} skills.`);
+					slave.trust++;
 				}
-			} else if (S.Madam.relationshipTarget === slave.ID) {
-				r.push(`${He} dotes over ${his} ${relationshipTerm(S.Madam)}, ${slave.slaveName}, making sure ${he2} is safe, but unfortunately driving potential customers away from ${him2}.`);
-				slave.devotion++;
-			} else if (areRelated(S.Madam, slave)) {
-				r.push(`${He} pays special attention to ${his} ${relativeTerm(S.Madam, slave)}, ${slave.slaveName}, making sure ${he2} is treated well and showing off ${his2} skills.`);
-				slave.trust++;
-			}
-			if (slave.prestigeDesc === "$He is a famed Free Cities whore, and commands top prices.") {
-				r.push(`${He} makes sure to promote ${slave.slaveName}, the famed whore, in order to capitalize on ${his2} popularity.`);
-			} else if (slave.prestigeDesc === "$He is a famed Free Cities slut, and can please anyone.") {
-				r.push(`${He} makes sure to promote ${slave.slaveName}, the famed entertainer, in order to capitalize on ${his2} popularity.`);
-			} else if (slave.prestigeDesc === "$He is remembered for winning best in show as a dairy cow.") {
-				if (V.arcologies[0].FSPhysicalIdealist !== "unset") {
-					if ((slave.muscles > 60) && (slave.weight < 30) && (slave.lactation > 0) && ((slave.boobs - slave.boobsImplant) > 6000)) {
-						r.push(`${He} shows off how even a cow like ${slave.slaveName} can achieve physical perfection.`);
-					} else {
-						if (slave.muscles < 30) {
-							r.push(`An unmuscled,`);
+				if (slave.prestigeDesc === "$He is a famed Free Cities whore, and commands top prices.") {
+					r.push(`${He} makes sure to promote ${slave.slaveName}, the famed whore, in order to capitalize on ${his2} popularity.`);
+				} else if (slave.prestigeDesc === "$He is a famed Free Cities slut, and can please anyone.") {
+					r.push(`${He} makes sure to promote ${slave.slaveName}, the famed entertainer, in order to capitalize on ${his2} popularity.`);
+				} else if (slave.prestigeDesc === "$He is remembered for winning best in show as a dairy cow.") {
+					if (V.arcologies[0].FSPhysicalIdealist !== "unset") {
+						if ((slave.muscles > 60) && (slave.weight < 30) && (slave.lactation > 0) && ((slave.boobs - slave.boobsImplant) > 6000)) {
+							r.push(`${He} shows off how even a cow like ${slave.slaveName} can achieve physical perfection.`);
 						} else {
-							r.push(`A`);
-						}
-						if (slave.weight > 30) {
-							r.push(`fat,`);
+							if (slave.muscles < 30) {
+								r.push(`An unmuscled,`);
+							} else {
+								r.push(`A`);
+							}
+							if (slave.weight > 30) {
+								r.push(`fat,`);
+							}
+							r.push(`'prestigious'`);
+							if (slave.lactation > 0) {
+								r.push(`cow`);
+							} else if (((slave.boobs - slave.boobsImplant) > 6000)) {
+								r.push(`mass of titflesh`);
+							} else {
+								r.push(`slave`);
+							}
+							r.push(`like ${slave.slaveName} is woefully out of fashion, so ${S.Madam.slaveName} tries to draw attention away from ${him2}.`);
 						}
-						r.push(`'prestigious'`);
-						if (slave.lactation > 0) {
-							r.push(`cow`);
-						} else if (((slave.boobs - slave.boobsImplant) > 6000)) {
-							r.push(`mass of titflesh`);
+					} else {
+						if ((slave.lactation > 0) && ((slave.boobs - slave.boobsImplant) > 6000)) {
+							r.push(`${He} makes sure to massage ${slave.slaveName}'s huge breasts to get the milk flowing before enticing clients to suckle and play with ${him2}.`);
 						} else {
-							r.push(`slave`);
+							r.push(`${He} would like to show off ${slave.slaveName}'s huge udders, but ${slave.slaveName} `);
+							if (slave.lactation === 0) {
+								r.push(`isn't producing milk anymore.`);
+							} else {
+								r.push(`doesn't exactly have huge udders anymore.`);
+							}
 						}
-						r.push(`like ${slave.slaveName} is woefully out of fashion, so ${S.Madam.slaveName} tries to draw attention away from ${him2}.`);
 					}
-				} else {
-					if ((slave.lactation > 0) && ((slave.boobs - slave.boobsImplant) > 6000)) {
-						r.push(`${He} makes sure to massage ${slave.slaveName}'s huge breasts to get the milk flowing before enticing clients to suckle and play with ${him2}.`);
-					} else {
-						r.push(`${He} would like to show off ${slave.slaveName}'s huge udders, but ${slave.slaveName} `);
-						if (slave.lactation === 0) {
-							r.push(`isn't producing milk anymore.`);
+				} else if (slave.prestigeDesc === "$He is remembered for winning best in show as a cockmilker.") {
+					if (V.arcologies[0].FSGenderFundamentalist !== "unset") {
+						/* this needs review - doesn't fit right. An XY slave would be expected to be masculine. */
+						if ((slave.balls === 0) && (slave.dick === 0) && (slave.vagina > -1)) {
+							r.push(`${He} uses ${slave.slaveName} as an example of how even a huge-balled freak like ${him2} can be restored to proper femininity.`);
 						} else {
-							r.push(`doesn't exactly have huge udders anymore.`);
+							r.push(`${He} tries to hide ${slave.slaveName}, 'her' body being notorious for its defiance of conventional femininity.`);
 						}
-					}
-				}
-			} else if (slave.prestigeDesc === "$He is remembered for winning best in show as a cockmilker.") {
-				if (V.arcologies[0].FSGenderFundamentalist !== "unset") {
-					/* this needs review - doesn't fit right. An XY slave would be expected to be masculine. */
-					if ((slave.balls === 0) && (slave.dick === 0) && (slave.vagina > -1)) {
-						r.push(`${He} uses ${slave.slaveName} as an example of how even a huge-balled freak like ${him2} can be restored to proper femininity.`);
 					} else {
-						r.push(`${He} tries to hide ${slave.slaveName}, 'her' body being notorious for its defiance of conventional femininity.`);
-					}
-				} else {
-					if (((slave.balls > 5) && (slave.dick !== 0)) || ((slave.balls > 4) && (slave.dick !== 0) && (slave.prostate > 1))) {
-						r.push(`${He} shows off ${slave.slaveName}'s copious loads by putting a condom over ${his2} dick and teasing ${him2} till ${he2} bursts it. The show draws multiple clients that want to play with ${his2} oversized junk and messy orgasms.`);
-					} else {
-						r.push(`${He} would love to show off ${slave.slaveName}'s copious loads, but`);
-						if (slave.dick === 0) {
-							r.push(`${slave.slaveName} doesn't have a dick.`);
-						} else if (slave.balls === 0) {
-							r.push(`${slave.slaveName}'s not producing cum.`);
+						if (((slave.balls > 5) && (slave.dick !== 0)) || ((slave.balls > 4) && (slave.dick !== 0) && (slave.prostate > 1))) {
+							r.push(`${He} shows off ${slave.slaveName}'s copious loads by putting a condom over ${his2} dick and teasing ${him2} till ${he2} bursts it. The show draws multiple clients that want to play with ${his2} oversized junk and messy orgasms.`);
 						} else {
-							r.push(`${slave.slaveName}'s orgasms just aren't messy enough.`);
+							r.push(`${He} would love to show off ${slave.slaveName}'s copious loads, but`);
+							if (slave.dick === 0) {
+								r.push(`${slave.slaveName} doesn't have a dick.`);
+							} else if (slave.balls === 0) {
+								r.push(`${slave.slaveName}'s not producing cum.`);
+							} else {
+								r.push(`${slave.slaveName}'s orgasms just aren't messy enough.`);
+							}
 						}
 					}
-				}
-			} else if (slave.prestigeDesc === "$He is remembered for winning best in show as a breeder.") {
-				if (slave.bellyPreg >= 5000) {
-					r.push(`${He} makes sure ${slave.slaveName}'s growing pregnancy is well taken care of, even if it means driving away potential customers away when the mother-to-be needs a rest.`);
-				} else if (canGetPregnant(slave)) {
-					r.push(`${He} makes sure to play off ${slave.slaveName}'s fame and fertility by enticing potential customers to be the one to claim ${his2} womb by filling it with their child.`);
-				} else {
-					r.push(`${He} would love to play off of ${slave.slaveName}'s fame and fertility, but unfortunately ${he2}`);
-					if (slave.pregKnown === 1 && slave.bellyPreg < 1500) {
-						r.push(`is already pregnant and not far enough along to show it.`);
-					} else if (slave.pregKnown === 1 && slave.bellyPreg < 5000) {
-						r.push(`already pregnant, but not enough to be exciting.`);
+				} else if (slave.prestigeDesc === "$He is remembered for winning best in show as a breeder.") {
+					if (slave.bellyPreg >= 5000) {
+						r.push(`${He} makes sure ${slave.slaveName}'s growing pregnancy is well taken care of, even if it means driving away potential customers away when the mother-to-be needs a rest.`);
+					} else if (canGetPregnant(slave)) {
+						r.push(`${He} makes sure to play off ${slave.slaveName}'s fame and fertility by enticing potential customers to be the one to claim ${his2} womb by filling it with their child.`);
 					} else {
-						r.push(`is unable to get knocked up.`);
+						r.push(`${He} would love to play off of ${slave.slaveName}'s fame and fertility, but unfortunately ${he2}`);
+						if (slave.pregKnown === 1 && slave.bellyPreg < 1500) {
+							r.push(`is already pregnant and not far enough along to show it.`);
+						} else if (slave.pregKnown === 1 && slave.bellyPreg < 5000) {
+							r.push(`already pregnant, but not enough to be exciting.`);
+						} else {
+							r.push(`is unable to get knocked up.`);
+						}
 					}
 				}
+				App.Events.addNode(el, r);
 			}
-			App.Events.addNode(el, r);
-		}
 
-		if ((SL + V.brothelSlavesGettingHelp < 10) && V.MadamNoSex !== 1 && !slaveResting(S.Madam)) {
-			({
-				he, him, his, himself, He, His, wife
-			} = getPronouns(S.Madam));
-			let oldCash = V.cash;
-			if (V.showEWD !== 0) {
+			if ((SL + V.brothelSlavesGettingHelp < 10) && V.MadamNoSex !== 1 && !slaveResting(S.Madam)) {
+				({
+					he, him, his, himself, He, His, wife
+				} = getPronouns(S.Madam));
+				let oldCash = V.cash;
+				if (V.showEWD !== 0) {
+					App.Events.addParagraph(
+						el,
+						[
+							He,
+							App.SlaveAssignment.whore(S.Madam)
+						]
+					);
+				} else {
+					App.SlaveAssignment.whore(S.Madam);
+				}
 				App.Events.addParagraph(
 					el,
 					[
-						He,
-						App.SlaveAssignment.whore(S.Madam)
+						`${He} whores ${himself} because ${he} doesn't have enough whores to manage to keep ${him} busy, and makes`,
+						App.UI.DOM.makeElement("span", `${cashFormat(S.Madam.lastWeeksCashIncome)}.`, ["cash", "inc"]),
+						`${He} can charge more for ${his} time, since many citizens find it erotic to fuck the Madam.`
 					]
 				);
-			} else {
-				App.SlaveAssignment.whore(S.Madam);
+				profits += V.cash - oldCash;
+				oldCash = V.cash;
 			}
-			App.Events.addParagraph(
-				el,
-				[
-					`${He} whores ${himself} because ${he} doesn't have enough whores to manage to keep ${him} busy, and makes`,
-					App.UI.DOM.makeElement("span", `${cashFormat(S.Madam.lastWeeksCashIncome)}.`, ["cash", "inc"]),
-					`${He} can charge more for ${his} time, since many citizens find it erotic to fuck the Madam.`
-				]
-			);
-			profits += V.cash - oldCash;
-			oldCash = V.cash;
 		}
+		return r.join(" ");
 	}
 
+	const madamEffects = App.UI.DOM.appendNewElement("p", el, '', "indent");
+	$(madamEffects).append(madamText());
+
 	if (SL > 0) {
 		const whoreNumber = document.createElement("p");
 		whoreNumber.classList.add("indent", "bold");
@@ -287,7 +291,6 @@ globalThis.brothelReport = function() {
 		}
 		let oldCash = V.cash;
 		for (const slave of slaves) {
-			V.i = V.slaveIndices[slave.ID];
 			({
 				he, him, his, himself, He, His, wife
 			} = getPronouns(slave));