diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index 866fefd380c3de3e40e0db5121ec5d30a11837ec..30050c331600173014d109551835c2999fc65412 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -437,23 +437,78 @@ slave's prestige
 2 - Very prestigious
 > 2 - Extremely prestigious
 
-pornFeed:
+rules:
+
+None RA rules related to a slave. Has the following properties:
+
+rules.lactation :
+
+"none"
+"induce"
+"maintain"
+
+rules.living:
+
+"spare"
+"normal"
+"luxurious"
+
+rules.relationship:
+
+"restrictive"
+"just friends"
+"permissive"
+
+rules.release:
+
+"permissive"
+"sapphic"
+"masturbation"
+"restrictive"
+"chastity"
+
+rules.speech :
+
+"restrictive"
+"permissive"
+"accent elimination"
+"language lessons"
+
+rules.punishment :
+
+"confinement"
+"whipping"
+"chastity"
+"situational"
+
+rules.reward:
+
+"relaxation"
+"drugs"
+"orgasm"
+"situational"
+
+porn:
+
+porn performance of the slave. Has the following properties:
+
+porn.feed:
 
 is the studio outputting porn of her?
 0 - no
 1 - yes
 
-pornFame:
+porn.viewerCount:
 
 how famous her porn is?
 accepts int
 
-pornFameSpending:
+porn.spending:
 
 how much money is being spent on promoting her porn
 accepts int
 
-pornPrestige:
+porn.prestige:
 
 how famous she is in porn
 0 - not
@@ -461,15 +516,11 @@ how famous she is in porn
 2 - recognized
 3 - world renowned
 
-pornPrestigeDesc:
+porn.prestigeDesc:
 
 description to go with above pornPrestige
 accepts string
 
-porn:
-
-porn performance of the slave. Has the following properties:
-
 porn.fameType:
 
 what porn she is known for
@@ -2587,53 +2638,6 @@ Her skill as a whore.
 accepts int
 default cap is 200
 
-livingRules:
-
-"spare"
-"normal"
-"luxurious"
-
-speechRules:
-
-"restrictive"
-"permissive"
-"accent elimination"
-"language lessons"
-
-releaseRules:
-
-"permissive"
-"sapphic"
-"masturbation"
-"restrictive"
-"chastity"
-
-relationshipRules:
-
-"restrictive"
-"just friends"
-"permissive"
-
-lactationRules:
-
-"none"
-"induce"
-"maintain"
-
-standardPunishment:
-
-"confinement"
-"whipping"
-"chastity"
-"situational"
-
-standardReward:
-
-"relaxation"
-"drugs"
-"orgasm"
-"situational"
-
 useRulesAssistant:
 
 follows rules or is exempt from them
diff --git a/src/endWeek/saNanny.js b/src/endWeek/saNanny.js
index 5cc9cdf0e418c6ec4dcc59720fc2270596c1a5d2..d68140b503c3ecd31974899914050b20f4ac232f 100644
--- a/src/endWeek/saNanny.js
+++ b/src/endWeek/saNanny.js
@@ -27,7 +27,7 @@ window.saNanny = function saNanny(slave) {
 	}
 
 	// TODO:
-	if (slave.releaseRules !== "chastity") {
+	if (slave.rules.release !== "chastity") {
 		const oral = jsRandom(5, 10);
 		slave.counter.oral += oral;
 		V.oralTotal += oral;
diff --git a/src/endWeek/saRules.js b/src/endWeek/saRules.js
index f082c7d196d775283cc657cf77655d9f9bf9835c..72baeb3b8c5464b483e4905d04064f24ec3030f8 100644
--- a/src/endWeek/saRules.js
+++ b/src/endWeek/saRules.js
@@ -19,7 +19,7 @@ $(function() {
 			} = getPronouns(slave);
 
 		let
-			release = slave.releaseRules;
+			release = slave.rules.release;
 
 		let r = ``;
 
@@ -190,7 +190,7 @@ $(function() {
 								r += `Living as a mute <span class="hotpink">molds ${him}</span> to your will. `;
 							} else if (slave.lips > 95) {
 								r += `Being unable to speak through ${his} facepussy <span class="hotpink">molds ${him}</span> to your will. `;
-							} else if (slave.speechRules === "restrictive") {
+							} else if (slave.rules.speech === "restrictive") {
 								r += `Living under enforced silence <span class="hotpink">molds ${him}</span> to your will. `;
 							}
 							slave.devotion++;
@@ -354,7 +354,7 @@ $(function() {
 						}
 
 						if (rewards) {
-							switch (slave.standardReward) {
+							switch (slave.rules.reward) {
 								case "relaxation":
 									r += `${He}'s given free time, which ${he}`;
 									if (V.spa) {
@@ -378,7 +378,7 @@ $(function() {
 									r += `${He}'s <span class="hotpink">rewarded</span> with`;
 									if (slave.clitPiercing === 3) {
 										r += `sustained orgasm from ${his} ${slave.dick ? `dick` : `clit`} piercing,`;
-									} else if (slave.releaseRules === "sapphic") {
+									} else if (slave.rules.release === "sapphic") {
 										r += `immediate sex with any nearby slave,`;
 									} else {
 										r += `a quick climax from a vibrator,`;
@@ -392,7 +392,7 @@ $(function() {
 									break;
 								default:
 									r += `${He}'s <span class="hotpink">rewarded</span> `;
-									if (punishments && slave.standardPunishment === "situational") {
+									if (punishments && slave.rules.punishment === "situational") {
 										r += `and <span class="gold">punished</span>`;
 									}
 									r += `situationally, letting ${him} develop normally. `;
@@ -402,7 +402,7 @@ $(function() {
 						}
 
 						if (punishments) {
-							switch (slave.standardPunishment) {
+							switch (slave.rules.punishment) {
 								case "confinement":
 									r += `When ${he} disobeys, ${he}'s`;
 									if (V.cellblock) {
@@ -426,7 +426,7 @@ $(function() {
 									slave.trust -= punishments;
 									break;
 								default:
-									if (!rewards || slave.standardReward !== "situational") {
+									if (!rewards || slave.rules.reward !== "situational") {
 										r += `When ${he} disobeys, ${he}'s <span class="gold">punished</span> situationally, letting ${him} develop normally. `;
 									}
 									slave.trust -= punishments;
diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js
index d403f24a8d4f32bf8cb93bac9bb518410585a292..b52daabac3ff2d59a7599ce3fc095b88f37f95c9 100644
--- a/src/endWeek/saServant.js
+++ b/src/endWeek/saServant.js
@@ -63,7 +63,7 @@ window.saServant = function saServant(slave) {
 		t += `so happy to serve your other slaves that ${he} often sees to their needs before they know they have them, and greatly <span class="yellowgreen">reduces the upkeep</span> of your slaves.`;
 	}
 
-	if (slave.releaseRules !== "chastity") {
+	if (slave.rules.release !== "chastity") {
 		const _oral = jsRandom(5, 10);
 		slave.counter.oral += _oral;
 		V.oralTotal += _oral;
diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index 279e166e739597f481300370c76d677d751cf178..31c680d7ee87c868648cf9f71726173da2951092 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -483,7 +483,7 @@ window.saServeThePublic = (function saServeThePublic() {
 				r += ` charms are only for the <span class="green">most prominent citizens.</span> When ${he}'s not `;
 				if (canDoVaginal(slave) && jsRandom(1, 4) === 1) {
 					r += `pleasing high society with ${his} `;
-					if (slave.prestige > 1 || slave.pornPrestige > 2) {
+					if (slave.prestige > 1 || slave.porn.prestige > 2) {
 						r += `prestigious`;
 					} else {
 						r += `popular`;
@@ -493,7 +493,7 @@ window.saServeThePublic = (function saServeThePublic() {
 					r += `getting gangbanged,`;
 				} else if (jsRandom(1, 2) === 1) {
 					r += `giving away one of ${his} `;
-					if (slave.prestige > 1 || slave.pornPrestige > 2) {
+					if (slave.prestige > 1 || slave.porn.prestige > 2) {
 						r += `famous`;
 					} else {
 						r += `top-tier`;
@@ -501,7 +501,7 @@ window.saServeThePublic = (function saServeThePublic() {
 					r += ` blowjobs,`;
 				} else {
 					r += `providing free access to ${his} `;
-					if (slave.prestige > 1 || slave.pornPrestige > 2) {
+					if (slave.prestige > 1 || slave.porn.prestige > 2) {
 						r += `legendary`;
 					} else {
 						r += `notorious`;
@@ -543,7 +543,7 @@ window.saServeThePublic = (function saServeThePublic() {
 	function publicReactions(slave) {
 		let sstp;
 
-		if ((slave.releaseRules === "restrictive" || slave.releaseRules === "chastity") && slave.standardReward !== "orgasm") {
+		if ((slave.rules.release === "restrictive" || slave.rules.release === "chastity") && slave.rules.reward !== "orgasm") {
 			r += ` ${He}'s a better slut because public service is ${his} main sexual outlet.`;
 		}
 
@@ -928,11 +928,11 @@ window.saServeThePublic = (function saServeThePublic() {
 			r += ` ${He} attracts more attention because it's prestigious to be seen with ${him}.`;
 		}
 
-		if (slave.pornPrestige > 2) {
+		if (slave.porn.prestige > 2) {
 			r += ` Patrons line up for the chance to spend time with the face of ${slave.porn.fameType} porn.`;
-		} else if (slave.pornPrestige > 1) {
+		} else if (slave.porn.prestige > 1) {
 			r += ` ${He} has a sizable fanbase, one that is eager to spend time with ${him}.`;
-		} else if (slave.pornPrestige > 0) {
+		} else if (slave.porn.prestige > 0) {
 			r += ` A few of ${his} fans recognize ${him} and eagerly make use of ${him}.`;
 		}
 
diff --git a/src/endWeek/saTakeClasses.js b/src/endWeek/saTakeClasses.js
index bc36709a942f41ddb0dc21aee45c516ce125539b..014f099e87f8928771470b4804c6abafb48a2470 100644
--- a/src/endWeek/saTakeClasses.js
+++ b/src/endWeek/saTakeClasses.js
@@ -354,8 +354,8 @@ window.saTakeClasses = (function saServeThePublic() {
 					if (V.week - slave.weekAcquired > langWeekThreshold) {
 						r += ` ${He} has <span class="green">learned some ${V.language},</span> and can make ${his} point with some gesturing, though ${he} speaks ${V.language} horribly.`;
 						slave.accent--;
-						if (slave.speechRules === "language lessons") {
-							slave.speechRules = "accent elimination";
+						if (slave.rules.speech === "language lessons") {
+							slave.rules.speech = "accent elimination";
 						}
 					}
 				} else if (slave.accent === 3) {
diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js
index e9f2ce3b42ab6c4aa2133676f456bd5d827e459d..af281031d1e2c33841abc860b02da38c10f7572c 100644
--- a/src/endWeek/saWhore.js
+++ b/src/endWeek/saWhore.js
@@ -7,11 +7,10 @@ window.saWhore = (function saWhore() {
 
 	// if the following are set outside this file, they must be set in it too!
 	let beauty;
+	let customers;
 	let FuckResult;
 	let cash;
 
-	let beautyMultiplier;
-	let beautyCorrection;
 	let cervixPump;
 	let he, him, his, hers, himself, girl, loli, He, His;
 
@@ -85,156 +84,25 @@ window.saWhore = (function saWhore() {
 	 * @param {App.Entity.SlaveState} slave
 	 */
 	function updateNonSlaveVariables(slave) {
-		let BL = V.BrothiIDs.length;
-
-		// FResult setting
-		FuckResult = FResult(slave);
-		// slave needs release
-		if ((slave.releaseRules === "restrictive" || slave.releaseRules === "chastity") && slave.standardReward !== "orgasm" && slave.energy >= 20) {
-			FuckResult += 2;
-		}
-		if (V.ACitizens > (V.ASlaves * 4)) {
-			FuckResult = Math.trunc(FuckResult * 1.1);
-		} else if (V.ACitizens > (V.ASlaves * 2)) {
-			FuckResult = Math.trunc(FuckResult * 1);
-		} else if (V.ACitizens > V.ASlaves) {
-			FuckResult = Math.trunc(FuckResult * 0.95);
-		} else if (V.ACitizens > (V.ASlaves * 0.5)) {
-			FuckResult = Math.trunc(FuckResult * 0.9);
-		} else {
-			FuckResult = Math.trunc(FuckResult * 0.85);
-		}
-		if (canDoVaginal(slave) && slave.vagina === 0) {
-			FuckResult += 5;
-		}
-		if (canDoAnal(slave) && slave.anus === 0) {
-			FuckResult += 10;
-		}
-
-		// Beauty setting
-		beauty = Beauty(slave);
-		if (V.ACitizens > (V.ASlaves * 4)) {
-			beauty = Math.trunc(beauty * 1.1);
-		} else if (V.ACitizens > (V.ASlaves * 2)) {
-			beauty = Math.trunc(beauty * 1);
-		} else if (V.ACitizens > V.ASlaves) {
-			beauty = Math.trunc(beauty * 0.95);
-		} else if (V.ACitizens > (V.ASlaves * 0.5)) {
-			beauty = Math.trunc(beauty * 0.9);
+		// FuckResult and FuckAmount setting
+		beauty = slave.sexAmount;
+		T.incomeStats.customers = beauty;
+		if (slave.effectiveWhoreClass === 4) {
+			customers = "extremely wealthy";
+			FuckResult = Math.trunc(slave.sexQuality * V.whorePriceAdjustment.topClass);
+		} else if (slave.effectiveWhoreClass === 3) {
+			customers = "upper class";
+			FuckResult = Math.trunc(slave.sexQuality * V.whorePriceAdjustment.upperClass);
+		} else if (slave.effectiveWhoreClass === 2) {
+			customers = "middle class";
+			FuckResult = Math.trunc(slave.sexQuality * V.whorePriceAdjustment.middleClass);
+		} else if (slave.effectiveWhoreClass === 1) {
+			customers = "lower class";
+			FuckResult = Math.trunc(slave.sexQuality * V.whorePriceAdjustment.lowerClass);
 		} else {
-			beauty = Math.trunc(beauty * 0.85);
-		}
-		if (slave.sexualFlaw === "neglectful") {
-			beauty = Math.trunc(beauty * 1.1);
-		}
-		if (slave.assignment === "be the Madam") {
-			if (BL + V.slavesGettingHelp > 0) {
-				beauty = Math.trunc(beauty * ((10 - BL - V.slavesGettingHelp) / 10));
-			}
-		}
-		if (slave.minorInjury !== 0) {
-			beauty -= 1;
-		}
-
-		// Beauty multipliers
-		beautyMultiplier = 1;
-		if (V.brothel > 0) {
-			if ((V.universalRulesFacilityWork === 1 && slave.assignment === "whore" && V.brothelSpots > 0) || (slave.assignment === "work in the brothel")) {
-				if (slave.assignment === "whore") {
-					V.brothelSpots -= 1;
-				}
-				// ads
-				if (V.brothelAdsSpending !== 0) {
-					if (V.brothelAdsStacked === 1) {
-						if (isStacked(slave)) {
-							beautyMultiplier += 0.05;
-						}
-					} else if (V.brothelAdsStacked === -1) {
-						if (isSlim(slave)) {
-							beautyMultiplier += 0.05;
-						}
-					}
-					if (V.brothelAdsPreg === 1) {
-						if (slave.bellyPreg >= 5000 || slave.bellyImplant >= 5000) {
-							beautyMultiplier += 0.05;
-						}
-					} else if (V.brothelAdsPreg === -1) {
-						if (slave.belly < 100 && slave.weight < 30 && !setup.fakeBellies.includes(slave.bellyAccessory) && slave.bellyImplant <= 0) {
-							beautyMultiplier += 0.05;
-						}
-					}
-					if (V.brothelAdsModded === 1) {
-						if ((V.modScore > 15) || (V.piercingScore > 8 && V.tatScore > 5)) {
-							beautyMultiplier += 0.05;
-						}
-					} else if (V.brothelAdsModded === -1) {
-						if (slave.corsetPiercing === 0 && V.piercingScore < 3 && V.tatScore < 2) {
-							beautyMultiplier += 0.05;
-						}
-					}
-					if (V.brothelAdsImplanted === 1) {
-						if (slave.boobsImplant > 0 && slave.buttImplant > 0 && slave.waist < -10 && slave.lipsImplant > 0) {
-							beautyMultiplier += 0.05;
-						}
-					} else if (V.brothelAdsImplanted === -1) {
-						if (slave.boobsImplant === 0 && slave.buttImplant === 0 && slave.waist >= -95 && slave.lipsImplant === 0 && slave.bellyImplant === -1 && slave.faceImplant < 30) {
-							beautyMultiplier += 0.05;
-						}
-					}
-					if (V.brothelAdsOld === 1) {
-						if (slave.physicalAge >= 30) {
-							beautyMultiplier += 0.05;
-						}
-					} else if (V.brothelAdsOld === -1) {
-						if (slave.physical < 30 && slave.physical >= 18) {
-							beautyMultiplier += 0.05;
-						}
-					} else if (V.brothelAdsOld === -2) {
-						if (slave.physical <= 18 && slave.physical >= 13) {
-							beautyMultiplier += 0.05;
-						}
-					} else if (V.brothelAdsOld === -3) {
-						if (slave.physical < 13) {
-							beautyMultiplier += 0.05;
-						}
-					}
-					if (V.brothelAdsXX === 1) {
-						if (slave.dick === 0 && slave.scrotum === 0) {
-							beautyMultiplier += 0.05;
-						}
-					} else if (V.brothelAdsXX === -1) {
-						if (slave.dick > 0) {
-							beautyMultiplier += 0.05;
-						}
-					}
-				}
-				if (V.Madam !== 0) {
-					if (V.madamCashBonus > 0) {
-						if (!canHear(slave)) {
-							beautyMultiplier += V.madamCashBonus * 0.5;
-						} else {
-							beautyMultiplier += V.madamCashBonus;
-						}
-					}
-				}
-			}
+			customers = "ERROR";
+			FuckResult = "ERROR";
 		}
-
-		// setting and adjustments
-		beauty = Math.trunc(beauty * beautyMultiplier);
-		if ((slave.hears === -1 && slave.earwear !== "hearing aids") || (slave.hears === 0 && slave.earwear === "muffling ear plugs") ||(slave.hears === -2)) {
-			if (!canHear(slave)) {
-				beauty *= 0.75;
-			} else {
-				beauty *= 0.90;
-			}
-		}
-		if (beauty > 210) {
-			beautyCorrection = beauty / 210;
-			beauty = 210;
-			FuckResult = Math.trunc(beautyCorrection * FuckResult);
-		}
-		T.incomeStats.customers = beauty;
 	}
 
 	/**
@@ -377,7 +245,7 @@ window.saWhore = (function saWhore() {
 	 * @param {App.Entity.SlaveState} slave
 	 */
 	function usageCountDescriptions(slave) {
-		r += ` ${His} appearance attracted ${beauty} members of the public (${Math.trunc(beauty / 7)} a day)`;
+		r += ` ${His} appearance attracted ${beauty} ${customers} members of the public (${Math.trunc(beauty / 7)} a day)`;
 		if (beauty > 160) {
 			r += `, so many that `;
 			if (canDoVaginal(slave) && canDoAnal(slave)) {
@@ -404,9 +272,6 @@ window.saWhore = (function saWhore() {
 			r += `, so many that ${he} occasionally had sex with multiple customers at once`;
 		}
 		r += `. They paid ${cashFormat(FuckResult)} on average`;
-		if (beautyCorrection > 1) {
-			r += `, including a premium for being in extremely high demand`;
-		}
 		r += `.`;
 	}
 
@@ -561,7 +426,7 @@ window.saWhore = (function saWhore() {
 					slave.vagina = 1;
 				}
 			} else if (slave.vagina < 3) {
-				if (jsRandom(1, 100) > ((170 - slave.sexAmount) + (slave.vagina * 10) + (slave.skill.vaginal / 3))) {
+				if (jsRandom(1, 100) > ((170 - beauty) + (slave.vagina * 10) + (slave.skill.vaginal / 3))) {
 					r += ` <span class="lime">${His} pussy gets loosened by the intense use.</span>`;
 					slave.vagina += 1;
 				}
@@ -586,17 +451,17 @@ window.saWhore = (function saWhore() {
 				}
 			} else if (slave.anus < 3) {
 				if (slave.vagina < 0) {
-					if (jsRandom(1, 100) > ((150 - slave.sexAmount) + (slave.anus * 10) + (slave.skill.anal / 6))) {
+					if (jsRandom(1, 100) > ((150 - beauty) + (slave.anus * 10) + (slave.skill.anal / 6))) {
 						r += ` <span class="lime">${His} asshole sees constant use in place of a pussy and loosens.</span>`;
 						slave.anus += 1;
 					}
 				} else if (!canDoVaginal(slave)) {
-					if (jsRandom(1, 100) > ((150 - slave.sexAmount) + (slave.anus * 10) + (slave.skill.anal / 6))) {
+					if (jsRandom(1, 100) > ((150 - beauty) + (slave.anus * 10) + (slave.skill.anal / 6))) {
 						r += ` <span class="lime">${His} asshole sees constant use in place of ${his} protected pussy and loosens.</span>`;
 						slave.anus += 1;
 					}
 				} else {
-					if (jsRandom(1, 100) > ((160 - slave.sexAmount) + (slave.anus * 10) + (slave.skill.anal / 6))) {
+					if (jsRandom(1, 100) > ((160 - beauty) + (slave.anus * 10) + (slave.skill.anal / 6))) {
 						r += ` <span class="lime">${His} asshole loosens with constant use.</span>`;
 						slave.anus += 1;
 					}
@@ -677,7 +542,7 @@ window.saWhore = (function saWhore() {
 				r += ` body commands <span class="yellowgreen">a high price.</span> When ${he}'s not `;
 				if (canDoVaginal(slave) && jsRandom(1, 4) === 1) {
 					r += `pleasing the rich with ${his} `;
-					if (slave.prestige > 1 || slave.pornPrestige > 2) {
+					if (slave.prestige > 1 || slave.porn.prestige > 2) {
 						r += `prestigious`;
 					} else {
 						r += `popular`;
@@ -687,7 +552,7 @@ window.saWhore = (function saWhore() {
 					r += `getting gangbanged,`;
 				} else if (jsRandom(1, 2) === 1) {
 					r += `performing one of ${his} `;
-					if (slave.prestige > 1 || slave.pornPrestige > 2) {
+					if (slave.prestige > 1 || slave.porn.prestige > 2) {
 						r += `famous`;
 					} else {
 						r += `top-tier`;
@@ -695,7 +560,7 @@ window.saWhore = (function saWhore() {
 					r += ` blowjobs,`;
 				} else if (canDoAnal(slave)) {
 					r += ` selling access to ${his} `;
-					if (slave.prestige > 1 || slave.pornPrestige > 2) {
+					if (slave.prestige > 1 || slave.porn.prestige > 2) {
 						r += `legendary`;
 					} else {
 						r += `notorious`;
@@ -731,7 +596,7 @@ window.saWhore = (function saWhore() {
 	function publicReactions(slave) {
 		let SWi;
 
-		if ((slave.releaseRules === "restrictive" || slave.releaseRules === "chastity") && slave.standardReward !== "orgasm") {
+		if ((slave.rules.release === "restrictive" || slave.rules.release === "chastity") && slave.rules.reward !== "orgasm") {
 			r += ` ${He}'s a better whore because prostitution is ${his} main sexual outlet.`;
 		}
 
@@ -1117,11 +982,11 @@ window.saWhore = (function saWhore() {
 			r += ` ${He} attracts more attention because it's prestigious to fuck ${him}.`;
 		}
 
-		if (slave.pornPrestige > 2) {
+		if (slave.porn.prestige > 2) {
 			r += ` Customers line up for the chance to buy time with the face of ${slave.porn.fameType} porn.`;
-		} else if (slave.pornPrestige > 1) {
+		} else if (slave.porn.prestige > 1) {
 			r += ` ${He} has a sizable fanbase, one that is eager to buy time with ${him}.`;
-		} else if (slave.pornPrestige > 0) {
+		} else if (slave.porn.prestige > 0) {
 			r += ` A few of ${his} fans recognize ${him} and eagerly patronize ${him}.`;
 		}
 
@@ -1409,11 +1274,23 @@ window.saWhore = (function saWhore() {
 	 * @param {App.Entity.SlaveState} slave
 	 */
 	function addCash(slave) {
-		cash = Math.trunc((beauty * FuckResult) * (1 + (0.002 * slave.skill.whoring)));
+		let whoreScore = slave.sexAmount * slave.sexQuality; // The standard amount of money the whore is expected to make in a week
+		if (slave.effectiveWhoreClass === 4) {
+			cash = Math.trunc(whoreScore * V.whorePriceAdjustment.topClass); // final price adjustment for supply and demand
+			slave.sexQuality = Math.trunc(slave.sexQuality); // rounding it after we're done with it
+		} else if (slave.effectiveWhoreClass === 3) {
+			cash = Math.trunc(whoreScore * V.whorePriceAdjustment.upperClass);
+			slave.sexQuality = Math.trunc(slave.sexQuality);
+		} else if (slave.effectiveWhoreClass === 2) {
+			cash = Math.trunc(whoreScore * V.whorePriceAdjustment.middleClass);
+			slave.sexQuality = Math.trunc(slave.sexQuality);
+		} else {
+			cash = Math.trunc(whoreScore * V.whorePriceAdjustment.lowerClass);
+			slave.sexQuality = Math.trunc(slave.sexQuality);
+		}
 		if (slave.assignment === "work in the brothel") {
 			cashX(cash, "whoreBrothel", slave);
 		} else if (slave.assignment === "be the Madam") {
-			cash = cash*1.5; /* Madam is a popular lady if you can get her */
 			cashX(cash, "whoreBrothel", slave);
 		} else if (slave.assignment === "whore") {
 			cashX(cash, "whore", slave);
@@ -1664,7 +1541,7 @@ window.saWhore = (function saWhore() {
 						break;
 					case "humiliation":
 						r += ` ${He} enjoys the humiliation of being a whore, and got a bit of sexual satisfaction from every sex act ${he} performed this week.`;
-						slave.need -= slave.sexAmount;
+						slave.need -= beauty;
 				}
 			}
 		}
diff --git a/src/endWeek/saWorkTheFarm.js b/src/endWeek/saWorkTheFarm.js
index 1a1246023697a1f39521d8c26426809315c2be96..93fa0c6da327bddc9ae605c4e753105ac106387a 100644
--- a/src/endWeek/saWorkTheFarm.js
+++ b/src/endWeek/saWorkTheFarm.js
@@ -289,11 +289,11 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 		} else if (slave.prestige === 3) {
 			t += `Because ${he} is so famous, ${he} earns a lot more then ${he} would otherwise.`;
 		}
-		if (slave.pornPrestige === 1) { // TODO: are prestige and pornPrestige mutually exclusive?
+		if (slave.porn.prestige === 1) { // TODO: are prestige and pornPrestige mutually exclusive?
 			t += `${He} earns a bit more because some of your citizens already know ${him} from porn. `;
-		} else if (slave.pornPrestige === 2) {
+		} else if (slave.porn.prestige === 2) {
 			t += `${He} earns quite a bit more because a lot of your citizens already know ${him} from porn. `;
-		} else if (slave.pornPrestige === 3) {
+		} else if (slave.porn.prestige === 3) {
 			t += `${He} earns a lot more because ${he} is so famous from porn. `;
 		}
 		if (slave.health > 20) {
diff --git a/src/facilities/farmyard/farmerSelectWorkaround.tw b/src/facilities/farmyard/farmerSelectWorkaround.tw
index 65fc5da28a5ddd2df600db9e782c7017fb75c21f..46096741a17cc645e7a2f1a7b062a3b66f05eb9b 100644
--- a/src/facilities/farmyard/farmerSelectWorkaround.tw
+++ b/src/facilities/farmyard/farmerSelectWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Farmer")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Farmer = $slaves[$i]>>
 <</if>>
 
diff --git a/src/facilities/farmyard/farmyardReport.tw b/src/facilities/farmyard/farmyardReport.tw
index 346cf6d65894a6bf542fbd6d67d6018e95fd4544..ef1e53319dcd0e270f8e1fa253a41ea662612a40 100644
--- a/src/facilities/farmyard/farmyardReport.tw
+++ b/src/facilities/farmyard/farmyardReport.tw
@@ -29,8 +29,8 @@
 	<<if $slaves[_FLs].trust < 45>>
 		<<set $slaves[_FLs].trust += 5>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
 		<<if $slaves[_FLs].fetish != "dom">>
@@ -206,11 +206,11 @@
 		/* Perform facility based rule changes */
 		<<switch $farmyardDecoration>>
 		<<case "Degradationist" "standard">>	/* TODO: add the rest of the FS */
-			<<set $slaves[$i].livingRules = "spare">>
+			<<set $slaves[$i].rules.living = "spare">>
 		<<case "Roman Revivalist">>
-			<<set $slaves[$i].livingRules = "luxurious">>
+			<<set $slaves[$i].rules.living = "luxurious">>
 		<<default>>
-			<<set $slaves[$i].livingRules = "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<</switch>>
 		/* TODO: should FS with "spare" living rules cause some minor health damage and devotion / trust loss? */
 		<<if ($slaves[$i].health < -80)>>
diff --git a/src/facilities/nursery/childInteract.tw b/src/facilities/nursery/childInteract.tw
index b9791ac367eb55d2d59da4cc24624b8fb97c4a5e..43dfc4098c86a895964cb56e97c8d45a889ce3ef 100644
--- a/src/facilities/nursery/childInteract.tw
+++ b/src/facilities/nursery/childInteract.tw
@@ -1541,7 +1541,7 @@ Hormones: <b><span id="hormones">$activeChild.hormones</span>.</b>
 <<set $dormitoryPopulation = 0, $roomsPopulation = 0>>
 <<for $i = 0; $i < _SL; $i++>>
 	<<if $slaves[$i].assignmentVisible && ($slaves[$i].assignment != "be your Head Girl" || $HGSuite != 1) && ($slaves[$i].assignment != "guard you" || $dojo <= 1)>>
-		<<if $slaves[$i].livingRules == "luxurious">>
+		<<if $slaves[$i].rules.living == "luxurious">>
 			<<if $slaves[$i].relationship >= 4>>
 				<<set $roomsPopulation += 0.5>>
 			<<else>>
@@ -1553,45 +1553,45 @@ Hormones: <b><span id="hormones">$activeChild.hormones</span>.</b>
 	<</if>>
 <</for>>
 
-Living standard: <b><span id="livingRules">$activeChild.livingRules</span>.</b>
+Living standard: <b><span id="livingRules">$activeChild.rules.living</span>.</b>
 //$His living conditions are managed by $nurseryName's décor.//
 
-<br>Typical punishment: <b><span id="standardPunishment">$activeChild.standardPunishment</span>.</b>
+<br>Typical punishment: <b><span id="standardPunishment">$activeChild.rules.punishment</span>.</b>
 <<link "Confinement">>
-	<<set $activeChild.standardPunishment = "confinement">>
-	<<replace "#standardPunishment">>$activeChild.standardPunishment<</replace>>
+	<<set $activeChild.rules.punishment = "confinement">>
+	<<replace "#standardPunishment">>$activeChild.rules.punishment<</replace>>
 <</link>> |
 <<link "Whipping">>
-	<<set $activeChild.standardPunishment = "whipping">>
-	<<replace "#standardPunishment">>$activeChild.standardPunishment<</replace>>
+	<<set $activeChild.rules.punishment = "whipping">>
+	<<replace "#standardPunishment">>$activeChild.rules.punishment<</replace>>
 <</link>> |
 <<link "Chastity">>
-	<<set $activeChild.standardPunishment = "chastity">>
-	<<replace "#standardPunishment">>$activeChild.standardPunishment<</replace>>
+	<<set $activeChild.rules.punishment = "chastity">>
+	<<replace "#standardPunishment">>$activeChild.rules.punishment<</replace>>
 <</link>> |
 <<link "Situational">>
-	<<set $activeChild.standardPunishment = "situational">>
-	<<replace "#standardPunishment">>$activeChild.standardPunishment<</replace>>
+	<<set $activeChild.rules.punishment = "situational">>
+	<<replace "#standardPunishment">>$activeChild.rules.punishment<</replace>>
 <</link>>
 &nbsp;&nbsp;&nbsp;&nbsp;
-Typical reward: ''<span id="standardReward">$activeChild.standardReward</span>.''
-<<link "Relaxation">><<set $activeChild.standardReward = "relaxation">><<replace "#standardReward">>$activeChild.standardReward<</replace>><</link>> |
-<<link "Drugs">><<set $activeChild.standardReward = "drugs">><<replace "#standardReward">>$activeChild.standardReward<</replace>><</link>> |
-<<link "Orgasm">><<set $activeChild.standardReward = "orgasm">><<replace "#standardReward">>$activeChild.standardReward<</replace>><</link>> |
-<<link "Situational">><<set $activeChild.standardReward = "situational">><<replace "#standardReward">>$activeChild.standardReward<</replace>><</link>>
-<br>Non-assignment orgasm rules: ''<span id="releaseRules">$activeChild.releaseRules</span>.''
-<<link "Permit masturbation and interslave sex">><<set $activeChild.releaseRules = "permissive">><<replace "#releaseRules">>$activeChild.releaseRules<</replace>><</link>> |
-<<link "Let $him get off with other slaves">><<set $activeChild.releaseRules = "sapphic">><<replace "#releaseRules">>$activeChild.releaseRules<</replace>><</link>> |
+Typical reward: ''<span id="standardReward">$activeChild.rules.reward</span>.''
+<<link "Relaxation">><<set $activeChild.rules.reward = "relaxation">><<replace "#standardReward">>$activeChild.rules.reward<</replace>><</link>> |
+<<link "Drugs">><<set $activeChild.rules.reward = "drugs">><<replace "#standardReward">>$activeChild.rules.reward<</replace>><</link>> |
+<<link "Orgasm">><<set $activeChild.rules.reward = "orgasm">><<replace "#standardReward">>$activeChild.rules.reward<</replace>><</link>> |
+<<link "Situational">><<set $activeChild.rules.reward = "situational">><<replace "#standardReward">>$activeChild.rules.reward<</replace>><</link>>
+<br>Non-assignment orgasm rules: ''<span id="releaseRules">$activeChild.rules.release</span>.''
+<<link "Permit masturbation and interslave sex">><<set $activeChild.rules.release = "permissive">><<replace "#releaseRules">>$activeChild.rules.release<</replace>><</link>> |
+<<link "Let $him get off with other slaves">><<set $activeChild.rules.release = "sapphic">><<replace "#releaseRules">>$activeChild.rules.release<</replace>><</link>> |
 <<if !isAmputee($activeChild) && $activeChild.fuckdoll == 0 && $activeChild.fetish != "mindbroken">>
-	<<link "Restrict $him to masturbation only">><<set $activeChild.releaseRules = "masturbation">><<replace "#releaseRules">>$activeChild.releaseRules<</replace>><</link>> |
+	<<link "Restrict $him to masturbation only">><<set $activeChild.rules.release = "masturbation">><<replace "#releaseRules">>$activeChild.rules.release<</replace>><</link>> |
 <</if>>
 <<link "Only with you">>
-	<<set $activeChild.releaseRules = "restrictive">>
-	<<replace "#releaseRules">>$activeChild.releaseRules<</replace>>
+	<<set $activeChild.rules.release = "restrictive">>
+	<<replace "#releaseRules">>$activeChild.rules.release<</replace>>
 <</link>> |
 <<link "Have $him remain chaste">>
-	<<set $activeChild.releaseRules = "chastity">>
-	<<replace "#releaseRules">>$activeChild.releaseRules<</replace>>
+	<<set $activeChild.rules.release = "chastity">>
+	<<replace "#releaseRules">>$activeChild.rules.release<</replace>>
 <</link>>
 
 /* TODO: will children be able to have clit piercings? */
@@ -1671,39 +1671,39 @@ Typical reward: ''<span id="standardReward">$activeChild.standardReward</span>.'
 <</if>>
 
 <<if $activeChild.voice != 0>>
-	<br>Speech rules: <b><span id="speechRules">$activeChild.speechRules</span>.</b>
+	<br>Speech rules: <b><span id="speechRules">$activeChild.rules.speech</span>.</b>
 	<<link "Restrictive">>
-		<<set $activeChild.speechRules = "restrictive">>
-			<<replace "#speechRules">>$activeChild.speechRules<</replace>>
+		<<set $activeChild.rules.speech = "restrictive">>
+			<<replace "#speechRules">>$activeChild.rules.speech<</replace>>
 		<</link>> |
 	<<link "Permissive">>
-		<<set $activeChild.speechRules = "permissive">>
-			<<replace "#speechRules">>$activeChild.speechRules<</replace>>
+		<<set $activeChild.rules.speech = "permissive">>
+			<<replace "#speechRules">>$activeChild.rules.speech<</replace>>
 		<</link>>
 	<<if $activeChild.accent > 0 && $activeChild.accent < 4>>|	<<link "Accent elimination">>
-		<<set $activeChild.speechRules = "accent elimination">>
-			<<replace "#speechRules">>$activeChild.speechRules<</replace>>
+		<<set $activeChild.rules.speech = "accent elimination">>
+			<<replace "#speechRules">>$activeChild.rules.speech<</replace>>
 		<</link>>
 	<<elseif $activeChild.accent > 3>>|	<<link "Language lessons">>
-		<<set $activeChild.speechRules = "language lessons">>
-			<<replace "#speechRules">>$activeChild.speechRules<</replace>>
+		<<set $activeChild.rules.speech = "language lessons">>
+			<<replace "#speechRules">>$activeChild.rules.speech<</replace>>
 		<</link>>
 	<</if>>
 <</if>>
 
 <br>
-Relationship rules: <b><span id="relationshipRules">$activeChild.relationshipRules</span>.</b>
+Relationship rules: <b><span id="relationshipRules">$activeChild.rules.relationship</span>.</b>
 <<link "Restrictive">>
-	<<set $activeChild.relationshipRules = "restrictive">>
-	<<replace "#relationshipRules">>$activeChild.relationshipRules<</replace>>
+	<<set $activeChild.rules.relationship = "restrictive">>
+	<<replace "#relationshipRules">>$activeChild.rules.relationship<</replace>>
 <</link>> |
 <<link "Just friends">>
-	<<set $activeChild.relationshipRules = "just friends">>
-	<<replace "#relationshipRules">>$activeChild.relationshipRules<</replace>>
+	<<set $activeChild.rules.relationship = "just friends">>
+	<<replace "#relationshipRules">>$activeChild.rules.relationship<</replace>>
 <</link>> |
 <<link "Permissive">>
-	<<set $activeChild.relationshipRules = "permissive">>
-	<<replace "#relationshipRules">>$activeChild.relationshipRules<</replace>>
+	<<set $activeChild.rules.relationship = "permissive">>
+	<<replace "#relationshipRules">>$activeChild.rules.relationship<</replace>>
 <</link>>
 
 <br>
diff --git a/src/facilities/nursery/matronWorkaround.tw b/src/facilities/nursery/matronWorkaround.tw
index 155fe02db44b436384258a2840f94b88f5e96c55..1f992d869b19932c9ebab049865507716e98703d 100644
--- a/src/facilities/nursery/matronWorkaround.tw
+++ b/src/facilities/nursery/matronWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Matron")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Matron = $slaves[$i]>>
 <</if>>
 
diff --git a/src/facilities/nursery/nurseryWidgets.js b/src/facilities/nursery/nurseryWidgets.js
index 9f9aed7b8abe8046d3233c993f90bf679fed69d7..e520d8d2c0affa6ec7083bb66e0ce930bef1fc3c 100644
--- a/src/facilities/nursery/nurseryWidgets.js
+++ b/src/facilities/nursery/nurseryWidgets.js
@@ -2826,7 +2826,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 	 * @param {App.Entity.SlaveState} child
 	 */
 	function shortRules(child) {
-		switch (child.livingRules) {
+		switch (child.rules.living) {
 			case "luxurious":
 				r += `<strong>LS:Lux</strong> `;
 				break;
@@ -2838,7 +2838,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 				break;
 		}
 		if (canTalk(child)) {
-			switch (child.speechRules) {
+			switch (child.rules.speech) {
 				case "permissive":
 					r += `<strong>SpR:P</strong> `;
 					break;
@@ -2854,7 +2854,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 			}
 			r += " ";
 		}
-		switch (child.relationshipRules) {
+		switch (child.rules.relationship) {
 			case "permissive":
 				r += `<strong>ReR:P</strong> `;
 				break;
@@ -2865,7 +2865,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 				r += `<strong>ReR:R</strong> `;
 				break;
 		}
-		switch (child.standardPunishment) {
+		switch (child.rules.punishment) {
 			case "confinement":
 				r += `<strong>Pun:Conf</strong> `;
 				break;
@@ -2879,7 +2879,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 				r += `<strong>Pun:Situ</strong> `;
 				break;
 		}
-		switch (child.standardReward) {
+		switch (child.rules.reward) {
 			case "relaxation":
 				r += `<strong>Rew:Relx</strong> `;
 				break;
@@ -2893,7 +2893,7 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 				r += `<strong>Rew:Situ</strong> `;
 				break;
 		}
-		switch (child.releaseRules) {
+		switch (child.rules.release) {
 			case "permissive":
 				r += `<strong>MaR:P</strong> `;
 				break;
@@ -2916,14 +2916,14 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 	 * @param {App.Entity.SlaveState} child
 	 */
 	function longRules(child) {
-		r += `Living standard: ${child.livingRules}. `;
+		r += `Living standard: ${child.rules.living}. `;
 		if (canTalk(child)) {
-			r += `Speech rules: ${child.speechRules}. `;
+			r += `Speech rules: ${child.rules.speech}. `;
 		}
-		r += `Relationship rules: ${child.relationshipRules}. `;
-		r += `Typical punishment: ${child.standardPunishment}. `;
-		r += `Typical reward: ${child.standardReward}. `;
-		r += `Release rules: ${child.releaseRules}. `;
+		r += `Relationship rules: ${child.rules.relationship}. `;
+		r += `Typical punishment: ${child.rules.punishment}. `;
+		r += `Typical reward: ${child.rules.reward}. `;
+		r += `Release rules: ${child.rules.release}. `;
 	}
 
 	/**
@@ -7007,10 +7007,10 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		if (child.accent !== 0) {
 			if (child.accent === 1) {
 				accent = jsEither("a beautiful", "a distinctive", "an intriguing", "a light", "a lovely", "a mild", "a pleasant", "a rich", "a slight", "a smooth");
-				r += `${He} speaks ${V.language} in ${accent} ${nationality} accent${child.speechRules === "accent elimination" ? `, which the rules encourage ${him} to suppress` : ``}. `;
+				r += `${He} speaks ${V.language} in ${accent} ${nationality} accent${child.rules.speech === "accent elimination" ? `, which the rules encourage ${him} to suppress` : ``}. `;
 			} else if (child.accent === 2) {
 				accent = jsEither("a broad", "a harsh", "a heavy", "an intense", "a marked", "a noticeable", "a rough", "a significant", "a stressed", "a strong", "a thick");
-				r += `${He} speaks ${V.language} in ${accent} ${nationality} accent that can be hard to understand${child.speechRules === "accent elimination" ? `, and the rules encourage ${him} to make an effort to suppress it` : ``}. `;
+				r += `${He} speaks ${V.language} in ${accent} ${nationality} accent that can be hard to understand${child.rules.speech === "accent elimination" ? `, and the rules encourage ${him} to make an effort to suppress it` : ``}. `;
 			} else {
 				r += `${He} speaks little ${V.language}, but understands enough to be given orders. `;
 			}
@@ -12678,7 +12678,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				r += tats.vagina(child);
 			}
 
-			if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
+			if (child.rules.release === "permissive" || child.rules.release === "masturbation") {
 				if ((child.aphrodisiacs > 0 || child.inflationType === "aphrodisiac") && child.drugs !== "priapism agent") {
 					if (child.aphrodisiacs > 1 || (child.inflationType === "aphrodisiac" && child.inflation > 1)) {
 						if (child.dick !== 0 && child.hormoneBalance >= 100 && !hasAnyArms(child)) {
@@ -15106,7 +15106,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 		r += `${He} has a large, liver-colored birthmark, detracting from ${his} beauty. `;
 	}
 	if (child.skin === "sun tanned") {
-		if (child.releaseRules !== "restrictive" && child.releaseRules !== "masturbation" && child.releaseRules !== "chastity") {
+		if (child.rules.release !== "restrictive" && child.rules.release !== "masturbation" && child.rules.release !== "chastity") {
 			if (child.fetishKnown && child.fetishStrength > 60) {
 				r += `${His} tan is slightly uneven, since ${he} enjoys`;
 				switch (child.fetish) {
@@ -15373,11 +15373,11 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				r += `aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}, but only managing to stir up the aphrodisiacs contained in ${his} gut, strengthening their effects even more. `;
 			} else if (child.chastityVagina) {
 				r += `aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}, but only managing to stir up the aphrodisiacs contained in ${his} gut, strengthening their effects even more. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0 && child.vagina === -1) {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}${His} frantic masturbation forces ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0) {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft and pussy with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}${His} frantic masturbation forces ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.vagina !== -1) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.vagina !== -1) {
 				r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he} `;
 				if (child.anus === 0) {
 					r += `plays with a nipple with one hand while furiously rubbing ${his} virgin anus and the sensitive perineum beneath it with the other, desperately trying to get ${himself} off. ${His} frantic attempts force ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
@@ -15392,7 +15392,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 					}
 					r += ` to fuck ${his} own ass. ${His} frantic attempts force ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
 				}
-			} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
+			} else if (child.rules.release === "permissive" || child.rules.release === "masturbation") {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} clit with one hand while ${he} fingers ${his} anus with the other. `;
 			} else if (child.dick !== 0) {
 				r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} crotch, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
@@ -15407,11 +15407,11 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				r += `aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}. `;
 			} else if (child.chastityVagina) {
 				r += `aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0 && child.vagina === -1) {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0) {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft and pussy with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.vagina !== -1) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.vagina !== -1) {
 				r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he}`;
 				if (child.anus === 0) {
 					r += `plays with a nipple with one hand while furiously rubbing ${his} virgin anus and the sensitive perineum beneath it with the other, desperately trying to get ${himself} off. `;
@@ -15426,7 +15426,7 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 					}
 					r += ` to fuck ${his} own ass. `;
 				}
-			} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
+			} else if (child.rules.release === "permissive" || child.rules.release === "masturbation") {
 				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} clit with one hand while ${he} fingers ${his} anus with the other. `;
 			} else if (child.dick !== 0) {
 				r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} crotch, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
@@ -15440,11 +15440,11 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 				r += `${He}'s on aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with sexual frustration. `;
 			} else if (child.chastityVagina) {
 				r += `${He}'s on aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with sexual frustration. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0 && child.vagina === -1) {
 				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft with one hand while the other pinches a nipple. `;
-			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
+			} else if ((child.rules.release === "permissive" || child.rules.release === "masturbation") && child.dick !== 0) {
 				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft and pussy with one hand while the other pinches a nipple. `;
-			} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
+			} else if (child.rules.release === "permissive" || child.rules.release === "masturbation") {
 				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} pussy with one hand while the other pinches a nipple. `;
 			} else if (child.dick !== 0 && canPenetrate(child)) {
 				r += `${He}'s on aphrodisiacs and is not allowed to masturbate, so as ${he} obeys your commands ${he} shifts ${his} weight uncomfortably. ${His} erect dick sways as ${he} does. `;
@@ -15703,14 +15703,14 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.lactation = 0,
 	child.lactationAdaptation = 0,
 	child.lactationDuration = 0,
-	child.lactationRules = "none",
+	child.rules.lactation = "none",
 	child.legAccessory = "none",
 	child.legsTat = 0,
 	child.lips = jsRandom(10, 30),
 	child.lipsImplant = 0,
 	child.lipsPiercing = 0,
 	child.lipsTat = 0,
-	child.livingRules = "normal",
+	child.rules.living = "normal",
 	child.makeup = 0,
 	child.markings = "none",
 	child.minorInjury = 0,
@@ -15819,9 +15819,9 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 	child.readyOva = 0,
 	child.rearAccessory = "none",
 	child.relationship = 0,
-	child.relationshipRules = "restrictive",	// TODO:
+	child.rules.relationship = "restrictive",	// TODO:
 	child.relationshipTarget = 0,
-	child.releaseRules = "restrictive",	// TODO:
+	child.rules.release = "restrictive",	// TODO:
 	child.rivalry = 0,
 	child.rivalryTarget = 0,
 	child.rudeTitle = 0,
@@ -15857,10 +15857,10 @@ App.Facilities.Nursery.infantToChild = function infantToChild(child) {
 		whoring: 8
 	},
 	child.smells = 0,
-	child.speechRules = "restrictive",	// TODO:
+	child.rules.speech = "restrictive",	// TODO:
 	child.stampTat = 0,
-	child.standardPunishment = "situational",	// TODO:
-	child.standardReward = "situational",	// TODO:
+	child.rules.punishment = "situational",	// TODO:
+	child.rules.reward = "situational",	// TODO:
 	child.tail = "none",
 	child.tailColor = "none",
 	child.tailShape = "none",
@@ -17809,14 +17809,14 @@ App.Facilities.Nursery.ChildState = class ChildState {
 			* * "normal"
 			* * "luxurious"
 			*/
-		this.livingRules = "spare";
+		this.rules.living = "spare";
 		/**
 		* * "restrictive"
 		* * "permissive"
 		* * "accent elimination"
 		* * "language lessons"
 		*/
-		this.speechRules = "restrictive";
+		this.rules.speech = "restrictive";
 		/**
 		* * "permissive"
 		* * "sapphic"
@@ -17824,33 +17824,33 @@ App.Facilities.Nursery.ChildState = class ChildState {
 		* * "restrictive"
 		* * "chastity"
 		*/
-		this.releaseRules = "restrictive";
+		this.rules.release = "restrictive";
 		/**
 		* * "restrictive"
 		* * "just friends"
 		* * "permissive"
 		*/
-		this.relationshipRules = "restrictive";
+		this.rules.relationship = "restrictive";
 		/**
 		* * "none"
 		* * "induce"
 		* * "maintain"
 		*/
-		this.lactationRules = "none";
+		this.rules.lactation = "none";
 		/**
 		* * "confinement"
 		* * "whipping"
 		* * "chastity"
 		* * "situational"
 		*/
-		this.standardPunishment = "situational";
+		this.rules.punishment = "situational";
 		/**
 		* * "relaxation"
 		* * "drugs"
 		* * "orgasm"
 		* * "situational"
 		*/
-		this.standardReward = "situational";
+		this.rules.reward = "situational";
 		/** Follows rules or is exempt from them
 		*
 		* 0: exempt; 1: obeys */
@@ -19102,8 +19102,8 @@ App.Facilities.Nursery.nurseryReport = function nurseryReport() {
 		if (Matron.trust <= 60) {
 			Matron.trust++;
 		}
-		if (Matron.livingRules !== "luxurious") {
-			Matron.livingRules = "luxurious";
+		if (Matron.rules.living !== "luxurious") {
+			Matron.rules.living = "luxurious";
 		}
 
 		let FLsFetish = 0;
@@ -19259,13 +19259,13 @@ App.Facilities.Nursery.nurseryReport = function nurseryReport() {
 		// TODO:
 		switch (V.nurseryDecoration) {
 			case "Repopulationist":
-				slave.livingRules = "luxurious";
+				slave.rules.living = "luxurious";
 				break;
 			case "Degradationist":
-				slave.livingRules = "spare";
+				slave.rules.living = "spare";
 				break;
 			default:
-				slave.livingRules = "normal";
+				slave.rules.living = "normal";
 				break;
 		}
 
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index ce45c4de98f839135638352d0f768089d3169df6..44f62c9298bf811ce478c6629463b931b5464eac 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -77,8 +77,8 @@ You should have received a copy of the GNU General Public License along with thi
 			<</if>>
 			<<set $slaves[_i].rivalry = 0, $slaves[_i].rivalryTarget = 0, $slaves[_i].subTarget = 0>>
 			<<set $slaves[_i].drugs = "no drugs">>
-			<<set $slaves[_i].pornFameSpending = 0>>
-			<<set $slaves[_i].livingRules = "spare">>
+			<<set $slaves[_i].porn.spending = 0>>
+			<<set $slaves[_i].rules.living = "spare">>
 			<<set $slaves[_i].diet = "healthy">>
 			<<set $slaves[_i].pregControl = "none">>
 		<</if>>
@@ -825,11 +825,8 @@ You should have received a copy of the GNU General Public License along with thi
 
 /* Slave sexual services and goods variables */
 <<set $publicFuckdolls = 0>>
-<<set $lowerClassSexDemand = 15600>>
-<<set $lowerClassSatisfied = 0>>
-<<set $middleClassSexDemand = 10780>>
-<<set $upperClassSexDemand = 8000>>
-<<set $topClassSexDemand = 8000>>
+<<set $classSatisfied = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0}>>
+<<set $whoreBudget = {lowerClass: 7, middleClass: 40, upperClass: 200, topClass: 1500}>>
 <<set $arcadePrice = 2>>
 <<set $clubSlaveSexAmount = 0>>
 
@@ -1128,9 +1125,10 @@ You should have received a copy of the GNU General Public License along with thi
 <<set $slaveCostRandom = 0>>
 <<set $deltaDemand = 0>>
 <<set $deltaSupply = 0>>
-<<set $NPCSexSupply = {lowerClass: 3000}>>
-<<set $sexSubsidiesLC = 0>>
-<<set $sexSupplyBarriersLC = 0>>
+<<set $NPCSexSupply = {lowerClass: 3000, middleClass: 3000, upperClass: 3000, topClass: 3000}>>
+<<set $NPCMarketShare = {lowerClass: 1000, middleClass: 1000, upperClass: 1000, topClass: 1000}>>
+<<set $sexSubsidies = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0}>>
+<<set $sexSupplyBarriers = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0}>>
 <<set $minimumSlaveCost = 2500>>
 <<set $facilityCost = 100>>
 <<set $enduringRep = 1000>>
@@ -1145,20 +1143,18 @@ You should have received a copy of the GNU General Public License along with thi
 <<set $lowerClass = 3120>>
 <<set $LSCBase = 800>>
 <<set $visitors = 0>>
+<<set $rentDefaults = {lowerClass: 20, middleClass: 50, upperClass: 180, topClass: 650}>>
+<<set $rent = {lowerClass: 20, middleClass: 50, upperClass: 180, topClass: 650}>>
 <<set $rentEffectL = 1>>
-<<set $LCRent = 20>>
 <<set $middleClass = 890>>
 <<set $MCBase = 200>>
 <<set $rentEffectM = 1>>
-<<set $MCRent = 50>>
 <<set $upperClass = 200>>
 <<set $UCBase = 40>>
 <<set $rentEffectU = 1>>
-<<set $UCRent = 175>>
 <<set $topClass = 40>>
 <<set $TCBase = 20>>
 <<set $rentEffectT = 1>>
-<<set $TCRent = 650>>
 <<set $GDP = 278.6>>
 <<set $NPCSlaves = 900>>
 <<set $ASlaves = 900>>
diff --git a/src/interaction/main/walkPast.js b/src/interaction/main/walkPast.js
index 8262ac47dcf03cf0a5e8c15ae2a910d59518b689..b065a56f7bbc1397516cbaf029b6083b572d2397 100644
--- a/src/interaction/main/walkPast.js
+++ b/src/interaction/main/walkPast.js
@@ -87,7 +87,7 @@ window.walkPast = (function() {
 
 		if (V.partner === "rivalry") {
 			output += rivalSlave(activeSlave, seed);
-		} else if (V.partner === "relationship" && activeSlave.relationship >= 3 && activeSlave.releaseRules !== "restrictive" && activeSlave.releaseRules !== "masturbation" && activeSlave.releaseRules !== "chastity") {
+		} else if (V.partner === "relationship" && activeSlave.relationship >= 3 && activeSlave.rules.release !== "restrictive" && activeSlave.rules.release !== "masturbation" && activeSlave.rules.release !== "chastity") {
 			output += loverSlave(activeSlave);
 		} else if (V.partner === "relationship" || V.partner === "relation") {
 			output += relatedSlave(activeSlave);
@@ -217,7 +217,7 @@ window.walkPast = (function() {
 	function primeSlave(activeSlave, seed) {
 		r = "";
 
-		if (V.partner !== "relationship" || activeSlave.relationship === 1 || activeSlave.relationship === 2 || activeSlave.releaseRules === "restrictive") {
+		if (V.partner !== "relationship" || activeSlave.relationship === 1 || activeSlave.relationship === 2 || activeSlave.rules.release === "restrictive") {
 			r += `${activeSlave.slaveName} `;
 			r += walkPasts(activeSlave, seed);
 			t = "";
@@ -301,7 +301,7 @@ window.walkPast = (function() {
 			} else if (seed >= 66) { /* SEXY TIMES */
 				if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 					fuckSpot = `in ${partnerName}'s suite`;
-				} else if (activeSlave.livingRules === "luxurious") {
+				} else if (activeSlave.rules.living === "luxurious") {
 					fuckSpot = `in the nice little room they share`;
 				} else {
 					fuckSpot = `out in the open in the slave dormitory`;
@@ -731,7 +731,7 @@ window.walkPast = (function() {
 							break;
 						case "humiliation":
 							t += `having open and visible sex `;
-							if (activeSlave.livingRules === "luxurious") {
+							if (activeSlave.rules.living === "luxurious") {
 								t += `in the doorway of the nice little room they share.`;
 							} else if (activeSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 								t += `in ${name}'s suite.`;
@@ -1071,7 +1071,7 @@ window.walkPast = (function() {
 				} else if (canPenetrate(activeSlave) && (partnerSlave.vagina > 0) && canDoVaginal(partnerSlave) && hasAllLimbs(partnerSlave) && (activeSlave.belly + partnerSlave.belly < 10000)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1086,7 +1086,7 @@ window.walkPast = (function() {
 				} else if (activeSlave.clit > 2 && canDoVaginal(activeSlave) && partnerSlave.vagina > 0 && canDoVaginal(partnerSlave) && hasAllLimbs(partnerSlave) && (activeSlave.belly + partnerSlave.belly < 10000)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1101,7 +1101,7 @@ window.walkPast = (function() {
 				} else if (activeSlave.dick > 1 && canPenetrate(activeSlave) && canDoAnal(partnerSlave) && partnerSlave.anus > 0 && hasBothArms(activeSlave) && activeSlave.belly < 10000) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1114,7 +1114,7 @@ window.walkPast = (function() {
 				} else if (activeSlave.clit > 2 && canDoAnal(partnerSlave) && partnerSlave.anus > 0 && hasAnyArms(partnerSlave) && hasAnyLegs(activeSlave)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1123,7 +1123,7 @@ window.walkPast = (function() {
 				} else if (canPenetrate(activeSlave) && hasBothLegs(partnerSlave) && hasBothArms(activeSlave) && activeSlave.belly < 10000) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1136,7 +1136,7 @@ window.walkPast = (function() {
 				} else if (activeSlave.clit > 2 && canDoVaginal(activeSlave) && hasBothLegs(partnerSlave)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1145,7 +1145,7 @@ window.walkPast = (function() {
 				} else if (partnerSlave.vagina > 0 && canDoVaginal(partnerSlave) && hasAllLimbs(partnerSlave) && (activeSlave.belly + partnerSlave.belly < 10000)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1160,7 +1160,7 @@ window.walkPast = (function() {
 				} else if (partnerSlave.anus > 0 && canDoAnal(partnerSlave) && hasBothArms(activeSlave) && activeSlave.belly < 10000) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1173,7 +1173,7 @@ window.walkPast = (function() {
 				} else if (hasAnyArms(partnerSlave) && hasAnyArms(activeSlave)) {
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1183,7 +1183,7 @@ window.walkPast = (function() {
 					t += `just cuddling `;
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
@@ -1193,7 +1193,7 @@ window.walkPast = (function() {
 					t += `just cuddling `;
 					if (partnerSlave.ID === V.HeadGirl.ID && V.HGSuite === 1) {
 						t += `in bed `;
-					} else if (activeSlave.livingRules === "luxurious") {
+					} else if (activeSlave.rules.living === "luxurious") {
 						t += `in bed `;
 					} else {
 						t += `on ${name}'s bedroll `;
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index f078255943e01df10efe30f540889712ea759cef..66fc45cb5c8e14110b884034c9fcf0d8c1c85910 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -1824,33 +1824,33 @@ window.DefaultRules = (function() {
 	 * @param {object} rule
 	 */
 	function ProcessLivingStandard(slave, rule) {
-		if ((rule.livingRules !== undefined) && (rule.livingRules !== null)) {
+		if ((rule.rules.living !== undefined) && (rule.rules.living !== null)) {
 			if (setup.facilityCareers.includes(slave.assignment)) {
 				r += ""; // `<br>${slave.slaveName}'s living standards are controlled by ${his} assignment.`;
 			} else if (((slave.assignment === "be your Head Girl") && (V.HGSuite === 1)) || ((slave.assignment === "guard you") && (V.dojo > 1))) {
 				r += `<br>${slave.slaveName} has a private room.`;
 			} else if ((slave.fetish === "mindbroken")) {
-				if ((slave.livingRules !== "spare")) {
-					slave.livingRules = "spare";
+				if ((slave.rules.living !== "spare")) {
+					slave.rules.living = "spare";
 					r += `<br>Since ${slave.slaveName} is mindbroken, ${his} living standard has been set to spare.`;
 				}
-			} else if (slave.livingRules !== rule.livingRules) {
-				if (rule.livingRules !== "luxurious") {
+			} else if (slave.rules.living !== rule.rules.living) {
+				if (rule.rules.living !== "luxurious") {
 					if (V.roomsPopulation <= V.rooms - 0.5) {
-						slave.livingRules = rule.livingRules;
-						r += `<br>${slave.slaveName}'s living standard has been set to ${rule.livingRules}.`;
+						slave.rules.living = rule.rules.living;
+						r += `<br>${slave.slaveName}'s living standard has been set to ${rule.rules.living}.`;
 						if (slave.relationship >= 4) {
 							V.roomsPopulation += 0.5;
 						} else {
 							V.roomsPopulation += 1;
 						}
 					} else {
-						slave.livingRules = "normal";
+						slave.rules.living = "normal";
 						r += `<br>${slave.slaveName}'s living standard has been set to normal, since there is no room for ${him} to occupy.`;
 					}
 				} else {
-					slave.livingRules = rule.livingRules;
-					r += `<br>${slave.slaveName}'s living standard has been set to ${rule.livingRules}.`;
+					slave.rules.living = rule.rules.living;
+					r += `<br>${slave.slaveName}'s living standard has been set to ${rule.rules.living}.`;
 				}
 			}
 		}
@@ -1861,31 +1861,31 @@ window.DefaultRules = (function() {
 	 * @param {object} rule
 	 */
 	function ProcessSpeech(slave, rule) {
-		if ((rule.speechRules !== undefined) && (rule.speechRules !== null) && (slave.speechRules !== rule.speechRules)) {
+		if ((rule.rules.speech !== undefined) && (rule.rules.speech !== null) && (slave.rules.speech !== rule.rules.speech)) {
 			if (slave.fetish === "mindbroken") {
-				if ((slave.speechRules !== "restrictive")) {
-					slave.speechRules = "restrictive";
+				if ((slave.rules.speech !== "restrictive")) {
+					slave.rules.speech = "restrictive";
 					r += `<br>Since ${slave.slaveName} is mindbroken, ${his} speech rules have been set to restrictive.`;
 				}
 			} else if (slave.accent === 4) {
-				if (rule.speechRules === "accent elimination" && slave.speechRules !== "language lessons") {
-					slave.speechRules = "language lessons";
+				if (rule.rules.speech === "accent elimination" && slave.rules.speech !== "language lessons") {
+					slave.rules.speech = "language lessons";
 					r += `<br>Since ${slave.slaveName} does not know how to talk, ${his} speech rules have been set to language learning.`;
 				} else {
-					slave.speechRules = "restrictive";
+					slave.rules.speech = "restrictive";
 					r += `<br>Since ${slave.slaveName} does not know how to talk, ${his} speech rules have been set to restrictive.`;
 				}
-			} else if (rule.speechRules === "accent elimination") {
+			} else if (rule.rules.speech === "accent elimination") {
 				if (slave.accent > 0) {
-					slave.speechRules = "accent elimination";
-					r += `<br>${slave.slaveName}'s speech rules have been set to ${rule.speechRules}.`;
+					slave.rules.speech = "accent elimination";
+					r += `<br>${slave.slaveName}'s speech rules have been set to ${rule.rules.speech}.`;
 				} else {
-					slave.speechRules = "restrictive";
+					slave.rules.speech = "restrictive";
 					r += `<br>Since ${slave.slaveName} has no accent, ${his} speech rules have been set to restrictive.`;
 				}
-			} else if (slave.speechRules !== rule.speechRules) {
-				slave.speechRules = rule.speechRules;
-				r += `<br>${slave.slaveName}'s speech rules have been set to ${rule.speechRules}.`;
+			} else if (slave.rules.speech !== rule.rules.speech) {
+				slave.rules.speech = rule.rules.speech;
+				r += `<br>${slave.slaveName}'s speech rules have been set to ${rule.rules.speech}.`;
 			}
 		}
 	}
@@ -1896,10 +1896,10 @@ window.DefaultRules = (function() {
 	 */
 	function ProcessRelationship(slave, rule) {
 		if ((slave.fetish !== "mindbroken")) {
-			if ((rule.relationshipRules !== undefined) && (rule.relationshipRules !== null)) {
-				if ((slave.relationshipRules !== rule.relationshipRules )) {
-					slave.relationshipRules = rule.relationshipRules;
-					r += `<br>${slave.slaveName}'s relationship rules have been set to ${rule.relationshipRules}.`;
+			if ((rule.rules.relationship !== undefined) && (rule.rules.relationship !== null)) {
+				if ((slave.rules.relationship !== rule.rules.relationship )) {
+					slave.rules.relationship = rule.rules.relationship;
+					r += `<br>${slave.slaveName}'s relationship rules have been set to ${rule.rules.relationship}.`;
 				}
 			}
 		}
@@ -1910,25 +1910,25 @@ window.DefaultRules = (function() {
 	 * @param {object} rule
 	 */
 	function ProcessRelease(slave, rule) {
-		if ((rule.releaseRules !== undefined) && (rule.releaseRules !== null)) {
+		if ((rule.rules.release !== undefined) && (rule.rules.release !== null)) {
 			let release = 0;
-			if (rule.releaseRules === "restrictive" &&
+			if (rule.rules.release === "restrictive" &&
 				!(["be a subordinate slave", "be confined in the arcade", "be your Head Girl", "get milked", "please you", "serve in the club", "serve in the master suite", "serve the public", "whore", "work a glory hole", "work as a farmhand", "work in the brothel", "work in the dairy"].contains(slave.assignment))) {
 				release = 1;
 			}
 			if (slave.fetish === "mindbroken") {
-				if (slave.releaseRules !== "permissive") {
-					slave.releaseRules = "permissive";
+				if (slave.rules.release !== "permissive") {
+					slave.rules.release = "permissive";
 					r += `<br>Since ${slave.slaveName} is mindbroken, ${his} masturbation rules have been set to permissive.`;
 				}
 			} else if (!hasAnyArms(slave) || slave.fuckdoll > 0) {
-				if (slave.releaseRules === "masturbation") {
-					slave.releaseRules = "restrictive";
+				if (slave.rules.release === "masturbation") {
+					slave.rules.release = "restrictive";
 					r += `<br>Since ${slave.slaveName} is unable to masturbate, ${his} masturbation rules have been set to restrictive.`;
 				}
-			} else if ((release !== 1) && (slave.releaseRules !== rule.releaseRules)) {
-				slave.releaseRules = rule.releaseRules;
-				r += `<br>${slave.slaveName}'s masturbation rules have been set to ${rule.releaseRules}.`;
+			} else if ((release !== 1) && (slave.rules.release !== rule.rules.release)) {
+				slave.rules.release = rule.rules.release;
+				r += `<br>${slave.slaveName}'s masturbation rules have been set to ${rule.rules.release}.`;
 			}
 		}
 	}
@@ -1938,10 +1938,10 @@ window.DefaultRules = (function() {
 	 * @param {object} rule
 	 */
 	function ProcessPunishment(slave, rule) {
-		if ((rule.standardPunishment !== undefined) && (rule.standardPunishment !== null)) {
-			if ((slave.standardPunishment !== rule.standardPunishment)) {
-				slave.standardPunishment = rule.standardPunishment;
-				r += `<br>${slave.slaveName}'s typical punishment has been updated to ${rule.standardPunishment}.`;
+		if ((rule.rules.punishment !== undefined) && (rule.rules.punishment !== null)) {
+			if ((slave.rules.punishment !== rule.rules.punishment)) {
+				slave.rules.punishment = rule.rules.punishment;
+				r += `<br>${slave.slaveName}'s typical punishment has been updated to ${rule.rules.punishment}.`;
 			}
 		}
 	}
@@ -1951,10 +1951,10 @@ window.DefaultRules = (function() {
 	 * @param {object} rule
 	 */
 	function ProcessReward(slave, rule) {
-		if ((rule.standardReward !== undefined) && (rule.standardReward !== null)) {
-			if ((slave.standardReward !== rule.standardReward)) {
-				slave.standardReward = rule.standardReward;
-				r += `<br>${slave.slaveName}'s typical reward has been updated to ${rule.standardReward}.`;
+		if ((rule.rules.reward !== undefined) && (rule.rules.reward !== null)) {
+			if ((slave.rules.reward !== rule.rules.reward)) {
+				slave.rules.reward = rule.rules.reward;
+				r += `<br>${slave.slaveName}'s typical reward has been updated to ${rule.rules.reward}.`;
 			}
 		}
 	}
@@ -2862,26 +2862,26 @@ window.DefaultRules = (function() {
 	 * @param {object} rule
 	 */
 	function ProcessPornFeedEnabled(slave, rule) {
-		if (rule.pornFeed === undefined || rule.pornFeed == null) {
+		if (rule.porn.feed === undefined || rule.porn.feed == null) {
 			return;
 		}
-		if (rule.pornFeed === slave.pornFeed) {
+		if (rule.porn.feed === slave.porn.feed) {
 			return;
 		}
-		slave.pornFeed = rule.pornFeed;
-		let yesno = slave.pornFeed ? "are now" : "are no longer";
-		if (slave.pornFeed === 0) {
-			slave.pornFameSpending = 0;
+		slave.porn.feed = rule.porn.feed;
+		let yesno = slave.porn.feed ? "are now" : "are no longer";
+		if (slave.porn.feed === 0) {
+			slave.porn.spending = 0;
 		}
 		r += `<br>Highlights of ${slave.slaveName}'s sex life ${yesno} being released.`;
 	}
 
 	/** @param {App.Entity.SlaveState} slave */
 	function ProcessPorn(slave, rule) {
-		if ((rule.pornFameSpending !== undefined) && (rule.pornFameSpending !== null)) {
-			if ((slave.pornPrestige < 3)) {
-				if ((slave.pornFameSpending !== rule.pornFameSpending)) {
-					slave.pornFameSpending = rule.pornFameSpending;
+		if ((rule.porn.spending !== undefined) && (rule.porn.spending !== null)) {
+			if ((slave.porn.prestige < 3)) {
+				if ((slave.porn.spending !== rule.porn.spending)) {
+					slave.porn.spending = rule.porn.spending;
 					r += `<br>${slave.slaveName}'s porn publicity has been corrected.`;
 				}
 			}
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 4e81710055c6fe5dc22fc75c1b4682db1e5a38c4..4c06664b64eb3787be25500b29d7456915c9d89e 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -8,8 +8,79 @@
  * App.Entity.SlaveState class.
  * @ref App.Entity.SlaveState
  */
+  App.Entity.Rulestate = class Rulestate {
+	constructor() {
+		/**
+		 * * "spare"
+		 * * "normal"
+		 * * "luxurious"
+		 */
+		this.living = "spare";
+		/**
+		 * * "restrictive"
+		 * * "permissive"
+		 * * "accent elimination"
+		 * * "language lessons"
+		 */
+		this.speech = "restrictive";
+		/**
+		 * * "permissive"
+		 * * "sapphic"
+		 * * "masturbation"
+		 * * "restrictive"
+		 * * "chastity"
+		 */
+		this.release = "restrictive";
+		/**
+		 * * "restrictive"
+		 * * "just friends"
+		 * * "permissive"
+		 */
+		this.relationship = "restrictive";
+		/**
+		 * * "none"
+		 * * "induce"
+		 * * "maintain"
+		 */
+		this.lactation = "none";
+		/**
+		 * * "confinement"
+		 * * "whipping"
+		 * * "chastity"
+		 * * "situational"
+		 */
+		this.punishment = "situational";
+		/**
+		 * * "relaxation"
+		 * * "drugs"
+		 * * "orgasm"
+		 * * "situational"
+		 */
+		this.reward = "situational";
+	}
+};
+ 
 App.Entity.SlavePornPerformanceState = class {
 	constructor() {
+		/** is the studio outputting porn of her?
+		 * 0: no; 1: yes */
+		this.feed = 0;
+		/** how famous her porn is? */
+		this.viewerCount = 0;
+		/** how much money is being spent on promoting her porn */
+		this.spending = 0;
+		/**
+		 * how famous she is in porn
+		 * * 0: not
+		 * * 1: some
+		 * * 2: recognized
+		 * * 3: world renowned
+		 */
+		this.prestige = 0;
+		/** description to go with @see pornPrestige
+		 * @type {string|number} */
+		this.prestigeDesc = 0;
+		
 		/** what porn she is known for */
 		this.fameType = "none";
 		/** what aspect of her the upgraded studio is focusing on for porn */
@@ -434,26 +505,10 @@ App.Entity.SlaveState = class SlaveState {
 		this.ID = 0;
 		/** slave's prestige */
 		this.prestige = 0;
-		/** is the studio outputting porn of her?
-		 * 0: no; 1: yes */
-		this.pornFeed = 0;
-		/** how famous her porn is? */
-		this.pornFame = 0;
-		/** how much money is being spent on promoting her porn */
-		this.pornFameSpending = 0;
-		/**
-		 * how famous she is in porn
-		 * * 0: not
-		 * * 1: some
-		 * * 2: recognized
-		 * * 3: world renowned
-		 */
-		this.pornPrestige = 0;
-		/** description to go with @see pornPrestige
-		 * @type {string|number} */
-		this.pornPrestigeDesc = 0;
 		/** porn fame */
 		this.porn = new App.Entity.SlavePornPerformanceState();
+		/** rules */
+		this.rules = new App.Entity.Rulestate();
 		/** reason for prestige
 		 * @type {string|number} */
 		this.prestigeDesc = 0;
@@ -1551,53 +1606,6 @@ App.Entity.SlaveState = class SlaveState {
 		 * * "Paternalist"
 		 * @type {string|number} */
 		this.stampTat = 0;
-		/**
-		 * * "spare"
-		 * * "normal"
-		 * * "luxurious"
-		 */
-		this.livingRules = "spare";
-		/**
-		 * * "restrictive"
-		 * * "permissive"
-		 * * "accent elimination"
-		 * * "language lessons"
-		 */
-		this.speechRules = "restrictive";
-		/**
-		 * * "permissive"
-		 * * "sapphic"
-		 * * "masturbation"
-		 * * "restrictive"
-		 * * "chastity"
-		 */
-		this.releaseRules = "restrictive";
-		/**
-		 * * "restrictive"
-		 * * "just friends"
-		 * * "permissive"
-		 */
-		this.relationshipRules = "restrictive";
-		/**
-		 * * "none"
-		 * * "induce"
-		 * * "maintain"
-		 */
-		this.lactationRules = "none";
-		/**
-		 * * "confinement"
-		 * * "whipping"
-		 * * "chastity"
-		 * * "situational"
-		 */
-		this.standardPunishment = "situational";
-		/**
-		 * * "relaxation"
-		 * * "drugs"
-		 * * "orgasm"
-		 * * "situational"
-		 */
-		this.standardReward = "situational";
 		/** follows rules or is exempt from them
 		 *
 		 * 0: exempt; 1: obeys */
diff --git a/src/js/assignJS.js b/src/js/assignJS.js
index abde43fb31e2b44169aaefdbd53d9649cfe6fede..c58a4b82045b4947672f99112e7d766ef8367736 100644
--- a/src/js/assignJS.js
+++ b/src/js/assignJS.js
@@ -18,7 +18,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.clothes = "no clothing";
 			slave.shoes = "none";
 			slave.collar = "none";
-			slave.livingRules = "spare";
+			slave.rules.living = "spare";
 			break;
 
 		case "work in the brothel":
@@ -29,10 +29,10 @@ window.assignJob = function assignJob(slave, job) {
 			switch (V.brothelDecoration) {
 				case "Degradationist":
 				case "standard":
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 				default:
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 			}
 			break;
@@ -44,10 +44,10 @@ window.assignJob = function assignJob(slave, job) {
 			V.CellBiIDs.push(slave.ID);
 			switch (V.cellblockDecoration) {
 				case "Paternalist":
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 				default:
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 			}
 			break;
@@ -70,7 +70,7 @@ window.assignJob = function assignJob(slave, job) {
 				case "Intellectual Dependency":
 				case "Petite Admiration":
 				case "Statuesque Glorification":
-					slave.livingRules = "luxurious";
+					slave.rules.living = "luxurious";
 					break;
 
 				case "Roman Revivalist":
@@ -80,11 +80,11 @@ window.assignJob = function assignJob(slave, job) {
 				case "Chinese Revivalist":
 				case "Chattel Religionist":
 				case "Edo Revivalist":
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 
 				default:
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 			}
 			break;
@@ -94,7 +94,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignment = "serve in the club";
 			slave.assignmentVisible = 0;
 			V.ClubiIDs.push(slave.ID);
-			slave.livingRules = "normal";
+			slave.rules.living = "normal";
 			break;
 
 		case "work in the dairy":
@@ -113,10 +113,10 @@ window.assignJob = function assignJob(slave, job) {
 				case "Supremacist":
 				case "Subjugationist":
 				case "Degradationist":
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 				default:
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 			}
 			break;
@@ -136,13 +136,13 @@ window.assignJob = function assignJob(slave, job) {
 				case "Supremacist":
 				case "Subjugationist":
 				case "Degradationist":
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 				case "Roman Revivalist":
-					slave.livingRules = "luxurious";
+					slave.rules.living = "luxurious";
 					break;
 				default:
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 			}
 			break;
@@ -153,7 +153,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignment = "live with your Head Girl";
 			slave.assignmentVisible = 0;
 			V.HGSuiteiIDs.push(slave.ID);
-			slave.livingRules = "luxurious";
+			slave.rules.living = "luxurious";
 			break;
 
 		case "serve in the master suite":
@@ -163,9 +163,9 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignmentVisible = 0;
 			V.MastSiIDs.push(slave.ID);
 			if (V.masterSuiteUpgradeLuxury > 0) {
-				slave.livingRules = "luxurious";
+				slave.rules.living = "luxurious";
 			} else {
-				slave.livingRules = "normal";
+				slave.rules.living = "normal";
 			}
 			break;
 
@@ -174,7 +174,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignment = "learn in the schoolroom";
 			slave.assignmentVisible = 0;
 			V.SchlRiIDs.push(slave.ID);
-			slave.livingRules = "normal";
+			slave.rules.living = "normal";
 			break;
 
 		case "work as a servant":
@@ -194,31 +194,31 @@ window.assignJob = function assignJob(slave, job) {
 				case "Degradationist":
 				case "Arabian Revivalist":
 				case "Egyptian Revivalist":
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 				case "Slave Professionalism":
 					if (slave.intelligence + slave.intelligenceImplant > 15) {
-						slave.livingRules = "normal";
+						slave.rules.living = "normal";
 					} else {
-						slave.livingRules = "spare";
+						slave.rules.living = "spare";
 					}
 					break;
 				case "Petite Admiration":
 					if (heightPass(slave)) {
-						slave.livingRules = "normal";
+						slave.rules.living = "normal";
 					} else {
-						slave.livingRules = "spare";
+						slave.rules.living = "spare";
 					}
 					break;
 				case "Statuesque Glorification":
 					if (heightPass(slave)) {
-						slave.livingRules = "normal";
+						slave.rules.living = "normal";
 					} else {
-						slave.livingRules = "spare";
+						slave.rules.living = "spare";
 					}
 					break;
 				default:
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 			}
 			break;
@@ -231,13 +231,13 @@ window.assignJob = function assignJob(slave, job) {
 			switch (V.spaDecoration) {
 				case "Chattel Religionist":
 				case "Chinese Revivalist":
-					slave.livingRules = "normal";
+					slave.rules.living = "normal";
 					break;
 				case "Degradationist":
-					slave.livingRules = "spare";
+					slave.rules.living = "spare";
 					break;
 				default:
-					slave.livingRules = "luxurious";
+					slave.rules.living = "luxurious";
 					break;
 			}
 			break;
@@ -247,7 +247,7 @@ window.assignJob = function assignJob(slave, job) {
 			slave.assignment = "work as a nanny";
 			slave.assignmentVisible = 0;
 			V.NurseryiIDs.push(slave.ID);
-			slave.livingRules = "normal";
+			slave.rules.living = "normal";
 			break;
 
 		case "be the attendant":
@@ -262,30 +262,30 @@ window.assignJob = function assignJob(slave, job) {
 		case "be the wardeness":
 			slave.assignment = job;
 			slave.assignmentVisible = 0; /* non-visible leadership roles */
-			slave.livingRules = "luxurious";
+			slave.rules.living = "luxurious";
 			break;
 
 		case "be your concubine":
 			slave.assignment = job;
 			slave.assignmentVisible = 0; /* non-visible leadership roles */
 			if (V.masterSuiteUpgradeLuxury > 0) {
-				slave.livingRules = "luxurious";
+				slave.rules.living = "luxurious";
 			} else {
-				slave.livingRules = "normal";
+				slave.rules.living = "normal";
 			}
 			break;
 
 		case "be your head girl":
 			slave.assignment = job;
 			if (V.HGSuite === 1) {
-				slave.livingRules = "luxurious";
+				slave.rules.living = "luxurious";
 			}
 			break;
 
 		case "guard you":
 			slave.assignment = job;
 			if (V.dojo > 1) {
-				slave.livingRules = "luxurious";
+				slave.rules.living = "luxurious";
 			}
 			if (V.pitBG === 1 && V.fighterIDs.includes(slave.ID)) { V.fighterIDs.delete(slave.ID); }
 			break;
@@ -523,8 +523,8 @@ window.removeJob = function removeJob(slave, assignment) {
 				break;
 		}
 
-		if (slave.livingRules === "luxurious" && slave.assignmentVisible !== 1) {
-			slave.livingRules = "normal";
+		if (slave.rules.living === "luxurious" && slave.assignmentVisible !== 1) {
+			slave.rules.living = "normal";
 		}
 
 		slave.assignmentVisible = 1;
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 5a0079a59db2eece210eba507a3d917e754d1c55..172ca1b5b99c4594fe0a5f0a1044571227d4e7f9 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -13,6 +13,7 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function() {
 	 * @param {App.Entity.SlaveState} slave
 	 */
 	function SlaveDataSchemeCleanup(slave) {
+  migrateRules(slave);
 		migratePorn(slave);
 		migrateSkills(slave);
 		migrateCounters(slave);
@@ -21,6 +22,29 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function() {
 		migrateScars(slave);
 		App.Entity.Utils.migratePronouns(slave);
 	}
+	
+	/**
+	 * @param {App.Entity.SlaveState} slave
+	 */
+	function migrateRules(slave) {
+		if (!slave.hasOwnProperty("rules")) {
+			slave.rules = new App.Entity.Rulestate();	
+			slave.rules.lactation = slave.lactationRules;
+				delete slave.lactationRules;
+			slave.rules.living = slave.livingRules;
+				delete slave.livingRules;
+			slave.rules.relationship = slave.relationshipRules;
+				delete slave.relationshipRules;
+			slave.rules.release = slave.releaseRules;
+				delete slave.releaseRules;
+			slave.rules.speech = slave.speechRules;
+				delete slave.speechRules;
+			slave.rules.punishment = slave.standardPunishment;
+				delete slave.standardPunishment;
+			slave.rules.reward = slave.standardReward;
+				delete slave.standardReward;
+		}
+	}
 
 	/**
 	 * @param {App.Entity.SlaveState} slave
@@ -49,6 +73,31 @@ App.Entity.Utils.SlaveDataSchemeCleanup = (function() {
 				delete slave.pornFocus;
 			}
 		}
+		
+		if (slave.hasOwnProperty("pornFeed")) {
+			slave.porn.feed = slave.pornFeed;
+			delete slave.pornFeed;
+		}
+		
+		if (slave.hasOwnProperty("pornFame")) {
+			slave.porn.viewerCount = slave.pornFame;
+			delete slave.pornFame;
+		}
+		
+		if (slave.hasOwnProperty("pornFameSpending")) {
+			slave.porn.spending = slave.pornFameSpending;
+			delete slave.pornFameSpending;
+		}
+		
+		if (slave.hasOwnProperty("pornPrestige")) {
+			slave.porn.prestige = slave.pornPrestige;
+			delete slave.pornPrestige;
+		}
+		
+		if (slave.hasOwnProperty("pornPrestigeDesc")) {
+			slave.porn.prestigeDesc = slave.pornPrestigeDesc;
+			delete slave.pornPrestigeDesc;
+		}
 	}
 
 	/**
@@ -770,12 +819,12 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 	 * @param {App.Entity.SlaveState} slave
 	 */
 	function slavePornDatatypeCleanup(slave) {
-		slave.pornFeed = Math.clamp(+slave.pornFeed, 0, 1) || 0;
-		slave.pornFame = Math.max(+slave.pornFame, 0) || 0;
-		slave.pornFameSpending = Math.max(+slave.pornFameSpending, 0) || 0;
-		slave.pornPrestige = Math.clamp(+slave.pornPrestige, 0, 3) || 0;
-		if (typeof slave.pornPrestigeDesc !== "string") {
-			slave.pornPrestigeDesc = 0;
+		slave.porn.feed = Math.clamp(+slave.porn.feed, 0, 1) || 0;
+		slave.porn.viewerCount = Math.max(+slave.porn.viewerCount, 0) || 0;
+		slave.porn.spending = Math.max(+slave.porn.spending, 0) || 0;
+		slave.porn.prestige = Math.clamp(+slave.porn.prestige, 0, 3) || 0;
+		if (typeof slave.porn.prestigeDesc !== "string") {
+			slave.porn.prestigeDesc = 0;
 		}
 		if (typeof slave.porn.fameType !== "string") {
 			slave.porn.fameType = "none";
@@ -1356,12 +1405,12 @@ window.childDietDatatypeCleanup = function childDietDatatypeCleanup(child) {
 };
 
 window.childPornDatatypeCleanup = function childPornDatatypeCleanup(child) {
-	child.pornFeed = Math.clamp(+child.pornFeed, 0, 1) || 0;
-	child.pornFame = Math.max(+child.pornFame, 0) || 0;
-	child.pornFameSpending = Math.max(+child.pornFameSpending, 0) || 0;
-	child.pornPrestige = Math.clamp(+child.pornPrestige, 0, 3) || 0;
-	if (typeof child.pornPrestigeDesc !== "string") {
-		child.pornPrestigeDesc = 0;
+	child.porn.feed = Math.clamp(+child.porn.feed, 0, 1) || 0;
+	child.porn.viewerCount = Math.max(+child.porn.viewerCount, 0) || 0;
+	child.porn.spending = Math.max(+child.porn.spending, 0) || 0;
+	child.porn.prestige = Math.clamp(+child.porn.prestige, 0, 3) || 0;
+	if (typeof child.porn.prestigeDesc !== "string") {
+		child.porn.prestigeDesc = 0;
 	}
 	if (typeof child.porn.fameType !== "string") {
 		child.porn.fameType = "none";
@@ -1644,9 +1693,48 @@ window.EconomyDatatypeCleanup = function EconomyDatatypeCleanup() {
 	V.elapsedSupplyTimer = Math.max(+V.elapsedSupplyTimer, 0) || 0;
 	V.deltaSupply = Math.clamp(+V.deltaSupply, -3000, 3000) || 0;
 	V.deltaDemand = Math.clamp(+V.deltaDemand, -3000, 3000) || 0;
-	V.NPCSexSupply.lowerClass = Math.max(+V.NPCSexSupply.lowerClass, 0) || 3000;
-	V.sexSubsidiesLC = Math.clamp(+V.sexSubsidiesLC, 0, 4) || 0;
-	V.sexSupplyBarriersLC = Math.clamp(+V.sexSupplyBarriersLC, 0, 4) || 0;
+	V.sexSubsidies.lowerClass = Math.clamp(+V.sexSubsidies.lowerClass, 0, 4) || 0;
+	V.sexSubsidies.middleClass = Math.clamp(+V.sexSubsidies.middleClass, 0, 4) || 0;
+	V.sexSubsidies.upperClass = Math.clamp(+V.sexSubsidies.upperClass, 0, 4) || 0;
+	V.sexSubsidies.topClass = Math.clamp(+V.sexSubsidies.topClass, 0, 4) || 0;
+	V.sexSupplyBarriers.lowerClass = Math.clamp(+V.sexSupplyBarriers.lowerClass, 0, 4) || 0;
+	V.sexSupplyBarriers.middleClass = Math.clamp(+V.sexSupplyBarriers.middleClass, 0, 4) || 0;
+	V.sexSupplyBarriers.upperClass = Math.clamp(+V.sexSupplyBarriers.upperClass, 0, 4) || 0;
+	V.sexSupplyBarriers.topClass = Math.clamp(+V.sexSupplyBarriers.topClass, 0, 4) || 0;
+	V.NPCSexSupply.lowerClass = Math.max(+V.NPCSexSupply.lowerClass, 0) || 0;
+	V.NPCSexSupply.middleClass = Math.max(+V.NPCSexSupply.middleClass, 0) || 0;
+	V.NPCSexSupply.upperClass = Math.max(+V.NPCSexSupply.upperClass, 0) || 0;
+	V.NPCSexSupply.topClass = Math.max(+V.NPCSexSupply.topClass, 0) || 0;
+
+	V.rentDefaults.lowerClass = Math.max(+V.rentDefaults.lowerClass, 0) || 20; /* nowhere modified */
+	V.rentDefaults.middleClass = Math.max(+V.rentDefaults.middleClass, 0) || 50; /* nowhere modified */
+	V.rentDefaults.upperClass = Math.max(+V.rentDefaults.upperClass, 0) || 180; /* nowhere modified */
+	V.rentDefaults.topClass = Math.max(+V.rentDefaults.topClass, 0) || 650; /* nowhere modified */
+
+	if (V.whoreBudget.lowerClass) {
+		V.whoreBudget.lowerClass = Math.max(+V.whoreBudget.lowerClass, 8) || 10;
+	} else {
+		V.whoreBudget.lowerClass = (0.8 + (V.rent.lowerClass / V.rentDefaults.lowerClass) / 5) * 7;
+	}
+	if (V.whoreBudget.middleClass) {
+		V.whoreBudget.middleClass = Math.max(+V.whoreBudget.middleClass, 40) || 50;
+	} else {
+		V.whoreBudget.middleClass = (0.8 + (V.rent.middleClass / V.rentDefaults.middleClass) / 5) * 40;
+	}
+	if (V.whoreBudget.upperClass) {
+		V.whoreBudget.upperClass = Math.max(+V.whoreBudget.upperClass, 200) || 250;
+	} else {
+		V.whoreBudget.upperClass = (0.8 + (V.rent.upperClass / V.rentDefaults.upperClass) / 5) * 200;
+	}
+	if (V.whoreBudget.topClass) {
+		V.whoreBudget.topClass = Math.max(+V.whoreBudget.topClass, 1200) || 1500;
+	} else {
+		V.whoreBudget.topClass = (0.8 + (V.rent.topClass / V.rentDefaults.topClass) / 5) * 1500;
+	}
+	V.NPCMarketShare.lowerClass = Math.clamp(+V.NPCMarketShare.lowerClass, 0, 1000) || 0;
+	V.NPCMarketShare.middleClass = Math.clamp(+V.NPCMarketShare.middleClass, 0, 1000) || 0;
+	V.NPCMarketShare.upperClass = Math.clamp(+V.NPCMarketShare.upperClass, 0, 1000) || 0;
+	V.NPCMarketShare.topClass = Math.clamp(+V.NPCMarketShare.topClass, 0, 1000) || 0;
 	V.econWeatherDamage = Math.max(+V.econWeatherDamage, 0) || 0;
 	V.disasterResponse = Math.clamp(+V.disasterResponse, 0, 2) || 0;
 	V.antiWeatherFreeze = Math.clamp(+V.antiWeatherFreeze, 0, 2) || 0;
@@ -1659,35 +1747,23 @@ window.EconomyDatatypeCleanup = function EconomyDatatypeCleanup() {
 	if (V.lowerClass !== 0) {
 		V.lowerClass = Math.max(+V.lowerClass, 0) || 3120;
 	}
-	if (V.LCRent !== 0) {
-		V.LCRent = Math.max(+V.LCRent, 0) || 20;
-	}
 
 	V.MCBase = Math.max(+V.MCBase, 0) || 200; /* nowhere modified */
 	V.rentEffectM = Math.max(+V.rentEffectM, 0) || 1;
 	if (V.middleClass !== 0) {
 		V.middleClass = Math.max(+V.middleClass, 0) || 890;
 	}
-	if (V.MCRent !== 0) {
-		V.MCRent = Math.max(+V.MCRent, 0) || 50;
-	}
 
 	V.UCBase = Math.max(+V.UCBase, 0) || 40; /* nowhere modified */
 	V.rentEffectU = Math.max(+V.rentEffectU, 0) || 1;
 	if (V.upperClass !== 0) {
 		V.upperClass = Math.max(+V.upperClass, 0) || 200;
 	}
-	if (V.UCRent !== 0) {
-		V.UCRent = Math.max(+V.UCRent, 0) || 175;
-	}
 
 	V.TCBase = Math.max(+V.TCBase, 0) || 20; /* nowhere modified */
 	V.rentEffectT = Math.max(+V.rentEffectT, 0) || 1;
 	if (V.topClass !== 0) {
-		V.topClass = Math.max(+V.topClass, 0) || 38;
-	}
-	if (V.TCRent !== 0) {
-		V.TCRent = Math.max(+V.TCRent, 0) || 650;
+		V.topClass = Math.max(+V.topClass, 0) || 40;
 	}
 };
 
@@ -2038,8 +2114,8 @@ App.Entity.Utils.GenePoolRecordCleanup = (function() {
 			"preg", "pregSource", "pregType", "pregAdaptation", "labor",
 			"bellyAccessory",
 			"clitSetting",
-			"livingRules", "speechRules", "releaseRules", "relationshipRules", "lactationRules",
-			"standardPunishment", "standardReward",
+			"rules.living", "rules.speech", "rules.release", "rules.relationship", "rules.lactation",
+			"rules.punishment", "rules.reward",
 			"useRulesAssistant",
 			"diet", "dietCum", "dietMilk",
 			"tired",
@@ -2241,8 +2317,8 @@ App.Entity.Utils.RARuleDatatypeCleanup = function() {
 			set.preg = (set.preg === -1);
 		}
 
-		if (set.pornFameSpending === undefined || set.pornFameSpending === -1) {
-			set.pornFameSpending = null;
+		if (set.porn.spending === undefined || set.porn.spending === -1) {
+			set.porn.spending = null;
 		}
 
 		transformValues(set.growth,
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index a344082bae9ffd1fb482cdb70011381e153063e6..6b482ec981ab8691280c0ac0a25ea1d9954f6e0c 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -553,7 +553,7 @@ window.getSlaveCost = function(s) {
 		case Job.DAIRY:
 			if (State.variables.dairyRestraintsSetting >= 2) {
 				cost += rulesCost * 0.75;
-			} else if (s.livingRules === LivingRule.NORMAL) {
+			} else if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 1.5;
 			} else if (State.variables.dairyDecoration === 'Degradationist') {
 				cost += rulesCost * 0.90;
@@ -562,7 +562,7 @@ window.getSlaveCost = function(s) {
 			}
 			break;
 		case Job.FARMYARD:
-			if (s.livingRules === LivingRule.NORMAL) {
+			if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 1.5;
 			} else if (State.variables.farmyardDecoration === 'Roman Revivalist') {
 				cost += rulesCost * 1.5;
@@ -571,16 +571,16 @@ window.getSlaveCost = function(s) {
 			}
 			break;
 		case Job.BROTHEL:
-			cost += (s.livingRules === LivingRule.NORMAL) ? rulesCost * 1.5 : rulesCost;
+			cost += (s.rules.living === LivingRule.NORMAL) ? rulesCost * 1.5 : rulesCost;
 			break;
 		case Job.SCHOOL:
 		case Job.CLUB:
 			cost += rulesCost * 1.5;
 			break;
 		case Job.CLINIC:
-			if (s.livingRules === LivingRule.LUXURIOUS) {
+			if (s.rules.living === LivingRule.LUXURIOUS) {
 				cost += rulesCost * 2;
-			} else if (s.livingRules === LivingRule.NORMAL) {
+			} else if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 1.5;
 			} else {
 				cost += rulesCost;
@@ -588,23 +588,23 @@ window.getSlaveCost = function(s) {
 			break;
 		case Job.SPA:
 		case Job.NANNY:
-			if (s.livingRules === LivingRule.LUXURIOUS) {
+			if (s.rules.living === LivingRule.LUXURIOUS) {
 				cost += rulesCost * 1.75;
-			} else if (s.livingRules === LivingRule.NORMAL) {
+			} else if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 1.5;
 			} else {
 				cost += rulesCost;
 			}
 			break;
 		case Job.SERVANT:
-			if (s.livingRules === LivingRule.NORMAL) {
+			if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 1.5;
 			} else {
 				cost += (State.variables.servantsQuartersDecoration === 'Degradationist') ? rulesCost * 0.90 : rulesCost;
 			}
 			break;
 		case Job.JAIL:
-			cost += (s.livingRules === LivingRule.NORMAL) ? rulesCost * 1.25 : rulesCost * 0.90;
+			cost += (s.rules.living === LivingRule.NORMAL) ? rulesCost * 1.25 : rulesCost * 0.90;
 			break;
 		case Job.MADAM:
 		case Job.DJ:
@@ -619,9 +619,9 @@ window.getSlaveCost = function(s) {
 			cost += rulesCost * 2;
 			break;
 		default:
-			if (s.livingRules === LivingRule.LUXURIOUS) {
+			if (s.rules.living === LivingRule.LUXURIOUS) {
 				cost += rulesCost * (s.relationship >= 4 ? 3 : 4);
-			} else if (s.livingRules === LivingRule.NORMAL) {
+			} else if (s.rules.living === LivingRule.NORMAL) {
 				cost += rulesCost * 2;
 			} else {
 				cost += rulesCost;
@@ -862,8 +862,8 @@ window.getSlaveCost = function(s) {
 
 	// Promotion costs
 	if (State.variables.studio === 1) {
-		if (s.pornFameSpending > 0) {
-			cost += (s.pornFameSpending / State.variables.PCSlutContacts);
+		if (s.porn.spending > 0) {
+			cost += (s.porn.spending / State.variables.PCSlutContacts);
 		}
 	}
 
@@ -884,17 +884,77 @@ window.menialSlaveCost = function(q = 0) {
 	return (Math.trunc(baseCost + demand / 400 - supply / 400 + q / 400) + random);
 };
 
-window.NPCSexSupply = function(LC) {
-	const NPCSexSupply = {lowerClass: V.NPCSexSupply.lowerClass};
+window.NPCSexSupply = function(lowerDemandLeft, lowerTotalDemand, middleDemandLeft, middleTotalDemand, upperDemandLeft, upperTotalDemand, topDemandLeft, topTotalDemand) {
+	const NPCSexSupply = {
+		lowerClass: V.NPCSexSupply.lowerClass,
+		middleClass: V.NPCSexSupply.middleClass,
+		upperClass: V.NPCSexSupply.upperClass,
+		topClass: V.NPCSexSupply.topClass
+	};
 
 	// Lower class calculations
-	LC += V.sexSubsidiesLC / 10 - V.sexSupplyBarriersLC / 20;
-	if (LC >= 0.5) {
-		NPCSexSupply.lowerClass += Math.max(Math.trunc(NPCSexSupply.lowerClass * ((LC - 0.5) * (0.2 - V.sexSupplyBarriersLC / 25))), (50 * (1 - V.sexSupplyBarriersLC / 5))); // Max growth of 10% per week, unless it is really low, than a flat 50
-	} else if (LC < 0.5) {
-		if (NPCSexSupply.lowerClass > V.lowerClass * (3 - V.sexSupplyBarriersLC / 2)) { // Natural market share of competitors is at least 30%
-			NPCSexSupply.lowerClass -= Math.trunc(NPCSexSupply.lowerClass * ((0.5 - LC) / 5)); // Max reduction of 10% per week
+	const lowerClassNPCRatio =  NPCSexSupply.lowerClass / lowerDemandLeft;
+	const lowerClassOptimalRatio = 0.5 + V.sexSubsidies.lowerClass / 10 - V.sexSupplyBarriers.lowerClass / 10;
+	const lowerClassOptimal = lowerDemandLeft * lowerClassOptimalRatio;
+	if (NPCSexSupply.lowerClass > lowerTotalDemand * (0.3 - V.sexSupplyBarriers.lowerClass / 20)) { // Checking if NPCs are supplying more than the standard minimum share of supply
+		if (lowerClassNPCRatio >= lowerClassOptimalRatio + 0.05) { // NPCs provide more than they really care to and some wish to stop providing sexual services, max reduction of 10% of previous
+			NPCSexSupply.lowerClass -= Math.min(NPCSexSupply.lowerClass - Math.trunc((NPCSexSupply.lowerClass * 4 + lowerClassOptimal) / 5), Math.trunc(NPCSexSupply.lowerClass * 0.1));
+		} else if (lowerClassNPCRatio <= lowerClassOptimalRatio - 0.05) { // NPCs see business opportunities and provide more sexual services, minimum increse of 500, max of 10% of previous
+			NPCSexSupply.lowerClass += Math.trunc(Math.clamp((NPCSexSupply.lowerClass * 4 + lowerClassOptimal) / 5 - NPCSexSupply.lowerClass, 500, NPCSexSupply.lowerClass * 0.1) * (1 - V.sexSupplyBarriers.lowerClass / 5)); // Slow down NPC growth through beauraucracy
+		} else {
+			NPCSexSupply.lowerClass = Math.trunc(NPCSexSupply.lowerClass * (1 + normalRandInt(0, 20) / 1000)); // Some random fluxuations whenever the NPC supply is roughly on target.
+		}
+	} else { // Increase NPC supply slightly if it drops below the standard minimum share of supply
+		NPCSexSupply.lowerClass = Math.trunc(NPCSexSupply.lowerClass * (1 + normalRandInt(30, 10) / 1000));
+	}
+
+
+	// Middle class calculations
+	const middleClassNPCRatio =  NPCSexSupply.middleClass / middleDemandLeft;
+	const middleClassOptimalRatio = 0.5 + V.sexSubsidies.middleClass / 10 - V.sexSupplyBarriers.middleClass / 10;
+	const middleClassOptimal = middleDemandLeft * middleClassOptimalRatio;
+	if (NPCSexSupply.middleClass > middleTotalDemand * (0.3 - V.sexSupplyBarriers.middleClass / 20)) {
+		if (middleClassNPCRatio >= middleClassOptimalRatio + 0.05) {
+			NPCSexSupply.middleClass -= Math.min(NPCSexSupply.middleClass - Math.trunc((NPCSexSupply.middleClass * 4 + middleClassOptimal) / 5), Math.trunc(NPCSexSupply.middleClass * 0.1));
+		} else if (middleClassNPCRatio <= middleClassOptimalRatio - 0.05) {
+			NPCSexSupply.middleClass += Math.trunc(Math.clamp((NPCSexSupply.middleClass * 4 + middleClassOptimal) / 5 - NPCSexSupply.middleClass, 500, NPCSexSupply.middleClass * 0.1) * (1 - V.sexSupplyBarriers.middleClass / 5));
+		} else {
+			NPCSexSupply.middleClass = Math.trunc(NPCSexSupply.middleClass * (1 + normalRandInt(0, 20) / 1000));
 		}
+	} else { 
+		NPCSexSupply.middleClass = Math.trunc(NPCSexSupply.middleClass * (1 + normalRandInt(30, 10) / 1000));
+	}
+
+	// Upper class Calculations
+	const upperClassNPCRatio =  NPCSexSupply.upperClass / upperDemandLeft;
+	const upperClassOptimalRatio = 0.5 + V.sexSubsidies.upperClass / 10 - V.sexSupplyBarriers.upperClass / 10;
+	const upperClassOptimal = upperDemandLeft * upperClassOptimalRatio;
+	if (NPCSexSupply.upperClass > upperTotalDemand * (0.3 - V.sexSupplyBarriers.upperClass / 20)) {
+		if (upperClassNPCRatio >= upperClassOptimalRatio + 0.05) {
+			NPCSexSupply.upperClass -= Math.min(NPCSexSupply.upperClass - Math.trunc((NPCSexSupply.upperClass * 4 + upperClassOptimal) / 5), Math.trunc(NPCSexSupply.upperClass * 0.1));
+		} else if (upperClassNPCRatio <= upperClassOptimalRatio - 0.05) {
+			NPCSexSupply.upperClass += Math.trunc(Math.clamp((NPCSexSupply.upperClass * 4 + upperClassOptimal) / 5 - NPCSexSupply.upperClass, 500, NPCSexSupply.upperClass * 0.1) * (1 - V.sexSupplyBarriers.upperClass / 5));
+		} else {
+			NPCSexSupply.upperClass = Math.trunc(NPCSexSupply.upperClass * (1 + normalRandInt(0, 20) / 1000));
+		}
+	} else { 
+		NPCSexSupply.upperClass = Math.trunc(NPCSexSupply.upperClass * (1 + normalRandInt(30, 10) / 1000));
+	}
+
+	// Top class calculations
+	const topClassNPCRatio =  NPCSexSupply.topClass / topDemandLeft;
+	const topClassOptimalRatio = 0.5 + V.sexSubsidies.topClass / 10 - V.sexSupplyBarriers.topClass / 10;
+	const topClassOptimal = topDemandLeft * topClassOptimalRatio;
+	if (NPCSexSupply.topClass > topTotalDemand * (0.3 - V.sexSupplyBarriers.topClass / 20)) {
+		if (topClassNPCRatio >= topClassOptimalRatio + 0.05) {
+			NPCSexSupply.topClass -= Math.min(NPCSexSupply.topClass - Math.trunc((NPCSexSupply.topClass * 4 + topClassOptimal) / 5), Math.trunc(NPCSexSupply.topClass * 0.1));
+		} else if (topClassNPCRatio <= topClassOptimalRatio - 0.05) {
+			NPCSexSupply.topClass += Math.trunc(Math.clamp((NPCSexSupply.topClass * 4 + topClassOptimal) / 5 - NPCSexSupply.topClass, 500, NPCSexSupply.topClass * 0.1) * (1 - V.sexSupplyBarriers.topClass / 5));
+		} else {
+			NPCSexSupply.topClass = Math.trunc(NPCSexSupply.topClass * (1 + normalRandInt(0, 20) / 1000));
+		}
+	} else { 
+		NPCSexSupply.topClass = Math.trunc(NPCSexSupply.topClass * (1 + normalRandInt(30, 10) / 1000));
 	}
 
 	return NPCSexSupply;
@@ -902,10 +962,26 @@ window.NPCSexSupply = function(LC) {
 
 // The function for calculating and storing a slave's sexual interaction with citizens/'the outside'
 window.slaveJobValues = function() {
-	const slaveJobValues = {arcade: 0, club: 0, clubSP: 0}; let clubSpots = 0; const toTheClubTotal = 0;
+	const slaveJobValues = {
+		arcade: 0,
+		club: 0,
+		clubSP: 0,
+		brothel: {
+			lowerClass: 0,
+			middleClass: 0,
+			upperClass: 0,
+			topClass: 0
+		} // A list of values for each tier of whore (low, middle, upper, top)
+	};
+	let clubSpots;
+	let brothelSpots;
+	let toTheClubTotal = 0;
+	let toTheBrothelTotal = 0;
 	const AL = V.ArcadeiIDs.length;
 	const CL = V.ClubiIDs.length;
-	V.slavesGettingHelp = 0;
+	const BL = V.BrothiIDs.length;
+	V.clubSlavesGettingHelp = 0;
+	V.brothelSlavesGettingHelp = 0;
 
 	// This section is for specific slaves or non-unique slaves adding their values to the whole
 	// Accounting for Fuckdolls
@@ -919,23 +995,18 @@ window.slaveJobValues = function() {
 	});
 	if (V.DJ !== 0) {
 		if (!canTalk(V.DJ)) {
-			// <strong><u><span class="pink">$DJ.slaveName</span></u></strong> can't speak <span class="yellow">and cannot serve as your DJ any more.</span><br>
 			V.DJ = 0;
 			V.unDJ = 1;
 		} else if (V.DJ.preg > 37 && V.DJ.broodmother === 2) {
-			// <strong><u><span class="pink">$DJ.slaveName</span></u></strong> spends so much time giving birth and laboring that <span class="yellow">$he cannot effectively serve as your DJ any longer.</span>
 			V.DJ = 0;
 			V.unDJ = 2;
 		} else if (V.DJ.fetish === "mindbroken") {
-			// <strong><u><span class="pink">$DJ.slaveName</span></u></strong> is mindbroken <span class="yellow">and cannot serve as your DJ any more.</span><br>
 			V.DJ = 0;
 			V.unDJ = 3;
 		} else if (!canWalk(V.DJ)) {
-			// <strong><u><span class="pink">$DJ.slaveName</span></u></strong> is no longer independently mobile <span class="yellow">and cannot serve as your DJ any more.</span><br>
 			V.DJ = 0;
 			V.unDJ = 4;
 		} else if (!canHear(V.DJ)) {
-			// <strong><u><span class="pink">$DJ.slaveName</span></u></strong> can no longer hear <span class="yellow">and cannot serve as your DJ any more.</span><br>
 			V.DJ = 0;
 			V.unDJ = 5;
 		}
@@ -949,9 +1020,7 @@ window.slaveJobValues = function() {
 		if (V.DJ.eyes <= -2) {
 			V.DJRepBonus += 0.15;
 		}
-		if (V.DJ.skill.entertainment <= 10) {
-			// Though $DJ.slaveName does $his best to lead on the club, with $his lack of skill $he can do little.
-		} else if (V.DJ.skill.entertainment <= 30) {
+		if ( V.DJ.skill.entertainment > 10 && V.DJ.skill.entertainment <= 30) {
 			V.DJRepBonus += 0.05;
 			// $DJ.slaveName's basic skills marginally <span class="green">improve</span> the atmosphere in $clubName.
 		} else if (V.DJ.skill.entertainment <= 60) {
@@ -993,6 +1062,118 @@ window.slaveJobValues = function() {
 		clubSpots = V.club - CL;
 	}
 
+	// Accounting for the Madam
+	V.Madam = V.slaves.find(s => {
+		return s.assignment === "be the Madam";
+	});
+	if (V.Madam !== 0) {
+		if (!canTalk(V.Madam)) {
+			V.Madam = 0;
+			V.unMadam = 1;
+		} else if (V.Madam.preg > 37 && V.Madam.broodmother === 2) {
+			V.Madam = 0;
+			V.unMadam = 2;
+		} else if (V.Madam.fetish === "mindbroken") {
+			V.Madam = 0;
+			V.unMadam = 3;
+		} else if (!canWalk(V.Madam)) {
+			V.Madam = 0;
+			V.unMadam = 4;
+		} else if (!canSee(V.Madam)) {
+			V.Madam = 0;
+			V.unMadam = 5;
+		} else if (!canHear(V.Madam)) {
+			V.Madam = 0;
+			V.unMadam = 6;
+		}
+	}
+	if (V.Madam !== 0) {
+		V.MadamCashBonus = 0;
+		if (V.Madam.relationship === -3 && V.Madam.devotion > 50) {
+		// As your loving $wife, $he does $his best to attract attention to your brothel.
+		V.MadamCashBonus += 0.25;
+		}
+		if (V.Madam.skill.whoring > 10 && V.Madam.skill.whoring <= 30) {
+			// V.Madam.slaveName's basic skills marginally yellowgreen;improve business at $brothelName.
+			V.MadamCashBonus += 0.05;
+		} else if (V.Madam.skill.whoring <= 60) {
+			// V.Madam.slaveName's skills yellowgreen;improve business at $brothelName.
+			V.MadamCashBonus += 0.1;
+		} else if (V.Madam.skill.whoring < 100) {
+			// V.Madam.slaveName's skills greatly yellowgreen;improve business at $brothelName.
+			V.MadamCashBonus += 0.15;
+		} else {
+			// V.Madam.slaveName's mastery immensely yellowgreen;improves business at $brothelName.
+			V.MadamCashBonus += 0.20;
+		}
+		if (V.Madam.actualAge > 35) {
+			// $His age and experience also contribute.
+			V.MadamCashBonus += 0.05;
+		} else if (V.AgePenalty === 0) {
+			V.MadamCashBonus += 0.05;
+		}
+		if (setup.madamCareers.includes(V.Madam.career)) {
+			// $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.
+			V.MadamCashBonus += 0.05;
+		} else if (V.Madam.skill.madam >= V.masteredXP) {
+			// $He has experience from working for you that helps $him in the seedy business of selling other people's bodies for sex.
+			V.MadamCashBonus += 0.05;
+		} else {
+			V.Madam.skill.madam += jsRandom(1, Math.ceil((V.Madam.intelligence + V.Madam.intelligenceImplant) / 15) + 8);
+		}
+		if (V.Madam.intelligence+V.Madam.intelligenceImplant > 15) {
+			// $He is a clever manager.
+			V.MadamCashBonus += 0.05 * Math.floor((V.Madam.intelligence + V.Madam.intelligenceImplant) / 32);
+		}
+		if (V.Madam.dick > 2 && canPenetrate(V.Madam)) {
+			// $His turgid dick helps $him manage the bitches.
+			V.MadamCashBonus += 0.05;
+		}
+		for (let dI = 0; dI < BL; dI++) {
+			let i = V.slaveIndices[V.BrothiIDs[dI]];
+			if (V.Madam.relationshipTarget === V.slaves[i].ID) {
+				V.MadamCashBonus -= 0.05;
+			} else if (V.familyTesting === 1 && areRelated(V.Madam, V.slaves[i]) > 0) {
+				V.MadamCashBonus += 0.05;
+			} else if( V.Madam.relationTarget === V.slaves[i].ID && $familyTesting === 0) {
+				V.MadamCashBonus += 0.05;
+			}
+			if (V.slaves[i].prestigeDesc === "$He is a famed Free Cities whore, and commands top prices.") {
+				V.MadamCashBonus += 0.15;
+			} else if (V.slaves[i].prestigeDesc === "$He is a famed Free Cities slut, and can please anyone.") {
+				V.MadamCashBonus += 0.15;
+			} else if (V.slaves[i].prestigeDesc === "$He is remembered for winning best in show as a dairy cow.") {
+				if ($arcologies[0].FSPhysicalIdealist !== "unset") {
+					if (V.slaves[i].muscles > 60 && V.slaves[i].weight < 30 && V.slaves[i].lactation > 0 && V.slaves[i].boobs-V.slaves[i].boobsImplant > 6000) {
+						V.MadamCashBonus += 0.15;
+					}
+				} else if (V.slaves[i].lactation > 0 && V.slaves[i].boobs-V.slaves[i].boobsImplant > 6000) {
+					V.MadamCashBonus += 0.10;
+				}
+			} else if (V.slaves[i].prestigeDesc === "$He is remembered for winning best in show as a cockmilker.") {
+				if (V.arcologies[0].FSGenderFundamentalist !== "unset") {
+					if (V.slaves[i].balls === 0 && V.slaves[i].dick === 0 && V.slaves[i].vagina > -1) { /* this needs review - doesn't fit right. An XY slave would be expected to be masculine. */
+						V.MadamCashBonus += 0.20;
+					}
+				} else if ((V.slaves[i].balls > 5 && V.slaves[i].dick !== 0) || (V.slaves[i].balls > 4 && V.slaves[i].dick !== 0 && V.slaves[i].prostate > 1)) {
+					V.MadamCashBonus += 0.15;
+				}
+			} else if (V.slaves[i].prestigeDesc === "$He is remembered for winning best in show as a breeder.") {
+				if (canGetPregnant(V.slaves[i])) {
+					V.MadamCashBonus += 0.15;
+				} else if (isPreg(V.slaves[i]) && V.slaves[i].bellyPreg >= 5000) {
+					V.madamCashBonus += 0.1;
+				}
+			}
+		}
+	}
+
+
+	// Checking for space in the brothel
+	if (V.brothel > 0 && BL < V.club) {
+		brothelSpots = V.brothel - BL;
+	}
+
 	// Glory hole slaves adding to 'arcade'
 	V.JobIDArray["work a glory hole"].forEach(ID => {
 		const s = V.slaves[V.slaveIndices[ID]];
@@ -1000,25 +1181,31 @@ window.slaveJobValues = function() {
 		slaveJobValues.arcade += s.sexAmount;
 	});
 
+	// Arcade slaves adding to 'arcade'
+	V.ArcadeiIDs.forEach(ID => {
+		const s = V.slaves[V.slaveIndices[ID]];
+		s.sexAmount = (jsRandom(200, 240) + (20 * (4 - (s.anus - 2 * V.arcadeUpgradeInjectors))) + (10 * (4 - (s.vagina - 2 * V.arcadeUpgradeInjectors))) + Math.trunc(s.health / 5));
+		slaveJobValues.arcade += s.sexAmount;
+	});
+
 	// Public sluts adding to 'club'
 	V.JobIDArray["serve the public"].forEach(ID => {
 		SJVClub(V.slaves[V.slaveIndices[ID]]);
 	});
 
-	// This loops through every slave, checks their assignment and applies the appropriate value to both slave and the aggregate
-	// The slave value sees use during individual end of the week evaluation
-	// The aggregate is used for determining macro variables like 'prices' for slave goods and services to then be used in end week calculations
-	V.slaves.forEach(s => {
-		// Arcade slaves adding to 'arcade'
-		if (s.assignment === "be confined in the arcade") {
-			s.sexAmount = (jsRandom(200, 240) + (20 * (4 - (s.anus - 2 * V.arcadeUpgradeInjectors))) + (10 * (4 - (s.vagina - 2 * V.arcadeUpgradeInjectors))) + Math.trunc(s.health / 5));
-			slaveJobValues.arcade += s.sexAmount;
-		}
+	// Club sluts adding to 'club'
+	V.ClubiIDs.forEach(ID => {
+		SJVClub(V.slaves[V.slaveIndices[ID]]);
+	});
 
-		// Club and public sluts adding to 'club'. Also recruiters assigned as sexual ambassador to another arcology.
-		if (s.assignment === "serve in the club" || (s.assignment === "recruit girls" && V.recruiterTarget === "other arcologies")) {
-			SJVClub(s);
-		}
+	// Street whores adding to 'brothel'
+	V.JobIDArray["whore"].forEach(ID => {
+		SJVBrothel(V.slaves[V.slaveIndices[ID]]);
+	});
+
+	// Brothel whores adding to 'brothel'
+	V.BrothiIDs.forEach(ID => {
+		SJVBrothel(V.slaves[V.slaveIndices[ID]]);
 	});
 
 	function SJVClub(s) {
@@ -1036,7 +1223,8 @@ window.slaveJobValues = function() {
 		if (((V.universalRulesFacilityWork === 1) && (s.assignment === "serve the public") && (clubSpots > 0)) || (s.assignment === "serve in the club")) {
 			if (s.assignment === "serve the public") {
 				toTheClub = 1;
-				V.slavesGettingHelp += 1;
+				toTheClubTotal += 1;
+				V.clubSlavesGettingHelp += 1;
 			}
 			if (V.clubAdsSpending !== 0) {
 				if (V.clubAdsStacked === 1) {
@@ -1183,7 +1371,7 @@ window.slaveJobValues = function() {
 
 		// The quality/value of each sexual act
 		s.sexQuality = FResult(s);
-		if ((s.releaseRules === "restrictive" || s.releaseRules === "chastity") && s.standardReward !== "orgasm" && s.energy >= 20) {
+		if ((s.rules.release === "restrictive" || s.rules.release === "chastity") && s.rules.reward !== "orgasm" && s.energy >= 20) {
 			s.sexQuality += 2;
 		}
 		if (canDoAnal(s) && s.anus === 0) {
@@ -1196,11 +1384,9 @@ window.slaveJobValues = function() {
 			s.sexQuality += 2;
 		} else if (s.devotion > 50) {
 			s.sexQuality += 1;
-		} else if (s.devotion > 20) {
-			// Nothing happens
-		} else if (s.trust < -20) {
+		} else if (s.trust > -20 && s.trust <= 20) {
 			s.sexQuality -= 1;
-		} else {
+		} else if (s.trust < -20) {
 			s.sexQuality -= 2;
 		}
 		if (s.assignment === "serve in the club") {
@@ -1214,6 +1400,225 @@ window.slaveJobValues = function() {
 		}
 	}
 
+	function SJVBrothel(s) {
+		let toTheBrothel = 0;
+		let beautyMultiplier = 1;
+		s.minorInjury = 0;
+
+		// Beauty multipliers
+		if (s.sexualFlaw === "neglectful") {
+			beautyMultiplier += 0.1;
+		}
+		if ((s.hears === -1 && s.earwear !== "hearing aids") || (s.hears === 0 && s.earwear === "muffling ear plugs") ||(s.hears === -2)) {
+			if (!canHear(s)) {
+				beautyMultiplier -= 0.25;
+			} else {
+				beautyMultiplier -= 0.10;
+			}
+		}
+		if (V.brothel > 0) {
+			if ((V.universalRulesFacilityWork === 1 && s.assignment === "whore" && brothelSpots > 0) || (s.assignment === "work in the brothel")) {
+				if (s.assignment === "whore") {
+					toTheBrothel = 1;
+					toTheBrothelTotal += 1;
+					V.brothelSlavesGettingHelp += 1;
+				}
+				// ads
+				if (V.brothelAdsSpending !== 0) {
+					if (V.brothelAdsStacked === 1) {
+						if (isStacked(s)) {
+							beautyMultiplier += 0.05;
+						}
+					} else if (V.brothelAdsStacked === -1) {
+						if (isSlim(s)) {
+							beautyMultiplier += 0.05;
+						}
+					}
+					if (V.brothelAdsPreg === 1) {
+						if (s.bellyPreg >= 5000 || s.bellyImplant >= 5000) {
+							beautyMultiplier += 0.05;
+						}
+					} else if (V.brothelAdsPreg === -1) {
+						if (s.belly < 100 && s.weight < 30 && !setup.fakeBellies.includes(s.bellyAccessory) && s.bellyImplant <= 0) {
+							beautyMultiplier += 0.05;
+						}
+					}
+					if (V.brothelAdsModded === 1) {
+						if ((V.modScore > 15) || (V.piercingScore > 8 && V.tatScore > 5)) {
+							beautyMultiplier += 0.05;
+						}
+					} else if (V.brothelAdsModded === -1) {
+						if (s.corsetPiercing === 0 && V.piercingScore < 3 && V.tatScore < 2) {
+							beautyMultiplier += 0.05;
+						}
+					}
+					if (V.brothelAdsImplanted === 1) {
+						if (s.boobsImplant > 0 && s.buttImplant > 0 && s.waist < -10 && s.lipsImplant > 0) {
+							beautyMultiplier += 0.05;
+						}
+					} else if (V.brothelAdsImplanted === -1) {
+						if (s.boobsImplant === 0 && s.buttImplant === 0 && s.waist >= -95 && s.lipsImplant === 0 && s.bellyImplant === -1 && s.faceImplant < 30) {
+							beautyMultiplier += 0.05;
+						}
+					}
+					if (V.brothelAdsOld === 1) {
+						if (s.physicalAge >= 30) {
+							beautyMultiplier += 0.05;
+						}
+					} else if (V.brothelAdsOld === -1) {
+						if (s.physical < 30 && s.physical >= 18) {
+							beautyMultiplier += 0.05;
+						}
+					} else if (V.brothelAdsOld === -2) {
+						if (s.physical <= 18 && s.physical >= 13) {
+							beautyMultiplier += 0.05;
+						}
+					} else if (V.brothelAdsOld === -3) {
+						if (s.physical < 13) {
+							beautyMultiplier += 0.05;
+						}
+					}
+					if (V.brothelAdsXX === 1) {
+						if (s.dick === 0 && s.scrotum === 0) {
+							beautyMultiplier += 0.05;
+						}
+					} else if (V.brothelAdsXX === -1) {
+						if (s.dick > 0) {
+							beautyMultiplier += 0.05;
+						}
+					}
+				}
+				if (V.Madam !== 0) {
+					if (V.madamCashBonus > 0) {
+						if (!canHear(s)) {
+							beautyMultiplier += V.madamCashBonus * 0.5;
+						} else {
+							beautyMultiplier += V.madamCashBonus;
+						}
+					}
+				}
+			}
+		}
+
+		// Injuries
+		if (s.assignment === "whore" && !toTheBrothel) {
+			if (s.curatives < 1 && s.inflationType !== "curative") {
+				if (s.health < -50) {
+					s.health -= 13;
+					s.minorInjury = 1;
+				} else if (s.health < -20 && jsRandom(1, 100) > 50) {
+					s.health -= 10;
+					s.minorInjury = 1;
+				} else {
+					let canA = canDoAnal(s);
+					let canV = canDoVaginal(s);
+					let skilltarget = (100 + ((s.skill.anal - 100)*canA*(1.5 - 0.5*canV) + (s.skill.vaginal - 100)*canV*(1.5 - 0.5*canA) + (s.skill.oral - 100)*(3 - 1.5*canA - 1.5*canV + canA*canV))*3/10);
+					// Complicated, I know - but it should automatically account for what acts are possible to scale the injury risk smoothly between 90% when totally unskilled
+					// and 0% when perfectly skilled in the relevant method or methods.
+
+					if (jsRandom(1, 100) > skilltarget) {
+						s.health -= 10 - 7*canA*canV; // Any limitations means an injury inflicts the harsher 10 instead of 3
+						s.minorInjury = 1;
+					}
+				}
+			}
+			if (s.minorInjury === 1) {
+				let injuryChance;
+				beautyMultiplier -= 0.05;
+				if (canDoAnal(s)) {
+					injuryChance = jsRandom(1, 100);
+				} else {
+					injuryChance = jsRandom(1, 80);
+				}
+				if (injuryChance > 80) {
+					s.minorInjury = "sore ass";
+				} else if (injuryChance > 60) {
+					s.minorInjury = "black eye";
+				} else if (injuryChance > 40) {
+					s.minorInjury = "split lip";
+				} else if (injuryChance > 20) {
+					s.minorInjury = "bad bruise";
+				} else {
+					s.minorInjury = "sore muscle";
+				}
+			}
+		}
+
+		// The amount of sexual acts
+		s.sexAmount = Beauty(s);
+
+		if (s.assignment === "be the Madam") {
+			if ((BL + toTheBrothelTotal > 0) && (CL + toTheBrothelTotal < 10)) {
+				s.sexAmount *= ((10 - CL - toTheBrothelTotal) / 10) * 1.5;
+			}
+		}
+		s.sexAmount = Math.trunc(s.sexAmount * beautyMultiplier * (1 + (0.002 * s.skill.whoring)));
+
+		// The quality/value of each sexual act
+		s.sexQuality = FResult(s);
+		if ((s.releaseRules === "restrictive" || s.releaseRules === "chastity") && s.standardReward !== "orgasm" && s.energy >= 20) {
+			s.sexQuality += 2;
+		}
+		if (canDoAnal(s) && s.anus === 0) {
+			s.sexQuality += 5; // This was at 10, not sure what the reasoning behind that was
+		}
+		if (canDoVaginal(s) && s.vagina === 0) {
+			s.sexQuality += 5;
+		}
+		if (s.devotion > 95 || s.energy > 95) {
+			s.sexQuality += 2;
+		} else if (s.devotion > 50) {
+			s.sexQuality += 1;
+		} else if (s.trust > -20 && s.trust <= 20) {
+			s.sexQuality -= 1;
+		} else if (s.trust < -20) {
+			s.sexQuality -= 2;
+		}
+		if (s.assignment === "work in the brothel" || s.assignment === "be the Madam") {
+			s.sexQuality += 2;
+		} else if (toTheBrothel === 1) {
+			s.sexQuality += 2;
+			brothelSpots -= 1;
+		}
+		if (s.sexQuality < 2) {
+			s.sexQuality = 2;
+		}
+
+		s.sexQualityRaw = s.sexQuality;
+		s.sexAmountRaw = s.sexAmount;
+
+		// The whoreScore function finds the appropriate customer class and then calculates the whore income stats associated with that class and adds to the class supply.
+		// whoreClass is the MAXIMUM player set class the whore is allowed to service, if the whore is not eligable it will service the highest it is capable of servicing properly. A whoreClass of 0 means it is on auto (always service the highest possible class).
+		function whoreScore(s) {
+			let income = s.sexAmount * s.sexQuality;
+			effectiveWhoreClass(s);
+
+			// Calculate the stats
+			if (s.effectiveWhoreClass === 4) {
+				s.sexAmount = normalRandInt(50, 4); // Bringing sex amount into the desired range
+				s.sexQuality = Math.trunc(Math.min((income * 1.2) / s.sexAmount, V.whoreBudget.topClass * 0.2)); // Adjusting the price to the correct sex amount with 20% bonus for being of the highest tier
+				slaveJobValues.brothel.topClass += Math.min(s.sexAmount * s.sexQuality, s.sexAmount * V.whoreBudget.topClass * 0.2); // Registering the job value in the right slot
+			} else if (s.effectiveWhoreClass === 3) {
+				s.sexAmount = normalRandInt(60, 5);
+				s.sexQuality = Math.min(Math.trunc((income * 1.05) / s.sexAmount), V.whoreBudget.upperClass * 0.5); // The upper class will pay a maximum of 60% of their weekly budget per service
+				slaveJobValues.brothel.upperClass += Math.min(s.sexAmount * s.sexQuality, s.sexAmount * V.whoreBudget.upperClass * 0.6);
+			} else if (s.effectiveWhoreClass === 2) {
+				s.sexAmount = normalRandInt(70, 6);
+				s.sexQuality = Math.min(Math.trunc((income * 0.9) / s.sexAmount), V.whoreBudget.middleClass); // The middle class will pay a maximum of 125% of their weekly budget per service
+				slaveJobValues.brothel.middleClass += Math.min(s.sexAmount * s.sexQuality, s.sexAmount * V.whoreBudget.middleClass * 1.25);
+			} else {
+				s.sexAmount = normalRandInt(80, 7);
+				s.sexQuality = Math.clamp((income * 0.75) / s.sexAmount, 2, V.whoreBudget.lowerClass * 2); // The lower class will pay a maximum of 300% of their weekly budget per service and a minimum of 3
+				slaveJobValues.brothel.lowerClass += Math.min(s.sexAmount * s.sexQuality, s.sexAmount * V.whoreBudget.lowerClass * 3);
+			}
+		}
+
+		if (typeof s.whoreClass === 'undefined') {
+			s.whoreClass = 0;
+		}
+		whoreScore(s);
+	}
+
 	// Saturation penalty for public servants. Even the most beautiful slaves lose some of their shine if they have too much competition.
 	if (slaveJobValues.club > 0) {
 		slaveJobValues.clubSP = (Math.pow(slaveJobValues.club / 1000, 0.95) * 1000) / slaveJobValues.club;
@@ -1221,6 +1626,26 @@ window.slaveJobValues = function() {
 	return slaveJobValues;
 };
 
+window.effectiveWhoreClass = function(s) {
+	let score = s.sexAmount * s.sexQuality;
+	if (typeof s.whoreClass === 'undefined' || s.whoreClass === 0) {
+		s.effectiveWhoreClass = 4;
+	} else {
+		s.effectiveWhoreClass = s.whoreClass;
+	}
+	// Find maximum eligable class
+	// these could be refined further if needed.
+	if (s.effectiveWhoreClass === 4 && !(score > 5000 && s.skill.whoring > 80 && s.skill.entertainment > 50)) {
+		s.effectiveWhoreClass -= 1;
+	}
+	if (s.effectiveWhoreClass === 3 && !(score > 2500 && s.skill.whoring > 50)) {
+		s.effectiveWhoreClass -= 1;
+	}
+	if (s.effectiveWhoreClass === 2 && (score <= 1000)) {
+		s.effectiveWhoreClass -= 1;
+	}
+};
+
 window.getSlaveStatisticData = function(s, facility) {
 	if (!facility) { // Base data, even without facility
 		return {
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index 897958744f07d3a235055333b6873d7180af8b01..438c4af32fdd4592e35135f19b01793f90bab599 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -18,7 +18,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 							if (eventSlave.energy > 40) {
 								if (canPenetrate(eventSlave)) {
 									if (canSee(eventSlave)) {
-										if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+										if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 											State.variables.RETSevent.push("interslave begging");
 										}
 									}
@@ -34,7 +34,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 							if (eventSlave.belly < 100000) {
 								if (eventSlave.lactation > 0) {
 									if (eventSlave.nipples !== "fuckable") {
-										if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+										if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 											if (State.variables.familyTesting === 0) {
 												if (eventSlave.relation === "mother") {
 													State.variables.RETSevent.push("incestuous nursing");
@@ -132,7 +132,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 					}
 					if (eventSlave.ID !== State.variables.HeadGirl.ID) {
 						if (canSee(eventSlave) && canWalk(eventSlave)) {
-							if (eventSlave.speechRules !== "restrictive") {
+							if (eventSlave.rules.speech !== "restrictive") {
 								if (eventSlave.trust > 75) {
 									if (eventSlave.devotion > 50) {
 										if (eventSlave.skill.oral > 30) {
@@ -149,7 +149,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 					}
 				}
 
-				if (eventSlave.livingRules === "spare") {
+				if (eventSlave.rules.living === "spare") {
 					if (eventSlave.devotion <= 20) {
 						if (eventSlave.devotion > -10) {
 							State.variables.RESSevent.push("sleeping ambivalent");
@@ -177,7 +177,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 
 				if (State.variables.RETasteTestSubIDs.length > 1) {
-					if (eventSlave.livingRules === "luxurious") {
+					if (eventSlave.rules.living === "luxurious") {
 						if (eventSlave.devotion > 20) {
 							if (eventSlave.energy > 80) {
 								if (canTaste(eventSlave)) {
@@ -193,7 +193,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 						if (eventSlave.devotion > 20) {
 							if (eventSlave.dick !== 0 || eventSlave.vagina !== -1) {
 								if (eventSlave.nipples !== "fuckable") {
-									if (eventSlave.speechRules === "permissive") {
+									if (eventSlave.rules.speech === "permissive") {
 										if (eventSlave.corsetPiercing === 0) {
 											if (eventSlave.tonguePiercing === 0) {
 												if (eventSlave.anusPiercing === 0) {
@@ -233,7 +233,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 							if (canTalk(relationshipSlave)) {
 								if (eventSlave.devotion > 50) {
 									if (eventSlave.trust > 50) {
-										if (eventSlave.speechRules !== "restrictive") {
+										if (eventSlave.rules.speech !== "restrictive") {
 											State.variables.RETSevent.push("date please");
 										}
 										if (relationshipSlave.anus !== 0) {
@@ -254,7 +254,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 
 				if (State.variables.REAnalCowgirlSubIDs.length > 1 || (State.variables.REAnalCowgirlSubIDs.length === 1 && eventSlave.ID !== State.variables.REAnalCowgirlSubIDs[0])) {
 					if (eventSlave.devotion > 20) {
-						if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+						if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 							if (eventSlave.fetish === "buttslut" || eventSlave.fetish === "sadist" || eventSlave.fetish === "dom") {
 								if ((eventSlave.chastityPenis !== 1) || (eventSlave.dick === 0)) {
 									State.variables.RETSevent.push("anal cowgirl");
@@ -322,7 +322,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 							if (eventSlave.energy > 95 && canDoAnal(eventSlave)) {
 								State.variables.RESSevent.push("devoted nympho");
 							}
-							if (eventSlave.releaseRules === "permissive" || eventSlave.releaseRules === "masturbation") {
+							if (eventSlave.rules.release === "permissive" || eventSlave.rules.release === "masturbation") {
 								if ((eventSlave.chastityPenis !== 1) || (eventSlave.dick === 0)) {
 									State.variables.RESSevent.push("permitted masturbation");
 								}
@@ -454,7 +454,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 
 				if (eventSlave.devotion < -50) {
 					if (eventSlave.trust >= -20) {
-						if (eventSlave.speechRules === "restrictive") {
+						if (eventSlave.rules.speech === "restrictive") {
 							State.variables.RESSevent.push("vocal disobedience");
 						}
 					}
@@ -482,7 +482,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 
 				if (State.variables.seeAge !== 0) {
 					if (eventSlave.devotion > 50) {
-						if (eventSlave.speechRules !== "restrictive") {
+						if (eventSlave.rules.speech !== "restrictive") {
 							if (eventSlave.birthWeek >= 51) {
 								/* let's give this a much higher chance of appearing */
 								State.variables.RESSevent.push("birthday");
@@ -594,7 +594,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 					}
 				}
 
-				if (eventSlave.livingRules === "luxurious") {
+				if (eventSlave.rules.living === "luxurious") {
 					if (eventSlave.devotion <= 75) {
 						if (eventSlave.devotion > 50) {
 							State.variables.RESSevent.push("newly devoted sunrise");
@@ -709,7 +709,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 
 				if (eventSlave.physicalAge > 35) {
-					if (eventSlave.speechRules !== "restrictive") {
+					if (eventSlave.rules.speech !== "restrictive") {
 						if (["serve the public", "whore"].includes(eventSlave.assignment)) {
 							if (eventSlave.devotion >= -20) {
 								if (eventSlave.devotion <= 95) {
@@ -786,7 +786,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 
 				if (eventSlave.devotion > 20) {
 					if (eventSlave.trust > 20) {
-						if (eventSlave.speechRules !== "restrictive") {
+						if (eventSlave.rules.speech !== "restrictive") {
 							if (eventSlave.choosesOwnClothes !== 1) {
 								if (setup.modestClothes.includes(eventSlave.clothes)) {
 									State.variables.RESSevent.push("modest clothes");
@@ -1146,7 +1146,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.devotion >= -20) {
 					if (eventSlave.trust >= -20) {
 						if (eventSlave.energy > 75) {
@@ -1160,7 +1160,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.releaseRules === "restrictive" || eventSlave.releaseRules === "chastity") {
+			if (eventSlave.rules.release === "restrictive" || eventSlave.rules.release === "chastity") {
 				if (eventSlave.need) {
 					if (eventSlave.devotion <= 95) {
 						if (eventSlave.trust >= -20) {
@@ -1177,7 +1177,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+			if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 				if (canPenetrate(eventSlave)) {
 					State.variables.RESSevent.push("slave dick on slave");
 				}
@@ -1323,7 +1323,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 		} /* closes amp/crawling exempt */
 
 		if (canTalk(eventSlave)) {
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.boobsImplant > 400) {
 					if (eventSlave.lipsImplant >= 30) {
 						if (eventSlave.buttImplant > 3) {
@@ -1344,7 +1344,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 									State.variables.RESSevent.push("shift sleep");
 								}
 								if (canWalk(eventSlave)) {
-									if (eventSlave.releaseRules === "permissive" || eventSlave.releaseRules === "masturbation") {
+									if (eventSlave.rules.release === "permissive" || eventSlave.rules.release === "masturbation") {
 										State.variables.RESSevent.push("shift masturbation");
 									}
 								}
@@ -1366,7 +1366,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.counter.oral + eventSlave.counter.vaginal + eventSlave.counter.anal > 900) {
 					if (eventSlave.counter.oral + eventSlave.counter.vaginal + eventSlave.counter.anal < 1100) {
 						if (eventSlave.vagina !== 0) {
@@ -1386,7 +1386,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules === "restrictive") {
+			if (eventSlave.rules.speech === "restrictive") {
 				if (eventSlave.devotion > 60) {
 					if (eventSlave.trust >= -20) {
 						State.variables.RESSevent.push("restricted profession");
@@ -1394,7 +1394,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules === "restrictive") {
+			if (eventSlave.rules.speech === "restrictive") {
 				if (eventSlave.intelligence > 15) {
 					if (eventSlave.trust >= -20) {
 						if (eventSlave.devotion <= 20) {
@@ -1406,7 +1406,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 
 			if (State.variables.expansionRequestsAllowed > 0) {
 				if (eventSlave.drugs === "no drugs") {
-					if (eventSlave.speechRules === "permissive") {
+					if (eventSlave.rules.speech === "permissive") {
 						if (eventSlave.health > 20) {
 							if (eventSlave.devotion >= -20) {
 								if (eventSlave.trust > 20) {
@@ -1459,7 +1459,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 			if (eventSlave.fetishKnown === 1) {
 				if (eventSlave.energy > 95) {
 					if (eventSlave.devotion > 20) {
-						if (eventSlave.releaseRules === "permissive" || eventSlave.releaseRules === "masturbation") {
+						if (eventSlave.rules.release === "permissive" || eventSlave.rules.release === "masturbation") {
 							State.variables.RESSevent.push("nympho with assistant");
 						}
 					}
@@ -1492,7 +1492,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 		if (eventSlave.vagina === 0) {
 			if (eventSlave.devotion > 50) {
 				if (eventSlave.trust > 20) {
-					if (eventSlave.speechRules !== "restrictive") {
+					if (eventSlave.rules.speech !== "restrictive") {
 						State.variables.RESSevent.push("devoted virgin");
 					}
 				}
@@ -1502,7 +1502,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 		if (eventSlave.anus === 0) {
 			if (eventSlave.devotion > 50) {
 				if (eventSlave.trust > 20) {
-					if (eventSlave.speechRules !== "restrictive") {
+					if (eventSlave.rules.speech !== "restrictive") {
 						State.variables.RESSevent.push("devoted anal virgin");
 					}
 				}
@@ -1514,7 +1514,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				if (eventSlave.scrotum > 0) {
 					if (eventSlave.devotion <= 20) {
 						if (eventSlave.trust <= 20) {
-							if (eventSlave.speechRules !== "restrictive") {
+							if (eventSlave.rules.speech !== "restrictive") {
 								State.variables.RESSevent.push("fearful balls");
 							}
 						}
@@ -1537,7 +1537,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 			}
 		}
 
-		if (eventSlave.speechRules !== "restrictive") {
+		if (eventSlave.rules.speech !== "restrictive") {
 			if (canDoVaginal(eventSlave)) {
 				if (eventSlave.fetish !== "buttslut") {
 					if (eventSlave.vagina === 0) {
@@ -1552,18 +1552,18 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 		}
 
 		if (eventSlave.aphrodisiacs > 1 || eventSlave.inflationType === "aphrodisiac") {
-			if (eventSlave.speechRules === "restrictive" && eventSlave.releaseRules !== "permissive") {
+			if (eventSlave.rules.speech === "restrictive" && eventSlave.rules.release !== "permissive") {
 				State.variables.RESSevent.push("extreme aphrodisiacs");
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.clit > 2) {
 				State.variables.RESSevent.push("slave clit on slave");
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.dick > 4) {
 				if (hasAllLimbs(eventSlave)) {
 					if (canAchieveErection(eventSlave)) {
@@ -1585,7 +1585,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.belly < 300000) {
 				if (eventSlave.anus > 2) {
 					if (eventSlave.fetish === "buttslut" || eventSlave.energy > 95) {
@@ -1662,7 +1662,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 					if (eventSlave.devotion > 20 || eventSlave.trust < -20) {
 						if (eventSlave.devotion <= 50) {
 							if (eventSlave.fetish !== "buttslut") {
-								if (eventSlave.speechRules === "permissive") {
+								if (eventSlave.rules.speech === "permissive") {
 									State.variables.RESSevent.push("hormone dysfunction");
 								}
 							}
@@ -1841,7 +1841,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 							if (eventSlave.energy > 40) {
 								if (canPenetrate(eventSlave)) {
 									if (canSee(eventSlave)) {
-										if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+										if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 											State.variables.RETSevent.push("interslave begging");
 										}
 									}
@@ -1857,7 +1857,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 							if (eventSlave.belly < 100000) {
 								if (eventSlave.lactation > 0) {
 									if (eventSlave.nipples !== "fuckable") {
-										if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+										if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 											if (State.variables.familyTesting === 0) {
 												if (eventSlave.relation === "mother") {
 													State.variables.RETSevent.push("incestuous nursing");
@@ -1901,7 +1901,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 				}
 
 				if (State.variables.RETasteTestSubIDs.length > 1) {
-					if (eventSlave.livingRules === "luxurious") {
+					if (eventSlave.rules.living === "luxurious") {
 						if (eventSlave.devotion > 20) {
 							if (eventSlave.energy > 80) {
 								if (canTaste(eventSlave)) {
@@ -2021,7 +2021,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 
 				if (State.variables.seeAge !== 0) {
 					if (eventSlave.devotion > 50) {
-						if (eventSlave.speechRules !== "restrictive") {
+						if (eventSlave.rules.speech !== "restrictive") {
 							if (eventSlave.birthWeek >= 51) {
 								/* let's give this a much higher chance of appearing */
 								State.variables.RESSevent.push("birthday");
@@ -2123,7 +2123,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 					}
 				}
 
-				if (eventSlave.livingRules === "luxurious") {
+				if (eventSlave.rules.living === "luxurious") {
 					if (eventSlave.devotion <= 75) {
 						if (eventSlave.devotion > 50) {
 							State.variables.RESSevent.push("newly devoted sunrise");
@@ -2505,7 +2505,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.devotion >= -20) {
 					if (eventSlave.trust >= -20) {
 						if (eventSlave.energy > 75) {
@@ -2519,7 +2519,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.releaseRules === "restrictive" || eventSlave.releaseRules === "chastity") {
+			if (eventSlave.rules.release === "restrictive" || eventSlave.rules.release === "chastity") {
 				if (eventSlave.need) {
 					if (eventSlave.devotion <= 95) {
 						if (eventSlave.trust >= -20) {
@@ -2536,7 +2536,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+			if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 				if (canPenetrate(eventSlave)) {
 					State.variables.RESSevent.push("slave dick on slave");
 				}
@@ -2628,7 +2628,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 		} /* closes amp/crawling exempt */
 
 		if (canTalk(eventSlave)) {
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.boobsImplant > 400) {
 					if (eventSlave.lipsImplant >= 30) {
 						if (eventSlave.buttImplant > 3) {
@@ -2640,7 +2640,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 				}
 			}
 
-			if (eventSlave.speechRules !== "restrictive") {
+			if (eventSlave.rules.speech !== "restrictive") {
 				if (eventSlave.counter.oral + eventSlave.counter.vaginal + eventSlave.counter.anal > 900) {
 					if (eventSlave.counter.oral + eventSlave.counter.vaginal + eventSlave.counter.anal < 1100) {
 						if (eventSlave.vagina !== 0) {
@@ -2656,7 +2656,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 
 			if (State.variables.expansionRequestsAllowed > 0) {
 				if (eventSlave.drugs === "no drugs") {
-					if (eventSlave.speechRules === "permissive") {
+					if (eventSlave.rules.speech === "permissive") {
 						if (eventSlave.health > 20) {
 							if (eventSlave.devotion >= -20) {
 								if (eventSlave.trust > 20) {
@@ -2695,7 +2695,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 			if (eventSlave.fetishKnown === 1) {
 				if (eventSlave.energy > 95) {
 					if (eventSlave.devotion > 20) {
-						if (eventSlave.releaseRules === "permissive" || eventSlave.releaseRules === "masturbation") {
+						if (eventSlave.rules.release === "permissive" || eventSlave.rules.release === "masturbation") {
 							State.variables.RESSevent.push("nympho with assistant");
 						}
 					}
@@ -2721,7 +2721,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 		if (eventSlave.vagina === 0) {
 			if (eventSlave.devotion > 50) {
 				if (eventSlave.trust > 20) {
-					if (eventSlave.speechRules !== "restrictive") {
+					if (eventSlave.rules.speech !== "restrictive") {
 						State.variables.RESSevent.push("devoted virgin");
 					}
 				}
@@ -2731,7 +2731,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 		if (eventSlave.anus === 0) {
 			if (eventSlave.devotion > 50) {
 				if (eventSlave.trust > 20) {
-					if (eventSlave.speechRules !== "restrictive") {
+					if (eventSlave.rules.speech !== "restrictive") {
 						State.variables.RESSevent.push("devoted anal virgin");
 					}
 				}
@@ -2749,18 +2749,18 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 		}
 
 		if (eventSlave.aphrodisiacs > 1 || eventSlave.inflationType === "aphrodisiac") {
-			if (eventSlave.speechRules === "restrictive" && eventSlave.releaseRules !== "permissive") {
+			if (eventSlave.rules.speech === "restrictive" && eventSlave.rules.release !== "permissive") {
 				State.variables.RESSevent.push("extreme aphrodisiacs");
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "masturbation" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "masturbation" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.clit > 2) {
 				State.variables.RESSevent.push("slave clit on slave");
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.dick > 4) {
 				if (hasAllLimbs(eventSlave)) {
 					if (canAchieveErection(eventSlave)) {
@@ -2782,7 +2782,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 			}
 		}
 
-		if (eventSlave.releaseRules !== "restrictive" && eventSlave.releaseRules !== "chastity") {
+		if (eventSlave.rules.release !== "restrictive" && eventSlave.rules.release !== "chastity") {
 			if (eventSlave.belly < 300000) {
 				if (eventSlave.anus > 2) {
 					if (eventSlave.fetish === "buttslut" || eventSlave.energy > 95) {
@@ -2816,7 +2816,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 					if (eventSlave.devotion > 20 || eventSlave.trust < -20) {
 						if (eventSlave.devotion <= 50) {
 							if (eventSlave.fetish !== "buttslut") {
-								if (eventSlave.speechRules === "permissive") {
+								if (eventSlave.rules.speech === "permissive") {
 									State.variables.RESSevent.push("hormone dysfunction");
 								}
 							}
diff --git a/src/js/food.js b/src/js/food.js
index bf63c30c2d7d5437f08d279f4af37add2a23b2c8..6a79cf078fbe7408d3122c52197bb94a4cb3859a 100644
--- a/src/js/food.js
+++ b/src/js/food.js
@@ -246,11 +246,11 @@ window.farmShowsIncome = function(slave) {
 		} else if (slave.prestige === 3) { 							// slave is extremely prestigious
 			cash *= 1.3;
 		}
-		if (slave.pornPrestige === 1) { 							// slave is prestigious from porn
+		if (slave.porn.prestige === 1) { 							// slave is prestigious from porn
 			cash *= 1.1;
-		} else if (slave.pornPrestige === 2) { 						// slave is very prestigious from porn
+		} else if (slave.porn.prestige === 2) { 						// slave is very prestigious from porn
 			cash *= 1.2;
-		} else if (slave.pornPrestige === 3) { 						// slave is extremely prestigious from porn
+		} else if (slave.porn.prestige === 3) { 						// slave is extremely prestigious from porn
 			cash *= 1.3;
 		} 															// TODO: add relationship checks
 		if (slave.health > 20) { 									// slave is very healthy or more
diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index dfc9bc79457b71e7ab950e2b3399793989cb6096..95af162c1c81e3a23ca74eef075e9ce481284ea3 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -2650,8 +2650,8 @@ window.rulesAssistantOptions = (function() {
 				["spare"]
 			];
 			super("Living standard", pairs);
-			this.setValue(current_rule.set.livingRules);
-			this.onchange = (value) => current_rule.set.livingRules = value;
+			this.setValue(current_rule.set.rules.living);
+			this.onchange = (value) => current_rule.set.rules.living = value;
 		}
 	}
 
@@ -2664,8 +2664,8 @@ window.rulesAssistantOptions = (function() {
 				["situational"]
 			];
 			super("Typical punishment", pairs);
-			this.setValue(current_rule.set.standardPunishment);
-			this.onchange = (value) => current_rule.set.standardPunishment = value;
+			this.setValue(current_rule.set.rules.punishment);
+			this.onchange = (value) => current_rule.set.rules.punishment = value;
 		}
 	}
 
@@ -2678,8 +2678,8 @@ window.rulesAssistantOptions = (function() {
 				["situational"]
 			];
 			super("Typical reward", pairs);
-			this.setValue(current_rule.set.standardReward);
-			this.onchange = (value) => current_rule.set.standardReward = value;
+			this.setValue(current_rule.set.rules.reward);
+			this.onchange = (value) => current_rule.set.rules.reward = value;
 		}
 	}
 
@@ -2693,8 +2693,8 @@ window.rulesAssistantOptions = (function() {
 				["chastity"]
 			];
 			super("Release rules", pairs);
-			this.setValue(current_rule.set.releaseRules);
-			this.onchange = (value) => current_rule.set.releaseRules = value;
+			this.setValue(current_rule.set.rules.release);
+			this.onchange = (value) => current_rule.set.rules.release = value;
 		}
 	}
 
@@ -2786,8 +2786,8 @@ window.rulesAssistantOptions = (function() {
 				["restrictive"]
 			];
 			super("Speech rules", pairs, true);
-			this.setValue(current_rule.set.speechRules);
-			this.onchange = (value) => current_rule.set.speechRules = value;
+			this.setValue(current_rule.set.rules.speech);
+			this.onchange = (value) => current_rule.set.rules.speech = value;
 		}
 	}
 
@@ -2799,8 +2799,8 @@ window.rulesAssistantOptions = (function() {
 				["restrictive"]
 			];
 			super("Relationship rules", pairs, true);
-			this.setValue(current_rule.set.relationshipRules);
-			this.onchange = (value) => current_rule.set.relationshipRules = value;
+			this.setValue(current_rule.set.rules.relationship);
+			this.onchange = (value) => current_rule.set.rules.relationship = value;
 		}
 	}
 
@@ -2811,15 +2811,15 @@ window.rulesAssistantOptions = (function() {
 				["enabled", 1]
 			];
 			super("Porn Broadcasting Status", pairs, true);
-			this.setValue(current_rule.set.pornFeed);
-			this.onchange = (value) => current_rule.set.pornFeed = value;
+			this.setValue(current_rule.set.porn.feed);
+			this.onchange = (value) => current_rule.set.porn.feed = value;
 		}
 	}
 
 	class PornList extends ListSelector {
 		constructor() {
 			const pairs = [
-				/* ["No broadcasting", -1], **This has changed, it would now use .pornFeed** */
+				/* ["No broadcasting", -1], **This has changed, it would now use .porn.feed** */
 				["no subsidy", 0],
 				["1000", 1000],
 				["2000", 2000],
@@ -2828,8 +2828,8 @@ window.rulesAssistantOptions = (function() {
 				["5000", 5000]
 			];
 			super("Weekly porn publicity subsidy", pairs);
-			this.setValue(current_rule.set.pornFameSpending);
-			this.onchange = (value) => current_rule.set.pornFameSpending = value;
+			this.setValue(current_rule.set.porn.spending);
+			this.onchange = (value) => current_rule.set.porn.spending = value;
 		}
 	}
 
diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js
index 467bbeabd5c44cef0745c36e79ebd5574fabc3c9..aee3276c89f4d12a55bf3a9442b5d03f649b25dd 100644
--- a/src/js/slaveCostJS.js
+++ b/src/js/slaveCostJS.js
@@ -274,7 +274,7 @@ window.Beauty = (function() {
 				}
 				break;
 			case "birthmark":
-				if (slave.prestige > 0 || slave.pornPrestige > 1) {
+				if (slave.prestige > 0 || slave.porn.prestige > 1) {
 					beauty += 4;
 				} else {
 					beauty -= 4;
@@ -1396,7 +1396,7 @@ window.Beauty = (function() {
 		if (slave.fuckdoll === 0 && V.seeAge === 1) {
 			calcAgeBeauty(slave);
 		}
-		if (slave.prestige + slave.pornPrestige > 0) {
+		if (slave.prestige + slave.porn.prestige > 0) {
 			calcPrestigeBeauty(slave);
 		}
 	}
@@ -1494,11 +1494,11 @@ window.Beauty = (function() {
 		} else if (slave.prestige === 1) {
 			beauty += 0.25 * beauty;
 		}
-		if (slave.pornPrestige === 3) {
+		if (slave.porn.prestige === 3) {
 			beauty += beauty;
-		} else if (slave.pornPrestige === 2) {
+		} else if (slave.porn.prestige === 2) {
 			beauty += 0.5 * beauty;
-		} else if (slave.pornPrestige === 1) {
+		} else if (slave.porn.prestige === 1) {
 			beauty += 0.1 * beauty;
 		}
 	}
@@ -1987,7 +1987,7 @@ window.slaveCost = (function() {
 		calcDevotionTrustCost(slave);
 		calcPreferencesCost(slave);
 		calcPregCost(slave);
-		if (slave.prestige + slave.pornPrestige > 0) {
+		if (slave.prestige + slave.porn.prestige > 0) {
 			calcPrestigeCost(slave);
 		}
 		calcFSCost(slave);
@@ -2149,11 +2149,11 @@ window.slaveCost = (function() {
 		if (slave.prestige > 0) {
 			multiplier += 0.7 * slave.prestige;
 		}
-		if (slave.pornPrestige === 3) {
+		if (slave.porn.prestige === 3) {
 			multiplier += 1.5;
-		} else if (slave.pornPrestige === 2) {
+		} else if (slave.porn.prestige === 2) {
 			multiplier += 0.7;
-		} else if (slave.pornPrestige === 1) {
+		} else if (slave.porn.prestige === 1) {
 			multiplier += 0.2;
 		}
 	}
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index d2c2dd0635b8a9f07a91c94558bac457456ad8b1..6d9ef784f0c2ff841004cf89aabf2ad5413a169c 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -379,7 +379,7 @@ window.SlaveSummaryUncached = (function() {
 	 */
 	function short_rules(slave, c) {
 		const styles = "strong";
-		switch (slave.livingRules) {
+		switch (slave.rules.living) {
 			case "luxurious":
 				makeSpan(c, "LS:Lux", styles);
 				break;
@@ -391,7 +391,7 @@ window.SlaveSummaryUncached = (function() {
 				break;
 		}
 		if (canTalk(slave, false)) {
-			switch (slave.speechRules) {
+			switch (slave.rules.speech) {
 				case "permissive":
 					makeSpan(c, "SpR:P", styles);
 					break;
@@ -406,7 +406,7 @@ window.SlaveSummaryUncached = (function() {
 					break;
 			}
 		}
-		switch (slave.relationshipRules) {
+		switch (slave.rules.relationship) {
 			case "permissive":
 				makeSpan(c, "ReR:P", styles);
 				break;
@@ -417,7 +417,7 @@ window.SlaveSummaryUncached = (function() {
 				makeSpan(c, "ReR:R", styles);
 				break;
 		}
-		switch (slave.standardPunishment) {
+		switch (slave.rules.punishment) {
 			case "confinement":
 				makeSpan(c, "Pun:Conf", styles);
 				break;
@@ -431,7 +431,7 @@ window.SlaveSummaryUncached = (function() {
 				makeSpan(c, "Pun:Situ", styles);
 				break;
 		}
-		switch (slave.standardReward) {
+		switch (slave.rules.reward) {
 			case "relaxation":
 				makeSpan(c, "Rew:Relx", styles);
 				break;
@@ -445,7 +445,7 @@ window.SlaveSummaryUncached = (function() {
 				makeSpan(c, "Rew:Situ", styles);
 				break;
 		}
-		switch (slave.releaseRules) {
+		switch (slave.rules.release) {
 			case "permissive":
 				makeSpan(c, "MaR:P", styles);
 				break;
@@ -470,14 +470,14 @@ window.SlaveSummaryUncached = (function() {
 	 * @returns {void}
 	 */
 	function long_rules(slave, c) {
-		addText(c, `Living standard: ${slave.livingRules}. `);
+		addText(c, `Living standard: ${slave.rules.living}. `);
 		if (canTalk(slave, false)) {
-			addText(c, `Speech rules: ${slave.speechRules}. `);
+			addText(c, `Speech rules: ${slave.rules.speech}. `);
 		}
-		addText(c, `Relationship rules: ${slave.relationshipRules}. `);
-		addText(c, `Typical punishment: ${slave.standardPunishment}. `);
-		addText(c, `Typical reward: ${slave.standardReward}. `);
-		addText(c, `Release rules: ${slave.releaseRules}. `);
+		addText(c, `Relationship rules: ${slave.rules.relationship}. `);
+		addText(c, `Typical punishment: ${slave.rules.punishment}. `);
+		addText(c, `Typical reward: ${slave.rules.reward}. `);
+		addText(c, `Release rules: ${slave.rules.release}. `);
 	}
 
 	/**
@@ -2608,13 +2608,13 @@ window.SlaveSummaryUncached = (function() {
 	 * @returns {void}
 	 */
 	function short_porn_prestige(slave, c) {
-		if (slave.pornPrestige > 0) {
+		if (slave.porn.prestige > 0) {
 			const styles = "green";
-			if (slave.pornPrestige > 2) {
+			if (slave.porn.prestige > 2) {
 				makeSpan(c, "PPrest++", styles);
-			} else if (slave.pornPrestige === 2) {
+			} else if (slave.porn.prestige === 2) {
 				makeSpan(c, "PPrest+", styles);
-			} else if (slave.pornPrestige === 1) {
+			} else if (slave.porn.prestige === 1) {
 				makeSpan(c, "PPrest", styles);
 			}
 		}
@@ -2750,13 +2750,13 @@ window.SlaveSummaryUncached = (function() {
 	 * @returns {void}
 	 */
 	function long_porn_prestige(slave, c) {
-		if (slave.pornPrestige > 0) {
+		if (slave.porn.prestige > 0) {
 			const styles = "green";
-			if (slave.pornPrestige > 2) {
+			if (slave.porn.prestige > 2) {
 				makeSpan(c, "Porn star.", styles);
-			} else if (slave.pornPrestige === 2) {
+			} else if (slave.porn.prestige === 2) {
 				makeSpan(c, "Porn slut.", styles);
-			} else if (slave.pornPrestige === 1) {
+			} else if (slave.porn.prestige === 1) {
 				makeSpan(c, "Porn amateur.", styles);
 			}
 		}
diff --git a/src/js/surgery.js b/src/js/surgery.js
index e2d5c006c06c2f19c2ac468df7fe587f65592714..8dac4988d7c688e0cec3a8dd679e0bf97e1c6f3d 100644
--- a/src/js/surgery.js
+++ b/src/js/surgery.js
@@ -794,10 +794,10 @@ window.beginFuckdoll = function(slave) {
 	if ((slave.pubicHStyle !== "bald") && (slave.pubicHStyle !== "hairless")) {
 		slave.pubicHStyle = "waxed";
 	}
-	slave.livingRules = "spare";
-	slave.speechRules = "restrictive";
-	slave.releaseRules = "restrictive";
-	slave.relationshipRules = "restrictive";
+	slave.rules.living = "spare";
+	slave.rules.speech = "restrictive";
+	slave.rules.release = "restrictive";
+	slave.rules.relationship = "restrictive";
 	slave.choosesOwnClothes = 0;
 	slave.clothes = "a Fuckdoll suit";
 	slave.collar = "none";
diff --git a/src/js/vignettes.js b/src/js/vignettes.js
index 38d389480f2fe998a1870b7c4f0a799df709f085..d49869eecbc4b44a98281e2f03af27001beec312 100644
--- a/src/js/vignettes.js
+++ b/src/js/vignettes.js
@@ -743,13 +743,13 @@ window.GetVignette = function GetVignette(slave) {
 				effect: 1,
 			});
 		}
-		if (slave.livingRules === "luxurious") {
+		if (slave.rules.living === "luxurious") {
 			vignettes.push({
 				text: `${he} got a truly perfect night's sleep, which put ${him} in the right frame of mind for the whole day,`,
 				type: "rep",
 				effect: 1,
 			});
-		} else if (slave.livingRules === "spare") {
+		} else if (slave.rules.living === "spare") {
 			if (canHear(slave)) {
 				vignettes.push({
 					text: `${he} got a poor night's sleep in the noisy dormitory, which took the shine off ${his} efforts for the whole day,`,
@@ -764,13 +764,13 @@ window.GetVignette = function GetVignette(slave) {
 				});
 			}
 		}
-		if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+		if (slave.rules.release === "permissive" || slave.rules.release === "masturbation") {
 			vignettes.push({
 				text: `a customer asked if ${he} masturbates, and then spent an hour jerking off as ${he} described how,`,
 				type: "cash",
 				effect: 1,
 			});
-		} else if (slave.releaseRules === "restrictive") {
+		} else if (slave.rules.release === "restrictive") {
 			vignettes.push({
 				text: `a customer asked if ${he} masturbates, and seemed disappointed when ${he} answered honestly,`,
 				type: "cash",
@@ -2711,13 +2711,13 @@ window.GetVignette = function GetVignette(slave) {
 				effect: 1,
 			});
 		}
-		if (slave.livingRules === "luxurious") {
+		if (slave.rules.living === "luxurious") {
 			vignettes.push({
 				text: `${he} got a truly perfect night's sleep, which put ${him} in the right frame of mind for the whole day,`,
 				type: "rep",
 				effect: 1,
 			});
-		} else if (slave.livingRules === "spare") {
+		} else if (slave.rules.living === "spare") {
 			if (canHear(slave)) {
 				vignettes.push({
 					text: `${he} got a poor night's sleep in the noisy dormitory, which took the shine off ${his} efforts for the whole day,`,
@@ -2732,13 +2732,13 @@ window.GetVignette = function GetVignette(slave) {
 				});
 			}
 		}
-		if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+		if (slave.rules.release === "permissive" || slave.rules.release === "masturbation") {
 			vignettes.push({
 				text: `a citizen asked if ${he} masturbates, and then spent an hour jerking off as ${he} described how,`,
 				type: "rep",
 				effect: 1,
 			});
-		} else if (slave.releaseRules === "restrictive") {
+		} else if (slave.rules.release === "restrictive") {
 			vignettes.push({
 				text: `a citizen asked if ${he} masturbates, and seemed disappointed when ${he} answered honestly,`,
 				type: "rep",
@@ -4372,7 +4372,7 @@ window.GetVignette = function GetVignette(slave) {
 			}
 		}
 		if (slave.devotion > 20) {
-			if (slave.relationshipRules === "just friends" || slave.relationshipRules === "permissive") {
+			if (slave.rules.relationship === "just friends" || slave.rules.relationship === "permissive") {
 				vignettes.push({
 					text: `${he} taught another slave some massage skills,`,
 					type: "rep",
@@ -4402,7 +4402,7 @@ window.GetVignette = function GetVignette(slave) {
 			});
 		}
 		if (slave.relationship === -2) {
-			if (slave.speechRules === "permissive") {
+			if (slave.rules.speech === "permissive") {
 				if (slave.intelligence + slave.intelligenceImplant > 50) {
 					if (slave.skill.entertainment >= 100) {
 						vignettes.push({
@@ -4453,7 +4453,7 @@ window.GetVignette = function GetVignette(slave) {
 				});
 			} else {
 				if (hasAnyArms(slave)) {
-					if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+					if (slave.rules.release === "permissive" || slave.rules.release === "masturbation") {
 						vignettes.push({
 							text: `due to the obvious difficulties in ${his} mobility, ${he} spent a lot of time masturbating in bed,`,
 							type: "health",
@@ -4470,7 +4470,7 @@ window.GetVignette = function GetVignette(slave) {
 			}
 		}
 		if (slave.energy > 80) {
-			if (slave.releaseRules === "permissive" || slave.releaseRules === "masturbation") {
+			if (slave.rules.release === "permissive" || slave.rules.release === "masturbation") {
 				if (slave.fetish === "boobs") {
 					if (slave.boobs >= 800) {
 						vignettes.push({
diff --git a/src/npc/acquisition.tw b/src/npc/acquisition.tw
index 54f162d8e16418cdd406019a697f4253c954dc54..ec593ad42e2e8007b7ea661d4072d9229db387ff 100644
--- a/src/npc/acquisition.tw
+++ b/src/npc/acquisition.tw
@@ -569,7 +569,7 @@ The previous owner seems to have left in something of a hurry.
 			<<set $activeSlave.behavioralFlaw = "gluttonous">>
 			<<set $activeSlave.clothes = "attractive lingerie", $activeSlave.shoes = "flats">>
 			<<set $activeSlave.diet = "fattening">>
-			<<set $activeSlave.livingRules = "luxurious">>
+			<<set $activeSlave.rules.living = "luxurious">>
 			<<set $activeSlave.assignment = "rest">>
 		<<case "IntellectualDependency">>
 			<<set $activeSlaveOneTimeMinAge = 14>>
diff --git a/src/npc/databases/dSlavesDatabase.tw b/src/npc/databases/dSlavesDatabase.tw
index d29214e680ce75fc7899e27ffa317bbaa1b5d74e..8b21331368ac8f49ef81fdc3b23b759ebea6231b 100644
--- a/src/npc/databases/dSlavesDatabase.tw
+++ b/src/npc/databases/dSlavesDatabase.tw
@@ -490,7 +490,7 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Virago' Kissa", _HS.birthName = "", _HS.birthSurname = "", _HS.origin = "In spite of the great demand for $his kind, $he has apparently eluded enslavement until recently.", _HS.career = "a wanderer", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He is a natural albino.", _HS.birthWeek = random(0,51), _HS.health = 100, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 190, _HS.nationality = "Ugandan", _HS.race = "black", _HS.eyeColor = "pale grey", _HS.hColor = "white", _HS.pubicHColor = "white", _HS.skin = "extremely pale", _HS.hLength = 100, _HS.hStyle = "extremely long and bushy", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.boobs = 600, _HS.face = 55, _HS.lips = 35, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "oral", _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.skill.oral = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 100, _HS.skill.combat = 3, _HS.livingRules = "luxurious", _HS.speechRules = "permissive", _HS.releaseRules = "permissive", _HS.collar = "pretty jewelry", _HS.shoes = "flats", _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.geneticQuirks = {albinism: 2}, _HS.custom.tattoo = "$His entire body is tattooed with a detailed map of $his arteries which, combined with $his albinism, gives $him a quasi-translucent quality.", _HS.custom.desc = "$His eyes are unsettling; though $his irises are a pale grey color, in some lights the whole eye takes on a red cast.">>
+<<set _HS.slaveName = "'Virago' Kissa", _HS.birthName = "", _HS.birthSurname = "", _HS.origin = "In spite of the great demand for $his kind, $he has apparently eluded enslavement until recently.", _HS.career = "a wanderer", _HS.ID = _i++, _HS.prestige = 1, _HS.prestigeDesc = "$He is a natural albino.", _HS.birthWeek = random(0,51), _HS.health = 100, _HS.devotion = 100, _HS.muscles = 50, _HS.height = 190, _HS.nationality = "Ugandan", _HS.race = "black", _HS.eyeColor = "pale grey", _HS.hColor = "white", _HS.pubicHColor = "white", _HS.skin = "extremely pale", _HS.hLength = 100, _HS.hStyle = "extremely long and bushy", _HS.pubicHStyle = "bushy", _HS.waist = -55, _HS.boobs = 600, _HS.face = 55, _HS.lips = 35, _HS.vaginaLube = 1, _HS.clitPiercing = 3, _HS.clitSetting = "oral", _HS.ovaries = 1, _HS.anusTat = "bleached", _HS.skill.oral = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 100, _HS.skill.combat = 3, _HS.rules.living = "luxurious", _HS.rules.speech = "permissive", _HS.rules.release = "permissive", _HS.collar = "pretty jewelry", _HS.shoes = "flats", _HS.intelligence = 100, _HS.intelligenceImplant = 30, _HS.attrXY = 40, _HS.fetish = "cumslut", _HS.fetishKnown = 1, _HS.behavioralFlaw = "odd", _HS.geneticQuirks = {albinism: 2}, _HS.custom.tattoo = "$His entire body is tattooed with a detailed map of $his arteries which, combined with $his albinism, gives $him a quasi-translucent quality.", _HS.custom.desc = "$His eyes are unsettling; though $his irises are a pale grey color, in some lights the whole eye takes on a red cast.">>
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
@@ -498,15 +498,15 @@
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Vampire' Elvira", _HS.birthName = "Elvira", _HS.career = "a service worker", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 90, _HS.devotion = 100, _HS.height = 145, _HS.nationality = "Swedish", _HS.race = "white", _HS.eyeColor = "blue", _HS.hColor = "red", _HS.pubicHColor = "red", _HS.override_Skin = 1, _HS.skin = "sun tanned", _HS.hLength = 85, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.boobs = 650, _HS.boobsImplant = 200, _HS.nipplesPiercing = 2, _HS.butt = 3, _HS.buttImplant = 1, _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.tonguePiercing = 1, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.clitPiercing = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.brand["right buttock"] = "your initials", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 15, _HS.livingRules = "luxurious", _HS.clothes = "choosing her own clothes", _HS.collar = "heavy gold", _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1>>
+<<set _HS.slaveName = "'Vampire' Elvira", _HS.birthName = "Elvira", _HS.career = "a service worker", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 20, _HS.physicalAge = 20, _HS.visualAge = 20, _HS.ovaryAge = 20, _HS.health = 90, _HS.devotion = 100, _HS.height = 145, _HS.nationality = "Swedish", _HS.race = "white", _HS.eyeColor = "blue", _HS.hColor = "red", _HS.pubicHColor = "red", _HS.override_Skin = 1, _HS.skin = "sun tanned", _HS.hLength = 85, _HS.hStyle = "ass-length", _HS.waist = -55, _HS.boobs = 650, _HS.boobsImplant = 200, _HS.nipplesPiercing = 2, _HS.butt = 3, _HS.buttImplant = 1, _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.tonguePiercing = 1, _HS.vagina = 3, _HS.vaginaLube = 1, _HS.clitPiercing = 1, _HS.anus = 3, _HS.ovaries = 1, _HS.brand["right buttock"] = "your initials", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.skill.anal = 100, _HS.skill.whoring =100, _HS.skill.entertainment = 15, _HS.rules.living = "luxurious", _HS.clothes = "choosing her own clothes", _HS.collar = "heavy gold", _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1>>
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Creamy' Mayu", _HS.birthName = "Mayu", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 100, _HS.devotion = 100, _HS.weight = 20, _HS.height = 190, _HS.nationality = "Japanese", _HS.race = "asian", _HS.eyeColor = "blue", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 7500, _HS.nipples = "huge", _HS.areolae = 3, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 7, _HS.buttTat = "bovine patterns", _HS.face = 15, _HS.faceImplant = 65, _HS.lips = 35, _HS.lipsTat = "bovine patterns", _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaTat = "bovine patterns", _HS.counter.births = 1, _HS.counter.birthsTotal = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "bovine patterns", _HS.earPiercing = 1, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.livingRules = "luxurious", _HS.speechRules = "permissive", _HS.releaseRules = "permissive", _HS.relationshipRules = "permissive", _HS.clothes = "a nice maid outfit", _HS.collar = "leather with cowbell", _HS.shoes = "flats", _HS.intelligence = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1, _HS.custom.desc = "$He is quite sweaty, often soaking though any clothing $he is wearing.">>
+<<set _HS.slaveName = "'Creamy' Mayu", _HS.birthName = "Mayu", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.actualAge = 19, _HS.physicalAge = 19, _HS.visualAge = 19, _HS.ovaryAge = 19, _HS.health = 100, _HS.devotion = 100, _HS.weight = 20, _HS.height = 190, _HS.nationality = "Japanese", _HS.race = "asian", _HS.eyeColor = "blue", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hStyle = "long", _HS.waist = -55, _HS.boobs = 7500, _HS.nipples = "huge", _HS.areolae = 3, _HS.boobsTat = "bovine patterns", _HS.lactation = 2, _HS.lactationDuration = 2, _HS.butt = 7, _HS.buttTat = "bovine patterns", _HS.face = 15, _HS.faceImplant = 65, _HS.lips = 35, _HS.lipsTat = "bovine patterns", _HS.vagina = 2, _HS.vaginaLube = 1, _HS.vaginaTat = "bovine patterns", _HS.counter.births = 1, _HS.counter.birthsTotal = 1, _HS.anus = 1, _HS.ovaries = 1, _HS.anusTat = "bovine patterns", _HS.earPiercing = 1, _HS.shouldersTat = "bovine patterns", _HS.armsTat = "bovine patterns", _HS.legsTat = "bovine patterns", _HS.stampTat = "bovine patterns", _HS.skill.vaginal = 100, _HS.skill.oral = 100, _HS.rules.living = "luxurious", _HS.rules.speech = "permissive", _HS.rules.release = "permissive", _HS.rules.relationship = "permissive", _HS.clothes = "a nice maid outfit", _HS.collar = "leather with cowbell", _HS.shoes = "flats", _HS.intelligence = 30, _HS.attrXY = 40, _HS.fetish = "boobs", _HS.fetishKnown = 1, _HS.custom.desc = "$He is quite sweaty, often soaking though any clothing $he is wearing.">>
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
-<<set _HS.slaveName = "'Submissive' Cindy", _HS.birthName = "Cindy", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 100, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 175, _HS.nationality = "Indonesian", _HS.race = "asian", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.custom.tattoo = "$He has a barcode tattooed on the top of $his head.", _HS.pubicHStyle = "bushy", _HS.boobs = 600, _HS.nipplesPiercing = 1, _HS.boobsTat = "tribal patterns", _HS.butt = 2, _HS.buttTat = "tribal patterns", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.lipsPiercing = 1, _HS.lipsTat = "tribal patterns", _HS.tonguePiercing = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.vaginaTat = "tribal patterns", _HS.preg = -2, _HS.clitPiercing = 3, _HS.clitSetting = "all", _HS.ovaries = 1, _HS.anusPiercing = 1, _HS.anusTat = "bleached", _HS.earPiercing = 1, _HS.nosePiercing = 1, _HS.eyebrowPiercing = 1, _HS.navelPiercing = 1, _HS.shouldersTat = "tribal patterns", _HS.armsTat = "tribal patterns", _HS.legsTat = "tribal patterns", _HS.stampTat = "tribal patterns", _HS.skill.oral = 35, _HS.skill.combat = 1, _HS.livingRules = "luxurious", _HS.speechRules = "permissive", _HS.releaseRules = "permissive", _HS.relationshipRules = "permissive", _HS.clothes = "attractive lingerie", _HS.collar = "pretty jewelry", _HS.shoes = "heels", _HS.intelligence = -70, _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$His skin is unnaturally perfect, totally without blemishes. $He radiates unnatural health and resilience.">>
+<<set _HS.slaveName = "'Submissive' Cindy", _HS.birthName = "Cindy", _HS.ID = _i++, _HS.birthWeek = random(0,51), _HS.health = 100, _HS.devotion = 100, _HS.muscles = 20, _HS.height = 175, _HS.nationality = "Indonesian", _HS.race = "asian", _HS.hColor = "black", _HS.pubicHColor = "black", _HS.skin = "pale", _HS.hLength = 0, _HS.hStyle = "shaved bald", _HS.custom.tattoo = "$He has a barcode tattooed on the top of $his head.", _HS.pubicHStyle = "bushy", _HS.boobs = 600, _HS.nipplesPiercing = 1, _HS.boobsTat = "tribal patterns", _HS.butt = 2, _HS.buttTat = "tribal patterns", _HS.face = 55, _HS.faceImplant = 15, _HS.lips = 35, _HS.lipsPiercing = 1, _HS.lipsTat = "tribal patterns", _HS.tonguePiercing = 1, _HS.vaginaLube = 1, _HS.vaginaPiercing = 1, _HS.vaginaTat = "tribal patterns", _HS.preg = -2, _HS.clitPiercing = 3, _HS.clitSetting = "all", _HS.ovaries = 1, _HS.anusPiercing = 1, _HS.anusTat = "bleached", _HS.earPiercing = 1, _HS.nosePiercing = 1, _HS.eyebrowPiercing = 1, _HS.navelPiercing = 1, _HS.shouldersTat = "tribal patterns", _HS.armsTat = "tribal patterns", _HS.legsTat = "tribal patterns", _HS.stampTat = "tribal patterns", _HS.skill.oral = 35, _HS.skill.combat = 1, _HS.rules.living = "luxurious", _HS.rules.speech = "permissive", _HS.rules.release = "permissive", _HS.rules.relationship = "permissive", _HS.clothes = "attractive lingerie", _HS.collar = "pretty jewelry", _HS.shoes = "heels", _HS.intelligence = -70, _HS.intelligenceImplant = 30, _HS.energy = 100, _HS.attrXY = 40, _HS.fetishKnown = 1, _HS.custom.desc = "$His skin is unnaturally perfect, totally without blemishes. $He radiates unnatural health and resilience.">>
 <<set $heroSlaves.push(_HS)>>
 
 <<set _HS = App.Entity.SlaveState.makeSkeleton()>>
diff --git a/src/npc/fBeg.tw b/src/npc/fBeg.tw
index 3549af84e0bff233c8f3bbbbc86cc71571c7f354..f7fcb216a616fd3cc07962cb6f3bb47dfa044fa5 100644
--- a/src/npc/fBeg.tw
+++ b/src/npc/fBeg.tw
@@ -283,7 +283,7 @@ You give $him permission to speak, and tell $him that $he may beg $his <<= Writt
 
 <<if ($activeSlave.devotion < -20)>>
 	<<if ($activeSlave.trust < -50)>>
-		<<switch $activeSlave.standardPunishment>>
+		<<switch $activeSlave.rules.punishment>>
 		<<case "confinement">>
 			Your slave simply <<if hasAnyArms($activeSlave)>>presses $his hand<<if hasBothArms($activeSlave)>>s<</if>> together and <</if>>begs you not to lock $him up in the bad-<<= $girl>> box.
 		<<case "whipping">>
diff --git a/src/npc/fDance.tw b/src/npc/fDance.tw
index 111cac44e1dd7c74ba6296ea1ab02567eca9a281..8d747a34c558f629f2c883e2d8bce26b15ebe5bc 100644
--- a/src/npc/fDance.tw
+++ b/src/npc/fDance.tw
@@ -294,7 +294,7 @@ You look up once more at your slave and take some time to review $his dancing pe
 	<</if>>
 <<else>>
 	$He dances poorly on purpose to spite you. Whatever skills $he has, they are not on display here. You threaten to
-	<<switch $activeSlave.standardPunishment>>
+	<<switch $activeSlave.rules.punishment>>
 	<<case "confinement">>
 		lock $him up in the bad-<<= $girl>> box
 	<<case "whipping">>
@@ -1583,7 +1583,7 @@ Once the last piece of clothing has hit the floor you let your little slut dance
 <<elseif ($activeSlave.devotion < -50)>>
 	<<if ($activeSlave.trust < -50)>>
 		$He hurries frantically to your side, and drops quivering to the floor at your feet hoping $he was quick enough to avoid
-		<<switch $activeSlave.standardPunishment>>
+		<<switch $activeSlave.rules.punishment>>
 		<<case "confinement">>
 			confinement.
 		<<case "whipping">>
diff --git a/src/npc/fFeelings.tw b/src/npc/fFeelings.tw
index f3a5b85f83b83c20dd1610a9579a4f980a7da636..91fe9a79263dcbe4a195501d39a122efa6c0130f 100644
--- a/src/npc/fFeelings.tw
+++ b/src/npc/fFeelings.tw
@@ -39,7 +39,7 @@
 	$He
 	<<if !canTalk($activeSlave)>>gestures<<else>><<say>>s<</if>> <<if ($activeSlave.trust >= -20)>>earnestly<<elseif ($activeSlave.trust >= -50)>>fearfully<<else>>shakily<</if>>
 	that $he will do whatever you order $him to, since $he does not want to be
-	<<switch $activeSlave.standardPunishment>>
+	<<switch $activeSlave.rules.punishment>>
 	<<case "confinement">>shut up in the dark, which is of course $his standard punishment.
 	<<case "whipping">>whipped, which is of course $his standard punishment.
 	<<case "chastity">>put in restrictive chastity, which is of course $his standard punishment.
@@ -84,7 +84,7 @@
 	"I tru<<s>>t you completely.
 <</if>>
 
-<<if ($activeSlave.speechRules == "restrictive")>>
+<<if ($activeSlave.rules.speech == "restrictive")>>
 	<<if ($activeSlave.devotion > 20)>>
 		Thank you <<s>>o much for a chan<<c>>e to talk a little, <<Master>>. I under<<s>>tand why I must be <<s>>ilent, but it'<<s>> ni<<c>>e to get the chan<<c>>e.
 	<<else>>
@@ -423,7 +423,7 @@ My favorite part of my body i<<s>>
 			<<set _Amp = "rub mythelf againtht thtuff,">>
 		<</if>>
 	<</if>>
-	<<if ($activeSlave.releaseRules == "permissive") || ($activeSlave.releaseRules == "masturbation")>>
+	<<if ($activeSlave.rules.release == "permissive") || ($activeSlave.rules.release == "masturbation")>>
 		Thank you for letting me
 		<<if ($activeSlave.fetishKnown == 1)>>
 			<<if ($activeSlave.energy > 95) && (!canSee($activeSlave))>>
@@ -464,7 +464,7 @@ My favorite part of my body i<<s>>
 		<<else>>
 			_Amp <<Master>>.
 		<</if>>
-	<<elseif ($activeSlave.releaseRules == "sapphic")>>
+	<<elseif ($activeSlave.rules.release == "sapphic")>>
 		Thank you for letting
 		<<if ($activeSlave.fetishKnown == 1)>>
 			<<if ($activeSlave.energy > 95)>>
diff --git a/src/npc/uploadSlave.tw b/src/npc/uploadSlave.tw
index 72af7e9092a3274b70ad4a9271db31505c1f4366..ade6c497c5fa378e36af54c348aecafd40d2ff61 100644
--- a/src/npc/uploadSlave.tw
+++ b/src/npc/uploadSlave.tw
@@ -16,8 +16,8 @@ weekAcquired: 1,
 origin: <<if $activeSlave.origin == 0>>0<<else>>"$activeSlave.origin"<</if>>,
 career: <<if $activeSlave.career == 0>>0<<else>>"$activeSlave.career"<</if>>,
 ID: $activeSlave.ID,
-pornFame: $activeSlave.pornFame,
-pornFameSpending: $activeSlave.pornFameSpending,
+viewerCount: $activeSlave.porn.viewerCount,
+weeklySpending: $activeSlave.porn.spending,
 prestige: $activeSlave.prestige,
 prestigeDesc: "$activeSlave.prestigeDesc",
 recruiter: 0,
@@ -168,10 +168,10 @@ skill.anal: $activeSlave.skill.anal,
 skill.whoring: $activeSlave.skill.whoring,
 skill.entertainment: $activeSlave.skill.entertainment,
 skill.combat: $activeSlave.skill.combat,
-livingRules: "$activeSlave.livingRules",
-speechRules: "$activeSlave.speechRules",
-releaseRules: "$activeSlave.releaseRules",
-relationshipRules: "$activeSlave.relationshipRules",
+livingRules: "$activeSlave.rules.living",
+speechRules: "$activeSlave.rules.speech",
+releaseRules: "$activeSlave.rules.release",
+relationshipRules: "$activeSlave.rules.relationship",
 standardPunishment: "situational",
 standardReward: "situational",
 useRulesAssistant: 1,
diff --git a/src/pregmod/birthStorm.tw b/src/pregmod/birthStorm.tw
index 077d56e490967bf7c1d745467ad2ac31d51a5f84..9c590a244b5b112f27497dc453a306bcca012690 100644
--- a/src/pregmod/birthStorm.tw
+++ b/src/pregmod/birthStorm.tw
@@ -377,7 +377,7 @@ The remote surgery allows the removal of the pregnancy generator through convent
 		<<if $Cash4Babies == 1>>
 			<br><<link "... sold at auction.">>
 				<<replace #_disposition>>
-					<<if $activeSlave.prestige > 1 || $activeSlave.pornPrestige > 2>>
+					<<if $activeSlave.prestige > 1 || $activeSlave.porn.prestige > 2>>
 						<<set _babyCost = random(-12,100)>>
 						<<if $activeSlave.prematureBirth > 0>><<set _babyCost = random(-32,40)>><</if>>
 					<<else>>
@@ -479,7 +479,7 @@ The remote surgery allows the removal of the pregnancy generator through convent
 			<</if>>
 			<<set $breederOrphanageTotal += _curBabies>>
 		<<case "the market">>
-			<<if $activeSlave.prestige > 1 || $activeSlave.pornPrestige > 2>>
+			<<if $activeSlave.prestige > 1 || $activeSlave.porn.prestige > 2>>
 				<<set _babyCost = random(-12,100)>>
 				<<if $activeSlave.prematureBirth > 0>><<set _babyCost = random(-32,40)>><</if>>
 			<<else>>
diff --git a/src/pregmod/csec.tw b/src/pregmod/csec.tw
index fa42a981d8fedb15fa0d7516bd9aabe3f74e181f..8e7b06e47f9537f554ded8ec9931f028703cf3b6 100644
--- a/src/pregmod/csec.tw
+++ b/src/pregmod/csec.tw
@@ -350,7 +350,7 @@ Performing a cesarean section is trivial for the remote surgery to carry out. $a
 		<<if $Cash4Babies == 1>>
 			<br><<link "... sold at auction.">>
 				<<replace #_disposition>>
-					<<if $activeSlave.prestige > 1 || $activeSlave.pornPrestige > 2>>
+					<<if $activeSlave.prestige > 1 || $activeSlave.porn.prestige > 2>>
 						<<set _babyCost = random(-12,100)>>
 						<<if $activeSlave.prematureBirth > 0>><<set _babyCost = random(-32,40)>><</if>>
 					<<else>>
@@ -452,7 +452,7 @@ Performing a cesarean section is trivial for the remote surgery to carry out. $a
 			<</if>>
 			<<set $breederOrphanageTotal += _curBabies>>
 		<<case "the market">>
-			<<if $activeSlave.prestige > 1 || $activeSlave.pornPrestige > 2>>
+			<<if $activeSlave.prestige > 1 || $activeSlave.porn.prestige > 2>>
 				<<set _babyCost = random(-12,100)>>
 				<<if $activeSlave.prematureBirth > 0>><<set _babyCost = random(-32,40)>><</if>>
 			<<else>>
diff --git a/src/pregmod/rePregInventor.tw b/src/pregmod/rePregInventor.tw
index 61281c4f61ddb5e124e6184c5abf30ddfeccabaa..bd5b6a06af276211ec5a921aa6a660f8ddb1a735 100644
--- a/src/pregmod/rePregInventor.tw
+++ b/src/pregmod/rePregInventor.tw
@@ -786,13 +786,13 @@
 	<<set $pregInventor = 3>>
 
 	The time has finally come for your slave, <<EventNameLink>>, to appear on the slave-breeding based talk show, "Husbandry with Millie."
-	<<if $activeSlave.pornPrestige > 2 || $activeSlave.prestige > 2>>
+	<<if $activeSlave.porn.prestige > 2 || $activeSlave.prestige > 2>>
 		While $he is already world-renowned, you might still improve $his chances to impress on the show with a little bit of extra investment in commercial spots or a tweaking of FCTV algorithms.
-	<<elseif $activeSlave.pornPrestige > 1 || $activeSlave.prestige > 2>>
+	<<elseif $activeSlave.porn.prestige > 1 || $activeSlave.prestige > 2>>
 		While $he is already quite famous, you could still improve $his chances to impress on the show with a little bit of extra investment in commercial spots or a tweaking of FCTV algorithms.
 	<<else>>
 		While $he has
-		<<if $activeSlave.pornPrestige > 1>>
+		<<if $activeSlave.porn.prestige > 1>>
 			managed to earn a reasonable following in slave pornography,
 		<<else>>
 			a bit of a reputation already,
@@ -866,9 +866,9 @@
 		<<EventNameDelink $activeSlave>>
 		<<replace "#result">>
 		It's a gamble, but you decide to trust in the charisma of your slave and the fame $he has already accrued to sell your vision for the world's future during the interview.
-		<<if ($activeSlave.pornPrestige > 2)>>
+		<<if ($activeSlave.porn.prestige > 2)>>
 			$He's enormously popular, so your gambit has a good chance of success.
-		<<elseif ($activeSlave.pornPrestige > 1)>>
+		<<elseif ($activeSlave.porn.prestige > 1)>>
 			$He's quite popular, so your gambit has a reasonable chance of success.
 		<<else>>
 			$He's only really well known in local pornography, but you still decide to bet on $his ability to sway the masses.
@@ -881,7 +881,7 @@
 		<<include "RE Preg Inventor Text">>
 
 		<br><br>
-		<<if $activeSlave.pornPrestige >= 3 && random(1,100) > 50>>
+		<<if $activeSlave.porn.prestige >= 3 && random(1,100) > 50>>
 			You turn your FCTV screen off satisfied that your slave has just finished a job very well done. Over the course of the next several weeks, it becomes clear that $activeSlave.slaveName's appearance on "Husbandry With Milly" has had @@.green;world changing@@ consequences.
 			<<if $activeSlave.prestige < 3>>
 				<<set $activeSlave.prestige = 3>>
@@ -898,7 +898,7 @@
 			<</for>>
 			<<set _pregmag = "a cut out magazine cover of your world renowned hyperbroodmother inventor, " + $activeSlave.slaveName + ", and " + getPronouns($activeSlave).possessive + " myriad toys">>
 			<<set $trinkets.push(_pregmag)>>
-		<<elseif $activeSlave.pornPrestige >= 3 && random(1,100) > 30>>
+		<<elseif $activeSlave.porn.prestige >= 3 && random(1,100) > 30>>
 			You turn your FCTV screen off satisfied that your slave has just completed a job well done. Over the course of the next several weeks, it becomes clear that $activeSlave.slaveName's appearance on "Husbandry With Milly" has had a @@.green;significant positive impact@@ on public opinion.
 			<<if $activeSlave.prestige < 2>>
 				<<set $activeSlave.prestige = 2>>
@@ -915,7 +915,7 @@
 			<</for>>
 			<<set _pregmag = "a cut out magazine cover of your renowned hyperbroodmother inventor, " + $activeSlave.slaveName + ", and " + getPronouns($activeSlave).possessive + " myriad toys">>
 			<<set $trinkets.push(_pregmag)>>
-		<<elseif $activeSlave.pornPrestige >= 3 && random(1,100) > 15>>
+		<<elseif $activeSlave.porn.prestige >= 3 && random(1,100) > 15>>
 			You turn your FCTV screen off satisfied that your slave has done a satisfactory job. Over the course of the next several weeks, it becomes clear that $activeSlave.slaveName's appearance on "Husbandry With Milly" has had a @@.green;significant impact@@ on public opinion, though only at a local level.
 			<<if $activeSlave.prestige < 1>>
 				<<set $activeSlave.prestige = 1>>
@@ -929,7 +929,7 @@
 					<<set $arcologies[_i].FSRestart -= 10>>
 				<</if>>
 			<</for>>
-		<<elseif $activeSlave.pornPrestige >= 3>>
+		<<elseif $activeSlave.porn.prestige >= 3>>
 			You turn your FCTV screen off disappointed that your slave has done a mediocre job. Over the course of the next several weeks, it becomes clear that @@.green;what little impact@@ $he has had is on a local scale only.
 			<<run repX(500, "event")>>
 			<<for _i = 1; _i < _l; _i++>>
@@ -939,7 +939,7 @@
 					<<set $arcologies[_i].FSRestart -= 10>>
 				<</if>>
 			<</for>>
-		<<elseif $activeSlave.pornPrestige >= 2 && random(1,100) > 75>>
+		<<elseif $activeSlave.porn.prestige >= 2 && random(1,100) > 75>>
 			You turn your FCTV screen off satisfied that your slave has just finished a job very well done. Over the course of the next several weeks, it becomes clear that $activeSlave.slaveName's appearance on "Husbandry With Milly" has had @@.green;world changing@@ consequences.
 			<<if $activeSlave.prestige < 3>>
 				<<set $activeSlave.prestige = 3>>
@@ -956,7 +956,7 @@
 			<</for>>
 			<<set _pregmag = "a cut out magazine cover of your world renowned hyperbroodmother inventor, " + $activeSlave.slaveName + ", and " + getPronouns($activeSlave).possessive + " myriad toys">>
 			<<set $trinkets.push(_pregmag)>>
-		<<elseif $activeSlave.pornPrestige >= 2 && random(1,100) > 50>>
+		<<elseif $activeSlave.porn.prestige >= 2 && random(1,100) > 50>>
 			You turn your FCTV screen off satisfied that your slave has just completed a job well done. Over the course of the next several weeks, it becomes clear that $activeSlave.slaveName's appearance on "Husbandry With Milly" has had a @@.green;significant positive impact@@ on public opinion.
 			<<if $activeSlave.prestige < 2>>
 				<<set $activeSlave.prestige = 2>>
@@ -973,7 +973,7 @@
 			<</for>>
 			<<set _pregmag = "a cut out magazine cover of your renowned hyperbroodmother inventor, " + $activeSlave.slaveName + ", and " + getPronouns($activeSlave).possessive + " myriad toys">>
 			<<set $trinkets.push(_pregmag)>>
-		<<elseif $activeSlave.pornPrestige >= 2 && random(1,100) > 30>>
+		<<elseif $activeSlave.porn.prestige >= 2 && random(1,100) > 30>>
 			You turn your FCTV screen off satisfied that your slave has done a satisfactory job. Over the course of the next several weeks, it becomes clear that $activeSlave.slaveName's appearance on "Husbandry With Milly" has had a @@.green;significant impact@@ on public opinion, though only at a local level.
 			<<if $activeSlave.prestige < 1>>
 				<<set $activeSlave.prestige = 1>>
@@ -987,7 +987,7 @@
 					<<set $arcologies[_i].FSRestart -= 10>>
 				<</if>>
 			<</for>>
-		<<elseif $activeSlave.pornPrestige >= 2>>
+		<<elseif $activeSlave.porn.prestige >= 2>>
 			You turn your FCTV screen off disappointed that your slave has done a mediocre job. Over the course of the next several weeks, it becomes clear that @@.green;what little impact@@ $he has had is on a local scale only.
 			<<run repX(500, "event")>>
 			<<for _i = 1; _i < _l; _i++>>
diff --git a/src/pregmod/saPorn.tw b/src/pregmod/saPorn.tw
index 15c074e63ef8d0f0132d9c72d9235ddb470cf065..6ce62b50b7b0768b7e11b3a91e61a019e4a0900b 100644
--- a/src/pregmod/saPorn.tw
+++ b/src/pregmod/saPorn.tw
@@ -1,9 +1,9 @@
 :: SA Porn [nobr]
 
-<<if $studio == 1 && $slaves[$i].pornFeed == 1>> /* content is being produced */
+<<if $studio == 1 && $slaves[$i].porn.feed == 1>> /* content is being produced */
 
 	/* rate of decay*/
-	<<if $slaves[$i].pornPrestige > 1>> /* 50k */
+	<<if $slaves[$i].porn.prestige > 1>> /* 50k */
 		<<set _decayRate = 5000>>
 		<<if $slaves[$i].fuckdoll > 0>>
 			<<set _face = 50>>
@@ -12,8 +12,8 @@
 		<<else>>
 			<<set _face = $slaves[$i].face*4>>
 		<</if>>
-		<<set _viewership = ((500/$HackingSkillMultiplier)+($slaves[$i].pornFameSpending)+(_face)+($slaves[$i].prestige*10)-(_decayRate))>>
-	<<elseif $slaves[$i].pornPrestige > 0>> /* 10k */
+		<<set _viewership = ((500/$HackingSkillMultiplier)+($slaves[$i].porn.spending)+(_face)+($slaves[$i].prestige*10)-(_decayRate))>>
+	<<elseif $slaves[$i].porn.prestige > 0>> /* 10k */
 		<<set _decayRate = 500>>
 		<<if $slaves[$i].fuckdoll > 0>>
 			<<set _face = 20>>
@@ -22,7 +22,7 @@
 		<<else>>
 			<<set _face = $slaves[$i].face*2>>
 		<</if>>
-		<<set _viewership = ((900/$HackingSkillMultiplier)+($slaves[$i].pornFameSpending/15)+(_face)+($slaves[$i].prestige*250)-(_decayRate))>>
+		<<set _viewership = ((900/$HackingSkillMultiplier)+($slaves[$i].porn.spending/15)+(_face)+($slaves[$i].prestige*250)-(_decayRate))>>
 	<<else>>
 		<<set _decayRate = 30>>
 		<<if $slaves[$i].fuckdoll > 0>>
@@ -32,20 +32,20 @@
 		<<else>>
 			<<set _face = $slaves[$i].face/20>>
 		<</if>>
-		<<set _viewership = ((300/$HackingSkillMultiplier)+($slaves[$i].pornFameSpending > 0 ? ($slaves[$i].pornFameSpending+($slaves[$i].pornFameSpending/100)) : 200)+(_face)+($slaves[$i].prestige*20)-(_decayRate))>>
+		<<set _viewership = ((300/$HackingSkillMultiplier)+($slaves[$i].porn.spending > 0 ? ($slaves[$i].porn.spending+($slaves[$i].porn.spending/100)) : 200)+(_face)+($slaves[$i].prestige*20)-(_decayRate))>>
 	<</if>>
 	<<set _viewerSoaking = 1>>
 	<<set _viewership = Math.trunc(_viewership)>>
 	<<set _adjustedViewership = _viewership>>
-	<<set _oldFame = $slaves[$i].pornFame>>
+	<<set _oldFame = $slaves[$i].porn.viewerCount>>
 
 	The studio regularly releases clips of $his daily affairs.
 
 	<<if $cheatMode == 1>>Decay: _decayRate Viewership: _viewership Last week's fame: _oldFame<</if>>
 
-	<<if $slaves[$i].pornPrestige > 1>>
+	<<if $slaves[$i].porn.prestige > 1>>
 		$He is widely regarded in $slaves[$i].porn.fameType porn, but with so many watchers, turn over is high.
-	<<elseif $slaves[$i].pornPrestige > 0>>
+	<<elseif $slaves[$i].porn.prestige > 0>>
 		<<if $slaves[$i].porn.fameType == "generic">>
 			$He has claimed a niche in slave porn, so there is a constant cycle of new arrivals and bored ex-watchers.
 		<<else>>
@@ -64,9 +64,9 @@
 	<<if $slaves[$i].fuckdoll > 0>>
 	<<elseif $slaves[$i].collar == "porcelain mask">>
 		$His mask adds an air of mystery to $him,
-		<<if $slaves[$i].pornPrestige > 1>>
+		<<if $slaves[$i].porn.prestige > 1>>
 			but people wonder if $he is trying to hide something.
-		<<elseif $slaves[$i].pornPrestige > 0>>
+		<<elseif $slaves[$i].porn.prestige > 0>>
 			tantalizing viewers with what it hides.
 		<<else>>
 			but viewers are more interested in $his body.
@@ -1026,25 +1026,25 @@
 		<<if $cheatMode == 1>>Size Queen: (_oldPorn) to ($slaves[$i].porn.fame.sizeQueen).<</if>>
 	<</if>>
 
-	<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.general + $slaves[$i].porn.fame.fuckdoll + $slaves[$i].porn.fame.rape + $slaves[$i].porn.fame.preggo + $slaves[$i].porn.fame.BBW + $slaves[$i].porn.fame.gainer + $slaves[$i].porn.fame.stud + $slaves[$i].porn.fame.loli + $slaves[$i].porn.fame.deepThroat + $slaves[$i].porn.fame.struggleFuck + $slaves[$i].porn.fame.painal + $slaves[$i].porn.fame.tease + $slaves[$i].porn.fame.romantic + $slaves[$i].porn.fame.pervert + $slaves[$i].porn.fame.caring + $slaves[$i].porn.fame.unflinching + $slaves[$i].porn.fame.sizeQueen + $slaves[$i].porn.fame.neglectful + $slaves[$i].porn.fame.cumAddict + $slaves[$i].porn.fame.analAddict + $slaves[$i].porn.fame.attentionWhore + $slaves[$i].porn.fame.breastGrowth + $slaves[$i].porn.fame.abusive + $slaves[$i].porn.fame.malicious + $slaves[$i].porn.fame.selfHating + $slaves[$i].porn.fame.breeder + $slaves[$i].porn.fame.sub + $slaves[$i].porn.fame.cumSlut + $slaves[$i].porn.fame.anal + $slaves[$i].porn.fame.humiliation + $slaves[$i].porn.fame.boobs + $slaves[$i].porn.fame.dom + $slaves[$i].porn.fame.sadist + $slaves[$i].porn.fame.masochist + $slaves[$i].porn.fame.pregnancy>>
-	<<set $slaves[$i].pornFame = Math.trunc($slaves[$i].pornFame)>>
+	<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.general + $slaves[$i].porn.fame.fuckdoll + $slaves[$i].porn.fame.rape + $slaves[$i].porn.fame.preggo + $slaves[$i].porn.fame.BBW + $slaves[$i].porn.fame.gainer + $slaves[$i].porn.fame.stud + $slaves[$i].porn.fame.loli + $slaves[$i].porn.fame.deepThroat + $slaves[$i].porn.fame.struggleFuck + $slaves[$i].porn.fame.painal + $slaves[$i].porn.fame.tease + $slaves[$i].porn.fame.romantic + $slaves[$i].porn.fame.pervert + $slaves[$i].porn.fame.caring + $slaves[$i].porn.fame.unflinching + $slaves[$i].porn.fame.sizeQueen + $slaves[$i].porn.fame.neglectful + $slaves[$i].porn.fame.cumAddict + $slaves[$i].porn.fame.analAddict + $slaves[$i].porn.fame.attentionWhore + $slaves[$i].porn.fame.breastGrowth + $slaves[$i].porn.fame.abusive + $slaves[$i].porn.fame.malicious + $slaves[$i].porn.fame.selfHating + $slaves[$i].porn.fame.breeder + $slaves[$i].porn.fame.sub + $slaves[$i].porn.fame.cumSlut + $slaves[$i].porn.fame.anal + $slaves[$i].porn.fame.humiliation + $slaves[$i].porn.fame.boobs + $slaves[$i].porn.fame.dom + $slaves[$i].porn.fame.sadist + $slaves[$i].porn.fame.masochist + $slaves[$i].porn.fame.pregnancy>>
+	<<set $slaves[$i].porn.viewerCount = Math.trunc($slaves[$i].porn.viewerCount)>>
 
-	<<if _oldFame > $slaves[$i].pornFame>>
+	<<if _oldFame > $slaves[$i].porn.viewerCount>>
 		Overall, $his online fame @@.red;dropped@@ this week.
-	<<elseif _oldFame < $slaves[$i].pornFame>>
+	<<elseif _oldFame < $slaves[$i].porn.viewerCount>>
 		Overall, $his online fame @@.green;rose@@ this week.
-		<<if _oldFame < 100 && $slaves[$i].pornFame >= 100 && $studioFeed == 1>>
+		<<if _oldFame < 100 && $slaves[$i].porn.viewerCount >= 100 && $studioFeed == 1>>
 			$He @@.yellow;has accrued enough views to determine prospective porn genres.@@
 		<</if>>
-	<<elseif $slaves[$i].pornFame != 0>>
+	<<elseif $slaves[$i].porn.viewerCount != 0>>
 		Surprisingly, $his online fame @@.yellow;remained consistent@@ this week despite how fickle watchers can be.
 	<<else>>
 		$he cap went @@.red;completely overlooked@@ this week and failed to gain any hits at all.
 	<</if>>
 
-	<<if $slaves[$i].pornFame > 0>>
+	<<if $slaves[$i].porn.viewerCount > 0>>
 		<<set _topFame = getHighestPorn($slaves[$i])>>
-		<<set _donations = Math.floor($slaves[$i].pornFame/(random(10,15+_viewerSoaking)))>>
+		<<set _donations = Math.floor($slaves[$i].porn.viewerCount/(random(10,15+_viewerSoaking)))>>
 		<<if _donations > 0>>
 			Fans donated a total of @@.yellowgreen;<<print cashFormat(_donations)>>@@ to $his account this week.
 			<<run cashX(_donations, "porn", $slaves[$i])>>
@@ -1053,7 +1053,7 @@
 
 	/* prestige gen */
 
-	<<if $slaves[$i].pornPrestige == 0 && $slaves[$i].pornFame >= 10000>>
+	<<if $slaves[$i].porn.prestige == 0 && $slaves[$i].porn.viewerCount >= 10000>>
 		<<set _pornFameGrabBag = []>>
 		<<if $slaves[$i].porn.fame.general >= 10000>><<set _pornFameGrabBag.push("generic")>><</if>>
 		<<if $slaves[$i].porn.fame.fuckdoll >= 10000>><<set _pornFameGrabBag.push("fuckdoll")>><</if>>
@@ -1093,137 +1093,137 @@
 
 		<<if _pornFameGrabBag.length > 0>>
 			<<set $slaves[$i].porn.fameType = _pornFameGrabBag.random()>>
-			<<set $slaves[$i].pornPrestige = 1>>
+			<<set $slaves[$i].porn.prestige = 1>>
 
 			@@.green;$He has gained a following in $slaves[$i].porn.fameType pornography!@@ Thousands have enjoyed
 
 			<<switch $slaves[$i].porn.fameType>>
 			<<case "generic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being used.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being used.">>
 				the sight of $him being used,
 			<<case "fuckdoll">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. $His fans relish the sight of $him being used.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. $His fans relish the sight of $him being used.">>
 				the sight of $him being used,
 			<<case "rape">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being raped.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being raped.">>
 				the sight of $him being raped,
 			<<case "preggo">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him swell with child.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him swell with child.">>
 				watching $him swell with child,
 			<<case "BBW">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his thick and soft body.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his thick and soft body.">>
 				the sight of $his thick and soft body,
 			<<case "underage">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his childish body.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his childish body.">>
 				the sight of $his childish body,
 			<<case "weight gain">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him eating and gaining weight.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him eating and gaining weight.">>
 				the sight of $him eating and gaining weight,
 			<<case "big dick">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his throbbing erection.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his throbbing erection.">>
 				the sight of $his throbbing erection,
 			<<case "deepthroat">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sounds $he makes when being throatfucked.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sounds $he makes when being throatfucked.">>
 				the sounds $he makes when being throatfucked,
 			<<case "unwilling">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed how $he struggles during sex.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed how $he struggles during sex.">>
 				how $he struggles during sex,
 			<<case "hardcore anal">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $his asshole pushed to its limit.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $his asshole pushed to its limit.">>
 				watching $his asshole pushed to its limit,
 			<<case "softcore">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his lewd striptease.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his lewd striptease.">>
 				$his lewd striptease,
 			<<case "romantic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the deep bond $he shares with $his partners.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the deep bond $he shares with $his partners.">>
 				the deep bond $he shares with $his partners,
 			<<case "really perverted">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his most perverted tendencies.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his most perverted tendencies.">>
 				$his most perverted tendencies,
 			<<case "voyeur">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him devote $himself to $his partners' pleasure.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him devote $himself to $his partners' pleasure.">>
 				watching $him devote $himself to $his partners' pleasure,
 			<<case "unspeakable">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his willingness to do things not repeated in polite company.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his willingness to do things not repeated in polite company.">>
 				$his willingness to do things not repeated in polite company,
 			<<case "huge insertion">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his holes filled to their limits.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his holes filled to their limits.">>
 				the sight of $his holes filled to their limits,
 			<<case "orgasm denial">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him ignoring $his own pleasure.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him ignoring $his own pleasure.">>
 				the sight of $him ignoring $his own pleasure,
 			<<case "cum addiction">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything and everything for cum.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything and everything for cum.">>
 				watching $him do anything and everything for cum,
 			<<case "anal addiction">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for a dick in $his ass.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for a dick in $his ass.">>
 				watching $him do anything for a dick in $his ass,
 			<<case "exhibition">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for attention.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for attention.">>
 				watching $him do anything for attention,
 			<<case "breast expansion">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed charting the growth of $his breasts.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed charting the growth of $his breasts.">>
 				charting the growth of $his breasts,
 			<<case "abuse">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him abuse others.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him abuse others.">>
 				watching $him abuse others,
 			<<case "sexual torture">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him getting off from the suffering $he caused.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him getting off from the suffering $he caused.">>
 				$him getting off from the suffering $he caused,
 			<<case "self hating">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him happily suffer.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him happily suffer.">>
 				watching $him happily suffer,
 			<<case "breeder">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him obsess over pumping out babies.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him obsess over pumping out babies.">>
 				watching $him obsess over pumping out babies,
 			<<case "submissive">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his submission.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his submission.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 				$his submission,
 			<<case "cum">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his taste for cum.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his taste for cum.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 				$his taste for cum,
 			<<case "buttslut">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his rear.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his rear.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 				the sight of $his rear,
 			<<case "humiliating">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him humiliating $himself.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him humiliating $himself.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 				$him humiliating $himself,
 			<<case "breast">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his breasts.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his breasts.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 				the sight of $his breasts,
 			<<case "dominant">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his dominance.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his dominance.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 				$his dominance,
 			<<case "sadistic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his sadism.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his sadism.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 				$his sadism,
 			<<case "masochistic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his masochism.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his masochism.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 				$his masochism,
 			<<case "pregnancy fetish">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his fondness for pregnancy.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his fondness for pregnancy.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 				$his fondness for pregnancy,
 			<</switch>>
 
 			but $he isn't famous enough to be called prestigious yet.
 		<</if>>
-	<<elseif $slaves[$i].pornPrestige == 1>>
+	<<elseif $slaves[$i].porn.prestige == 1>>
 		<<set _failedStar = 0, _fameSwap = 0, _swapPoint = 1.2>>
 
 		<<switch $slaves[$i].porn.fameType>>
 		<<case "generic">>
 			<<if $slaves[$i].porn.fame.general >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being used.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being used.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $him being used, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.general*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1232,8 +1232,8 @@
 			<</if>>
 		<<case "fuckdoll">>
 			<<if $slaves[$i].porn.fame.fuckdoll >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being used.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being used.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $him being used, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.fuckdoll*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1242,8 +1242,8 @@
 			<</if>>
 		<<case "rape">>
 			<<if $slaves[$i].porn.fame.rape >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being raped.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being raped.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $him being raped, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.rape*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1252,8 +1252,8 @@
 			<</if>>
 		<<case "preggo">>
 			<<if $slaves[$i].porn.fame.preggo >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him swollen with child.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him swollen with child.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $him swollen with child, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.preggo*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1262,8 +1262,8 @@
 			<</if>>
 		<<case "BBW">>
 			<<if $slaves[$i].porn.fame.BBW >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his thick, soft body.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his thick, soft body.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his thick and soft body, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.BBW*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1272,8 +1272,8 @@
 			<</if>>
 		<<case "underage">>
 			<<if $slaves[$i].porn.fame.loli >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his immature body.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his immature body.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his immature body, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.loli*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1282,8 +1282,8 @@
 			<</if>>
 		<<case "weight gain">>
 			<<if $slaves[$i].porn.fame.gainer >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish how curvy $he's gotten.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish how curvy $he's gotten.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish how curvy $he's gotten, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.gainer*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1292,8 +1292,8 @@
 			<</if>>
 		<<case "big dick">>
 			<<if $slaves[$i].porn.fame.stud >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his heavy dick.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his heavy dick.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $his heavy dick, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.stud*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1302,8 +1302,8 @@
 			<</if>>
 		<<case "deepthroat">>
 			<<if $slaves[$i].porn.fame.deepThroat >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sounds $he makes when being throatfucked.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sounds $he makes when being throatfucked.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sounds $he makes when being throatfucked, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.deepThroat*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1312,8 +1312,8 @@
 			<</if>>
 		<<case "unwilling">>
 			<<if $slaves[$i].porn.fame.struggleFuck >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish how perfectly $he struggles during sex.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish how perfectly $he struggles during sex.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish how perfectly $he struggles during sex, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.struggleFuck*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1322,8 +1322,8 @@
 			<</if>>
 		<<case "hardcore anal">>
 			<<if $slaves[$i].porn.fame.painal >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish watching $his asshole pushed to its limit.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish watching $his asshole pushed to its limit.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish watching $his asshole pushed to its limit, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.painal*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1332,8 +1332,8 @@
 			<</if>>
 		<<case "softcore">>
 			<<if $slaves[$i].porn.fame.tease >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his lewd striptease.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his lewd striptease.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his lewd striptease, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.tease*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1342,8 +1342,8 @@
 			<</if>>
 		<<case "romantic">>
 			<<if $slaves[$i].porn.fame.romantic >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the deep bond $he shares with $his partners.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the deep bond $he shares with $his partners.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the deep bond $he shares with $his partners, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.romantic*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1352,8 +1352,8 @@
 			<</if>>
 		<<case "really perverted">>
 			<<if $slaves[$i].porn.fame.pervert >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the depths of $his perversions.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the depths of $his perversions.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the depths of $his perversions, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.pervert*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1362,8 +1362,8 @@
 			<</if>>
 		<<case "voyeur">>
 			<<if $slaves[$i].porn.fame.caring >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his devotion to $his partners' pleasure.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his devotion to $his partners' pleasure.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his devotion to $his partners' pleasure, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.caring*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1372,8 +1372,8 @@
 			<</if>>
 		<<case "unspeakable">>
 			<<if $slaves[$i].porn.fame.unflinching >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his willingness to do anything and everything.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his willingness to do anything and everything.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his willingness to do anything and everything, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.unflinching*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1382,8 +1382,8 @@
 			<</if>>
 		<<case "huge insertion">>
 			<<if $slaves[$i].porn.fame.sizeQueen >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his holes filled to their limits.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his holes filled to their limits.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $his holes filled to their limits, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.sizeQueen*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1392,8 +1392,8 @@
 			<</if>>
 		<<case "orgasm denial">>
 			<<if $slaves[$i].porn.fame.neglectful >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him denying $himself pleasure.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him denying $himself pleasure.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $him denying $himself pleasure, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.neglectful*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1402,8 +1402,8 @@
 			<</if>>
 		<<case "cum addiction">>
 			<<if $slaves[$i].porn.fame.cumAddict >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for cum.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for cum.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $him doing anything for cum, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.cumAddict*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1412,8 +1412,8 @@
 			<</if>>
 		<<case "anal addiction">>
 			<<if $slaves[$i].porn.fame.analAddict >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for a dick up $his ass.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for a dick up $his ass.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $him doing anything for a dick up $his ass, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.analAddict*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1422,8 +1422,8 @@
 			<</if>>
 		<<case "exhibition">>
 			<<if $slaves[$i].porn.fame.attentionWhore >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for attention.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for attention.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $him doing anything for attention, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.attentionWhore*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1432,8 +1432,8 @@
 			<</if>>
 		<<case "breast expansion">>
 			<<if $slaves[$i].porn.fame.breastGrowth >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his expanding bust.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his expanding bust.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $his expanding bust, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.breastGrowth*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1442,8 +1442,8 @@
 			<</if>>
 		<<case "abuse">>
 			<<if $slaves[$i].porn.fame.abusive >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him abusing others.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him abusing others.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $him abusing others, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.abusive*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1452,8 +1452,8 @@
 			<</if>>
 		<<case "sexual torture">>
 			<<if $slaves[$i].porn.fame.malicious >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him getting off from the suffering $he caused.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him getting off from the suffering $he caused.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $him getting off from the suffering $he caused, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.malicious*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1462,8 +1462,8 @@
 			<</if>>
 		<<case "self hating">>
 			<<if $slaves[$i].porn.fame.selfHating >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his suffering.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his suffering.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his suffering, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.selfHating*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1472,8 +1472,8 @@
 			<</if>>
 		<<case "breeder">>
 			<<if $slaves[$i].porn.fame.breeder >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his obsession with having children.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his obsession with having children.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his obsession with having children, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.breeder*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1482,8 +1482,8 @@
 			<</if>>
 		<<case "submissive">>
 			<<if $slaves[$i].porn.fame.sub >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his submissiveness.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his submissiveness.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his submissiveness, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.sub*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1492,8 +1492,8 @@
 			<</if>>
 		<<case "cum">>
 			<<if $slaves[$i].porn.fame.cumSlut >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his desire for cum.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his desire for cum.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his desire for cum, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.cumSlut*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1502,8 +1502,8 @@
 			<</if>>
 		<<case "buttslut">>
 			<<if $slaves[$i].porn.fame.anal >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his rear.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his rear.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $his rear, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.anal*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1512,8 +1512,8 @@
 			<</if>>
 		<<case "humiliating">>
 			<<if $slaves[$i].porn.fame.humiliation >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his frequent humiliation.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his frequent humiliation.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his frequent humiliation, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.humiliation*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1522,8 +1522,8 @@
 			<</if>>
 		<<case "breast">>
 			<<if $slaves[$i].porn.fame.boobs >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his breasts.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his breasts.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish the sight of $his breasts, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.boobs*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1532,8 +1532,8 @@
 			<</if>>
 		<<case "dominant">>
 			<<if $slaves[$i].porn.fame.dom >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his dominance.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his dominance.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his dominance, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.dom*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1542,8 +1542,8 @@
 			<</if>>
 		<<case "sadistic">>
 			<<if $slaves[$i].porn.fame.sadist >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his sadism.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his sadism.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his sadism, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.sadist*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1552,8 +1552,8 @@
 			<</if>>
 		<<case "masochistic">>
 			<<if $slaves[$i].porn.fame.masochist >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his masochism.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his masochism.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his masochism, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.masochist*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1562,8 +1562,8 @@
 			<</if>>
 		<<case "pregnancy fetish">>
 			<<if $slaves[$i].porn.fame.pregnancy >= 50000>>
-				<<set $slaves[$i].pornPrestige = 2>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his fondness for pregnancy.">>
+				<<set $slaves[$i].porn.prestige = 2>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his fondness for pregnancy.">>
 				@@.green;$He has gained a hold in $slaves[$i].porn.fameType pornography!@@ $His many fans relish $his fondness for pregnancy, so it is now prestigious to own $him.
 			<<elseif _topFame.value >= $slaves[$i].porn.fame.pregnancy*_swapPoint>>
 				<<set _fameSwap = 1>>
@@ -1572,11 +1572,11 @@
 			<</if>>
 		<<default>>
 			@@.red;No porn fame detected, reseting to "none".@@
-			<<set $slaves[$i].pornPrestige = 0, $slaves[$i].pornPrestigeDesc = 0, $slaves[$i].porn.fameType = "none">>
+			<<set $slaves[$i].porn.prestige = 0, $slaves[$i].porn.prestigeDesc = 0, $slaves[$i].porn.fameType = "none">>
 		<</switch>>
 
 		<<if _failedStar == 1>>
-			<<set $slaves[$i].pornPrestige = 0, $slaves[$i].pornPrestigeDesc = 0>>
+			<<set $slaves[$i].porn.prestige = 0, $slaves[$i].porn.prestigeDesc = 0>>
 			@@.red;$His popularity in $slaves[$i].porn.fameType pornography has faded.@@ $He is once again relatively unknown.
 			<<set $slaves[$i].porn.fameType = "none">>
 		<</if>>
@@ -1585,95 +1585,95 @@
 			<<set $slaves[$i].porn.fameType = _topFame.type>>
 			<<switch _topFame.type>>
 			<<case "generic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being used.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being used.">>
 			<<case "fuckdoll">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. $His fans relish the sight of $him being used.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. $His fans relish the sight of $him being used.">>
 			<<case "rape">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being raped.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being raped.">>
 			<<case "preggo">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him swell with child.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him swell with child.">>
 			<<case "BBW">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his thick and soft body.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his thick and soft body.">>
 			<<case "underage">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his childish body.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his childish body.">>
 			<<case "weight gain">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him eating and gaining weight.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him eating and gaining weight.">>
 			<<case "big dick">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his throbbing erection.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his throbbing erection.">>
 			<<case "deepthroat">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sounds $he makes when being throatfucked.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sounds $he makes when being throatfucked.">>
 			<<case "unwilling">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed how $he struggles during sex.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed how $he struggles during sex.">>
 			<<case "hardcore anal">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $his asshole pushed to its limit.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $his asshole pushed to its limit.">>
 			<<case "softcore">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his lewd striptease.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his lewd striptease.">>
 			<<case "romantic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the deep bond $he shares with $his partners.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the deep bond $he shares with $his partners.">>
 			<<case "really perverted">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his most perverted tendencies.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his most perverted tendencies.">>
 			<<case "voyeur">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him devote $himself to $his partners' pleasure.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him devote $himself to $his partners' pleasure.">>
 			<<case "unspeakable">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his willingness to do things not repeated in polite company.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his willingness to do things not repeated in polite company.">>
 			<<case "huge insertion">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his holes filled to their limits.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his holes filled to their limits.">>
 			<<case "orgasm denial">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him ignoring $his own pleasure.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him ignoring $his own pleasure.">>
 			<<case "cum addiction">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything and everything for cum.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything and everything for cum.">>
 			<<case "anal addiction">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for a dick in $his ass.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for a dick in $his ass.">>
 			<<case "exhibition">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for attention.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for attention.">>
 			<<case "breast expansion">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed charting the growth of $his breasts.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed charting the growth of $his breasts.">>
 			<<case "abuse">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him abuse others.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him abuse others.">>
 			<<case "sexual torture">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him getting off from the suffering $he caused.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him getting off from the suffering $he caused.">>
 			<<case "self hating">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him happily suffer.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him happily suffer.">>
 			<<case "breeder">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him obsess over pumping out babies.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him obsess over pumping out babies.">>
 			<<case "submissive">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his submission.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his submission.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 			<<case "cum">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his taste for cum.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his taste for cum.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 			<<case "buttslut">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his rear.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his rear.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 			<<case "humiliating">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him humiliating $himself.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him humiliating $himself.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 			<<case "breast">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his breasts.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his breasts.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 			<<case "dominant">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his dominance.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his dominance.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 			<<case "sadistic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his sadism.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his sadism.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 			<<case "masochistic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his masochism.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his masochism.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 			<<case "pregnancy fetish">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his fondness for pregnancy.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his fondness for pregnancy.">>
 				<<if $slaves[$i].fetishKnown != 1>><<set $slaves[$i].fetishKnown = 1>><</if>>
 			<</switch>>
 		<</if>>
-	<<elseif $slaves[$i].pornPrestige == 2>>
+	<<elseif $slaves[$i].porn.prestige == 2>>
 		<<set _failedStar = 0>>
 
 		<<switch $slaves[$i].porn.fameType>>
 		<<case "generic">>
 			<<if $slaves[$i].porn.fame.general >= 150000 && $pornStarID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.general = 250000, $pornStarID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.general>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him mid-coitus.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.general = 250000, $pornStarID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.general>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him mid-coitus.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $him mid-coitus, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " mid-coitus">>
 				<<set $trinkets.push(_desc)>>
@@ -1682,9 +1682,9 @@
 			<</if>>
 		<<case "fuckdoll">>
 			<<if $slaves[$i].porn.fame.fuckdoll >= 150000 && $pornStarFuckdollID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.fuckdoll = 250000, $pornStarFuckdollID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.fuckdoll>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him being used.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.fuckdoll = 250000, $pornStarFuckdollID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.fuckdoll>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him being used.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $him being used, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing it offering itself">>
 				<<set $trinkets.push(_desc)>>
@@ -1693,9 +1693,9 @@
 			<</if>>
 		<<case "rape">>
 			<<if $slaves[$i].porn.fame.rape >= 150000 && $pornStarRapeID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.rape = 250000, $pornStarRapeID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.rape>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him being raped.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.rape = 250000, $pornStarRapeID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.rape>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him being raped.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $him being raped, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).possessive + " rape">>
 				<<set $trinkets.push(_desc)>>
@@ -1704,9 +1704,9 @@
 			<</if>>
 		<<case "preggo">>
 			<<if $slaves[$i].porn.fame.preggo >= 150000 && $pornStarPreggoID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.preggo = 250000, $pornStarPreggoID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.preggo>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him swollen with child.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.preggo = 250000, $pornStarPreggoID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.preggo>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him swollen with child.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $him swollen with child, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " cradling " + getPronouns($slaves[$i]).possessive + " middle">>
 				<<set $trinkets.push(_desc)>>
@@ -1715,9 +1715,9 @@
 			<</if>>
 		<<case "BBW">>
 			<<if $slaves[$i].porn.fame.BBW >= 150000 && $pornStarBBWID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.BBW = 250000, $pornStarBBWID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.BBW>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his thick, soft body.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.BBW = 250000, $pornStarBBWID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.fame = $slaves[$i].porn.fame.BBW>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his thick, soft body.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his thick and soft body, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " giving a bellyjob">>
 				<<set $trinkets.push(_desc)>>
@@ -1726,9 +1726,9 @@
 			<</if>>
 		<<case "underage">>
 			<<if $slaves[$i].porn.fame.loli >= 150000 && $pornStarLoliID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.loli = 250000, $pornStarLoliID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.loli>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his immature body.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.loli = 250000, $pornStarLoliID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.loli>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his immature body.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his immature body, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).possessive + " 'innocence'">>
 				<<set $trinkets.push(_desc)>>
@@ -1737,9 +1737,9 @@
 			<</if>>
 		<<case "weight gain">>
 			<<if $slaves[$i].porn.fame.gainer >= 150000 && $pornStarGainerID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.gainer = 250000, $pornStarGainerID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.gainer>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with how with how much weight $he has gained.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.gainer = 250000, $pornStarGainerID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.fame = $slaves[$i].porn.fame.gainer>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with how with how much weight $he has gained.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with how much weight<<print $he>>'s put on, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " trying on " + getPronouns($slaves[$i]).possessive + " old clothes">>
 				<<set $trinkets.push(_desc)>>
@@ -1748,9 +1748,9 @@
 			<</if>>
 		<<case "big dick">>
 			<<if $slaves[$i].porn.fame.stud >= 150000 && $pornStarStudID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.stud = 250000, $pornStarStudID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.stud>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his erect dick.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.stud = 250000, $pornStarStudID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.stud>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his erect dick.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $his erect dick, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).possessive + " money shot">>
 				<<set $trinkets.push(_desc)>>
@@ -1759,9 +1759,9 @@
 			<</if>>
 		<<case "deepthroat">>
 			<<if $slaves[$i].porn.fame.deepThroat >= 150000 && $pornStarDeepThroatID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.deepThroat = 250000, $pornStarDeepThroatID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.deepThroat>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sounds $he makes when being throatfucked.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.deepThroat = 250000, $pornStarDeepThroatID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.deepThroat>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sounds $he makes when being throatfucked.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sounds $he makes when being throatfucked, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " getting facefucked">>
 				<<set $trinkets.push(_desc)>>
@@ -1770,9 +1770,9 @@
 			<</if>>
 		<<case "unwilling">>
 			<<if $slaves[$i].porn.fame.struggleFuck >= 150000 && $pornStarStruggleFuckID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.struggleFuck = 250000, $pornStarStruggleFuckID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.struggleFuck>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with how perfectly $he struggles during sex.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.struggleFuck = 250000, $pornStarStruggleFuckID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.fame = $slaves[$i].porn.fame.struggleFuck>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with how perfectly $he struggles during sex.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with how perfectly $he struggles during sex, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " struggling">>
 				<<set $trinkets.push(_desc)>>
@@ -1781,9 +1781,9 @@
 			<</if>>
 		<<case "hardcore anal">>
 			<<if $slaves[$i].porn.fame.painal >= 150000 && $pornStarPainalID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.painal = 250000, $pornStarPainalID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.painal>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with seeing $his asshole pushed to its limit.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.painal = 250000, $pornStarPainalID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.painal>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with seeing $his asshole pushed to its limit.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with seeing $his asshole pushed to its limit, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " taking an enormous dick up " + getPronouns($slaves[$i]).possessive + " ass">>
 				<<set $trinkets.push(_desc)>>
@@ -1792,9 +1792,9 @@
 			<</if>>
 		<<case "softcore">>
 			<<if $slaves[$i].porn.fame.tease >= 150000 && $pornStarTeaseID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.tease = 250000, $pornStarTeaseID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.tease>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his lewd striptease.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.tease = 250000, $pornStarTeaseID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.fame = $slaves[$i].porn.fame.tease>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his lewd striptease.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his lewd striptease, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " stripping">>
 				<<set $trinkets.push(_desc)>>
@@ -1803,9 +1803,9 @@
 			<</if>>
 		<<case "romantic">>
 			<<if $slaves[$i].porn.fame.romantic >= 150000 && $pornStarRomanticID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.romantic = 250000, $pornStarRomanticID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.romantic>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the deep bond $he shares with $his partners.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.romantic = 250000, $pornStarRomanticID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.fame = $slaves[$i].porn.fame.romantic>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the deep bond $he shares with $his partners.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the deep bond $he shares with $his partners, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " sharing an orgasm with " + getPronouns($slaves[$i]).possessive + " partner">>
 				<<set $trinkets.push(_desc)>>
@@ -1814,9 +1814,9 @@
 			<</if>>
 		<<case "really perverted">>
 			<<if $slaves[$i].porn.fame.pervert >= 150000 && $pornStarPervertID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.pervert = 250000, $pornStarPervertID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.pervert>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the depths of $his perversions.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.pervert = 250000, $pornStarPervertID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.pervert>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the depths of $his perversions.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the depths of $his perversions, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " doing something perverted">>
 				<<set $trinkets.push(_desc)>>
@@ -1825,9 +1825,9 @@
 			<</if>>
 		<<case "voyeur">>
 			<<if $slaves[$i].porn.fame.caring >= 150000 && $pornStarCaringID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.caring = 250000, $pornStarCaringID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.caring>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his devotion to $his partners' pleasure.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.caring = 250000, $pornStarCaringID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.caring>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his devotion to $his partners' pleasure.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his devotion to $his partners' pleasure, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " bringing " + getPronouns($slaves[$i]).possessive + " partner to orgasm">>
 				<<set $trinkets.push(_desc)>>
@@ -1836,9 +1836,9 @@
 			<</if>>
 		<<case "unspeakable">>
 			<<if $slaves[$i].porn.fame.unflinching >= 150000 && $pornStarUnflinchingID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.unflinching = 250000, $pornStarUnflinchingID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.unflinching>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his willingness to do things not repeated in polite company.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.unflinching = 250000, $pornStarUnflinchingID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.unflinching>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his willingness to do things not repeated in polite company.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his willingness to do things not repeated in polite company, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " doing something unmentionable">>
 				<<set $trinkets.push(_desc)>>
@@ -1847,9 +1847,9 @@
 			<</if>>
 		<<case "huge insertion">>
 			<<if $slaves[$i].porn.fame.sizeQueen >= 150000 && $pornStarSizeQueenID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.sizeQueen = 250000, $pornStarSizeQueenID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.sizeQueen>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his holes filled to their limits.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.sizeQueen = 250000, $pornStarSizeQueenID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.sizeQueen>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his holes filled to their limits.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $his holes filled to their limits, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).possessive + " belly bulging from within">>
 				<<set $trinkets.push(_desc)>>
@@ -1858,9 +1858,9 @@
 			<</if>>
 		<<case "orgasm denial">>
 			<<if $slaves[$i].porn.fame.neglectful >= 150000 && $pornStarNeglectfulID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.neglectful = 250000, $pornStarNeglectfulID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.neglectful>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him denying $himself pleasure.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.neglectful = 250000, $pornStarNeglectfulID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.neglectful>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him denying $himself pleasure.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $him denying $himself pleasure, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " pleasing a line of partners without cumming once">>
 				<<set $trinkets.push(_desc)>>
@@ -1869,9 +1869,9 @@
 			<</if>>
 		<<case "cum addiction">>
 			<<if $slaves[$i].porn.fame.cumAddict >= 150000 && $pornStarCumAddictID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.cumAddict = 250000, $pornStarCumAddictID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.cumAddict>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him doing anything for cum.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.cumAddict = 250000, $pornStarCumAddictID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.cumAddict>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him doing anything for cum.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $him doing anything for cum, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " bathing in a tub of cum">>
 				<<set $trinkets.push(_desc)>>
@@ -1880,9 +1880,9 @@
 			<</if>>
 		<<case "anal addiction">>
 			<<if $slaves[$i].porn.fame.analAddict >= 150000 && $pornStarAnalAddictID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.analAddict = 250000, $pornStarAnalAddictID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.analAddict>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his well-versed anus.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.analAddict = 250000, $pornStarAnalAddictID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.analAddict>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his well-versed anus.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $him doing anything for a dick up $his ass, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " taking a series of huge cocks up " + getPronouns($slaves[$i]).possessive + " ass">>
 				<<set $trinkets.push(_desc)>>
@@ -1891,9 +1891,9 @@
 			<</if>>
 		<<case "exhibition">>
 			<<if $slaves[$i].porn.fame.attentionWhore >= 150000 && $pornStarAttentionWhoreID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.attentionWhore = 250000, $pornStarAttentionWhoreID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.attentionWhore>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him doing anything for attention.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.attentionWhore = 250000, $pornStarAttentionWhoreID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.attentionWhore>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him doing anything for attention.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $him going to any length for attention, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " flashing strangers">>
 				<<set $trinkets.push(_desc)>>
@@ -1902,9 +1902,9 @@
 			<</if>>
 		<<case "breast expansion">>
 			<<if $slaves[$i].porn.fame.breastGrowth >= 150000 && $pornStarBreastGrowthID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.breastGrowth = 250000, $pornStarBreastGrowthID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.breastGrowth>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the history of $his growing bust.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.breastGrowth = 250000, $pornStarBreastGrowthID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.breastGrowth>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the history of $his growing bust.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with history of $his growing bust, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " having " + getPronouns($slaves[$i]).possessive + " tits measured">>
 				<<set $trinkets.push(_desc)>>
@@ -1913,9 +1913,9 @@
 			<</if>>
 		<<case "abuse">>
 			<<if $slaves[$i].porn.fame.abusive >= 150000 && $pornStarAbusiveID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.abusive = 250000, $pornStarAbusiveID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.abusive>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his abusive tendencies.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.abusive = 250000, $pornStarAbusiveID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.abusive>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his abusive tendencies.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his abusive tendencies, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " taking what " + getPronouns($slaves[$i]).pronoun + " wants by force">>
 				<<set $trinkets.push(_desc)>>
@@ -1924,9 +1924,9 @@
 			<</if>>
 		<<case "sexual torture">>
 			<<if $slaves[$i].porn.fame.malicious >= 150000 && $pornStarMaliciousID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.malicious = 250000, $pornStarMaliciousID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.malicious>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his hunger for making others suffer.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.malicious = 250000, $pornStarMaliciousID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.malicious>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his hunger for making others suffer.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $him torturing others, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " tormenting " + getPronouns($slaves[$i]).possessive + " prey">>
 				<<set $trinkets.push(_desc)>>
@@ -1935,9 +1935,9 @@
 			<</if>>
 		<<case "self hating">>
 			<<if $slaves[$i].porn.fame.selfHating >= 150000 && $pornStarSelfHatingID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.selfHating = 250000, $pornStarSelfHatingID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.selfHating>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him suffering.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.selfHating = 250000, $pornStarSelfHatingID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.selfHating>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him suffering.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $him suffering, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " orgasming from pain">>
 				<<set $trinkets.push(_desc)>>
@@ -1946,9 +1946,9 @@
 			<</if>>
 		<<case "breeder">>
 			<<if $slaves[$i].porn.fame.breeder >= 150000 && $pornStarBreederID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.breeder = 250000, $pornStarBreederID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.breeder>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his obsession with being pregnant.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.breeder = 250000, $pornStarBreederID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.breeder>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his obsession with being pregnant.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his obsession with having children, so it is now extremely prestigious to own $him.
 				<<if $slaves[$i].counter.births > 0>>
 					<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " having an orgasmic birth">>
@@ -1961,9 +1961,9 @@
 			<</if>>
 		<<case "submissive">>
 			<<if $slaves[$i].porn.fame.sub >= 150000 && $pornStarSubID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.sub = 250000, $pornStarSubID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.sub>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his submissiveness.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.sub = 250000, $pornStarSubID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.sub>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his submissiveness.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his submissiveness, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).possessive + " submission">>
 				<<set $trinkets.push(_desc)>>
@@ -1972,9 +1972,9 @@
 			<</if>>
 		<<case "cum">>
 			<<if $slaves[$i].porn.fame.cumSlut >= 150000 && $pornStarCumSlutID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.cumSlut = 250000, $pornStarCumSlutID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.cumSlut>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his taste for cum.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.cumSlut = 250000, $pornStarCumSlutID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.cumSlut>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his taste for cum.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his taste for cum, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " drinking a glass of cum">>
 				<<set $trinkets.push(_desc)>>
@@ -1983,9 +1983,9 @@
 			<</if>>
 		<<case "buttslut">>
 			<<if $slaves[$i].porn.fame.anal >= 150000 && $pornStarAnalID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.anal = 250000, $pornStarAnalID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.anal>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his rear.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.anal = 250000, $pornStarAnalID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.anal>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his rear.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with the sight of $his rear, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " shaking " + getPronouns($slaves[$i]).possessive + " booty">>
 				<<set $trinkets.push(_desc)>>
@@ -1994,9 +1994,9 @@
 			<</if>>
 		<<case "humiliating">>
 			<<if $slaves[$i].porn.fame.humiliation >= 150000 && $pornStarHumiliationID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.humiliation = 250000, $pornStarHumiliationID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.humiliation>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his frequent humiliation.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.humiliation = 250000, $pornStarHumiliationID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.humiliation>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his frequent humiliation.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his frequent humiliation, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " humiliated in public">>
 				<<set $trinkets.push(_desc)>>
@@ -2005,9 +2005,9 @@
 			<</if>>
 		<<case "breast">>
 			<<if $slaves[$i].porn.fame.boobs >= 150000 && $pornStarBoobsID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.boobs = 250000, $pornStarBoobsID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.boobs>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his breasts.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.boobs = 250000, $pornStarBoobsID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.boobs>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his breasts.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his breasts, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).possessive + " bare chest">>
 				<<set $trinkets.push(_desc)>>
@@ -2016,9 +2016,9 @@
 			<</if>>
 		<<case "dominant">>
 			<<if $slaves[$i].porn.fame.dom >= 150000 && $pornStarDomID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.dom = 250000, $pornStarDomID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.dom>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his dominant streak.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.dom = 250000, $pornStarDomID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.dom>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his dominant streak.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his dominant streak, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " seated upon " + getPronouns($slaves[$i]).possessive + " obedient toy">>
 				<<set $trinkets.push(_desc)>>
@@ -2027,9 +2027,9 @@
 			<</if>>
 		<<case "sadistic">>
 			<<if $slaves[$i].porn.fame.sadist >= 150000 && $pornStarSadistID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.sadist = 250000, $pornStarSadistID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.sadist>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his sadistic streak.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.sadist = 250000, $pornStarSadistID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.sadist>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his sadistic streak.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his sadistic streak, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " whipping " + getPronouns($slaves[$i]).possessive + " lover">>
 				<<set $trinkets.push(_desc)>>
@@ -2038,9 +2038,9 @@
 			<</if>>
 		<<case "masochistic">>
 			<<if $slaves[$i].porn.fame.masochist >= 150000 && $pornStarMasochistID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.masochist = 250000, $pornStarMasochistID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.masochist>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his masochistic streak.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.masochist = 250000, $pornStarMasochistID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.masochist>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his masochistic streak.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his masochistic streak, so it is now extremely prestigious to own $him.
 				<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " being whipped">>
 				<<set $trinkets.push(_desc)>>
@@ -2049,9 +2049,9 @@
 			<</if>>
 		<<case "pregnancy fetish">>
 			<<if $slaves[$i].porn.fame.pregnancy >= 150000 && $pornStarPregnancyID == 0>>
-				<<set $slaves[$i].pornPrestige = 3, $slaves[$i].porn.fame.pregnancy = 250000, $pornStarPregnancyID = $slaves[$i].ID>>
-				<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.pregnancy>>
-				<<set $slaves[$i].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his pregnancy kink.">>
+				<<set $slaves[$i].porn.prestige = 3, $slaves[$i].porn.fame.pregnancy = 250000, $pornStarPregnancyID = $slaves[$i].ID>>
+				<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.pregnancy>>
+				<<set $slaves[$i].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his pregnancy kink.">>
 				@@.green;$He has become world famous for $his career in $slaves[$i].porn.fameType pornography!@@ Millions are now intimately familiar with $his pregnancy kink, so it is now extremely prestigious to own $him.
 				<<if $slaves[$i].ovaries == 1 || $slaves[$i].mpreg == 1>>
 					<<set _desc = "a framed shot from porn starring " + $slaves[$i].slaveName + " showing " + getPronouns($slaves[$i]).object + " getting knocked up">>
@@ -2066,97 +2066,97 @@
 			<</if>>
 		<<default>>
 			@@.red;No porn fame detected, reseting to "none".@@
-			<<set $slaves[$i].pornPrestige = 0, $slaves[$i].pornPrestigeDesc = 0, $slaves[$i].porn.fameType = "none">>
+			<<set $slaves[$i].porn.prestige = 0, $slaves[$i].porn.prestigeDesc = 0, $slaves[$i].porn.fameType = "none">>
 		<</switch>>
 
 		<<if _failedStar == 1>>
-			<<set $slaves[$i].pornPrestige = 1>>
+			<<set $slaves[$i].porn.prestige = 1>>
 			@@.red;$His popularity in $slaves[$i].porn.fameType pornography has dropped considerably,@@ though $he still retains a core fanbase.
 			<<switch $slaves[$i].porn.fameType>>
 			<<case "generic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being used.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being used.">>
 			<<case "fuckdoll">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. $His fans relish the sight of $him being used.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. $His fans relish the sight of $him being used.">>
 			<<case "rape">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being raped.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being raped.">>
 			<<case "preggo">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him swell with child.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him swell with child.">>
 			<<case "BBW">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his thick and soft body.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his thick and soft body.">>
 			<<case "underage">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his childish body.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his childish body.">>
 			<<case "weight gain">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him eating and gaining weight.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him eating and gaining weight.">>
 			<<case "big dick">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his throbbing erection.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his throbbing erection.">>
 			<<case "deepthroat">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sounds $he makes when being throatfucked.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sounds $he makes when being throatfucked.">>
 			<<case "unwilling">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed how $he struggles during sex.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed how $he struggles during sex.">>
 			<<case "hardcore anal">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $his asshole pushed to its limit.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $his asshole pushed to its limit.">>
 			<<case "softcore">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his lewd striptease.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his lewd striptease.">>
 			<<case "romantic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the deep bond $he shares with $his partners.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the deep bond $he shares with $his partners.">>
 			<<case "really perverted">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his most perverted tendencies.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his most perverted tendencies.">>
 			<<case "voyeur">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him devote $himself to $his partners' pleasure.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him devote $himself to $his partners' pleasure.">>
 			<<case "unspeakable">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his willingness to do things not repeated in polite company.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his willingness to do things not repeated in polite company.">>
 			<<case "huge insertion">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his holes filled to their limits.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his holes filled to their limits.">>
 			<<case "orgasm denial">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him ignoring $his own pleasure.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him ignoring $his own pleasure.">>
 			<<case "cum addiction">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything and everything for cum.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything and everything for cum.">>
 			<<case "anal addiction">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for a dick in $his ass.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for a dick in $his ass.">>
 			<<case "exhibition">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for attention.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for attention.">>
 			<<case "breast expansion">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed charting the growth of $his breasts.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed charting the growth of $his breasts.">>
 			<<case "abuse">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him abuse others.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him abuse others.">>
 			<<case "sexual torture">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him getting off from the suffering $he caused.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him getting off from the suffering $he caused.">>
 			<<case "self hating">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him happily suffer.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him happily suffer.">>
 			<<case "breeder">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him obsess over pumping out babies.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him obsess over pumping out babies.">>
 			<<case "submissive">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his submission.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his submission.">>
 			<<case "cum">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his taste for cum.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his taste for cum.">>
 			<<case "buttslut">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his rear.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his rear.">>
 			<<case "humiliating">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him humiliating $himself.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him humiliating $himself.">>
 			<<case "breast">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his breasts.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his breasts.">>
 			<<case "dominant">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his dominance.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his dominance.">>
 			<<case "sadistic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his sadism.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his sadism.">>
 			<<case "masochistic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his masochism.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his masochism.">>
 			<<case "pregnancy fetish">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his fondness for pregnancy.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his fondness for pregnancy.">>
 			<</switch>>
 		<</if>>
 
-		<<if $slaves[$i].pornPrestige > 2>>
+		<<if $slaves[$i].porn.prestige > 2>>
 			Further paid publicity cannot increase $his fame, so subsidy of porn featuring $him has stopped.
-			<<set $slaves[$i].pornFameSpending = 0>>
+			<<set $slaves[$i].porn.spending = 0>>
 		<</if>>
 	<</if>>
 
 <<else>> /* popularity decay from lack of new content */
 
-	<<if $slaves[$i].pornPrestige > 1>> /* 500k */
+	<<if $slaves[$i].porn.prestige > 1>> /* 500k */
 		<<set _decayRate = 5000>>
-	<<elseif $slaves[$i].pornPrestige > 0>> /* 10k */
+	<<elseif $slaves[$i].porn.prestige > 0>> /* 10k */
 		<<set _decayRate = 500>>
 	<<else>>
 		<<set _decayRate = 30>>
@@ -2341,306 +2341,306 @@
 		<<if $cheatMode == 1>>Size Queen: (_oldPorn) to ($slaves[$i].porn.fame.sizeQueen).<</if>>
 	<</if>>
 
-	<<set $slaves[$i].pornFame = $slaves[$i].porn.fame.general + $slaves[$i].porn.fame.fuckdoll + $slaves[$i].porn.fame.rape + $slaves[$i].porn.fame.preggo + $slaves[$i].porn.fame.BBW + $slaves[$i].porn.fame.gainer + $slaves[$i].porn.fame.stud + $slaves[$i].porn.fame.loli + $slaves[$i].porn.fame.deepThroat + $slaves[$i].porn.fame.struggleFuck + $slaves[$i].porn.fame.painal + $slaves[$i].porn.fame.tease + $slaves[$i].porn.fame.romantic + $slaves[$i].porn.fame.pervert + $slaves[$i].porn.fame.caring + $slaves[$i].porn.fame.unflinching + $slaves[$i].porn.fame.sizeQueen + $slaves[$i].porn.fame.neglectful + $slaves[$i].porn.fame.cumAddict + $slaves[$i].porn.fame.analAddict + $slaves[$i].porn.fame.attentionWhore + $slaves[$i].porn.fame.breastGrowth + $slaves[$i].porn.fame.abusive + $slaves[$i].porn.fame.malicious + $slaves[$i].porn.fame.selfHating + $slaves[$i].porn.fame.breeder + $slaves[$i].porn.fame.sub + $slaves[$i].porn.fame.cumSlut + $slaves[$i].porn.fame.anal + $slaves[$i].porn.fame.humiliation + $slaves[$i].porn.fame.boobs + $slaves[$i].porn.fame.dom + $slaves[$i].porn.fame.sadist + $slaves[$i].porn.fame.masochist + $slaves[$i].porn.fame.pregnancy>>
-	<<set $slaves[$i].pornFame = Math.trunc($slaves[$i].pornFame)>>
+	<<set $slaves[$i].porn.viewerCount = $slaves[$i].porn.fame.general + $slaves[$i].porn.fame.fuckdoll + $slaves[$i].porn.fame.rape + $slaves[$i].porn.fame.preggo + $slaves[$i].porn.fame.BBW + $slaves[$i].porn.fame.gainer + $slaves[$i].porn.fame.stud + $slaves[$i].porn.fame.loli + $slaves[$i].porn.fame.deepThroat + $slaves[$i].porn.fame.struggleFuck + $slaves[$i].porn.fame.painal + $slaves[$i].porn.fame.tease + $slaves[$i].porn.fame.romantic + $slaves[$i].porn.fame.pervert + $slaves[$i].porn.fame.caring + $slaves[$i].porn.fame.unflinching + $slaves[$i].porn.fame.sizeQueen + $slaves[$i].porn.fame.neglectful + $slaves[$i].porn.fame.cumAddict + $slaves[$i].porn.fame.analAddict + $slaves[$i].porn.fame.attentionWhore + $slaves[$i].porn.fame.breastGrowth + $slaves[$i].porn.fame.abusive + $slaves[$i].porn.fame.malicious + $slaves[$i].porn.fame.selfHating + $slaves[$i].porn.fame.breeder + $slaves[$i].porn.fame.sub + $slaves[$i].porn.fame.cumSlut + $slaves[$i].porn.fame.anal + $slaves[$i].porn.fame.humiliation + $slaves[$i].porn.fame.boobs + $slaves[$i].porn.fame.dom + $slaves[$i].porn.fame.sadist + $slaves[$i].porn.fame.masochist + $slaves[$i].porn.fame.pregnancy>>
+	<<set $slaves[$i].porn.viewerCount = Math.trunc($slaves[$i].porn.viewerCount)>>
 
-	<<if $slaves[$i].pornPrestige > 0>>
+	<<if $slaves[$i].porn.prestige > 0>>
 		<<set _failedStar = 0>>
 
 		<<switch $slaves[$i].porn.fameType>>
 		<<case "generic">>
-			<<if $slaves[$i].porn.fame.general < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.general < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.general < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "fuckdoll">>
-			<<if $slaves[$i].porn.fame.fuckdoll < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.fuckdoll < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.fuckdoll < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "rape">>
-			<<if $slaves[$i].porn.fame.rape < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.rape < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.rape < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "preggo">>
-			<<if $slaves[$i].porn.fame.preggo < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.preggo < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.preggo < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "BBW">>
-			<<if $slaves[$i].porn.fame.preggo < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.preggo < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.preggo < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "underage">>
-			<<if $slaves[$i].porn.fame.loli < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.loli < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.loli < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "weight gain">>
-			<<if $slaves[$i].porn.fame.gainer < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.gainer < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.gainer < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "big dick">>
-			<<if $slaves[$i].porn.fame.stud < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.stud < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.stud < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "deepthroat">>
-			<<if $slaves[$i].porn.fame.deepThroat < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.deepThroat < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.deepThroat < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "unwilling">>
-			<<if $slaves[$i].porn.fame.struggleFuck < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.struggleFuck < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.struggleFuck < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "hardcore anal">>
-			<<if $slaves[$i].porn.fame.painal < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.painal < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.painal < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "softcore">>
-			<<if $slaves[$i].porn.fame.tease < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.tease < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.tease < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "romantic">>
-			<<if $slaves[$i].porn.fame.romantic < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.romantic < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.romantic < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "really perverted">>
-			<<if $slaves[$i].porn.fame.pervert < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.pervert < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.pervert < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "voyeur">>
-			<<if $slaves[$i].porn.fame.caring < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.caring < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.caring < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "unspeakable">>
-			<<if $slaves[$i].porn.fame.unflinching < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.unflinching < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.unflinching < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "huge insertion">>
-			<<if $slaves[$i].porn.fame.sizeQueen < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.sizeQueen < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.sizeQueen < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "orgasm denial">>
-			<<if $slaves[$i].porn.fame.neglectful < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.neglectful < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.neglectful < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "cum addiction">>
-			<<if $slaves[$i].porn.fame.cumAddict < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.cumAddict < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.cumAddict < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "anal addiction">>
-			<<if $slaves[$i].porn.fame.analAddict < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.analAddict < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.analAddict < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "exhibition">>
-			<<if $slaves[$i].porn.fame.attentionWhore < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.attentionWhore < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.attentionWhore < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "breast expansion">>
-			<<if $slaves[$i].porn.fame.breastGrowth < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.breastGrowth < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.breastGrowth < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "abuse">>
-			<<if $slaves[$i].porn.fame.abusive < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.abusive < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.abusive < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "sexual torture">>
-			<<if $slaves[$i].porn.fame.malicious < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.malicious < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.malicious < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "self hating">>
-			<<if $slaves[$i].porn.fame.selfHating < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.selfHating < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.selfHating < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "breeder">>
-			<<if $slaves[$i].porn.fame.breeder < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.breeder < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.breeder < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "submissive">>
-			<<if $slaves[$i].porn.fame.sub < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.sub < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.sub < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "cum">>
-			<<if $slaves[$i].porn.fame.cumSlut < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.cumSlut < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.cumSlut < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "buttslut">>
-			<<if $slaves[$i].porn.fame.anal < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.anal < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.anal < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "humiliating">>
-			<<if $slaves[$i].porn.fame.humiliation < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.humiliation < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.humiliation < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "breast">>
-			<<if $slaves[$i].porn.fame.boobs < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.boobs < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.boobs < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "dominant">>
-			<<if $slaves[$i].porn.fame.dom < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.dom < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.dom < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "sadistic">>
-			<<if $slaves[$i].porn.fame.sadist < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.sadist < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.sadist < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "masochistic">>
-			<<if $slaves[$i].porn.fame.masochist < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.masochist < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.masochist < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<case "pregnancy fetish">>
-			<<if $slaves[$i].porn.fame.pregnancy < 40000 && $slaves[$i].pornPrestige == 2>>
+			<<if $slaves[$i].porn.fame.pregnancy < 40000 && $slaves[$i].porn.prestige == 2>>
 				<<set _failedStar = 2>>
 			<<elseif $slaves[$i].porn.fame.pregnancy < 5000>>
 				<<set _failedStar = 1>>
 			<</if>>
 		<<default>>
 			@@.red;No porn fame detected, reseting to "none".@@
-			<<set $slaves[$i].pornPrestige = 0, $slaves[$i].pornPrestigeDesc = 0, $slaves[$i].porn.fameType = "none">>
+			<<set $slaves[$i].porn.prestige = 0, $slaves[$i].porn.prestigeDesc = 0, $slaves[$i].porn.fameType = "none">>
 		<</switch>>
 
 		<<if _failedStar == 1>>
-			<<set $slaves[$i].pornPrestige = 0, $slaves[$i].pornPrestigeDesc = 0>>
+			<<set $slaves[$i].porn.prestige = 0, $slaves[$i].porn.prestigeDesc = 0>>
 			With no new $slaves[$i].porn.fameType content coming out, @@.red;$his popularity has faded away.@@
 			<<set $slaves[$i].porn.fameType = "none">>
 		<<elseif _failedStar == 2>>
-			<<set $slaves[$i].pornPrestige = 1>>
+			<<set $slaves[$i].porn.prestige = 1>>
 			With the lack of any new content, @@.red;$his popularity in $slaves[$i].porn.fameType pornography has dropped considerably,@@ though some viewers still cling to the hope that <<print $he>>'ll come back.
 			<<switch $slaves[$i].porn.fameType>>
 			<<case "generic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being used.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being used.">>
 			<<case "fuckdoll">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. $His fans relish the sight of $him being used.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. $His fans relish the sight of $him being used.">>
 			<<case "rape">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being raped.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being raped.">>
 			<<case "preggo">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him swell with child.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him swell with child.">>
 			<<case "BBW">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his thick and soft body.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his thick and soft body.">>
 			<<case "underage">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his childish body.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his childish body.">>
 			<<case "weight gain">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him eating and gaining weight.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him eating and gaining weight.">>
 			<<case "big dick">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his throbbing erection.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his throbbing erection.">>
 			<<case "deepthroat">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sounds $he makes when being throatfucked.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sounds $he makes when being throatfucked.">>
 			<<case "unwilling">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed how $he struggles during sex.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed how $he struggles during sex.">>
 			<<case "hardcore anal">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $his asshole pushed to its limit.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $his asshole pushed to its limit.">>
 			<<case "softcore">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his lewd striptease.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his lewd striptease.">>
 			<<case "romantic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the deep bond $he shares with $his partners.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the deep bond $he shares with $his partners.">>
 			<<case "really perverted">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his most perverted tendencies.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his most perverted tendencies.">>
 			<<case "voyeur">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him devote $himself to $his partners' pleasure.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him devote $himself to $his partners' pleasure.">>
 			<<case "unspeakable">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his willingness to do things not repeated in polite company.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his willingness to do things not repeated in polite company.">>
 			<<case "huge insertion">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his holes filled to their limits.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his holes filled to their limits.">>
 			<<case "orgasm denial">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him ignoring $his own pleasure.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him ignoring $his own pleasure.">>
 			<<case "cum addiction">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything and everything for cum.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything and everything for cum.">>
 			<<case "anal addiction">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for a dick in $his ass.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for a dick in $his ass.">>
 			<<case "exhibition">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for attention.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for attention.">>
 			<<case "breast expansion">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed charting the growth of $his breasts.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed charting the growth of $his breasts.">>
 			<<case "abuse">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him abuse others.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him abuse others.">>
 			<<case "sexual torture">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him getting off from the suffering $he caused.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him getting off from the suffering $he caused.">>
 			<<case "self hating">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him happily suffer.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him happily suffer.">>
 			<<case "breeder">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him obsess over pumping out babies.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him obsess over pumping out babies.">>
 			<<case "submissive">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his submission.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his submission.">>
 			<<case "cum">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his taste for cum.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his taste for cum.">>
 			<<case "buttslut">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his rear.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his rear.">>
 			<<case "humiliating">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him humiliating $himself.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him humiliating $himself.">>
 			<<case "breast">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his breasts.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his breasts.">>
 			<<case "dominant">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his dominance.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his dominance.">>
 			<<case "sadistic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his sadism.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his sadism.">>
 			<<case "masochistic">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his masochism.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his masochism.">>
 			<<case "pregnancy fetish">>
-				<<set $slaves[$i].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his fondness for pregnancy.">>
+				<<set $slaves[$i].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his fondness for pregnancy.">>
 			<</switch>>
 		<</if>>
 	<</if>>
diff --git a/src/pregmod/seBurst.tw b/src/pregmod/seBurst.tw
index 229a65e612bd83c24a1ba706857bf907aeadc1a1..46c1efee37c91dc9a3c2daf396c11b0ed4c4910a 100644
--- a/src/pregmod/seBurst.tw
+++ b/src/pregmod/seBurst.tw
@@ -254,7 +254,7 @@
 				<<if $Cash4Babies == 1>>
 					<br><<link "Send them to auction">>
 						<<replace `"#" + $dispositionId`>>
-							<<if $activeSlave.prestige > 1 || $activeSlave.pornPrestige > 2>>
+							<<if $activeSlave.prestige > 1 || $activeSlave.porn.prestige > 2>>
 								<<set _babyCost = random(-12,100)>>
 								<<if $activeSlave.prematureBirth > 0>><<set _babyCost = random(-32,40)>><</if>>
 							<<else>>
@@ -283,7 +283,7 @@
 					The child<<if _curBabies > 1>>ren are<<else>> is<</if>> sent to one of $arcologies[0].name's future minded schools, to be administered fertility and virility treatments as well as be brought up to take pride in reproduction. Hopefully there they will be trained to not suffer the same fate.
 					<<set $breederOrphanageTotal += _curBabies, $slaveOrphanageTotal -= _curBabies>>
 				<<case "the market">>
-					<<if $slaves[$_b].prestige > 1 || $slaves[$_b].pornPrestige > 2>>
+					<<if $slaves[$_b].prestige > 1 || $slaves[$_b].porn.prestige > 2>>
 						<<set _babyCost = random(-12,100)>>
 						<<if $slaves[$_b].prematureBirth > 0>><<set _babyCost = random(-32,40)>><</if>>
 					<<else>>
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
index 5bf63cf84e12aa0ad91db24afc02f83eca889bd5..21fbb7f7aa655203880be27a8d0d5aef05ff7347 100644
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -167,9 +167,9 @@
 	<<set $args[0].curatives = $args[1].curatives>>
 	<<set $args[0].drugs = $args[1].drugs>>
 	<<set $args[0].prestige = $args[1].prestige>>
-	<<set $args[0].pornFame = $args[1].pornFame>>
-	<<set $args[0].pornPrestige = $args[1].pornPrestige>>
-	<<set $args[0].pornPrestigeDesc = $args[1].pornPrestigeDesc>>
+	<<set $args[0].porn.viewerCount = $args[1].porn.viewerCount>>
+	<<set $args[0].porn.prestige = $args[1].porn.prestige>>
+	<<set $args[0].porn.prestigeDesc = $args[1].porn.prestigeDesc>>
 	<<set $args[0].prestigeDesc = $args[1].prestigeDesc>>
 	<<set $args[0].minorInjury = $args[1].minorInjury>>
 	<<set $args[0].eyeWear = $args[1].eyeWear>>
diff --git a/src/pregmod/widgets/deathWidgets.tw b/src/pregmod/widgets/deathWidgets.tw
index 9a5fdb72c2a2f8f4a70bf36b5eec842635c92863..17e7af9e4fd6b5c9f6a7e3804e0af93ce82b54a0 100644
--- a/src/pregmod/widgets/deathWidgets.tw
+++ b/src/pregmod/widgets/deathWidgets.tw
@@ -46,7 +46,7 @@
 		<<elseif _deathSeed > 25>>
 			$He is found dead in the showers, having slipped sometime earlier.
 		<<else>>
-			<<if $args[0].releaseRules != "restrictive" && $args[0].releaseRules != "masturbation" && $args[0].releaseRules != "chastity">>
+			<<if $args[0].rules.release != "restrictive" && $args[0].rules.release != "masturbation" && $args[0].rules.release != "chastity">>
 				$He is found dead in the bed of another slave, having died during intercourse. $His lover is not taking it well.
 			<<else>>
 				$He is found dead in the cafeteria, having died during breakfast; $he ruined the day for a number of your slaves.
diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw
index 9edc7701cbd25e27055da0c5d5f64d6185e98856..c260217bcb58469146423d71c9d0f36275a1bbc2 100644
--- a/src/pregmod/widgets/pregmodWidgets.tw
+++ b/src/pregmod/widgets/pregmodWidgets.tw
@@ -115,8 +115,8 @@
 <<if ndef $args[0].induceLactation>>
 	<<set $args[0].induceLactation = 0>>
 <</if>>
-<<if ndef $args[0].lactationRules>>
-	<<set $args[0].lactationRules = "none">>
+<<if ndef $args[0].rules.lactation>>
+	<<set $args[0].rules.lactation = "none">>
 <</if>>
 <<if ndef $args[0].weightDirection>>
 	<<set $args[0].weightDirection = 0>>
@@ -157,364 +157,364 @@
 <<if (def $args[0].prestigeDesc) && ($args[0].prestigeDesc != 0)>>
 	<<set $args[0].prestigeDesc = pronounReplacer($args[0].prestigeDesc)>>
 <</if>>
-<<if (def $args[0].pornPrestigeDesc) && ($args[0].pornPrestigeDesc != 0)>>
+<<if (def $args[0].porn.prestigeDesc) && ($args[0].porn.prestigeDesc != 0)>>
 	<<if $releaseID < 1050 && (def $args[0].prestigeDesc) && ($args[0].prestigeDesc != 0)>> /* BC absolutely FUCKED this */
 		<<switch $args[0].porn.fameType>>
 		<<case "generic">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being used.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being used.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him mid-coitus.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being used.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being used.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him mid-coitus.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "fuckdoll">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. $His fans relish the sight of $him being used.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being used.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him being used.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. $His fans relish the sight of $him being used.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being used.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him being used.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "rape">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being raped.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being raped.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him being raped.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him being raped.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him being raped.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him being raped.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "preggo">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him swell with child.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him swollen with child.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him swollen with child.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him swell with child.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him swollen with child.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him swollen with child.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "BBW">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his thick and soft body.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his thick, soft body.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his thick, soft body.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his thick and soft body.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his thick, soft body.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his thick, soft body.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "underage">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his childish body.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his immature body.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his immature body.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his childish body.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his immature body.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his immature body.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "weight gain">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him eating and gaining weight.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish how curvy $he's gotten.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with how with how much weight $he has gained.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him eating and gaining weight.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish how curvy $he's gotten.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with how with how much weight $he has gained.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "big dick">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his throbbing erection.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his heavy dick.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his erect dick.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his throbbing erection.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his heavy dick.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his erect dick.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "deepthroat">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sounds $he makes when being throatfucked.">>
-			<<elseif $args[0].pornPrestige == 2>>
-					<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sounds $he makes when being throatfucked.">>
-			<<elseif $args[0].pornPrestige == 3>>
-					<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sounds $he makes when being throatfucked.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sounds $he makes when being throatfucked.">>
+			<<elseif $args[0].porn.prestige == 2>>
+					<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sounds $he makes when being throatfucked.">>
+			<<elseif $args[0].porn.prestige == 3>>
+					<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sounds $he makes when being throatfucked.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "unwilling">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed how $he struggles during sex.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish how perfectly $he struggles during sex.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with how perfectly $he struggles during sex.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed how $he struggles during sex.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish how perfectly $he struggles during sex.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with how perfectly $he struggles during sex.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "hardcore anal">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $his asshole pushed to its limit.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish watching $his asshole pushed to its limit.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with seeing $his asshole pushed to its limit.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $his asshole pushed to its limit.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish watching $his asshole pushed to its limit.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with seeing $his asshole pushed to its limit.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "softcore">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his lewd striptease.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his lewd striptease.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his lewd striptease.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his lewd striptease.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his lewd striptease.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his lewd striptease.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "romantic">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the deep bond $he shares with $his partners.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the deep bond $he shares with $his partners.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the deep bond $he shares with $his partners.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the deep bond $he shares with $his partners.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the deep bond $he shares with $his partners.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the deep bond $he shares with $his partners.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "really perverted">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his most perverted tendencies.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the depths of $his perversions.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the depths of $his perversions.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his most perverted tendencies.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the depths of $his perversions.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the depths of $his perversions.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "voyeur">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him devote $himself to $his partners' pleasure.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his devotion to $his partners' pleasure.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his devotion to $his partners' pleasure.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him devote $himself to $his partners' pleasure.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his devotion to $his partners' pleasure.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his devotion to $his partners' pleasure.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "unspeakable">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his willingness to do things not repeated in polite company.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his willingness to do anything and everything.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his willingness to do things not repeated in polite company.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his willingness to do things not repeated in polite company.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his willingness to do anything and everything.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his willingness to do things not repeated in polite company.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "huge insertion">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his holes filled to their limits.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his holes filled to their limits.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his holes filled to their limits.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his holes filled to their limits.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his holes filled to their limits.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his holes filled to their limits.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "orgasm denial">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him ignoring $his own pleasure.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him denying $himself pleasure.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him denying $himself pleasure.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $him ignoring $his own pleasure.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him denying $himself pleasure.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him denying $himself pleasure.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "cum addiction">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything and everything for cum.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for cum.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him doing anything for cum.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything and everything for cum.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for cum.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him doing anything for cum.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "anal addiction">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for a dick in $his ass.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for a dick up $his ass.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his well-versed anus.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for a dick in $his ass.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for a dick up $his ass.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his well-versed anus.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "exhibition">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for attention.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for attention.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him doing anything for attention.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him do anything for attention.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him doing anything for attention.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him doing anything for attention.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "breast expansion">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed charting the growth of $his breasts.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his expanding bust.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the history of $his growing bust.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed charting the growth of $his breasts.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his expanding bust.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the history of $his growing bust.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "abuse">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him abuse others.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him abusing others.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his abusive tendencies.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him abuse others.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him abusing others.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his abusive tendencies.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "sexual torture">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him getting off from the suffering $he caused.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him getting off from the suffering $he caused.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his hunger for making others suffer.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him getting off from the suffering $he caused.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $him getting off from the suffering $he caused.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his hunger for making others suffer.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "self hating">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him happily suffer.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his suffering.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him suffering.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him happily suffer.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his suffering.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $him suffering.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "breeder">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him obsess over pumping out babies.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his obsession with having children.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his obsession with being pregnant.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed watching $him obsess over pumping out babies.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his obsession with having children.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his obsession with being pregnant.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "submissive">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his submission.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his submissiveness.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his submissiveness.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his submission.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his submissiveness.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his submissiveness.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "cum">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his taste for cum.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his desire for cum.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his taste for cum.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his taste for cum.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his desire for cum.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his taste for cum.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "buttslut">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his rear.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his rear.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his rear.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his rear.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his rear.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with the sight of $his rear.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "humiliating">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him humiliating $himself.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his frequent humiliation.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his frequent humiliation.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $him humiliating $himself.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his frequent humiliation.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his frequent humiliation.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "breast">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his breasts.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his breasts.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his breasts.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed the sight of $his breasts.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish the sight of $his breasts.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his breasts.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "dominant">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his dominance.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his dominance.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his dominant streak.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his dominance.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his dominance.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his dominant streak.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "sadistic">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his sadism.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his sadism.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his sadistic streak.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his sadism.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his sadism.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his sadistic streak.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "masochistic">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his masochism.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his masochism.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his masochistic streak.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his masochism.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his masochism.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his masochistic streak.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<case "pregnancy fetish">>
-			<<if $args[0].pornPrestige == 1>>
-				<<set $args[0].pornPrestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his fondness for pregnancy.">>
-			<<elseif $args[0].pornPrestige == 2>>
-				<<set $args[0].pornPrestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his fondness for pregnancy.">>
-			<<elseif $args[0].pornPrestige == 3>>
-				<<set $args[0].pornPrestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his pregnancy kink.">>
+			<<if $args[0].porn.prestige == 1>>
+				<<set $args[0].porn.prestigeDesc = "$He has a following in slave pornography. Thousands have enjoyed $his fondness for pregnancy.">>
+			<<elseif $args[0].porn.prestige == 2>>
+				<<set $args[0].porn.prestigeDesc = "$He is well known from $his career in slave pornography. $His many fans relish $his fondness for pregnancy.">>
+			<<elseif $args[0].porn.prestige == 3>>
+				<<set $args[0].porn.prestigeDesc = "$He is world famous for $his career in slave pornography. Millions are intimately familiar with $his pregnancy kink.">>
 			<<else>>
-				<<set $args[0].pornPrestigeDesc = 0>>
+				<<set $args[0].porn.prestigeDesc = 0>>
 			<</if>>
 		<<default>>
-			<<set $args[0].pornPrestigeDesc = 0>>
+			<<set $args[0].porn.prestigeDesc = 0>>
 		<</switch>>
 	<<else>>
-		<<set $args[0].pornPrestigeDesc = pronounReplacer($args[0].pornPrestigeDesc)>>
+		<<set $args[0].porn.prestigeDesc = pronounReplacer($args[0].porn.prestigeDesc)>>
 	<</if>>
 <</if>>
 
diff --git a/src/pregmod/widgets/seBirthWidgets.tw b/src/pregmod/widgets/seBirthWidgets.tw
index e1ccd8ab4d5b75cda4715768eaf0af674753f4fe..550234fbcb94a953068c617ed6adc85b194d2509 100644
--- a/src/pregmod/widgets/seBirthWidgets.tw
+++ b/src/pregmod/widgets/seBirthWidgets.tw
@@ -999,7 +999,7 @@ All in all,
 		<</link>>
 		//Will cost <<print cashFormat(500)>> weekly//
 		<<if $Cash4Babies == 1>>
-			<<if $slaves[$i].prestige > 1 || $slaves[$i].pornPrestige > 2>>
+			<<if $slaves[$i].prestige > 1 || $slaves[$i].porn.prestige > 2>>
 				<br><<link "Send them to auction">>
 					<<replace `"#" + $dispositionId`>>
 						<<set _babyCost = random(-12,100)>>
@@ -1125,7 +1125,7 @@ All in all,
 				<</if>>
 				<<set $breederOrphanageTotal += _curBabies>>
 			<<case "the market">>
-				<<if $slaves[$i].prestige > 1 || $slaves[$i].pornPrestige > 2>>
+				<<if $slaves[$i].prestige > 1 || $slaves[$i].porn.prestige > 2>>
 					<<set _babyCost = random(-12,100)>>
 					<<if $slaves[$i].prematureBirth > 0>><<set _babyCost = random(-32,40)>><</if>>
 				<<else>>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 7cf8342431153728d7cf9aa976f1e0480488d948..1c75b504b9c6db6178e5d2e359c614f9ce442194 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -327,6 +327,28 @@
 <<if def $rents>>
 	<<unset $rents>>
 <</if>>
+<<if ndef $rent>>
+	<<set $rent = {}>>
+<</if>>
+<<if ndef $rentDefaults>>
+	<<set $rentDefaults = {}>>
+<</if>>
+<<if def $LCRent>>
+	<<set $rent.lowerClass = $LCRent>>
+	<<unset $LCRent>>
+<</if>>
+<<if def $MCRent>>
+	<<set $rent.middleClass = $MCRent>>
+	<<unset $MCRent>>
+<</if>>
+<<if def $UCRent>>
+	<<set $rent.upperClass = $UCRent>>
+	<<unset $UCRent>>
+<</if>>
+<<if def $TCRent>>
+	<<set $rent.topClass = $TCRent>>
+	<<unset $TCRent>>
+<</if>>
 <<if def $space>>
 	<<unset $space>>
 <</if>>
@@ -752,13 +774,6 @@
 	<<set $PC = clone(_newPC)>>
 	Standardizing player object... Done!<br>
 <</if>>
-
-<<if ndef $NPCSexSupply>>
-	<<set $NPCSexSupply = {lowerClass: 3000}>>
-<</if>>
-<<if ndef $NPCSexSupply.lowerClass>>
-	<<set $NPCSexSupply.lowerClass = 3000>>
-<</if>>
 /*
 	<<run PCDatatypeCleanup()>> Needs massive revisions and for now, everything should be getting set by the object/onverter.
 */
@@ -3023,20 +3038,29 @@ Setting missing global variables:
 <<if ndef $publicFuckdolls>>
 	<<set $publicFuckdolls = 0>>
 <</if>>
-<<if ndef $lowerClassSexDemand>>
-	<<set $lowerClassSexDemand = 15600>>
+<<if def $lowerClassSexDemand>>
+	<<unset $lowerClassSexDemand>>
+<</if>>
+<<if def $lowerClassSatisfied>>
+	<<set $classSatisfied.lowerClass = $lowerClassSatisfied>>
+	<<unset $lowerClassSatisfied>>
+<</if>>
+<<if def $middleClassSexDemand>>
+	<<unset $middleClassSexDemand>>
 <</if>>
-<<if ndef $lowerClassSatisfied>>
-	<<set $lowerClassSatisfied = 0>>
+<<if def $upperClassSexDemand>>
+	<<unset $upperClassSexDemand>>
 <</if>>
-<<if ndef $middleClassSexDemand>>
-	<<set $middleClassSexDemand = 10780>>
+<<if def $topClassSexDemand>>
+	<<unset $topClassSexDemand>>
 <</if>>
-<<if ndef $upperClassSexDemand>>
-	<<set $upperClassSexDemand = 8000>>
+<<if def $sexSubsidiesLC>>
+	<<set $sexSubsidies.lowerClass = $sexSubsidiesLC>>
+	<<unset $sexSubsidiesLC>>
 <</if>>
-<<if ndef $topClassSexDemand>>
-	<<set $topClassSexDemand = 8000>>
+<<if def $sexSupplyBarriersLC>>
+	<<set $sexSupplyBarriers.lowerClass = $sexSupplyBarriersLC>>
+	<<unset $sexSupplyBarriersLC>>
 <</if>>
 <<if ndef $arcadePrice>>
 	<<set $arcadePrice = 2>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index 321937e53c99ad6365237826397b39193a79f715..0ee3099d1580fa10f0bd6b3392ff5ecc2c96d31b 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -627,7 +627,7 @@ down to meet you. $He's nude, having stripped in your office, and meets your gaz
 
 <<case "permitted masturbation">>
 
-Strolling through the penthouse late at night, thinking over a business problem, you pass <<if ($activeSlave.ID == $HeadGirl.ID) && ($HGSuite > 0)>>the door of your Head Girl's suite<<elseif ($activeSlave.livingRules == "luxurious")>>the door to one of the cozy little slave bedrooms<<else>>through the cavernous slave dormitory<</if>> and see <<EventNameLink>>, alone in bed tonight. $He's nude, of course, and has not pulled the sheets up over $himself. $He's lying face-down,
+Strolling through the penthouse late at night, thinking over a business problem, you pass <<if ($activeSlave.ID == $HeadGirl.ID) && ($HGSuite > 0)>>the door of your Head Girl's suite<<elseif ($activeSlave.rules.living == "luxurious")>>the door to one of the cozy little slave bedrooms<<else>>through the cavernous slave dormitory<</if>> and see <<EventNameLink>>, alone in bed tonight. $He's nude, of course, and has not pulled the sheets up over $himself. $He's lying face-down,
 <<if ($activeSlave.boobs > 10000)>>
 	though $his titanic tits prop $his torso up awkwardly,
 <<elseif ($activeSlave.boobs > 1600)>>
@@ -1784,7 +1784,7 @@ $He stops and <<if canSee($activeSlave)>>stares<<else>>faces you<</if>>, struggl
 <<case "desperately horny">>
 
 <<EventNameLink>> comes to see you, looking deeply unhappy and shivering occasionally.
-<<if ($activeSlave.speechRules == "restrictive")>>
+<<if ($activeSlave.rules.speech == "restrictive")>>
 	Since $he is not allowed to speak, $he just enters your office and stands there, unsure what to do.
 <<else>>
 	<<if !canTalk($activeSlave)>>
@@ -3204,7 +3204,7 @@ Opportunities for gallantry didn't used to fall into your lap like this, but wit
 
 <<case "happy dance">>
 
-As you pass by the area of the penthouse where slaves sleep one morning, you're struck by a <<if $activeSlave.voice > 2>>high, bubbly<<elseif $activeSlave.voice > 1>>feminine<<else>>deep<</if>> humming. It's <<EventNameLink>>, dancing <<if $activeSlave.livingRules == "luxurious">>in the doorway of $his room<<else>>at the foot of $his bedroll<</if>>, dancing like no one's watching. $He's just woken up, and <<if $activeSlave.physicalAge > 35>>is full of energy and vigor in open defiance of $his age<<elseif $activeSlave.physicalAge < 25>>is full of youthful energy and vigor<<else>>is full of health and energy<</if>><<if $activeSlave.belly >= 10000>>, despite being <<if $activeSlave.bellyPreg >= 3000>>heavily pregnant<<elseif $activeSlave.bellyImplant >= 3000>>heavily gravid<<else>>greatly bloated<</if>><</if>>. $He's letting it out by humming a beat and dancing seductively, all by $himself.
+As you pass by the area of the penthouse where slaves sleep one morning, you're struck by a <<if $activeSlave.voice > 2>>high, bubbly<<elseif $activeSlave.voice > 1>>feminine<<else>>deep<</if>> humming. It's <<EventNameLink>>, dancing <<if $activeSlave.rules.living == "luxurious">>in the doorway of $his room<<else>>at the foot of $his bedroll<</if>>, dancing like no one's watching. $He's just woken up, and <<if $activeSlave.physicalAge > 35>>is full of energy and vigor in open defiance of $his age<<elseif $activeSlave.physicalAge < 25>>is full of youthful energy and vigor<<else>>is full of health and energy<</if>><<if $activeSlave.belly >= 10000>>, despite being <<if $activeSlave.bellyPreg >= 3000>>heavily pregnant<<elseif $activeSlave.bellyImplant >= 3000>>heavily gravid<<else>>greatly bloated<</if>><</if>>. $He's letting it out by humming a beat and dancing seductively, all by $himself.
 
 <br><br>
 
@@ -3780,7 +3780,7 @@ I didn't mean to <<s>>ound con<<c>>eited, either. I gue<<ss>> I'm <<s>>till gett
 During $his weekly inspection, <<EventNameLink>> has trouble following the routine orders that position $him so you can examine $his body. The cause is not difficult to determine: $he's so cripplingly terrified that $he's having difficulty functioning. $He seems to be trying to obey you, but $he's so scared that $his mind is having trouble translating your simple verbal commands into physical obedience. You ask $him what $he's so frightened of. The question stuns $him, and $he <<if canSee($activeSlave)>>stares at<<else>>faces<</if>> you in mute horror, looking even more terrified than $he has up to this point and completely devoid of any idea how to respond. You order $him to respond, and this starts $him out of $his fugue. $He begins to cry, makes two false starts, sobs, and then begins forcing out words.
 <br><br>
 "E-e-everything," $he cries. "I'm <<s>>-<<s>>o <<s>>-<<s>>orry b-but I c-can't help," $he chokes on a sob and hiccups, "help it. Thi<<s>>, thi<<s>> pla<<c>>e, being a <<s>>e<<x>> <<s>>lave,
-<<switch $activeSlave.standardPunishment>>
+<<switch $activeSlave.rules.punishment>>
 <<case "confinement">>b-being <<sh>>-<<sh>>ut up in the d-dark
 <<case "whipping">>b-being wh-wh-whip-ped
 <<case "chastity">>h-having my p-part<<s>> locked up in ch-cha<<s>>tity
@@ -3823,7 +3823,7 @@ The slutty $desc wants it badly.
 
 <<case "arcade sadist">>
 
-You happen to come across <<EventNameLink>> during one of $his rest periods. $He's lying on a couch in the slave areas, <<if canSee($activeSlave)>>staring at the ceiling above $him<<else>>leaning back<</if>> with a dreamy expression on $his face. $He's <<if $activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation">>touching $himself idly.<<else>>not allowed to touch $himself, but $he's extremely aroused.<</if>> Whatever's on $his mind, it's so absorbing that $he doesn't realize you're there until you're standing over $him.
+You happen to come across <<EventNameLink>> during one of $his rest periods. $He's lying on a couch in the slave areas, <<if canSee($activeSlave)>>staring at the ceiling above $him<<else>>leaning back<</if>> with a dreamy expression on $his face. $He's <<if $activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation">>touching $himself idly.<<else>>not allowed to touch $himself, but $he's extremely aroused.<</if>> Whatever's on $his mind, it's so absorbing that $he doesn't realize you're there until you're standing over $him.
 <br><br>
 "<<S>>orry, <<Master>>," $he <<say>>s apologetically, <<if $activeSlave.belly >= 10000>>struggling<<else>>scrambling<</if>> to $his feet. "I didn't noti<<c>>e you there." <<if canSee($activeSlave)>>Seeing your questioning look<<elseif canHear($activeSlave)>>Hearing your lack of response<<else>>Sensing a request to continue<</if>>, $he explains $himself further. "I was ju<<s>>t thinking about, um, my favorite pla<<c>>e. I can almo<<s>>t get off ju<<s>>t by thinking about it." There's a wild, perverted gleam <<if canSee($activeSlave)>>in $his <<= App.Desc.eyesColor($activeSlave)>><<else>>on $his face<</if>>. $He's a confirmed sadist, so whatever $his favorite mental masturbation is probably quite strong.
 
@@ -4374,9 +4374,9 @@ From $his new position beneath you, $he must crane $his neck so $his <<if canSee
 <<case "back stretch">>
 
 You pass through your slaves' living area as some of them are starting their days. <<EventNameLink>> is one of them, and $he's just
-<<if $activeSlave.livingRules == "spare">>
+<<if $activeSlave.rules.living == "spare">>
 	crawled out of $his spartan bedroll.
-<<elseif $activeSlave.livingRules == "normal">>
+<<elseif $activeSlave.rules.living == "normal">>
 	gotten out of $his neat little cot.
 <<elseif $activeSlave.relationship >= 4>>
 	<<set _ress = $slaveIndices[$activeSlave.relationshipTarget]>>
@@ -4541,7 +4541,7 @@ You are alerted to an issue regarding your
 	since you have not yet updated your penthouse to accommodate slaves of $his girth,
 <</if>>
 the poor $girl has gotten lodged in the doorway exiting
-<<if ($activeSlave.livingRules == "luxurious")>>
+<<if ($activeSlave.rules.living == "luxurious")>>
 	$his room.
 <<elseif ($activeSlave.ID == $HeadGirl.ID) && ($HGSuite == 1)>>
 	$his suite.
@@ -4565,7 +4565,7 @@ The menials assigned to care for $him have been struggling for several weeks to
 You make a mental note to punish $his caretakers and then set out to see $his predicament for yourself.
 <br><br>
 The sight that greets you when you arrive is equal parts incredible and amusing. En route to the baths, the slave attempted to exit
-<<if ($activeSlave.livingRules == "luxurious")>>
+<<if ($activeSlave.rules.living == "luxurious")>>
 	$his room
 <<elseif ($activeSlave.ID == $HeadGirl.ID) && ($HGSuite == 1)>>
 	$his suite
@@ -17325,9 +17325,9 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 			You could carry the little slave like this as long as you like.
 		<</if>>
 		<<if _carried == 1>>
-			Knowing that $he'll need to get dressed before the next part of $his day, you carry $him to <<if $activeSlave.livingRules == "luxurious">>$his room<<else>>the part of the common area with where clothes are kept<</if>>. $He remains perfectly limp, letting $himself be carried without a word. When you set $him on $his feet,
+			Knowing that $he'll need to get dressed before the next part of $his day, you carry $him to <<if $activeSlave.rules.living == "luxurious">>$his room<<else>>the part of the common area with where clothes are kept<</if>>. $He remains perfectly limp, letting $himself be carried without a word. When you set $him on $his feet,
 		<<else>>
-			Knowing that $he'll need to get dressed before the next part of $his day, you help $him to <<if $activeSlave.livingRules == "luxurious">>$his room<<else>>the part of the common area with where clothes are kept<</if>>. $He lets you do most of the work, letting $himself be guided without a word. When you set $him on $his bed,
+			Knowing that $he'll need to get dressed before the next part of $his day, you help $him to <<if $activeSlave.rules.living == "luxurious">>$his room<<else>>the part of the common area with where clothes are kept<</if>>. $He lets you do most of the work, letting $himself be guided without a word. When you set $him on $his bed,
 		<</if>>
 		there's a little unaccountable moisture in $his <<= App.Desc.eyesColor($activeSlave)>> @@.mediumaquamarine;for some reason.@@ $He gives you a kiss and thanks you prettily.
 		<<set $activeSlave.trust += 4>>
@@ -18835,7 +18835,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
 		That was not quite the prescribed way of greeting you, there was no need to greet you as $he passed, and most importantly, $he's simply too cheery. Resolving to crush $his happiness, you call $him back to the office in a thunderous voice you know will reach $him. $He knows $he's made a mistake, but comes promptly, lower lip quivering. $His feelings are plain to see on $his face: surprise, @@.mediumorchid;betrayal,@@ @@.gold;fear.@@ $He thought $he could be friendly, and now $he knows $he was wrong. What's more, $he thought $he could be happy, and now $he's realizing that that was also wrong. As you
-		<<switch $activeSlave.standardPunishment>>
+		<<switch $activeSlave.rules.punishment>>
 		<<case "confinement">>close $him into a confinement cell,
 		<<case "whipping">>tie $him up for a brief whipping,
 		<<case "chastity">>lock $him into harsh chastity,
@@ -18952,7 +18952,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
 		$He obviously knows that breaking down like this would displease you, but you patiently explain that it's against the rules anyway. $He cries harder, nodding through $his tears. $He knows that interrupting you to beg would be profoundly stupid, so $he clasps $his hand<<if hasBothArms($activeSlave)>>s<</if>> in wordless submission. You tell $him that $he's to keep $himself under control; if $he fails, $he will be punished. Since $he failed, $he will now suffer $his standard punishment, and be
-		<<switch $activeSlave.standardPunishment>>
+		<<switch $activeSlave.rules.punishment>>
 		<<case "confinement">>
 			shut up in a box. @@.gold;$He breaks down,@@ falling to $his knees, begging abjectly for mercy.
 			<<if $activeSlave.belly >= 100000 || $activeSlave.boobs > 25000 || $activeSlave.weight > 190>>
@@ -19272,7 +19272,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 		<<if $activeSlave.belly >= 10000>> You spread your legs as you shift into a more comfortable position, stealthily showing mercy since $he can't possibly keep $his <<if $activeSlave.bellyPreg >= 3000>>full-term belly<<else>>_belly belly<</if>> off you otherwise.<</if>> $He bobs up and down, getting you off without ever touching you<<if $PC.dick != 0>>, other than the contact between your penis and the inside of $his body, of course<</if>>.
 		<<if $activeSlave.energy > 80>>
 			$He has such a powerful sex drive that even this sterile intercourse brings $him to orgasm.
-		<<elseif $activeSlave.releaseRules == "restrictive" || $activeSlave.releaseRules == "chastity">>
+		<<elseif $activeSlave.rules.release == "restrictive" || $activeSlave.rules.release == "chastity">>
 			$He obeys the rules about orgasm and hasn't gotten off as part of $his assignment recently, so $he orgasms despite the sterility of the intercourse.
 		<<else>>
 			$He does not orgasm, serving you properly and showing appropriate disregard for $his own pleasure.
diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw
index bb31ca17a1c01efc0e665cf49ffc10dde816c23a..f36ca921fc7d3bdc432b91050197874e7e84a418 100644
--- a/src/uncategorized/RETS.tw
+++ b/src/uncategorized/RETS.tw
@@ -928,7 +928,7 @@ The slaves are about to go to bed; they're naked, and the horny $activeSlave.sla
 <br><br>
 <<run Enunciate($subSlave)>>
 $subSlave.slaveName <<if _lewd>>blushes at the lewd<<else>>smiles at the<</if>> flattery, but after a moment's hesitation _he2 maintains _his2 reluctance.
-<<if $activeSlave.releaseRules == "permissive">>
+<<if $activeSlave.rules.release == "permissive">>
 	"Why don't you ju<<s>>t jerk off," _he2 asks dismissively. "<<S>>eriou<<s>>ly, you're allowed to."
 <<else>>
 	"Go find <<s>>omeone el<<s>>e," _he2 <<say>>s dismissively. "<<if _vaginal>>There are plenty of other pu<<ss>>ie<<s>> around for you to play with.<<else>>I'm <<s>>ure you can find <<s>>ome other _girl2 who wouldn't mind late night anal.<</if>>"
@@ -937,7 +937,7 @@ _He2 turns away.
 <br><br>
 <<run Enunciate($activeSlave)>>
 $activeSlave.slaveName is almost in tears.
-<<if $activeSlave.releaseRules == "permissive">>
+<<if $activeSlave.rules.release == "permissive">>
 	"I have," $he moans, blue balled. "<<if $activeSlave.aphrodisiacs > 0 || $activeSlave.inflationType == "aphrodisiac">>It'<<s>> the<<s>>e fucking aphrodi<<s>>iac<<s>>. I can't help it. Plea<<s>>e, plea<<s>>e let me try cumming in<<s>>ide you. I won't be able to <<s>>leep.<<else>>It'<<s>> not the <<s>>ame. I need to <<s>>tick my dick in <<s>>omething <<s>>o bad. Plea<<s>>e.<</if>>"
 <<else>>
 	"But I want you," $he moans, blue balled.
diff --git a/src/uncategorized/arcmgmt.tw b/src/uncategorized/arcmgmt.tw
index cf8b99f0c8d661191f94257b3250599c2277b3f9..ceee4a27953da9cb474f0208087f8c012128fe6b 100644
--- a/src/uncategorized/arcmgmt.tw
+++ b/src/uncategorized/arcmgmt.tw
@@ -18,47 +18,176 @@
 		You are providing your citizens with an adequate amount of slaves to be used as sexual objects, as is expected in your degradationist society.<br>
 	<</if>>
 <</if>>
-<<if $lowerClassSexDemandResult == 1>>
+<<if $sexDemandResult.lowerClass < 400>>
 	Your lower class citizens have @@.red;far too few options for sexual relief@@ inside your arcology.
-	<<if $lowerClassSatisfied == 0>>
+	<<if $classSatisfied.lowerClass == 0>>
 		They trust you will take care of this issue as soon as you are settled in.<br>
 	<<else>>
 		It is @@.red;causing dissatisfaction@@ among your lower class.<br>
 	<</if>>
-<<elseif $lowerClassSexDemandResult == 2>>
+<<elseif $sexDemandResult.lowerClass < 600>>
 	Your lower class citizens need @@.red;some more avenues for sexual relief@@ inside your arcology.
-	<<if $lowerClassSatisfied == 1>>
+	<<if $classSatisfied.lowerClass == 1>>
 		They see @@.green;you are on the right track@@ and anticipate further improvements.<br>
-	<<elseif $lowerClassSatisfied == 0>>
+	<<elseif $classSatisfied.lowerClass == 0>>
 		Their patience is being tested.<br>
 	<<else>>
 		It is @@.red;causing dissatisfaction@@ among your lower class.
 	<</if>>
-<<elseif $lowerClassSexDemandResult == 3>>
+<<elseif $sexDemandResult.lowerClass < 800>>
 	Your lower class citizens have no issue finding the sexual relief they need inside your arcology.
-	<<if $lowerClassSatisfied == 1>>
+	<<if $classSatisfied.lowerClass == 1>>
 		They are @@.green;delighted@@ with how quickly you've provided for them.<br>
 	<<else>>
 		<br>
 	<</if>>
-<<elseif $lowerClassSexDemandResult == 4>>
+<<elseif $sexDemandResult.lowerClass < 1000>>
 	Your lower class citizens are @@.green;happy with the availability of sexual services@@ inside your arcology.<br>
-<<elseif $lowerClassSexDemandResult == 5>>
+<<elseif $sexDemandResult.lowerClass == 1000>>
 	Your lower class citizens are @@.green;delighted with the abundance of sexual services@@ inside your arcology.<br>
 <</if>>
-<<print $NPCMarketShareLC/10>>% of the lower class market is serviced by other suppliers operating inside your arcology.<br>
+Lower class satisfaction is at <<print $sexDemandResult.lowerClass/10>>%, <<print $NPCMarketShare.lowerClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
 
-<<if $sexSupplyBarriersLC == 1>>
+<<if $sexSupplyBarriers.lowerClass == 1>>
 	<<run cashX(1000, "policies")>>
-<<elseif $sexSupplyBarriersLC == 2>>
+<<elseif $sexSupplyBarriers.lowerClass == 2>>
 	<<run cashX(5000, "policies")>>
-<<elseif $sexSupplyBarriersLC == 3>>
+<<elseif $sexSupplyBarriers.lowerClass == 3>>
 	<<run cashX(20000, "policies")>>
-<<elseif $sexSupplyBarriersLC == 4>>
+<<elseif $sexSupplyBarriers.lowerClass == 4>>
 	<<run cashX(60000, "policies")>>
 <</if>>
 <<if $sexSubsidiesLC > 0>>
-	<<run cashX($NPCSlaves.lowerClass * Math.pow($sexSubsidiesLC, 2) * 0.25, "policies")>>
+	<<run cashX($NPCSlaves.lowerClass * Math.pow($sexSubsidies.lowerClass, 2) * 0.25, "policies")>>
+<</if>>
+
+<<if $sexDemandResult.middleClass < 400>>
+	Your middle class citizens have @@.red;far too few options for sexual relief@@ inside your arcology.
+	<<if $classSatisfied.middleClass == 0>>
+		They trust you will take care of this issue as soon as you are settled in.<br>
+	<<else>>
+		It is @@.red;causing dissatisfaction@@ among your middle class.<br>
+	<</if>>
+<<elseif $sexDemandResult.middleClass < 600>>
+	Your middle class citizens need @@.red;some more avenues for sexual relief@@ inside your arcology.
+	<<if $classSatisfied.middleClass == 1>>
+		They see @@.green;you are on the right track@@ and anticipate further improvements.<br>
+	<<elseif $classSatisfied.middleClass == 0>>
+		Their patience is being tested.<br>
+	<<else>>
+		It is @@.red;causing dissatisfaction@@ among your middle class.
+	<</if>>
+<<elseif $sexDemandResult.middleClass < 800>>
+	Your middle class citizens have no issue finding the sexual relief they need inside your arcology.
+	<<if $classSatisfied.middleClass == 1>>
+		They are @@.green;delighted@@ with how quickly you've provided for them.<br>
+	<<else>>
+		<br>
+	<</if>>
+<<elseif $sexDemandResult.middleClass < 1000>>
+	Your middle class citizens are @@.green;happy with the availability of sexual services@@ inside your arcology.<br>
+<<elseif $sexDemandResult.middleClass == 1000>>
+	Your middle class citizens are @@.green;delighted with the abundance of sexual services@@ inside your arcology.<br>
+<</if>>
+Middle class satisfaction is at <<print $sexDemandResult.middleClass/10>>%, <<print $NPCMarketShare.middleClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
+
+<<if $sexSupplyBarriers.middleClass == 1>>
+	<<run cashX(1000, "policies")>>
+<<elseif $sexSupplyBarriers.middleClass == 2>>
+	<<run cashX(5000, "policies")>>
+<<elseif $sexSupplyBarriers.middleClass == 3>>
+	<<run cashX(20000, "policies")>>
+<<elseif $sexSupplyBarriers.middleClass == 4>>
+	<<run cashX(60000, "policies")>>
+<</if>>
+<<if $sexSubsidiesLC > 0>>
+	<<run cashX($NPCSlaves.middleClass * Math.pow($sexSubsidies.middleClass, 2) * 0.25, "policies")>>
+<</if>>
+
+<<if $sexDemandResult.upperClass < 400>>
+	Your upper class citizens have @@.red;far too few options for sexual relief@@ inside your arcology.
+	<<if $classSatisfied.upperClass == 0>>
+		They trust you will take care of this issue as soon as you are settled in.<br>
+	<<else>>
+		It is @@.red;causing dissatisfaction@@ among your upper class.<br>
+	<</if>>
+<<elseif $sexDemandResult.upperClass < 600>>
+	Your upper class citizens need @@.red;some more avenues for sexual relief@@ inside your arcology.
+	<<if $classSatisfied.upperClass == 1>>
+		They see @@.green;you are on the right track@@ and anticipate further improvements.<br>
+	<<elseif $classSatisfied.upperClass == 0>>
+		Their patience is being tested.<br>
+	<<else>>
+		It is @@.red;causing dissatisfaction@@ among your upper class.
+	<</if>>
+<<elseif $sexDemandResult.upperClass < 800>>
+	Your upper class citizens have no issue finding the sexual relief they need inside your arcology.
+	<<if $classSatisfied.upperClass == 1>>
+		They are @@.green;delighted@@ with how quickly you've provided for them.<br>
+	<<else>>
+		<br>
+	<</if>>
+<<elseif $sexDemandResult.upperClass < 1000>>
+	Your upper class citizens are @@.green;happy with the availability of sexual services@@ inside your arcology.<br>
+<<elseif $sexDemandResult.upperClass == 1000>>
+	Your upper class citizens are @@.green;delighted with the abundance of sexual services@@ inside your arcology.<br>
+<</if>>
+Upper class satisfaction is at <<print $sexDemandResult.upperClass/10>>%, <<print $NPCMarketShare.upperClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
+
+<<if $sexSupplyBarriers.upperClass == 1>>
+	<<run cashX(1000, "policies")>>
+<<elseif $sexSupplyBarriers.upperClass == 2>>
+	<<run cashX(5000, "policies")>>
+<<elseif $sexSupplyBarriers.upperClass == 3>>
+	<<run cashX(20000, "policies")>>
+<<elseif $sexSupplyBarriers.upperClass == 4>>
+	<<run cashX(60000, "policies")>>
+<</if>>
+<<if $sexSubsidiesLC > 0>>
+	<<run cashX($NPCSlaves.upperClass * Math.pow($sexSubsidies.upperClass, 2) * 0.25, "policies")>>
+<</if>>
+
+<<if $sexDemandResult.topClass < 400>>
+	Your arcology's millionaires have @@.red;far too few options for sexual relief@@ inside your arcology.
+	<<if $classSatisfied.topClass == 0>>
+		They trust you will take care of this issue as soon as you are settled in.<br>
+	<<else>>
+		It is @@.red;causing dissatisfaction@@ among your millionaires.<br>
+	<</if>>
+<<elseif $sexDemandResult.topClass < 600>>
+	Your arcology's millionaires need @@.red;some more avenues for sexual relief@@ inside your arcology.
+	<<if $classSatisfied.topClass == 1>>
+		They see @@.green;you are on the right track@@ and anticipate further improvements.<br>
+	<<elseif $classSatisfied.topClass == 0>>
+		Their patience is being tested.<br>
+	<<else>>
+		It is @@.red;causing dissatisfaction@@ among your millionaires.
+	<</if>>
+<<elseif $sexDemandResult.topClass < 800>>
+	Your arcology's millionaires have no issue finding the sexual relief they need inside your arcology.
+	<<if $classSatisfied.topClass == 1>>
+		They are @@.green;delighted@@ with how quickly you've provided for them.<br>
+	<<else>>
+		<br>
+	<</if>>
+<<elseif $sexDemandResult.topClass < 1000>>
+	Your arcology's millionaires are @@.green;happy with the availability of sexual services@@ inside your arcology.<br>
+<<elseif $sexDemandResult.topClass == 1000>>
+	Your arcology's millionaires are @@.green;delighted with the abundance of sexual services@@ inside your arcology.<br>
+<</if>>
+Millionaire satisfaction is at <<print $sexDemandResult.topClass/10>>%, <<print $NPCMarketShare.topClass/10>>% of the market is serviced by other suppliers operating inside your arcology.<br>
+
+<<if $sexSupplyBarriers.topClass == 1>>
+	<<run cashX(1000, "policies")>>
+<<elseif $sexSupplyBarriers.topClass == 2>>
+	<<run cashX(5000, "policies")>>
+<<elseif $sexSupplyBarriers.topClass == 3>>
+	<<run cashX(20000, "policies")>>
+<<elseif $sexSupplyBarriers.topClass == 4>>
+	<<run cashX(60000, "policies")>>
+<</if>>
+<<if $sexSubsidiesLC > 0>>
+	<<run cashX($NPCSlaves.topClass * Math.pow($sexSubsidies.topClass, 2) * 0.25, "policies")>>
 <</if>>
 
 <br>
@@ -956,8 +1085,8 @@ _SCD = Math.trunc(($upperClass * (2 + _slaveDemandU)) + ($topClass * (12 + _slav
 /*Lower Class Citizens*/
 /*Work left for lower class citizens*/
 <<set _LCD = Math.trunc((($LSCBase * ($localEcon / 100)) + ($arcologies[0].prosperity * 4) + _lowerClass + (($middleClass + $visitors * 0.6) * 1.5) + (($upperClass + $visitors * 0.2) * 3.5) + ($topClass * 18) - ($NPCSlaves + $menials) * _slaveProductivity) * $rentEffectL * _lowerClassP)>>
-<<if $lowerClassSatisfied != 0>>
-	<<set _LCD *= 1 + $lowerClassSatisfied * 0.06>>
+<<if $classSatisfied.lowerClass != 0>>
+	<<set _LCD *= 1 + $classSatisfied.lowerClass * 0.06>>
 <</if>>
 <<if _LCD < 0>>
 	<<set _LCD = 0>>
@@ -966,9 +1095,9 @@ _SCD = Math.trunc(($upperClass * (2 + _slaveDemandU)) + ($topClass * (12 + _slav
 	<br>@@.red;LCD is NaN, report this issue!@@
 <<else>>/*Changing population depending on work available*/
 	<br>
-	<<if $lowerClassSatisfied < 0>>
+	<<if $classSatisfied.lowerClass < 0>>
 		Your lower class is @@.red;sexually frustrated@@ and would rather live elsewhere.
-	<<elseif $lowerClassSatisfied > 0>>
+	<<elseif $classSatisfied.lowerClass > 0>>
 		Your lower class is @@.green;sexually satiated@@ and their happiness attracts others.
 	<</if>>
 	<<if $lowerClass < _LCD>>
@@ -1041,9 +1170,17 @@ _SCD = Math.trunc(($upperClass * (2 + _slaveDemandU)) + ($topClass * (12 + _slav
 /*Middle Class Citizens*/
 /*Demand for Middle Class*/
 <<set _MCD = Math.trunc((($MCBase * ($localEcon / 100)) + $arcologies[0].prosperity + _middleClass + ($NPCSlaves * 0.15) + ($lowerClass * 0.1) + (($upperClass + $visitors * 0.2) * 0.5) + ($topClass * 2.5)) * $rentEffectM * _middleClassP)>>
+<<if $classSatisfied.middleClass != 0>>
+	<<set _MCD *= 1 + $classSatisfied.middleClass * 0.06>>
+<</if>>
 <<if isNaN(_MCD)>>
 	<br>@@.red;MCD is NaN, report this issue!@@
 <<else>> /*Middle Class Citizens immigrating*/
+	<<if $classSatisfied.middleClass < 0>>
+		<br>Your middle class is @@.red;sexually frustrated@@ and would rather live elsewhere.
+	<<elseif $classSatisfied.middleClass > 0>>
+		<br>Your middle class is @@.green;sexually satiated@@ and their happiness attracts others.
+	<</if>>
 	<<if $middleClass < _MCD>>
 		<<set _MCImmigration = Math.trunc((_MCD - $middleClass) * (0.3 * _terrain)) + 1,
 		$middleClass += _MCImmigration>>
@@ -1067,9 +1204,17 @@ _SCD = Math.trunc(($upperClass * (2 + _slaveDemandU)) + ($topClass * (12 + _slav
 /*Upper Class Citizens*/
 /*Demand for Upper Class*/
 <<set _UCD = Math.trunc((($UCBase * ($localEcon / 100)) + ($arcologies[0].prosperity * 0.2) + _upperClass + ($NPCSlaves * 0.02) + ($lowerClass * 0.025) + (($middleClass + $visitors * 0.6) * 0.05) + ($topClass * 0.3)) * $rentEffectU * _upperClassP)>>
+<<if $classSatisfied.upperClass != 0>>
+	<<set _UCD *= 1 + $classSatisfied.upperClass * 0.06>>
+<</if>>
 <<if isNaN(_UCD)>>
 	<br>@@.red;UCD is NaN, report this issue!@@
 <<else>> /*Upper Class Citizens immigrating*/
+	<<if $classSatisfied.upperClass < 0>>
+		<br>Your upper class is @@.red;sexually frustrated@@ and would rather live elsewhere.
+	<<elseif $classSatisfied.upperClass > 0>>
+		<br>Your upper class is @@.green;sexually satiated@@ and their happiness attracts others.
+	<</if>>
 	<<if $upperClass < _UCD>>
 		<<set _UCImmigration = Math.trunc((_UCD - $upperClass) * (0.3 * _terrain)) + 1,
 		$upperClass += _UCImmigration>>
@@ -1097,8 +1242,14 @@ _SCD = Math.trunc(($upperClass * (2 + _slaveDemandU)) + ($topClass * (12 + _slav
 <<if $eliteFailTimer > 0>> /*when you fail the eugenics Elite and they leave this triggers*/
 	<<set _TCD = Math.trunc(($GDP / 15 + _topClass) * $rentEffectT * _topClassP + $TCBase - ($eliteFail / 15 * $eliteFailTimer)),
 	$eliteFailTimer -= 1>>
+	<<if $classSatisfied.topClass != 0>>
+		<<set _TCD *= 1 + $classSatisfied.topClass * 0.06>>
+	<</if>>
 <<else>>
 	<<set _TCD = Math.trunc(($GDP / 15 + _topClass) * $rentEffectT * _topClassP + $TCBase)>>
+	<<if $classSatisfied.topClass != 0>>
+		<<set _TCD *= 1 + $classSatisfied.topClass * 0.06>>
+	<</if>>
 <</if>>
 <<if _TCD < 15>>
 	<<set _TCD = 15>>
@@ -1106,6 +1257,11 @@ _SCD = Math.trunc(($upperClass * (2 + _slaveDemandU)) + ($topClass * (12 + _slav
 <<if isNaN(_TCD)>>
 	<br>@@.red;TCD is NaN, report this issue!@@
 <<else>> /*Top Class Citizens immigrating*/
+	<<if $classSatisfied.topClass < 0>>
+		<br>Your millionaires are @@.red;sexually frustrated@@ and would rather live elsewhere.
+	<<elseif $classSatisfied.topClass > 0>>
+		<br>Your millionaires are @@.green;sexually satiated@@ and their happiness attracts others.
+	<</if>>
 	<<if $topClass < _TCD>>
 		<<set _TCImmigration = Math.trunc((_TCD - $topClass) * (0.3 * _terrain)) + 1,
 		$topClass += _TCImmigration>>
@@ -1244,7 +1400,7 @@ _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>>
 	<<set _rentMultiplier *= 1.05>>
 	Those of your citizens who have not yet subscribed to the society you are building are permitted to live and do business here, but must pay a moderate jizya tax for the privilege as part of their rent.
 <</if>>
-<<set _rents = Math.trunc(($lowerClass * $LCRent + $middleClass * $MCRent + $upperClass * $UCRent + $topClass * $TCRent) * _rentMultiplier / 25)>>
+<<set _rents = Math.trunc(($lowerClass * $rent.lowerClass + $middleClass * $rent.middleClass + $upperClass * $rent.upperClass + $topClass * $rent.topClass) * _rentMultiplier / 25)>>
 <<if !Number.isInteger(_rents)>>
 	<br>@@.red;Error: rents is outside accepted range, please report this issue@@
 <<else>>
diff --git a/src/uncategorized/assistantEvents.tw b/src/uncategorized/assistantEvents.tw
index f2ec86232cce2de3d5c07105975ddd97d4abe863..ef361f7a59abf9b8fded63c997e6820dc75b9969 100644
--- a/src/uncategorized/assistantEvents.tw
+++ b/src/uncategorized/assistantEvents.tw
@@ -24,7 +24,7 @@ One morning, after seeing to an immense pile of business with $assistantName pro
 <<set $assistantOptions = 1>>
 <<set _smartPiercings = 0>>
 <<for $i = 0; $i < $slaves.length; $i++>>
-	<<if ($slaves[$i].releaseRules == "permissive") || ($slaves[$i].releaseRules == "masturbation")>>
+	<<if ($slaves[$i].rules.release == "permissive") || ($slaves[$i].rules.release == "masturbation")>>
 		<<set $activeSlave = $slaves[$i]>>
 		<<set _smartPiercings = 1>>
 		<<break>>
diff --git a/src/uncategorized/attendantWorkaround.tw b/src/uncategorized/attendantWorkaround.tw
index 04318902b6be6319a8d672bad83832e6c0b9ba80..74f91da19e859fe05eea607d14e10fa780cddfc0 100644
--- a/src/uncategorized/attendantWorkaround.tw
+++ b/src/uncategorized/attendantWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Attendant")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Attendant = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/brothelReport.tw b/src/uncategorized/brothelReport.tw
index c11deb301728bfab9ca2a9f2138ef97a43a6b2af..700c624fe2c0e749e3506726c4850b68f35d7adb 100644
--- a/src/uncategorized/brothelReport.tw
+++ b/src/uncategorized/brothelReport.tw
@@ -4,7 +4,7 @@
 </span>
 
 <<SlaveIDSort $BrothiIDs>>
-<<set _DL = $BrothiIDs.length, _SL = $slaves.length, $legendaryWhoreID = 0, $madamCashBonus = 0, _FLsFetish = 0, _profits = 0>>
+<<set _DL = $BrothiIDs.length, _SL = $slaves.length, $legendaryWhoreID = 0, _FLsFetish = 0, _profits = 0>>
 <<set $legendaryWombID = 0>>
 <<set _modded = 0, _old = 0, _pure = 0, _slim = 0, _implanted = 0, _stacked = 0, _unmodded = 0, _XX = 0, _XY = 0, _young = 0, _pregYes = 0, _pregNo = 0, _minBonus = 50, _maxBonus = 150>>
 
@@ -29,8 +29,8 @@
 	<<if $slaves[_FLs].trust < 45>>
 		<<set $slaves[_FLs].trust += 5>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
 		<<if $slaves[_FLs].fetish != "dom">>
@@ -50,7 +50,6 @@
 	&nbsp;&nbsp;&nbsp;&nbsp;<<= SlaveFullName($Madam)>> is serving as the Madam.
 	<<if $Madam.relationship == -3 && $Madam.devotion > 50>>
 		As your loving $wife, $he does $his best to attract attention to your brothel.
-		<<set $madamCashBonus += 0.25>>
 	<</if>>
 	<<if (_FLsFetish == 1)>>
 		$He isn't above sampling the merchandise $himself; before long it's obvious to $his girls that $he @@.lightcoral;really likes fucking them.@@
@@ -61,39 +60,26 @@
 		Though $Madam.slaveName does $his best to manage the brothel, with $his lack of skill $he can do little.
 	<<elseif ($Madam.skill.whoring <= 30)>>
 		$Madam.slaveName's basic skills marginally @@.yellowgreen;improve@@ business at $brothelName.
-		<<set $madamCashBonus += 0.05>>
 	<<elseif ($Madam.skill.whoring <= 60)>>
 		$Madam.slaveName's skills @@.yellowgreen;improve@@ business at $brothelName.
-		<<set $madamCashBonus += 0.1>>
 	<<elseif ($Madam.skill.whoring < 100)>>
 		$Madam.slaveName's skills greatly @@.yellowgreen;improve@@ business at $brothelName.
-		<<set $madamCashBonus += 0.15>>
 	<<else>>
 		$Madam.slaveName's mastery immensely @@.yellowgreen;improves@@ business at $brothelName.
-		<<set $madamCashBonus += 0.20>>
 	<</if>>
 	<<if ($Madam.actualAge > 35)>>
 		$His age and experience also contribute.
-		<<set $madamCashBonus += 0.05>>
-	<<elseif $AgePenalty == 0>>
-		<<set $madamCashBonus += 0.05>>
 	<</if>>
 	<<if setup.madamCareers.includes($Madam.career)>>
 		$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.
-		<<set $madamCashBonus += 0.05>>
 	<<elseif $Madam.skill.madam >= $masteredXP>>
 		$He has experience from working for you that helps $him in the seedy business of selling other people's bodies for sex.
-		<<set $madamCashBonus += 0.05>>
-	<<else>>
-		<<set $slaves[_FLs].skill.madam += random(1,Math.ceil(($Madam.intelligence+$Madam.intelligenceImplant)/15) + 8)>>
 	<</if>>
 	<<if ($Madam.intelligence+$Madam.intelligenceImplant > 15)>>
 		$He is a clever manager.
-		<<set $madamCashBonus += 0.05*Math.floor(($Madam.intelligence+$Madam.intelligenceImplant)/32)>>
 	<</if>>
 	<<if ($Madam.dick > 2) && (canPenetrate($Madam))>>
 		$His turgid dick helps $him manage the bitches.
-		<<set $madamCashBonus += 0.05>>
 	<</if>>
 	<<for _dI = 0; _dI < _DL; _dI++>>
 		<<set $i = $slaveIndices[$BrothiIDs[_dI]]>>
@@ -116,37 +102,33 @@
 		<<elseif $Madam.relationshipTarget == $slaves[$i].ID>>
 			<<setLocalPronouns $slaves[$i] 2>>
 			$He dotes over $his <<print relationshipTerm($Madam)>>, $slaves[$i].slaveName, making sure _he2 is safe, but unfortunately driving potential customers away from _him2.
-			<<set $slaves[$i].devotion++, $madamCashBonus -= 0.05>>
+			<<set $slaves[$i].devotion++>>
 		<<elseif $familyTesting == 1 && areRelated($Madam, $slaves[$i]) > 0>>
 			<<setLocalPronouns $slaves[$i] 2>>
 			$He pays special attention to $his <<print relativeTerm($Madam,$slaves[$i])>>, $slaves[$i].slaveName, making sure _he2 is treated well and showing off _his2 skills.
-			<<set $slaves[$i].trust++, $madamCashBonus += 0.05>>
+			<<set $slaves[$i].trust++>>
 		<<elseif $Madam.relationTarget == $slaves[$i].ID && $familyTesting == 0>>
 			<<setLocalPronouns $slaves[$i] 2>>
 			$He pays special attention to $his $slaves[$i].relation, $slaves[$i].slaveName, making sure _he2 is treated well and showing off _his2 skills.
-			<<set $slaves[$i].trust++, $madamCashBonus += 0.05>>
+			<<set $slaves[$i].trust++>>
 		<</if>>
 		<<if $slaves[$i].prestigeDesc == "$He is a famed Free Cities whore, and commands top prices.">>
 			<<setLocalPronouns $slaves[$i] 2>>
 			$He makes sure to promote $slaves[$i].slaveName, the famed whore, in order to capitalize on _his2 popularity.
-			<<set $madamCashBonus += 0.15>>
 		<<elseif $slaves[$i].prestigeDesc == "$He is a famed Free Cities slut, and can please anyone.">>
 			<<setLocalPronouns $slaves[$i] 2>>
 			$He makes sure to promote $slaves[$i].slaveName, the famed entertainer, in order to capitalize on _his2 popularity.
-			<<set $madamCashBonus += 0.15>>
 		<<elseif $slaves[$i].prestigeDesc == "$He is remembered for winning best in show as a dairy cow.">>
 			<<setLocalPronouns $slaves[$i] 2>>
 			<<if ($arcologies[0].FSPhysicalIdealist != "unset")>>
 				<<if ($slaves[$i].muscles > 60) && ($slaves[$i].weight < 30) && ($slaves[$i].lactation > 0) && (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 6000)>>
 					$He shows off how even a cow like $slaves[$i].slaveName can achieve physical perfection.
-					<<set $madamCashBonus += 0.15>>
 				<<else>>
-					A<<if ($slaves[$i].muscles < 30)>>n unmuscled,<</if>><<if ($slaves[$i].weight > 30)>> fat,<</if>> 'prestigious' <<if ($slaves[$i].lactation > 0)>>cow<<elseif (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 6000)>>mass of titflesh<<else>>slave<</if>> like $slaves[$i].slaveName is woefully out of fashion, so $Milkmaid.slaveName tries to draw attention away from _him2.
+					A<<if ($slaves[$i].muscles < 30)>>n unmuscled,<</if>><<if ($slaves[$i].weight > 30)>> fat,<</if>> 'prestigious' <<if ($slaves[$i].lactation > 0)>>cow<<elseif (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 6000)>>mass of titflesh<<else>>slave<</if>> like $slaves[$i].slaveName is woefully out of fashion, so $Madam.slaveName tries to draw attention away from _him2.
 				<</if>>
 			<<else>>
 				<<if ($slaves[$i].lactation > 0) && (($slaves[$i].boobs-$slaves[$i].boobsImplant) > 6000)>>
 					$He makes sure to massage $slaves[$i].slaveName's huge breasts to get the milk flowing before enticing clients to suckle and play with _him2.
-					<<set $madamCashBonus += 0.10>>
 				<<else>>
 					$He would like to show off $slaves[$i].slaveName's huge udders, but $slaves[$i].slaveName <<if ($slaves[$i].lactation == 0)>>isn't producing milk anymore<<else>>doesn't exactly have huge udders anymore<</if>>.
 				<</if>>
@@ -156,14 +138,12 @@
 			<<if $arcologies[0].FSGenderFundamentalist != "unset">> /* this needs review - doesn't fit right. An XY slave would be expected to be masculine. */
 				<<if ($slaves[$i].balls == 0) && ($slaves[$i].dick == 0) && ($slaves[$i].vagina > -1)>>
 					$He uses $slaves[$i].slaveName as an example of how even a huge-balled freak like _him2 can be restored to proper femininity.
-					<<set $madamCashBonus += 0.20>>
 				<<else>>
 					$He tries to hide $slaves[$i].slaveName, 'her' body being notorious for its defiance of conventional femininity.
 				<</if>>
 			<<else>>
 				<<if (($slaves[$i].balls > 5) && ($slaves[$i].dick != 0)) || (($slaves[$i].balls > 4) && ($slaves[$i].dick != 0) && ($slaves[$i].prostate > 1))>>
 					$He shows off $slaves[$i].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.
-					<<set $madamCashBonus += 0.15>>
 				<<else>>
 					$He would love to show off $slaves[$i].slaveName's copious loads, but $slaves[$i].slaveName<<if $slaves[$i].dick == 0>> doesn't have a dick<<elseif $slaves[$i].balls == 0>>'s not producing cum<<else>>'s orgasms just aren't messy enough<</if>>.
 				<</if>>
@@ -172,38 +152,26 @@
 			<<setLocalPronouns $slaves[$i] 2>>
 			<<if $slaves[$i].bellyPreg >= 5000>>
 				$He makes sure $slaves[$i].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.
-				<<set $madamCashBonus -= 0.05>>
 			<<elseif canGetPregnant($slaves[$i])>>
 				$He makes sure to play off $slaves[$i].slaveName's fame and fertility by enticing potential customers to be the one to claim _his2 womb by filling it with their child.
-				<<set $madamCashBonus += 0.15>>
 			<<else>>
 				$He would love to play off of $slaves[$i].slaveName's fame and fertility, but unfortunately _he2 <<if $slaves[$i].pregKnown == 1 && $slaves[$i].bellyPreg < 1500>>is already pregnant and not far enough along to show it<<elseif $slaves[$i].pregKnown == 1 && $slaves[$i].bellyPreg < 5000>>already pregnant, but not enough to be exciting<<else>>is unable to get knocked up<</if>>.
 			<</if>>
 		<</if>>
 	<</for>>
 
-	<<if (_DL < 5)>>
-		<<set $slavesGettingHelp = 0>>
-		<<if $universalRulesFacilityWork == 1>>
-			<<for $i = 0; $i < _SL; $i++>>
-				<<if ($slaves[$i].assignment == "whore")>>
-					<<set $slavesGettingHelp++>>
-				<</if>>
-			<</for>>
-		<</if>>
-		<<if (_DL+$slavesGettingHelp < 5)>>
-			<<set $i = _FLs>> /* apply following SA passages to facility leader */
-			<<setLocalPronouns $slaves[$i]>>
-			<<set _oldCash = $cash>>
-			<<if $showEWD != 0>>
-				<br>&nbsp;&nbsp;&nbsp;&nbsp;$He <<= saWhore($slaves[$i])>>
-			<<else>>
-				<<run saWhore($slaves[$i])>>
-			<</if>>
-			<br>&nbsp;&nbsp;&nbsp;&nbsp;
-			$He whores $himself because $he doesn't have enough whores to manage to keep $him busy, and makes @@.yellowgreen;<<print cashFormat($Madam.lastWeeksCashIncome)>>.@@ $He can charge more for $his time, since many citizens find it erotic to fuck the Madam.
-			<<set _profits += $cash-_oldCash, _oldCash = $cash>>
+	<<if (_DL+$brothelSlavesGettingHelp < 10)>>
+		<<set $i = _FLs>> /* apply following SA passages to facility leader */
+		<<setLocalPronouns $slaves[$i]>>
+		<<set _oldCash = $cash>>
+		<<if $showEWD != 0>>
+			<br>&nbsp;&nbsp;&nbsp;&nbsp;$He <<= saWhore($slaves[$i])>>
+		<<else>>
+			<<run saWhore($slaves[$i])>>
 		<</if>>
+		<br>&nbsp;&nbsp;&nbsp;&nbsp;
+		$He whores $himself because $he doesn't have enough whores to manage to keep $him busy, and makes @@.yellowgreen;<<print cashFormat($Madam.lastWeeksCashIncome)>>.@@ $He can charge more for $his time, since many citizens find it erotic to fuck the Madam.
+		<<set _profits += $cash - _oldCash, _oldCash = $cash>>
 	<</if>>
 	<<if (_DL > 0)>><br><br><</if>>
 <</if>>
@@ -301,9 +269,9 @@
 		<<set $slaves[$i].health += _healthBonus, $slaves[$i].aphrodisiacs = _aphrod>>
 		<<switch $brothelDecoration>>
 		<<case "Degradationist" "standard">>
-			<<set $slaves[$i].livingRules = "spare">>
+			<<set $slaves[$i].rules.living = "spare">>
 		<<default>>
-			<<set $slaves[$i].livingRules = "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<</switch>>
 		<<if ($slaves[$i].health < -80)>>
 			<<set $slaves[$i].health += 20>>
diff --git a/src/uncategorized/cellblockReport.tw b/src/uncategorized/cellblockReport.tw
index f09312781dd143f7b868c2e01de64589df289aba..7aa1b7922307a49304da368e8b882b3851a2f5b7 100644
--- a/src/uncategorized/cellblockReport.tw
+++ b/src/uncategorized/cellblockReport.tw
@@ -29,8 +29,8 @@
 	<<if $slaves[_FLs].trust < 60>>
 		<<set $slaves[_FLs].trust += 3>>
 	<</if>>
-	<<if ($slaves[_FLs].livingRules != "luxurious")>>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if ($slaves[_FLs].rules.living != "luxurious")>>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
 		<<if $slaves[_FLs].fetish != "sadist">>
@@ -176,13 +176,13 @@
 	<</if>>
 	<<switch $cellblockDecoration>>
 	<<case "Paternalist">>
-		<<set $slaves[$i].livingRules = "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 		<<if ($slaves[$i].inflation > 0)>>
 			<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, $slaves[$i].milkSource = 0>>
 			<<run SetBellySize($slaves[$i])>>
 		<</if>>
 	<<case "Pastoralist">>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 		<<if $slaves[$i].inflation == 0>>
 			<<if $slaves[$i].pregKnown == 0 && $slaves[$i].bellyImplant < 1500>>
 				<<set $slaves[$i].inflation = 2, $slaves[$i].inflationType = "milk", $slaves[$i].inflationMethod = 1>>
@@ -192,7 +192,7 @@
 			<<run SetBellySize($slaves[$i])>>
 		<</if>>
 	<<case "Hedonistic">>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 		<<if $slaves[$i].weight < 200>>
 			<<if $slaves[$i].weightDirection == 1>>
 				<<set $slaves[$i].weight += 5>>
@@ -214,7 +214,7 @@
 			<<run SetBellySize($slaves[$i])>>
 		<</if>>
 	<<default>>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 		<<if ($slaves[$i].inflation > 0)>>
 			<<set $slaves[$i].inflation = 0, $slaves[$i].inflationType = "none", $slaves[$i].inflationMethod = 0, $slaves[$i].milkSource = 0>>
 			<<run SetBellySize($slaves[$i])>>
diff --git a/src/uncategorized/clinicReport.tw b/src/uncategorized/clinicReport.tw
index 6c8d0feba52293fab230b17eb2d110026680add7..55f0e982cb82461092c7ca9438adaa68ad27d3cc 100644
--- a/src/uncategorized/clinicReport.tw
+++ b/src/uncategorized/clinicReport.tw
@@ -22,8 +22,8 @@
 		<<set $slaves[_FLs].trust++>>
 	<</if>>
 
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 
 	<<set $slaves[_FLs].devotion += _devBonus>>
@@ -246,11 +246,11 @@
 
 	<<switch $clinicDecoration>>
 	<<case "Eugenics" "Gender Fundamentalist" "Gender Radicalist" "Hedonistic" "Intellectual Dependency" "Maturity Preferentialist" "Paternalist" "Petite Admiration" "Repopulation Focus" "Slimness Enthusiast" "Statuesque Glorification" "Youth Preferentialist">>
-		<<set $slaves[$i].livingRules = "luxurious">>
+		<<set $slaves[$i].rules.living = "luxurious">>
 	<<case "Arabian Revivalist" "Aztec Revivalist" "Chattel Religionist" "Chinese Revivalist" "Edo Revivalist" "Egyptian Revivalist" "Roman Revivalist">>
-		<<set $slaves[$i].livingRules = "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 	<<default>>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 	<</switch>>
 
 	<<if ($Nurse != 0)>>
diff --git a/src/uncategorized/clubReport.tw b/src/uncategorized/clubReport.tw
index 822fe8c470c1612f489bc35176990cf7c3d7e0f8..9a93171e6667fed8c948bd1238ce507cff4d0d94 100644
--- a/src/uncategorized/clubReport.tw
+++ b/src/uncategorized/clubReport.tw
@@ -40,8 +40,8 @@
 			<<set _FLsFetish = 2, $slaves[_FLs].fetishStrength += 4>>
 		<</if>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	/% Make sure we have registered living expenses as for any other slave %/
 	<<run getSlaveStatisticData($DJ, $facility.club)>>
@@ -86,7 +86,7 @@
 	<<else>>
 		<<set $slaves[_FLs].skill.DJ += random(1,Math.ceil(($DJ.intelligence+$DJ.intelligenceImplant)/15) + 8)>>
 	<</if>>
-	<<if (_DL + $slavesGettingHelp < 10)>>
+	<<if (_DL + $clubSlavesGettingHelp < 10)>>
 		<<set $i = _FLs>> /* apply following SA passages to facility leader */
 		<<if ($legendaryEntertainerID == 0) && ($slaves[_FLs].prestige == 0) && ($slaves[_FLs].skill.entertainment >= 100) && ($slaves[_FLs].devotion > 50)>>
 			<<set $legendaryEntertainerID = $slaves[_FLs].ID>>
@@ -205,8 +205,8 @@
 			<<set $slaves[$i].health += 7>>
 		<</if>>
 
-		<<if $slaves[$i].livingRules != "normal">>
-			<<set $slaves[$i].livingRules = "normal">>
+		<<if $slaves[$i].rules.living != "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<</if>>
 
 		<<if $showEWD != 0>>
diff --git a/src/uncategorized/concubineWorkaround.tw b/src/uncategorized/concubineWorkaround.tw
index 9c340c2efa087d28697c108f18d393a62d238ab8..c46d05211881ef8e4f5637ab09b54dace92b653d 100644
--- a/src/uncategorized/concubineWorkaround.tw
+++ b/src/uncategorized/concubineWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be your Concubine")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Concubine = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw
index 3ddb0b7294ab9f77b9162f030eb73233e8e0b0eb..27e5e66774f999115fb6d03ec54e1857d806eb76 100644
--- a/src/uncategorized/costsReport.tw
+++ b/src/uncategorized/costsReport.tw
@@ -436,7 +436,7 @@ $researchLab.level > 0>>
 		<<case "work in the dairy">>
 			<<if $dairyRestraintsSetting >= 2>>
 				<<set _livingExpense = ($rulesCost*.75)>>
-			<<elseif $slaves[$i].livingRules == "normal">>
+			<<elseif $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<elseif $dairyDecoration == "Degradationist">>
 				<<set _livingExpense = ($rulesCost*.9)>>
@@ -444,15 +444,15 @@ $researchLab.level > 0>>
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "work as a farmhand">>
-			<<if $slaves[$i].livingRules == "luxurious">>
+			<<if $slaves[$i].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost)>>
-			<<elseif $slaves[$i].livingRules == "normal">>
+			<<elseif $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*2)>>
 			<<else>>
 				<<set _livingExpense = ($rulesCost*.9)>>
 			<</if>>
 		<<case "work in the brothel">>
-			<<if $slaves[$i].livingRules == "normal">>
+			<<if $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
@@ -460,23 +460,23 @@ $researchLab.level > 0>>
 		<<case "serve in the club" "learn in the schoolroom">>
 			<<set _livingExpense = ($rulesCost*1.5)>>
 		<<case "get treatment in the clinic">>
-			<<if $slaves[$i].livingRules == "luxurious">>
+			<<if $slaves[$i].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost*2)>>
-			<<elseif $slaves[$i].livingRules == "normal">>
+			<<elseif $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "rest in the spa" "work as a nanny">>
-			<<if $slaves[$i].livingRules == "luxurious">>
+			<<if $slaves[$i].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost*1.75)>>
-			<<elseif $slaves[$i].livingRules == "normal">>
+			<<elseif $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "be a servant">>
-			<<if $slaves[$i].livingRules == "normal">>
+			<<if $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<if $servantsQuartersDecoration == "Degradationist">>
@@ -486,7 +486,7 @@ $researchLab.level > 0>>
 				<</if>>
 			<</if>>
 		<<case "be confined in the cellblock">>
-			<<if $slaves[$i].livingRules == "normal">>
+			<<if $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.25)>>
 			<<else>>
 				<<set _livingExpense = ($rulesCost*.9)>>
@@ -494,13 +494,13 @@ $researchLab.level > 0>>
 		<<case "be the Madam" "be the DJ" "be the Nurse" "be the Wardeness" "be the Attendant" "be the Matron" "be the Schoolteacher" "be the Stewardess" "be the Milkmaid" "be the Farmer">>
 			<<set _livingExpense = ($rulesCost*2)>>
 		<<default>>
-			<<if $slaves[$i].livingRules == "luxurious">>
+			<<if $slaves[$i].rules.living == "luxurious">>
 				<<if $slaves[$i].relationship >= 4>>
 					<<set _livingExpense = ($rulesCost*3)>>
 				<<else>>
 					<<set _livingExpense = ($rulesCost*4)>>
 				<</if>>
-			<<elseif $slaves[$i].livingRules == "normal">>
+			<<elseif $slaves[$i].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*2)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
@@ -862,10 +862,10 @@ $researchLab.level > 0>>
 		<<set _individualCosts += Math.trunc($drugsCost*0.5)>>
 	<</if>>
 	<<if ($studio == 1)>>
-		<<if ($slaves[$i].pornFameSpending > 0)>>
+		<<if ($slaves[$i].porn.spending > 0)>>
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Publicity:</i>
-			@@.yellowgreen;<<print cashFormat($slaves[$i].pornFameSpending/$PCSlutContacts)>>@@
-			<<set _individualCosts += ($slaves[$i].pornFameSpending/$PCSlutContacts)>>
+			@@.yellowgreen;<<print cashFormat($slaves[$i].porn.spending/$PCSlutContacts)>>@@
+			<<set _individualCosts += ($slaves[$i].porn.spending/$PCSlutContacts)>>
 		<</if>>
 	<</if>>
 	<<if (($slaves[$i].assignment == "be your Concubine" ||$slaves[$i].relationship == -3) && $arcologies[0].FSPetiteAdmirationLaw == 1)>>
diff --git a/src/uncategorized/costsWidgets.tw b/src/uncategorized/costsWidgets.tw
index e7d8932868c5e1476f65100a53ccfab5ae4adeca..8294ebf8ef4ed74bf707977f1c03f6315aaff89e 100644
--- a/src/uncategorized/costsWidgets.tw
+++ b/src/uncategorized/costsWidgets.tw
@@ -9,7 +9,7 @@
 		<<case "work in the dairy">>
 			<<if $dairyRestraintsSetting >= 2>>
 				<<set _livingExpense = ($rulesCost*.75)>>
-			<<elseif $args[0].livingRules == "normal">>
+			<<elseif $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<elseif $dairyDecoration == "Degradationist">>
 				<<set _livingExpense = ($rulesCost*.9)>>
@@ -17,15 +17,15 @@
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "work as a farmhand">>
-			<<if $args[0].livingRules == "luxurious">>
+			<<if $args[0].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost)>>
-			<<elseif $args[0].livingRules == "normal">>
+			<<elseif $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*2)>>
 			<<else>>
 				<<set _livingExpense = ($rulesCost*.9)>>
 			<</if>>
 		<<case "work in the brothel">>
-			<<if $args[0].livingRules == "normal">>
+			<<if $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
@@ -33,23 +33,23 @@
 		<<case "serve in the club" "learn in the schoolroom">>
 			<<set _livingExpense = ($rulesCost*1.5)>>
 		<<case "get treatment in the clinic">>
-			<<if $args[0].livingRules == "luxurious">>
+			<<if $args[0].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost*2)>>
-			<<elseif $args[0].livingRules == "normal">>
+			<<elseif $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "rest in the spa" "work as a nanny">>
-			<<if $args[0].livingRules == "luxurious">>
+			<<if $args[0].rules.living == "luxurious">>
 				<<set _livingExpense = ($rulesCost*1.75)>>
-			<<elseif $args[0].livingRules == "normal">>
+			<<elseif $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
 			<</if>>
 		<<case "be a servant">>
-			<<if $args[0].livingRules == "normal">>
+			<<if $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.5)>>
 			<<else>>
 				<<if $servantsQuartersDecoration == "Degradationist">>
@@ -59,7 +59,7 @@
 				<</if>>
 			<</if>>
 		<<case "be confined in the cellblock">>
-			<<if $args[0].livingRules == "normal">>
+			<<if $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*1.25)>>
 			<<else>>
 				<<set _livingExpense = ($rulesCost*.9)>>
@@ -67,13 +67,13 @@
 		<<case "be the Madam" "be the DJ" "be the Nurse" "be the Wardeness" "be the Attendant" "be the Matron" "be the Schoolteacher" "be the Stewardess" "be the Milkmaid" "be the Farmer">>
 			<<set _livingExpense = ($rulesCost*2)>>
 		<<default>>
-			<<if $args[0].livingRules == "luxurious">>
+			<<if $args[0].rules.living == "luxurious">>
 				<<if $args[0].relationship >= 4>>
 					<<set _livingExpense = ($rulesCost*3)>>
 				<<else>>
 					<<set _livingExpense = ($rulesCost*4)>>
 				<</if>>
-			<<elseif $args[0].livingRules == "normal">>
+			<<elseif $args[0].rules.living == "normal">>
 				<<set _livingExpense = ($rulesCost*2)>>
 			<<else>>
 				<<set _livingExpense = $rulesCost>>
@@ -399,10 +399,10 @@
 		<<set _individualCosts += Math.trunc($drugsCost*0.5)>>
 	<</if>>
 	<<if ($studio == 1)>>
-		<<if ($args[0].pornFameSpending > 0)>>
+		<<if ($args[0].porn.spending > 0)>>
 			<br>&nbsp;&nbsp;&nbsp;&nbsp;<i>Publicity:</i>
-			@@.yellowgreen;<<print cashFormat($args[0].pornFameSpending/$PCSlutContacts)>>@@
-			<<set _individualCosts += ($args[0].pornFameSpending/$PCSlutContacts)>>
+			@@.yellowgreen;<<print cashFormat($args[0].porn.spending/$PCSlutContacts)>>@@
+			<<set _individualCosts += ($args[0].porn.spending/$PCSlutContacts)>>
 		<</if>>
 	<</if>>
 	<<if (($args[0].assignment == "be your Concubine" ||$args[0].relationship == -3) && $arcologies[0].FSPetiteAdmirationLaw == 1)>>
diff --git a/src/uncategorized/dairyReport.tw b/src/uncategorized/dairyReport.tw
index d4db7d1b067adaf23ab1430aa7239b3218bfe58b..bd4e3d9f469728d53043e2493266fe3ddefd91fb 100644
--- a/src/uncategorized/dairyReport.tw
+++ b/src/uncategorized/dairyReport.tw
@@ -109,8 +109,8 @@
 	<<if ($slaves[_FLs].health >= 80)>>
 		<<set $milkmaidHealthBonus++>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
 		<<if _milkers >= _cummers && _milkers >= _breeders>>
@@ -371,9 +371,9 @@
 	<</if>>
 	<<switch $dairyDecoration>>
 	<<case "Arabian Revivalist" "Aztec Revivalist" "Chattel Religionist" "Chinese Revivalist" "Degradationist" "Edo Revivalist" "Egyptian Revivalist" "Roman Revivalist" "Subjugationist" "Supremacist">>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 	<<default>>
-		<<set $slaves[$i].livingRules = "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 	<</switch>>
 	<<if $dairyPregSetting > 0>>
 		<<set WombCleanGenericReserve($slaves[$i], "incubator", 9999)>>
diff --git a/src/uncategorized/djWorkaround.tw b/src/uncategorized/djWorkaround.tw
index b5b918514dc47b39c40a120418e99a5e928aa0e2..2ea4f341c1c2bd08913b892be35d678798cd224c 100644
--- a/src/uncategorized/djWorkaround.tw
+++ b/src/uncategorized/djWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the DJ")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $DJ = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw
index fb1dacb00146bd9f9b01009bfb6fb89962846aa2..455133a9e1a457a1ca47f925f5c1772cee3b68af 100644
--- a/src/uncategorized/endWeek.tw
+++ b/src/uncategorized/endWeek.tw
@@ -253,7 +253,7 @@
 	<<set $PC.pregWeek++>>
 <</if>>
 
-<<set $HGEnergy = 0, $HGCum = 0, $HGSlaveSuccess = 0, $HeadGirl = 0, $Recruiter = 0, $Madam = 0, $madamCashBonus = 0, $DJ = 0, $unDJ = 0, $DJRepBonus = 0, $Milkmaid = 0, $Farmer = 0, $Collectrix = 0, $Stewardess = 0, $Schoolteacher = 0, $Wardeness = 0, $Concubine = 0, $Attendant = 0, $Matron = 0, $Nurse = 0, $Bodyguard = 0, $fuckSlaves = 0, $freeSexualEnergy = 0, $publicServants = 0, $cumSlaves = 0, $averageDick = 0, $slavesWithWorkingDicks = 0, $slaveJobValues = {}>>
+<<set $HGEnergy = 0, $HGCum = 0, $HGSlaveSuccess = 0, $HeadGirl = 0, $Recruiter = 0, $Madam = 0, $unMadam = 0, $madamCashBonus = 0, $whorePriceAdjustment = {}, $DJ = 0, $unDJ = 0, $DJRepBonus = 0, $Milkmaid = 0, $Farmer = 0, $Collectrix = 0, $Stewardess = 0, $Schoolteacher = 0, $Wardeness = 0, $Concubine = 0, $Attendant = 0, $Matron = 0, $Nurse = 0, $Bodyguard = 0, $fuckSlaves = 0, $freeSexualEnergy = 0, $publicServants = 0, $cumSlaves = 0, $averageDick = 0, $slavesWithWorkingDicks = 0, $slaveJobValues = {}>>
 
 /* GAMEOVERS */
 <<if $slaves.length < 1>>
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index da7f7afbcb324ded27deba9897a7f4be0ac2c838..d21f6e7bf2129cd3c13144cb61eeefa25e23e604 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -157,7 +157,7 @@ is
 
 	<<if $activeSlave.fuckdoll == 0>>
 		<<if $activeSlave.voice != 0>>
-			<<if $activeSlave.speechRules == "restrictive">>
+			<<if $activeSlave.rules.speech == "restrictive">>
 				$He is not allowed to speak unless spoken to, but when allowed, $he speaks in a
 			<<else>>
 				$He is allowed to ask questions, and when $he speaks, $he does so in a
@@ -210,23 +210,23 @@ is
 		<<if def _lsd>>
 			$He is
 			<<if $activeSlave.relationship <= 1>>
-				''@@.lightgreen;friends with <<= SlaveFullName($slaves[_lsd])>>;@@'' the rules <<if $activeSlave.relationshipRules != "restrictive">>encourage<<else>> discourage<</if>> their relationship.
+				''@@.lightgreen;friends with <<= SlaveFullName($slaves[_lsd])>>;@@'' the rules <<if $activeSlave.rules.relationship != "restrictive">>encourage<<else>> discourage<</if>> their relationship.
 			<<elseif $activeSlave.relationship <= 2>>
-				''@@.lightgreen;best friends with <<= SlaveFullName($slaves[_lsd])>>;@@'' the rules <<if $activeSlave.relationshipRules != "restrictive">>encourage<<else>> discourage<</if>> their close relationship.
+				''@@.lightgreen;best friends with <<= SlaveFullName($slaves[_lsd])>>;@@'' the rules <<if $activeSlave.rules.relationship != "restrictive">>encourage<<else>> discourage<</if>> their close relationship.
 			<<elseif $activeSlave.relationship <= 3>>
-				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s friend with benefits;@@'' the rules <<if $activeSlave.relationshipRules == "permissive">>encourage<<else>> discourage<</if>> their sexual relationship.
+				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s friend with benefits;@@'' the rules <<if $activeSlave.rules.relationship == "permissive">>encourage<<else>> discourage<</if>> their sexual relationship.
 			<<elseif $activeSlave.relationship <= 4>>
-				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s lover;@@'' the rules <<if $activeSlave.relationshipRules == "permissive">>encourage<<else>> discourage<</if>> their passionate relationship.
+				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s lover;@@'' the rules <<if $activeSlave.rules.relationship == "permissive">>encourage<<else>> discourage<</if>> their passionate relationship.
 			<<elseif $slaves[_lsd].relationship > 4>>
-				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s slave $wife;@@'' the rules <<if $activeSlave.relationshipRules == "permissive">>encourage<<else>> discourage<</if>> marital bliss.
+				''@@.lightgreen;<<= SlaveFullName($slaves[_lsd])>>'s slave $wife;@@'' the rules <<if $activeSlave.rules.relationship == "permissive">>encourage<<else>> discourage<</if>> marital bliss.
 			<</if>>
 		<</if>>
 	<<elseif $activeSlave.fuckdoll == 0>>
-		<<if $activeSlave.relationshipRules == "restrictive">>
+		<<if $activeSlave.rules.relationship == "restrictive">>
 			The rules forbid $him from associating freely with other slaves.
 		<<elseif $activeSlave.career == "a Futanari Sister">>
 			The rules encourage $him to form friendships with other slaves, but $he seems disinclined to do so. $He's both friendly with them and eagerly sexual with them when allowed, but $he seems to be waiting for someone, deep down.
-		<<elseif $activeSlave.relationshipRules == "just friends">>
+		<<elseif $activeSlave.rules.relationship == "just friends">>
 			The rules encourage $him to form friendships with other slaves.
 		<<else>>
 			The rules encourage $him to form relationships with other slaves.
@@ -244,18 +244,18 @@ is
 			$He lives in $his own room within the armory,
 		<<elseif ($activeSlave.assignment == "work in the dairy") && ($dairyRestraintsSetting > 1)>>
 			$He sleeps attached to a milking machine,
-		<<elseif $activeSlave.livingRules == "spare">>
+		<<elseif $activeSlave.rules.living == "spare">>
 			$He sleeps on a bedroll,
-		<<elseif $activeSlave.livingRules == "normal">>
+		<<elseif $activeSlave.rules.living == "normal">>
 			$He sleeps on a cot,
 		<<elseif $activeSlave.relationship >= 4>>
 			$He has $his own room, which $he shares with $his <<if $activeSlave.relationship == 5>>_wife2<<else>><<= _girl2>>friend<</if>> whenever they can manage it,
 		<<else>>
 			$He sleeps in $his own little room,
 		<</if>>
-		<<if $activeSlave.releaseRules == "restrictive">>
+		<<if $activeSlave.rules.release == "restrictive">>
 			and $he is not allowed to masturbate or proposition
-			<<if ($activeSlave.relationshipRules == "permissive")>>
+			<<if ($activeSlave.rules.relationship == "permissive")>>
 				<<if ($activeSlave.relationship == 5)>>
 					slaves other than $his _wife2.
 				<<elseif ($activeSlave.relationship == 4)>>
@@ -268,7 +268,7 @@ is
 			<<else>>
 				other slaves; $he must find sexual release in $his duties.
 			<</if>>
-		<<elseif $activeSlave.releaseRules == "sapphic">>
+		<<elseif $activeSlave.rules.release == "sapphic">>
 			<<if $universalRulesConsent == 1>>
 				and $he is not allowed to masturbate; $he must proposition other slaves to find sexual release,
 				<<if ($activeSlave.devotion > 50) || ($activeSlave.energy > 95)>>
@@ -288,16 +288,16 @@ is
 					which $he is rarely willing to do.
 				<</if>>
 			<</if>>
-		<<elseif $activeSlave.releaseRules == "masturbation">>
+		<<elseif $activeSlave.rules.release == "masturbation">>
 			and $he is only allowed to
 			<<if ($activeSlave.energy > 95)>>
 				masturbate, which $he is constantly doing.
 			<<else>>
 				masturbate.
 			<</if>>
-		<<elseif $activeSlave.releaseRules == "permissive">>
+		<<elseif $activeSlave.rules.release == "permissive">>
 			and $he is allowed to masturbate.
-		<<elseif $activeSlave.releaseRules == "chastity">>
+		<<elseif $activeSlave.rules.release == "chastity">>
 			and $he is to remain completely chaste.
 		<</if>>
 	<</if>>
@@ -1586,18 +1586,18 @@ is
 	<</if>>
 <</if>>
 
-<<if $activeSlave.pornPrestige > 0>>
-	<<if $activeSlave.pornPrestigeDesc>>$activeSlave.pornPrestigeDesc<</if>>
-	<<if $activeSlave.pornPrestige > 2>>
+<<if $activeSlave.porn.prestige > 0>>
+	<<if $activeSlave.porn.prestigeDesc>>$activeSlave.porn.prestigeDesc<</if>>
+	<<if $activeSlave.porn.prestige > 2>>
 		As such, $he tends to gain a following wherever $he goes.
-	<<elseif $activeSlave.pornPrestige > 1>>
+	<<elseif $activeSlave.porn.prestige > 1>>
 		As such, $he is recognized often.
 	<<else>>
 		As such, $he is recognized occasionally.
 	<</if>>
 <</if>>
 
-<<if $activeSlave.prestige > 0 || $activeSlave.pornPrestige > 1>>
+<<if $activeSlave.prestige > 0 || $activeSlave.porn.prestige > 1>>
 	<<if $activeSlave.fuckdoll == 0 && $activeSlave.markings == "birthmark">>
 		$He has a large, liver-colored birthmark, but since $he's well known, this uniqueness adds to $his beauty rather than detracting from it.
 	<</if>>
@@ -2024,11 +2024,11 @@ $He is
 <</for>>
 
 <<if $activeSlave.fuckdoll == 0>>
-	<<if $activeSlave.markings == "birthmark" && $activeSlave.prestige == 0 && $activeSlave.pornPrestige < 2>>
+	<<if $activeSlave.markings == "birthmark" && $activeSlave.prestige == 0 && $activeSlave.porn.prestige < 2>>
 		$He has a large, liver-colored birthmark, detracting from $his beauty.
 	<</if>>
 	<<if ($activeSlave.skin == "sun tanned")>>
-		<<if ($activeSlave.releaseRules != "restrictive" && $activeSlave.releaseRules != "masturbation" && $activeSlave.releaseRules != "chastity")>>
+		<<if ($activeSlave.rules.release != "restrictive" && $activeSlave.rules.release != "masturbation" && $activeSlave.rules.release != "chastity")>>
 			<<if ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1)>>
 				$His tan is slightly uneven, since $he enjoys
 				<<if ($activeSlave.fetish == "buttslut")>>
@@ -2288,18 +2288,18 @@ $He is
 				aphrodisiacs, but is an amputee, so $he cannot touch $himself. $He writhes with extreme sexual frustration, desperately trying to relieve $himself, but only managing to stir up the aphrodisiacs contained in $his gut, strengthening their effects even more.
 			<<elseif ($activeSlave.chastityVagina)>>
 				aphrodisiacs, but is wearing a chastity belt and cannot touch $himself. $He writhes with extreme sexual frustration, desperately trying to relieve $himself, but only managing to stir up the aphrodisiacs contained in $his gut, strengthening their effects even more.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his shaft with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>> $His frantic masturbation forces $his distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in $his gut and strengthening their effects even more.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0)>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his shaft and pussy with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>> $His frantic masturbation forces $his distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in $his gut and strengthening their effects even more.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.vagina == -1)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.vagina == -1)>>
 				aphrodisiacs, has<<if $seeDicks > 0>> no penis and<</if>> no vagina, and is not allowed to masturbate, so as $he stands before you $he
 				<<if $activeSlave.anus == 0>>
 					plays with a nipple with one hand while furiously rubbing $his virgin anus and the sensitive perineum beneath it with the other, desperately trying to get $himself off. $His frantic attempts force $his distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in $his gut and strengthening their effects even more.
 				<<else>>
 					uses <<if $activeSlave.anus > 2>>$his entire hand, formed into a beak shape,<<elseif $activeSlave.anus > 1>>two fingers<<else>>a finger<</if>> to fuck $his own ass. $His frantic attempts force $his distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in $his gut and strengthening their effects even more.
 				<</if>>
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation")>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation")>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his clit with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.
 			<<elseif ($activeSlave.dick != 0)>>
 				aphrodisiacs and is not allowed to masturbate, so as $he stands before you $he desperately presents $his open mouth, $his breasts, $his crotch, and $his anus in turn, hoping that something will entice you to give $him relief.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>>
@@ -2314,18 +2314,18 @@ $He is
 				aphrodisiacs, but is an amputee, so $he cannot touch $himself. $He writhes with extreme sexual frustration, desperately trying to relieve $himself.
 			<<elseif ($activeSlave.chastityVagina)>>
 				aphrodisiacs, but is wearing a chastity belt and cannot touch $himself. $He writhes with extreme sexual frustration, desperately trying to relieve $himself.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his shaft with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>>
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0)>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his shaft and pussy with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>>
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.vagina == -1)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.vagina == -1)>>
 				aphrodisiacs, has<<if $seeDicks > 0>> no penis and<</if>> no vagina, and is not allowed to masturbate, so as $he stands before you $he
 				<<if $activeSlave.anus == 0>>
 					plays with a nipple with one hand while furiously rubbing $his virgin anus and the sensitive perineum beneath it with the other, desperately trying to get $himself off.
 				<<else>>
 					uses <<if $activeSlave.anus > 2>>$his entire hand, formed into a beak shape,<<elseif $activeSlave.anus > 1>>two fingers<<else>>a finger<</if>> to fuck $his own ass.
 				<</if>>
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation")>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation")>>
 				aphrodisiacs and is allowed to masturbate, so as $he stands before you $he rubs $his clit with <<if hasBothArms($activeSlave)>>one hand while $he fingers $his anus with the other<<else>>$his hand<</if>>.
 			<<elseif ($activeSlave.dick != 0)>>
 				aphrodisiacs and is not allowed to masturbate, so as $he stands before you $he desperately presents $his open mouth, $his breasts, $his crotch, and $his anus in turn, hoping that something will entice you to give $him relief.<<if canPenetrate($activeSlave)>> $His cock is painfully erect.<</if>>
@@ -2339,11 +2339,11 @@ $He is
 				$He's on aphrodisiacs, but is an amputee, so $he cannot touch $himself. $He writhes with sexual frustration.
 			<<elseif ($activeSlave.chastityVagina)>>
 				$He's on aphrodisiacs, but is wearing a chastity belt and cannot touch $himself. $He writhes with sexual frustration.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0) && ($activeSlave.vagina == -1)>>
 				$He's on aphrodisiacs and is allowed to masturbate, so as $he obeys your commands $he idly rubs $his shaft with <<if hasBothArms($activeSlave)>>one hand while the other pinches a nipple<<else>>$his hand<</if>>.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation") && ($activeSlave.dick != 0)>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation") && ($activeSlave.dick != 0)>>
 				$He's on aphrodisiacs and is allowed to masturbate, so as $he obeys your commands $he idly rubs $his shaft and pussy with <<if hasBothArms($activeSlave)>>one hand while the other pinches a nipple<<else>>$his hand<</if>>.
-			<<elseif ($activeSlave.releaseRules == "permissive" || $activeSlave.releaseRules == "masturbation")>>
+			<<elseif ($activeSlave.rules.release == "permissive" || $activeSlave.rules.release == "masturbation")>>
 				$He's on aphrodisiacs and is allowed to masturbate, so as $he obeys your commands $he idly rubs $his pussy with <<if hasBothArms($activeSlave)>>one hand while the other pinches a nipple<<else>>$his hand<</if>>.
 			<<elseif ($activeSlave.dick != 0) && canPenetrate($activeSlave)>>
 				$He's on aphrodisiacs and is not allowed to masturbate, so as $he obeys your commands $he shifts $his weight uncomfortably. $His erect dick sways as $he does.
diff --git a/src/uncategorized/madamWorkaround.tw b/src/uncategorized/madamWorkaround.tw
index dea2a96ca665d0a3bcd4d5f4caf36fa178da7f1f..d713b9064f1d798607431dac8ac770ffe91686ae 100644
--- a/src/uncategorized/madamWorkaround.tw
+++ b/src/uncategorized/madamWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Madam")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Madam = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw
index 5a81ee450cee57664da58ab76aa93088db482214..aab6e91ab2fde5f34fbbf4a921ae2c1059c7fbf1 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -62,8 +62,8 @@
 <</for>>
 <<set _visibleSlaves = $slaves.filter(s => s.assignmentVisible == 1 && (s.assignment != "be your Head Girl" || $HGSuite != 1) && (s.assignment != "guard you" || $dojo <= 1)),
 	$slavesVisible = _visibleSlaves.length,
-	$dormitoryPopulation = _visibleSlaves.filter(s => s.livingRules != "luxurious").length,
-	$roomsPopulation = $slavesVisible - $dormitoryPopulation - _visibleSlaves.filter(s => s.livingRules == "luxurious" && s.relationship >= 4).length * 0.5,
+	$dormitoryPopulation = _visibleSlaves.filter(s => s.rules.living != "luxurious").length,
+	$roomsPopulation = $slavesVisible - $dormitoryPopulation - _visibleSlaves.filter(s => s.rules.living == "luxurious" && s.relationship >= 4).length * 0.5,
 	_PA = (Array.isArray($personalAttention) ? $personalAttention.map(function(x) { return getSlave(x.ID); }) : []),
 	_HG = $slaveIndices[$HeadGirl.ID],
 	_RC = $slaveIndices[$Recruiter.ID],
diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw
index 10beceace62928c51071350c502f49974a495990..5dac5f3cf86139d7d98b864e1a803aecfdd38d32 100644
--- a/src/uncategorized/manageArcology.tw
+++ b/src/uncategorized/manageArcology.tw
@@ -174,28 +174,102 @@ __Construction__
 
 __Sexual Service Policies__<br>
 If so desired, your assistant can help you manipulate the business environment within your arcology.<br>
-Currently outside parties are providing <<print $NPCMarketShareLC/10>>% of the sexual services.<br>
-<<if $NPCSexSubsidiesLC == 0>>
-	You can provide a minor subsidy for those selling sexual services to the lower class. //Upkeep is relative to the amount of sex provided by other parties// [[Minor Subsidy|Manage Arcology][$NPCSexSubsidiesLC = 1]]<br>
-<<elseif $NPCSexSubsidiesLC == 1>>
-	You are providing a minor subsidy for those selling sexual services to the lower class. //Upkeep is relative to the amount of sex provided by other parties// [[Cancel Subsidy|Manage Arcology][$NPCSexSubsidiesLC = 0]] | [[Moderate Subsidy|Manage Arcology][$NPCSexSubsidiesLC = 2]]<br>
-<<elseif $NPCSexSubsidiesLC == 2>>
-	You are providing a moderate subsidy for those selling sexual services to the lower class. //Upkeep is relative to the amount of sex provided by other parties// [[Minor Subsidy|Manage Arcology][$NPCSexSubsidiesLC = 1]] | [[Substantial Subsidy|Manage Arcology][$NPCSexSubsidiesLC = 3]]<br>
-<<elseif $NPCSexSubsidiesLC == 3>>
-	You are providing a substantial subsidy for those selling sexual services to the lower class. //Upkeep is relative to the amount of sex provided by other parties// [[Moderate Subsidy|Manage Arcology][$NPCSexSubsidiesLC = 2]] | [[Gratuitous Subsidy|Manage Arcology][$NPCSexSubsidiesLC = 4]]<br>
+Currently outside parties are providing <<print $NPCMarketShare.lowerClass/10>>%, <<print $NPCMarketShare.middleClass/10>>%, <<print $NPCMarketShare.upperClass/10>> and <<print $NPCMarketShare.topClass/10>>% of the sexual services for the lower, middle, upper and top class respectively.
+<br><br>
+
+<<if $sexSubsidies.lowerClass == 0>>
+	You can provide a minor subsidy for those selling sexual services to the lower class. //Upkeep is relative to the amount of sex provided by other parties// [[Minor Subsidy|Manage Arcology][$sexSubsidies.lowerClass = 1]]<br>
+<<elseif $sexSubsidies.lowerClass == 1>>
+	You are providing a minor subsidy for those selling sexual services to the lower class. //Upkeep is relative to the amount of sex provided by other parties// [[Cancel Subsidy|Manage Arcology][$sexSubsidies.lowerClass = 0]] | [[Moderate Subsidy|Manage Arcology][$sexSubsidies.lowerClass = 2]]<br>
+<<elseif $sexSubsidies.lowerClass == 2>>
+	You are providing a moderate subsidy for those selling sexual services to the lower class. //Upkeep is relative to the amount of sex provided by other parties// [[Minor Subsidy|Manage Arcology][$sexSubsidies.lowerClass = 1]] | [[Substantial Subsidy|Manage Arcology][$sexSubsidies.lowerClass = 3]]<br>
+<<elseif $sexSubsidies.lowerClass == 3>>
+	You are providing a substantial subsidy for those selling sexual services to the lower class. //Upkeep is relative to the amount of sex provided by other parties// [[Moderate Subsidy|Manage Arcology][$sexSubsidies.lowerClass = 2]] | [[Gratuitous Subsidy|Manage Arcology][$sexSubsidies.lowerClass = 4]]<br>
+<<else>>
+	You are providing a gratuitous subsidy for those selling sexual services to the lower class. //Upkeep is relative to the amount of sex provided by other parties// [[Substantial Subsidy|Manage Arcology][$sexSubsidies.lowerClass = 3]]<br>
+<</if>>
+<<if $sexSupplyBarriers.lowerClass == 0>>
+	You can make things more difficult for those supplying sexual services in the lower class segment if you are willing to spend 1000 reputation and pay a flat upkeep of @@.yellowgreen;<<print cashFormat(1000)>>.@@ <<if $rep > 1000>>[[Create Bureaucracy|Manage Arcology][$sexSupplyBarriers.lowerClass = 1, repX(-1000, "policies")]] <<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.lowerClass == 1>>
+	You have forced some unneeded bureaucracy on those selling sexual services to the lower class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(5000)>>.@@ <<if $rep > 1000>>[[Abolish Bureaucracy|Manage Arcology][$sexSupplyBarriers.lowerClass = 0, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.lowerClass = 2, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.lowerClass == 2>>
+	You have forced considerable bureaucracy on those selling sexual services to the lower class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(20000)>>.@@ <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.lowerClass = 1, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.lowerClass = 3, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.lowerClass == 3>>
+	You have forced stifling bureaucracy on those selling sexual services to the lower class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(60000)>>.@@ <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.lowerClass = 2, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.lowerClass = 4, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<else>>
+	You have forced suffocating bureaucracy on those selling sexual services to the lower class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.lowerClass = 3, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<</if>>
+<br><br>
+
+<<if $sexSubsidies.middleClass == 0>>
+	You can provide a minor subsidy for those selling sexual services to the middle class. //Upkeep is relative to the amount of sex provided by other parties// [[Minor Subsidy|Manage Arcology][$sexSubsidies.middleClass = 1]]<br>
+<<elseif $sexSubsidies.middleClass == 1>>
+	You are providing a minor subsidy for those selling sexual services to the middle class. //Upkeep is relative to the amount of sex provided by other parties// [[Cancel Subsidy|Manage Arcology][$sexSubsidies.middleClass = 0]] | [[Moderate Subsidy|Manage Arcology][$sexSubsidies.middleClass = 2]]<br>
+<<elseif $sexSubsidies.middleClass == 2>>
+	You are providing a moderate subsidy for those selling sexual services to the middle class. //Upkeep is relative to the amount of sex provided by other parties// [[Minor Subsidy|Manage Arcology][$sexSubsidies.middleClass = 1]] | [[Substantial Subsidy|Manage Arcology][$sexSubsidies.middleClass = 3]]<br>
+<<elseif $sexSubsidies.middleClass == 3>>
+	You are providing a substantial subsidy for those selling sexual services to the middle class. //Upkeep is relative to the amount of sex provided by other parties// [[Moderate Subsidy|Manage Arcology][$sexSubsidies.middleClass = 2]] | [[Gratuitous Subsidy|Manage Arcology][$sexSubsidies.middleClass = 4]]<br>
+<<else>>
+	You are providing a gratuitous subsidy for those selling sexual services to the middle class. //Upkeep is relative to the amount of sex provided by other parties// [[Substantial Subsidy|Manage Arcology][$sexSubsidies.middleClass = 3]]<br>
+<</if>>
+<<if $sexSupplyBarriers.middleClass == 0>>
+	You can make things more difficult for those supplying sexual services in the middle class segment if you are willing to spend 1000 reputation and pay a flat upkeep of @@.yellowgreen;<<print cashFormat(1000)>>.@@ <<if $rep > 1000>>[[Create Bureaucracy|Manage Arcology][$sexSupplyBarriers.middleClass = 1, repX(-1000, "policies")]] <<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.middleClass == 1>>
+	You have forced some unneeded bureaucracy on those selling sexual services to the middle class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(5000)>>.@@ <<if $rep > 1000>>[[Abolish Bureaucracy|Manage Arcology][$sexSupplyBarriers.middleClass = 0, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.middleClass = 2, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.middleClass == 2>>
+	You have forced considerable bureaucracy on those selling sexual services to the middle class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(20000)>>.@@ <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.middleClass = 1, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.middleClass = 3, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.middleClass == 3>>
+	You have forced stifling bureaucracy on those selling sexual services to the middle class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(60000)>>.@@ <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.middleClass = 2, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.middleClass = 4, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<else>>
+	You have forced suffocating bureaucracy on those selling sexual services to the middle class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.middleClass = 3, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<</if>>
+<br><br>
+
+<<if $sexSubsidies.upperClass == 0>>
+	You can provide a minor subsidy for those selling sexual services to the upper class. //Upkeep is relative to the amount of sex provided by other parties// [[Minor Subsidy|Manage Arcology][$sexSubsidies.upperClass = 1]]<br>
+<<elseif $sexSubsidies.upperClass == 1>>
+	You are providing a minor subsidy for those selling sexual services to the upper class. //Upkeep is relative to the amount of sex provided by other parties// [[Cancel Subsidy|Manage Arcology][$sexSubsidies.upperClass = 0]] | [[Moderate Subsidy|Manage Arcology][$sexSubsidies.upperClass = 2]]<br>
+<<elseif $sexSubsidies.upperClass == 2>>
+	You are providing a moderate subsidy for those selling sexual services to the upper class. //Upkeep is relative to the amount of sex provided by other parties// [[Minor Subsidy|Manage Arcology][$sexSubsidies.upperClass = 1]] | [[Substantial Subsidy|Manage Arcology][$sexSubsidies.upperClass = 3]]<br>
+<<elseif $sexSubsidies.upperClass == 3>>
+	You are providing a substantial subsidy for those selling sexual services to the upper class. //Upkeep is relative to the amount of sex provided by other parties// [[Moderate Subsidy|Manage Arcology][$sexSubsidies.upperClass = 2]] | [[Gratuitous Subsidy|Manage Arcology][$sexSubsidies.upperClass = 4]]<br>
+<<else>>
+	You are providing a gratuitous subsidy for those selling sexual services to the upper class. //Upkeep is relative to the amount of sex provided by other parties// [[Substantial Subsidy|Manage Arcology][$sexSubsidies.upperClass = 3]]<br>
+<</if>>
+<<if $sexSupplyBarriers.upperClass == 0>>
+	You can make things more difficult for those supplying sexual services in the upper class segment if you are willing to spend 1000 reputation and pay a flat upkeep of @@.yellowgreen;<<print cashFormat(1000)>>.@@ <<if $rep > 1000>>[[Create Bureaucracy|Manage Arcology][$sexSupplyBarriers.upperClass = 1, repX(-1000, "policies")]] <<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.upperClass == 1>>
+	You have forced some unneeded bureaucracy on those selling sexual services to the upper class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(5000)>>.@@ <<if $rep > 1000>>[[Abolish Bureaucracy|Manage Arcology][$sexSupplyBarriers.upperClass = 0, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.upperClass = 2, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.upperClass == 2>>
+	You have forced considerable bureaucracy on those selling sexual services to the upper class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(20000)>>.@@ <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.upperClass = 1, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.upperClass = 3, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.upperClass == 3>>
+	You have forced stifling bureaucracy on those selling sexual services to the upper class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(60000)>>.@@ <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.upperClass = 2, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.upperClass = 4, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<else>>
+	You have forced suffocating bureaucracy on those selling sexual services to the upper class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.upperClass = 3, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<</if>>
+<br><br>
+
+<<if $sexSubsidies.topClass == 0>>
+	You can provide a minor subsidy for those selling sexual services to the millionaires. //Upkeep is relative to the amount of sex provided by other parties// [[Minor Subsidy|Manage Arcology][$sexSubsidies.topClass = 1]]<br>
+<<elseif $sexSubsidies.topClass == 1>>
+	You are providing a minor subsidy for those selling sexual services to the millionaires. //Upkeep is relative to the amount of sex provided by other parties// [[Cancel Subsidy|Manage Arcology][$sexSubsidies.topClass = 0]] | [[Moderate Subsidy|Manage Arcology][$sexSubsidies.topClass = 2]]<br>
+<<elseif $sexSubsidies.topClass == 2>>
+	You are providing a moderate subsidy for those selling sexual services to the millionaires. //Upkeep is relative to the amount of sex provided by other parties// [[Minor Subsidy|Manage Arcology][$sexSubsidies.topClass = 1]] | [[Substantial Subsidy|Manage Arcology][$sexSubsidies.topClass = 3]]<br>
+<<elseif $sexSubsidies.topClass == 3>>
+	You are providing a substantial subsidy for those selling sexual services to the millionaires. //Upkeep is relative to the amount of sex provided by other parties// [[Moderate Subsidy|Manage Arcology][$sexSubsidies.topClass = 2]] | [[Gratuitous Subsidy|Manage Arcology][$sexSubsidies.topClass = 4]]<br>
 <<else>>
-	You are providing a gratuitous subsidy for those selling sexual services to the lower class. //Upkeep is relative to the amount of sex provided by other parties// [[Substantial Subsidy|Manage Arcology][$NPCSexSubsidiesLC = 3]]<br>
+	You are providing a gratuitous subsidy for those selling sexual services to the millionaires. //Upkeep is relative to the amount of sex provided by other parties// [[Substantial Subsidy|Manage Arcology][$sexSubsidies.topClass = 3]]<br>
 <</if>>
-<<if $sexSupplyBarriersLC == 0>>
-	You can make things more difficult for those supplying sexual services in the lower class segment if you are willing to spend 1000 reputation and pay a flat upkeep of @@.yellowgreen;<<print cashFormat(1000)>>.@@ <<if $rep > 1000>>[[Create Bureaucracy|Manage Arcology][$sexSupplyBarriersLC = 1, repX(-1000, "policies")]] <<else>>//You are not reputable enough//<</if>>
-<<elseif $sexSupplyBarriersLC == 1>>
-	You have forced some unneeded bureaucracy on those selling sexual services to the lower class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(5000)>>.@@ <<if $rep > 1000>>[[Abolish Bureaucracy|Manage Arcology][$sexSupplyBarriersLC = 0, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriersLC = 2, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
-<<elseif $sexSupplyBarriersLC == 2>>
-	You have forced considerable bureaucracy on those selling sexual services to the lower class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(20000)>>.@@ <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriersLC = 1, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriersLC = 3, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
-<<elseif $sexSupplyBarriersLC == 3>>
-	You have forced stifling bureaucracy on those selling sexual services to the lower class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(60000)>>.@@ <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriersLC = 2, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriersLC = 4, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<if $sexSupplyBarriers.topClass == 0>>
+	You can make things more difficult for those supplying sexual services in the millionaires segment if you are willing to spend 1000 reputation and pay a flat upkeep of @@.yellowgreen;<<print cashFormat(1000)>>.@@ <<if $rep > 1000>>[[Create Bureaucracy|Manage Arcology][$sexSupplyBarriers.topClass = 1, repX(-1000, "policies")]] <<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.topClass == 1>>
+	You have forced some unneeded bureaucracy on those selling sexual services to the millionaires making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(5000)>>.@@ <<if $rep > 1000>>[[Abolish Bureaucracy|Manage Arcology][$sexSupplyBarriers.topClass = 0, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.topClass = 2, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.topClass == 2>>
+	You have forced considerable bureaucracy on those selling sexual services to the millionaires making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(20000)>>.@@ <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.topClass = 1, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.topClass = 3, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+<<elseif $sexSupplyBarriers.topClass == 3>>
+	You have forced stifling bureaucracy on those selling sexual services to the millionaires making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. Increasing the bureaucracy further will cost a flat upkeep of @@.yellowgreen;<<print cashFormat(60000)>>.@@ <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.topClass = 2, repX(-1000, "policies")]] | [[Increase Bureaucracy|Manage Arcology][$sexSupplyBarriers.topClass = 4, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
 <<else>>
-	You have forced suffocating bureaucracy on those selling sexual services to the lower class making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriersLC = 3, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
+	You have forced suffocating bureaucracy on those selling sexual services to the millionaires making things a little more difficult. If you are willing to spend 1000 reputation you can change this policy. <<if $rep > 1000>>[[Reduce Bureaucracy|Manage Arcology][$sexSupplyBarriers.topClass = 3, repX(-1000, "policies")]]<<else>>//You are not reputable enough//<</if>>
 <</if>>
 
 <br><br>
@@ -208,53 +282,53 @@ _percLowerClass = Math.trunc(($lowerClass / ($ACitizens + $ASlaves)) * 1000) / 1
 _percMiddleClass = Math.trunc(($middleClass / ($ACitizens + $ASlaves)) * 1000) / 10,
 _percUpperClass = Math.trunc(($upperClass / ($ACitizens + $ASlaves)) * 1000) / 10,
 _percTopClass = Math.trunc(($topClass / ($ACitizens + $ASlaves)) * 1000) / 10>>
-<br>Lower Class Citizens  | $lowerClass | <<print _percLowerClass>>% | Rent @@.yellowgreen;<<print cashFormat($LCRent / 25)>>@@
-<<if $LCRent > 30>>
-	//Very High// | [[Decrease|Manage Arcology][$LCRent = 30, $rentEffectL = 0.94]]
-<<elseif $LCRent > 20>>
-	//High// | [[Increase|Manage Arcology][$LCRent = 40, $rentEffectL = 0.85]] | [[Decrease|Manage Arcology][$LCRent = 20, $rentEffectL = 1]]
-<<elseif $LCRent > 10>>
-	//Average// | [[Increase|Manage Arcology][$LCRent = 30, $rentEffectL = 0.94]] | [[Decrease|Manage Arcology][$LCRent = 10, $rentEffectL = 1.04]]
-<<elseif $LCRent > 0>>
-	//Low// | [[Increase|Manage Arcology][$LCRent = 20, $rentEffectL = 1]] | [[Free Rent|Manage Arcology][$LCRent = 0, $rentEffectL = 1.1]]
+<br>Lower Class Citizens  | $lowerClass | <<print _percLowerClass>>% | Rent @@.yellowgreen;<<print cashFormat($rent.lowerClass / 25)>>@@
+<<if $rent.lowerClass > $rentDefaults.lowerClass * 1.5>>
+	//Very High// | [[Decrease|Manage Arcology][$rent.lowerClass = $rentDefaults.lowerClass * 1.5, $rentEffectL = 0.94, $whoreBudget.lowerClass *= 9 / 8]]
+<<elseif $rent.lowerClass > $rentDefaults.lowerClass>>
+	//High// | [[Increase|Manage Arcology][$rent.lowerClass = $rentDefaults.lowerClass * 2, $rentEffectL = 0.85, $whoreBudget.lowerClass *= 8 / 9]] | [[Decrease|Manage Arcology][$rent.lowerClass = $rentDefaults.lowerClass, $rentEffectL = 1, $whoreBudget.lowerClass *= 10 / 9]]
+<<elseif $rent.lowerClass > $rentDefaults. lowerClass * 0.5>>
+	//Average// | [[Increase|Manage Arcology][$rent.lowerClass = $rentDefaults.lowerClass * 1.5, $rentEffectL = 0.94, $whoreBudget.lowerClass *= 9 / 10]] | [[Decrease|Manage Arcology][$rent.lowerClass = $rentDefaults.lowerClass * 0.5, $rentEffectL = 1.04, $whoreBudget.lowerClass *= 11 / 10]]
+<<elseif $rent.lowerClass > 0>>
+	//Low// | [[Increase|Manage Arcology][$rent.lowerClass = $rentDefaults.lowerClass, $rentEffectL = 1, $whoreBudget.lowerClass *= 10 / 11]] | [[Free Rent|Manage Arcology][$rent.lowerClass = 0, $rentEffectL = 1.1, $whoreBudget.lowerClass *= 12 / 11]]
 <<else>>
-	//Free// | [[Increase|Manage Arcology][$LCRent = 10, $rentEffectL = 1.04]]
+	//Free// | [[Increase|Manage Arcology][$rent.lowerClass = $rentDefaults.lowerClass * 0.5, $rentEffectL = 1.04, $whoreBudget.lowerClass *= 11 / 12]]
 <</if>>
-<br>Middle Class Citizens | $middleClass | <<print _percMiddleClass>>% | Rent @@.yellowgreen;<<print cashFormat($MCRent / 25)>>@@
-<<if $MCRent > 75>>
-	//Very High// | [[Decrease|Manage Arcology][$MCRent = 75, $rentEffectM = 0.94]]
-<<elseif $MCRent > 50>>
-	//High// | [[Increase|Manage Arcology][$MCRent = 100, $rentEffectM = 0.85]] | [[Decrease|Manage Arcology][$MCRent = 50, $rentEffectM = 1]]
-<<elseif $MCRent > 25>>
-	//Average// | [[Increase|Manage Arcology][$MCRent = 75, $rentEffectM = 0.94]] | [[Decrease|Manage Arcology][$MCRent = 25, $rentEffectM = 1.04]]
-<<elseif $MCRent > 0>>
-	//Low// | [[Increase|Manage Arcology][$MCRent = 50, $rentEffectM = 1]] | [[Free Rent|Manage Arcology][$MCRent = 0, $rentEffectM = 1.1]]
+<br>Middle Class Citizens | $middleClass | <<print _percMiddleClass>>% | Rent @@.yellowgreen;<<print cashFormat($rent.middleClass / 25)>>@@
+<<if $rent.middleClass > $rentDefaults.middleClass * 1.5>>
+	//Very High// | [[Decrease|Manage Arcology][$rent.middleClass = $rentDefaults.middleClass * 1.5, $rentEffectM = 0.94, $whoreBudget.middleClass *= 9 / 8]]
+<<elseif $rent.middleClass > $rentDefaults.middleClass>>
+	//High// | [[Increase|Manage Arcology][$rent.middleClass = $rentDefaults.middleClass * 2, $rentEffectM = 0.85, $whoreBudget.middleClass *= 8 / 9]] | [[Decrease|Manage Arcology][$rent.middleClass = $rentDefaults.middleClass, $rentEffectM = 1, $whoreBudget.middleClass *= 10 / 9]]
+<<elseif $rent.middleClass > $rentDefaults.middleClass * 0.5>>
+	//Average// | [[Increase|Manage Arcology][$rent.middleClass = $rentDefaults.middleClass * 1.5, $rentEffectM = 0.94, $whoreBudget.middleClass *= 9 / 10]] | [[Decrease|Manage Arcology][$rent.middleClass = $rentDefaults.middleClass * 0.5, $rentEffectM = 1.04, $whoreBudget.middleClass *= 11 / 10]]
+<<elseif $rent.middleClass > 0>>
+	//Low// | [[Increase|Manage Arcology][$rent.middleClass = $rentDefaults.middleClass, $rentEffectM = 1, $whoreBudget.middleClass *= 10 / 11]] | [[Free Rent|Manage Arcology][$rent.middleClass = 0, $rentEffectM = 1.1, $whoreBudget.middleClass *= 12 / 11]]
 <<else>>
-	//Free// | [[Increase|Manage Arcology][$MCRent = 25, $rentEffectM = 1.04]]
+	//Free// | [[Increase|Manage Arcology][$rent.middleClass = $rentDefaults.middleClass * 0.5, $rentEffectM = 1.04, $whoreBudget.middleClass *= 11 / 12]]
 <</if>>
-<br>Upper Class Citizens  | $upperClass | <<print _percUpperClass>>% | Rent @@.yellowgreen;<<print cashFormat($UCRent / 25)>>@@
-<<if $UCRent > 270>>
-	//Very High// | [[Decrease|Manage Arcology][$UCRent = 270, $rentEffectU = 0.94]]
-<<elseif $UCRent > 180>>
-	//High// | [[Increase|Manage Arcology][$UCRent = 360, $rentEffectU = 0.85]] | [[Decrease|Manage Arcology][$UCRent = 180, $rentEffectU = 1]]
-<<elseif $UCRent > 90>>
-	//Average// | [[Increase|Manage Arcology][$UCRent = 270, $rentEffectU = 0.94]] | [[Decrease|Manage Arcology][$UCRent = 90, $rentEffectU = 1.04]]
-<<elseif $UCRent > 0>>
-	//Low// | [[Increase|Manage Arcology][$UCRent = 180, $rentEffectU = 1]] | [[Free Rent|Manage Arcology][$UCRent = 0, $rentEffectU = 1.1]]
+<br>Upper Class Citizens  | $upperClass | <<print _percUpperClass>>% | Rent @@.yellowgreen;<<print cashFormat($rent.upperClass / 25)>>@@
+<<if $rent.upperClass > $rentDefaults.upperClass * 1.5>>
+	//Very High// | [[Decrease|Manage Arcology][$rent.upperClass = $rentDefaults.upperClass * 1.5, $rentEffectU = 0.94, $whoreBudget.upperClass *= 9 / 8]]
+<<elseif $rent.upperClass > $rentDefaults.upperClass>>
+	//High// | [[Increase|Manage Arcology][$rent.upperClass = $rentDefaults.upperClass * 2, $rentEffectU = 0.85, $whoreBudget.upperClass *= 8 / 9]] | [[Decrease|Manage Arcology][$rent.upperClass = $rentDefaults.upperClass, $rentEffectU = 1, $whoreBudget.upperClass *= 10 / 9 ]]
+<<elseif $rent.upperClass > $rentDefaults.upperClass * 0.5>>
+	//Average// | [[Increase|Manage Arcology][$rent.upperClass = $rentDefaults.upperClass * 1.5, $rentEffectU = 0.94, $whoreBudget.upperClass *= 9 / 10]] | [[Decrease|Manage Arcology][$rent.upperClass = $rentDefaults.upperClass * 0.5, $rentEffectU = 1.04, $whoreBudget.upperClass *= 11 / 10]]
+<<elseif $rent.upperClass > 0>>
+	//Low// | [[Increase|Manage Arcology][$rent.upperClass = $rentDefaults.upperClass, $rentEffectU = 1, $whoreBudget.upperClass *= 10 / 11]] | [[Free Rent|Manage Arcology][$rent.upperClass = 0, $rentEffectU = 1.1, $whoreBudget.upperClass *= 12 / 11]]
 <<else>>
-	//Free// | [[Increase|Manage Arcology][$UCRent = 90, $rentEffectU = 1.04]]
+	//Free// | [[Increase|Manage Arcology][$rent.upperClass = $rentDefaults.upperClass * 0.5, $rentEffectU = 1.04, $whoreBudget.upperClass *= 11 / 12]]
 <</if>>
-<br>Millionaires		  | $topClass | <<print _percTopClass>>% | Rent @@.yellowgreen;<<print cashFormat($TCRent / 25)>>@@
-<<if $TCRent > 975>>
-	//Very High// | [[Decrease|Manage Arcology][$TCRent = 975, $rentEffectT = 0.94]]
-<<elseif $TCRent > 650>>
-	//High// | [[Increase|Manage Arcology][$TCRent = 1300, $rentEffectT = 0.85]] | [[Decrease|Manage Arcology][$TCRent = 650, $rentEffectT = 1]]
-<<elseif $TCRent > 325>>
-	//Average// | [[Increase|Manage Arcology][$TCRent = 975, $rentEffectT = 0.94]] | [[Decrease|Manage Arcology][$TCRent = 325, $rentEffectT = 1.04]]
-<<elseif $TCRent > 0>>
-	//Low// | [[Increase|Manage Arcology][$TCRent = 650, $rentEffectT = 1]] | [[Free Rent|Manage Arcology][$TCRent = 0, $rentEffectT = 1.1]]
+<br>Millionaires		  | $topClass | <<print _percTopClass>>% | Rent @@.yellowgreen;<<print cashFormat($rent.topClass / 25)>>@@
+<<if $rent.topClass > $rentDefaults.topClass * 1.5>>
+	//Very High// | [[Decrease|Manage Arcology][$rent.topClass = $rentDefaults.topClass * 1.5, $rentEffectT = 0.94, $whoreBudget.topClass *= 9 / 8]]
+<<elseif $rent.topClass > $rentDefaults.topClass>>
+	//High// | [[Increase|Manage Arcology][$rent.topClass = $rentDefaults.topClass * 2, $rentEffectT = 0.85, $whoreBudget.topClass *= 8 / 9]] | [[Decrease|Manage Arcology][$rent.topClass = $rentDefaults.topClass, $rentEffectT = 1, $whoreBudget.topClass *= 10 / 9]]
+<<elseif $rent.topClass > $rentDefaults.topClass * 0.5>>
+	//Average// | [[Increase|Manage Arcology][$rent.topClass = $rentDefaults * 1.5, $rentEffectT = 0.94, $whoreBudget.topClass *= 9 / 10]] | [[Decrease|Manage Arcology][$rent.topClass = $rentDefaults.topClass * 0.5, $rentEffectT = 1.04, $whoreBudget.topClass *= 11 / 10]]
+<<elseif $rent.topClass > 0>>
+	//Low// | [[Increase|Manage Arcology][$rent.topClass = $rentDefaults.topClass, $rentEffectT = 1, $whoreBudget.topClass *= 10 / 11]] | [[Free Rent|Manage Arcology][$rent.topClass = 0, $rentEffectT = 1.1, $whoreBudget.topClass *= 12 / 11]]
 <<else>>
-	//Free// | [[Increase|Manage Arcology][$TCRent = 325, $rentEffectT = 1.04]]
+	//Free// | [[Increase|Manage Arcology][$rent.topClass = $rentDefaults.topClass * 0.5, $rentEffectT = 1.04, $whoreBudget.topClass *= 11 / 12]]
 <</if>>
 <br>Slaves				| $ASlaves | <<print _percASlaves>>%
 
diff --git a/src/uncategorized/masterSuiteReport.tw b/src/uncategorized/masterSuiteReport.tw
index 8b018dcfc047316678f869f81af7a3f97b0cb6d5..efe2babd177501fa533409d0c8f342b1c97f8b39 100644
--- a/src/uncategorized/masterSuiteReport.tw
+++ b/src/uncategorized/masterSuiteReport.tw
@@ -152,10 +152,10 @@
 					<</if>>
 				<</if>>
 			<</if>>
-			<<if $Concubine.pornPrestige > 2>>
+			<<if $Concubine.porn.prestige > 2>>
 				<<run repX(800, "concubine", $Concubine)>>
 				Having a porn star as your personal bed warmer @@.green;reflects on your standing.@@ Your citizens can only wonder at what kinky things happen behind closed doors.
-			<<elseif $Concubine.pornPrestige > 1>>
+			<<elseif $Concubine.porn.prestige > 1>>
 				<<run repX(300, "concubine", $Concubine)>>
 				Having a rising porn star as your personal bed warmer @@.green;reflects on your standing.@@
 			<</if>>
@@ -164,9 +164,9 @@
 				<<run repX(300, "concubine", $Concubine)>>
 			<</if>>
 			<<if $masterSuiteUpgradeLuxury > 0>>
-				<<set $slaves[$i].livingRules = "luxurious", $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
+				<<set $slaves[$i].rules.living = "luxurious", $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
 			<<else>>
-				<<set $slaves[$i].livingRules = "normal", $slaves[$i].devotion += 2, $slaves[$i].trust += 2>>
+				<<set $slaves[$i].rules.living = "normal", $slaves[$i].devotion += 2, $slaves[$i].trust += 2>>
 			<</if>>
 			<<if $masterSuiteDecoration != "standard">>
 				<<set $slaves[$i].devotion++>>
@@ -182,7 +182,7 @@
 			<</if>>
 			/* Perform facility based rule changes */
 			<<if ($masterSuiteUpgradeLuxury == 1)>>
-				<<set $slaves[$i].livingRules = "luxurious">>
+				<<set $slaves[$i].rules.living = "luxurious">>
 				<<if ($slaves[$i].devotion <= 95)>>
 					<<set $slaves[$i].devotion += 2>>
 				<</if>>
@@ -193,7 +193,7 @@
 					<<set $slaves[$i].trust++>>
 				<</if>>
 			<<elseif ($masterSuiteUpgradeLuxury == 2)>>
-				<<set $slaves[$i].livingRules = "luxurious">>
+				<<set $slaves[$i].rules.living = "luxurious">>
 				<<if ($slaves[$i].energy > 90)>>
 					<<if ($slaves[$i].devotion <= 95)>>
 						<<set $slaves[$i].devotion += 2>>
@@ -210,7 +210,7 @@
 					<</if>>
 				<</if>>
 			<<else>>
-				<<set $slaves[$i].livingRules = "spare">>
+				<<set $slaves[$i].rules.living = "spare">>
 				<<if ($slaves[$i].devotion <= 20) && ($slaves[$i].trust >= -20)>>
 					<<set $slaves[$i].devotion -= 2, $slaves[$i].trust -= 5>>
 				<<elseif ($slaves[$i].devotion <= 60)>>
diff --git a/src/uncategorized/milkmaidWorkaround.tw b/src/uncategorized/milkmaidWorkaround.tw
index 0cfb0267683e5c533a8f15b86ce074d6f8fdc35b..aef3a03b60035f6e604709aad2cc0ac84fa569c1 100644
--- a/src/uncategorized/milkmaidWorkaround.tw
+++ b/src/uncategorized/milkmaidWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Milkmaid")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Milkmaid = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/nurseWorkaround.tw b/src/uncategorized/nurseWorkaround.tw
index 7bca30dedf47d83b30f8ca019e515bd838c2aa47..74db4eb27ff0310064e9aa2e16da9693d9d09156 100644
--- a/src/uncategorized/nurseWorkaround.tw
+++ b/src/uncategorized/nurseWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Nurse")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Nurse = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/personalAssistantOptions.tw b/src/uncategorized/personalAssistantOptions.tw
index 63c0c58643fb4d0343e0198d6ceb380447491317..d3d0a9df65997cf6d231479aa30c6aefdce8f3a9 100644
--- a/src/uncategorized/personalAssistantOptions.tw
+++ b/src/uncategorized/personalAssistantOptions.tw
@@ -10,7 +10,7 @@
 Seated at your desk, you glance at the visual representation of $assistantName, down in one corner of your desk's glass top.
 
 <<set $masturbationAllowed = 0>>
-<<set $i = $slaves.findIndex(function(s) { return s.releaseRules == "permissive" || s.releaseRules == "masturbation"; })>>
+<<set $i = $slaves.findIndex(function(s) { return s.rules.release == "permissive" || s.rules.release == "masturbation"; })>>
 <<if $i != -1>>
 	<<set $masturbationAllowed = 1>>
 <</if>>
diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw
index dbc5a9e0951d02bc81d04e898ec65f062aa8d23b..e663baa3ff0feb604bd96428b86779f342deeddf 100644
--- a/src/uncategorized/randomIndividualEvent.tw
+++ b/src/uncategorized/randomIndividualEvent.tw
@@ -60,7 +60,7 @@
 							<<if $slaves[$i].boobs > 3000>>
 								<<set $REBoobCollisionSubIDs.push($slaves[$i].ID)>>
 							<</if>>
-							<<if $slaves[$i].releaseRules != "restrictive" && $slaves[$i].releaseRules != "masturbation" && $slaves[$i].releaseRules != "chastity">>
+							<<if $slaves[$i].rules.release != "restrictive" && $slaves[$i].rules.release != "masturbation" && $slaves[$i].rules.release != "chastity">>
 								<<if $slaves[$i].energy > 40>>
 									<<if canDoVaginal($slaves[$i]) || canDoAnal($slaves[$i])>>
 										<<set $REInterslaveBeggingIDs.push($slaves[$i].ID)>>
@@ -86,7 +86,7 @@
 						<</if>>
 					<</if>>
 					<<if $slaves[$i].assignmentVisible == 1>>
-						<<if $slaves[$i].livingRules == "luxurious">>
+						<<if $slaves[$i].rules.living == "luxurious">>
 							<<if $slaves[$i].devotion >= -20>>
 								<<if $slaves[$i].anus != 0>>
 									<<if canTaste($slaves[$i])>>
diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw
index a1c4f830917e515190f8769fa1d6518ac173a059..6565ff97e30d75e6cd77be126196364f66aae75c 100644
--- a/src/uncategorized/randomNonindividualEvent.tw
+++ b/src/uncategorized/randomNonindividualEvent.tw
@@ -106,7 +106,7 @@
 				<<if ($eventSlave.bellyPreg >= 1000000)>>
 					<<if $eventSlave.fetish != "mindbroken" && $eventSlave.fuckdoll == 0>>
 						<<if ($eventSlave.devotion > 50)>>
-							<<if $eventSlave.pornPrestige >= 1 || $eventSlave.prestige >= 1>>
+							<<if $eventSlave.porn.prestige >= 1 || $eventSlave.prestige >= 1>>
 								<<set $events.push("RE preg inventor")>>
 							<</if>>
 						<</if>>
@@ -286,7 +286,7 @@
 	<<set $buttslutInterestTargetID = 0, $cumslutInterestTargetID = 0, $dominantInterestTargetID = 0, $submissiveInterestTargetID = 0, $humiliationInterestTargetID = 0, $boobsInterestTargetID = 0, $pregnancyInterestTargetID = 0, $masochistInterestTargetID = 0>>
 
 	<<for $i = 0; $i < $slaves.length; $i++>>
-		<<if ($slaves[$i].speechRules != "restrictive")>>
+		<<if ($slaves[$i].rules.speech != "restrictive")>>
 			<<if isSlaveAvailable($slaves[$i])>>
 				<<if ($slaves[$i].fetish == "none") || ($slaves[$i].fetishStrength <= 60)>>
 					<<if ($buttslutID != 0) && ($buttslutInterestTargetID == 0)>>
@@ -452,7 +452,7 @@
 		<</if>>
 
 		<<if ($Bodyguard.relationship == 0)>>
-			<<if ($Bodyguard.relationshipRules == "permissive")>>
+			<<if ($Bodyguard.rules.relationship == "permissive")>>
 				<<if ($Bodyguard.fetish != "mindbroken")>>
 					<<set $j = $slaves.findIndex(function(s) { return s.ID != $Bodyguard.ID && s.relationship == 0 && s.devotion >= -20; })>>
 					<<if $j != -1>>
diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw
index 414552b5d502b2853c4b49f072dadae6115655f1..239aa809df5c1e976ee5c7bad5a796eae8241b18 100644
--- a/src/uncategorized/reRelativeRecruiter.tw
+++ b/src/uncategorized/reRelativeRecruiter.tw
@@ -395,11 +395,11 @@
 <<set $activeSlave.hormones = 0>>
 <<set $activeSlave.waist = 0>>
 <<set $activeSlave.prestige = 0>>
-<<set $activeSlave.pornFame = 0>>
-<<set $activeSlave.pornFameSpending = 0>>
-<<set $activeSlave.pornFeed = 0>>
-<<set $activeSlave.pornPrestige = 0>>
-<<set $activeSlave.pornPrestigeDesc = 0>>
+<<set $activeSlave.porn.viewerCount = 0>>
+<<set $activeSlave.porn.spending = 0>>
+<<set $activeSlave.porn.feed = 0>>
+<<set $activeSlave.porn.prestige = 0>>
+<<set $activeSlave.porn.prestigeDesc = 0>>
 <<set $activeSlave.porn.fameType = "none">>
 <<set $activeSlave.porn.focus = "none">>
 <<set $activeSlave.porn.fame.general = 0>>
@@ -1029,11 +1029,11 @@ You look up the _relationType. _He2 costs <<print cashFormat($slaveCost)>>, a ba
 	<<set $activeSlave.nipples = either("cute", "inverted", "partially inverted", "puffy")>>
 <</if>>
 <<set $activeSlave.prestige = 0>>
-<<set $activeSlave.pornFame = 0>>
-<<set $activeSlave.pornFameSpending = 0>>
-<<set $activeSlave.pornFeed = 0>>
-<<set $activeSlave.pornPrestige = 0>>
-<<set $activeSlave.pornPrestigeDesc = 0>>
+<<set $activeSlave.porn.viewerCount = 0>>
+<<set $activeSlave.porn.spending = 0>>
+<<set $activeSlave.porn.feed = 0>>
+<<set $activeSlave.porn.prestige = 0>>
+<<set $activeSlave.porn.prestigeDesc = 0>>
 <<set $activeSlave.porn.fameType = "none">>
 <<set $activeSlave.porn.focus = "none">>
 <<set $activeSlave.porn.fame.general = 0>>
diff --git a/src/uncategorized/reStandardPunishment.tw b/src/uncategorized/reStandardPunishment.tw
index e9e6fd6f7782f3eb440990e8eb685dc825346f17..55ed23b16134efd2093cf5a2a778d6bfca379545 100644
--- a/src/uncategorized/reStandardPunishment.tw
+++ b/src/uncategorized/reStandardPunishment.tw
@@ -43,7 +43,7 @@
 	<</if>>
 <<else>>
 	<<if $activeSlave.energy > 40>>
-		<<if $activeSlave.releaseRules != "restrictive" && $activeSlave.releaseRules != "masturbation" && $activeSlave.releaseRules != "chastity">>
+		<<if $activeSlave.rules.release != "restrictive" && $activeSlave.rules.release != "masturbation" && $activeSlave.rules.release != "chastity">>
 			<<set _sins.push("slave molestation")>>
 		<</if>>
 	<</if>>
@@ -71,16 +71,16 @@
 
 <<if $HeadGirl != 0>>
 	<<setLocalPronouns $HeadGirl 2>>
-	$HeadGirl.slaveName is <<if $activeSlave.standardPunishment == "situational">>assessing an appropriate punishment<<else>>sentencing $him to $his standard punishment, <<switch $activeSlave.standardPunishment>><<case "confinement">>several hours in confinement<<case "whipping">>a whipping<<case "chastity">>several hours in chastity<</switch>><</if>>. _He2 immediately defers to you, should you wish to take over.
+	$HeadGirl.slaveName is <<if $activeSlave.rules.punishment == "situational">>assessing an appropriate punishment<<else>>sentencing $him to $his standard punishment, <<switch $activeSlave.rules.punishment>><<case "confinement">>several hours in confinement<<case "whipping">>a whipping<<case "chastity">>several hours in chastity<</switch>><</if>>. _He2 immediately defers to you, should you wish to take over.
 <<else>>
 	<<setAssistantPronouns>>
-	$assistantName is <<if $activeSlave.standardPunishment == "situational">>assessing an appropriate punishment<<else>>sentencing $him to $his standard punishment, <<switch $activeSlave.standardPunishment>><<case "confinement">>several hours in confinement<<case "whipping">>a whipping<<case "chastity">>several hours in chastity<</switch>><</if>>. _HeA immediately defers to you, should you wish to take over.
+	$assistantName is <<if $activeSlave.rules.punishment == "situational">>assessing an appropriate punishment<<else>>sentencing $him to $his standard punishment, <<switch $activeSlave.rules.punishment>><<case "confinement">>several hours in confinement<<case "whipping">>a whipping<<case "chastity">>several hours in chastity<</switch>><</if>>. _HeA immediately defers to you, should you wish to take over.
 <</if>>
 
 <br><br>
 <span id="result">
 /* STANDARD PUNISHMENTS */
-<<switch $activeSlave.standardPunishment>>
+<<switch $activeSlave.rules.punishment>>
 
 <<case "confinement">>
 
@@ -200,7 +200,7 @@
 
 <</switch>>
 
-<<if $activeSlave.standardPunishment != "situational">><br><</if>>
+<<if $activeSlave.rules.punishment != "situational">><br><</if>>
 
 /* SITUATIONAL PUNISHMENTS */
 <<switch _sins>>
diff --git a/src/uncategorized/recruiterWorkaround.tw b/src/uncategorized/recruiterWorkaround.tw
index 351f2cbe1ea625a97ceff43ed995c3d989a8f465..204afff5a643de30c82ed9d745e6d74f61b79df8 100644
--- a/src/uncategorized/recruiterWorkaround.tw
+++ b/src/uncategorized/recruiterWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "recruit girls")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Recruiter = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 0dde35d5c21e1180812af031dc7f540a8ad18911..3d9e8a53d76c95f72a1dea8bc6934addeedabd17 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -1771,7 +1771,7 @@ Work on $him structurally:
 		<<if _atleastOne>>
 			<<set $activeSlave.health -= _atleastOne * 10, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave)>>
 			<<if !hasAnyArms($activeSlave)>>
-				<<set $activeSlave.releaseRules = "restrictive">>
+				<<set $activeSlave.rules.release = "restrictive">>
 			<</if>>
 			<<set $surgeryType = "amp">>
 			<<goto "Surgery Degradation">>
diff --git a/src/uncategorized/saBeYourHeadGirl.tw b/src/uncategorized/saBeYourHeadGirl.tw
index eacc7d254c8f3be4496ea6d0f937bb2ca19beab8..7b556a903443005302df0109752413272c55df2b 100644
--- a/src/uncategorized/saBeYourHeadGirl.tw
+++ b/src/uncategorized/saBeYourHeadGirl.tw
@@ -3,7 +3,7 @@
 <<set $HGTimeInGrade += 1, _fetishChangeChance = fetishChangeChance($slaves[$i])>>
 
 <<if $HGSuite == 1>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 <</if>>
 
 <<if $arcologies[0].FSEgyptianRevivalistLaw == 0>>
@@ -100,10 +100,10 @@
 	<</if>>
 <</if>>
 
-<<if ($slaves[$i].livingRules == "luxurious") && ($HGSuite == 1)>>
+<<if ($slaves[$i].rules.living == "luxurious") && ($HGSuite == 1)>>
 	Being continually trusted with this position @@.hotpink;increases $his devotion to you,@@ and encourages $him to @@.mediumaquamarine;trust you in turn;@@ $he's also @@.hotpink;grateful@@ for $his nice suite, which makes $him one of the best provided for slaves in the Free Cities.
 	<<set $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
-<<elseif ($slaves[$i].livingRules == "luxurious")>>
+<<elseif ($slaves[$i].rules.living == "luxurious")>>
 	Being continually trusted with this position @@.hotpink;increases $his devotion to you@@ and encourages $him to @@.mediumaquamarine;trust you in turn.@@
 	<<set $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
 <<elseif ($HGSuite == 1)>>
@@ -156,12 +156,12 @@
 	<</if>>
 <</if>>
 
-<<if $slaves[$i].lactationRules == "induce">>
+<<if $slaves[$i].rules.lactation == "induce">>
 	$He works mammary stimulation into $his slave training regimen in an effort to bring in $his milk for you.
 	<<set $slaves[$i].induceLactation += 3>>
 	<<= induceLactation($slaves[$i])>>
-	<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-<<elseif $slaves[$i].lactationRules == "maintain">>
+	<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+<<elseif $slaves[$i].rules.lactation == "maintain">>
 	Proper nursing and milking technique is a strong aspect of $his slave training regimen, both to keep $his milk flowing and to prevent the mounting pressure from distracting from $his work.
 	<<set $slaves[$i].lactationDuration = 2, $slaves[$i].boobs -= $slaves[$i].boobsMilk, $slaves[$i].boobsMilk = 0>>
 <</if>>
diff --git a/src/uncategorized/saGuardsYou.tw b/src/uncategorized/saGuardsYou.tw
index c7f03aa6a35c607fafc852bab4a1a18bc6e4e7ac..3a77c1b06edbe6154c3a3a03e34f96e4ec474ce7 100644
--- a/src/uncategorized/saGuardsYou.tw
+++ b/src/uncategorized/saGuardsYou.tw
@@ -3,7 +3,7 @@
 carries arms in your defense.
 
 <<if $dojo > 1>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 <</if>>
 
 <<set $deadliness = Deadliness($slaves[$i])>>
diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw
index 11692061634254ab88f0fbb41955d351a3f99f59..b898eb3af00aa1128c0ff7425dfe4b4fab689e37 100644
--- a/src/uncategorized/saLiveWithHG.tw
+++ b/src/uncategorized/saLiveWithHG.tw
@@ -991,8 +991,8 @@
 	<</if>>
 <</if>>
 
-<<if $slaves[$i].livingRules != "luxurious">>
-	<<set $slaves[$i].livingRules = "luxurious">>
+<<if $slaves[$i].rules.living != "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 <</if>>
 
 <<if ($HeadGirl.relationshipTarget == $slaves[$i].ID)>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index 4063b2fe6708728fa43010e064ae55b48c180e1a..61d39d0705d245138301ee34aec13a7eadeba498 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -1140,7 +1140,7 @@
 						<<set $slaves[$i].devotion -= 3>>
 					<</if>>
 				<</if>>
-				<<if $slaves[$i].pornFeed == 1 && $slaves[$i].pornFame >= 10000>>
+				<<if $slaves[$i].porn.feed == 1 && $slaves[$i].porn.viewerCount >= 10000>>
 					$His paraphilia is satisfied by the viewcounts on $his porn and the many viewers no doubt enjoying themselves to $his day to day life.
 					<<set _para = 1>>
 				<<elseif ["whore", "serve the public", "work in the brothel", "serve in the club", "be the DJ"].includes($slaves[$i].assignment)>>
@@ -1233,7 +1233,7 @@
 				<<elseif ($slaves[$i].assignment == "be the Schoolteacher")>>
 					$His paraphilia is satisfied by $his work as the Schoolteacher.
 					<<set _para = 1>>
-				<<elseif canWalk($slaves[$i]) && $slaves[$i].releaseRules == "permissive" && $universalRulesConsent == 0>>
+				<<elseif canWalk($slaves[$i]) && $slaves[$i].rules.release == "permissive" && $universalRulesConsent == 0>>
 					$His paraphilia makes pinning down and raping other slaves very satisfying.
 					<<set _para = 1>>
 				<<else>>
@@ -1264,7 +1264,7 @@
 				<<elseif ($slaves[$i].assignment == "be the Wardeness")>>
 					$His paraphilia is satisfied by $his work as your Wardeness.
 					<<set _para = 1>>
-				<<elseif canWalk($slaves[$i]) && $slaves[$i].releaseRules == "permissive" && $universalRulesConsent == 0>>
+				<<elseif canWalk($slaves[$i]) && $slaves[$i].rules.release == "permissive" && $universalRulesConsent == 0>>
 					$His paraphilia makes pinning down and brutally raping other slaves very satisfying.
 					<<set _para = 1>>
 				<<else>>
@@ -2680,7 +2680,7 @@
 				<</if>>
 			<</if>>
 
-			<<if ($slaves[$i].releaseRules == "permissive") || $slaves[$i].releaseRules == "masturbation">>
+			<<if ($slaves[$i].rules.release == "permissive") || $slaves[$i].rules.release == "masturbation">>
 				<<if ($slaves[$i].balls > 0)>>
 					<<if $slaves[$i].drugs == "testicle enhancement" || $slaves[$i].drugs == "intensive testicle enhancement" || ($slaves[$i].drugs == "hyper testicle enhancement")>>
 						<<if ($slaves[$i].fetishStrength <= 95)>>
@@ -4480,7 +4480,7 @@
 					<</if>>
 
 				<<default>> /* random impregnation chance on other assignments - consider relationships first */
-					<<if !["chastity", "masturbation"].includes($slaves[$i].releaseRules) || $slaves[$i].devotion <= 50>>
+					<<if !["chastity", "masturbation"].includes($slaves[$i].rules.release) || $slaves[$i].devotion <= 50>>
 						<<if (_conceptionSeed > 80) && (($slaves[$i].counter.vaginal > 0) || ($slaves[$i].counter.anal > 0 && $slaves[$i].mpreg > 0))>> /* TODO: compare to previous week totals? */
 							<<if $slaves[$i].relationshipTarget > 0>>
 								<<set _tempLover = getSlave($slaves[$i].relationshipTarget)>>
@@ -4492,7 +4492,7 @@
 							<<set _tempSub = getSlave($slaves[$i].subTarget)>>
 							<<if ndef _tempSub>>@@.red;Error, subTarget not found.@@<</if>>
 						<</if>>
-						<<if (($slaves[$i].relationship == -3) || ($slaves[$i].relationship == -2)) && canImpreg($slaves[$i], $PC) && !["chastity", "masturbation"].includes($slaves[$i].releaseRules)>>
+						<<if (($slaves[$i].relationship == -3) || ($slaves[$i].relationship == -2)) && canImpreg($slaves[$i], $PC) && !["chastity", "masturbation"].includes($slaves[$i].rules.release)>>
 							<<set $slaves[$i].pregSource = -1>>
 						<<elseif ($slaves[$i].relationship > 2) && canImpreg($slaves[$i], _tempLover)>> /* erection not needed for impregnation via consensual sex play (FWB or better) */
 							<<set $slaves[$i].pregSource = _tempLover.ID>>
@@ -4501,17 +4501,17 @@
 						<<elseif (random(1,100) > 95) && ($slaves[$i].rivalry > 2) && canAchieveErection(_tempRival) && canImpreg($slaves[$i], _tempRival)>> /* 5% chance to be raped and knocked up by bitter rival - erection needed */
 							Driven by the bitter rivalry between them, _tempRival.slaveName successfully manages to overpower $slaves[$i].slaveName and rape $him, cumming deep in $his fertile <<if $slaves[$i].mpreg == 1>>asshole<<else>>pussy<</if>>. By the end of the week, $slaves[$i].slaveName is vowing revenge as $he regains confidence.
 							<<set $slaves[$i].pregSource = _tempRival.ID>>
-						<<elseif (random(1,100) > 60) && canImpreg($slaves[$i], $PC) && !["chastity", "masturbation"].includes($slaves[$i].releaseRules)>> /* still 40% chance of impregnation by PC */
+						<<elseif (random(1,100) > 60) && canImpreg($slaves[$i], $PC) && !["chastity", "masturbation"].includes($slaves[$i].rules.release)>> /* still 40% chance of impregnation by PC */
 							<<set $slaves[$i].pregSource = -1>>
 						<<elseif (random(1,100) > 95) && ($slaves[$i].eggType == "human") && $slaves[$i].devotion <= 20>> /* 5% chance of impregnation by random citizen - TODO: make this optional for players who want random fathers from among their own slaves only */
 							<<set $slaves[$i].pregSource = -2>>
 						<<else>>
 							/* pick a random starting point in the slave array and iterate (wrapping around) until finding eligible father or coming back to starting point */
 							<<if $slaves.length == 1>>
-								<<if canImpreg($slaves[$i], $slaves[$i]) && _conceptionSeed > 95 && ($slaves[$i].releaseRules == "permissive")>>
+								<<if canImpreg($slaves[$i], $slaves[$i]) && _conceptionSeed > 95 && ($slaves[$i].rules.release == "permissive")>>
 									<<set $slaves[$i].pregSource = $slaves[$i].ID>>
 								<</if>>
-							<<elseif $slaves[$i].releaseRules == "permissive" || ($slaves[$i].devotion <= 20 && $slaves[$i].trust > 50) || $universalRulesConsent == 0>>
+							<<elseif $slaves[$i].rules.release == "permissive" || ($slaves[$i].devotion <= 20 && $slaves[$i].trust > 50) || $universalRulesConsent == 0>>
 								<<set _sourceSeed = random(0,$slaves.length-1)>><<set _tried = 0>>
 								<<for _m = _sourceSeed + 1; _m != _sourceSeed; _m++>>
 									<<if _m == $slaves.length>><<set _m = 0, _tried = 1>><</if>> /* wrap around */
@@ -5190,11 +5190,11 @@
 
 	<<set $pornFameBonus = 1>>
 	<<if $studio == 1>>
-		<<if $slaves[$i].pornFame > 0>>
-			<<set $pornFameBonus += (Math.ceil($slaves[$i].pornFame/100000))>>
-			<<if ($slaves[$i].pornFame >= 100000)>>
+		<<if $slaves[$i].porn.viewerCount > 0>>
+			<<set $pornFameBonus += (Math.ceil($slaves[$i].porn.viewerCount/100000))>>
+			<<if ($slaves[$i].porn.viewerCount >= 100000)>>
 				$His near-ubiquitous presence in arcology pornography greatly increases $his impact on society.
-			<<elseif ($slaves[$i].pornFame >= 10000)>>
+			<<elseif ($slaves[$i].porn.viewerCount >= 10000)>>
 				$His presence in arcology pornography increases $his impact on society.
 			<<else>>
 				$His occasional presence in arcology pornography slightly increases $his impact on society.
@@ -5710,7 +5710,7 @@
 			Society @@.red;frowns@@ of keeping a slave as slow as $slaves[$i].slaveName; the lack of an attempt to correct this sets a bad example for other owners.
 			<<= FutureSocieties.ChangePorn("SlaveProfessionalism", -2)>>
 		<</if>>
-		<<if $slaves[$i].accent > 1 && canTalk($slaves[$i]) && ($slaves[$i].speechRules != "restrictive" || ($slaves[$i].speechRules == "restrictive" && $slaves[$i].devotion < 20 && $slaves[$i].trust >= -20))>>
+		<<if $slaves[$i].accent > 1 && canTalk($slaves[$i]) && ($slaves[$i].rules.speech != "restrictive" || ($slaves[$i].rules.speech == "restrictive" && $slaves[$i].devotion < 20 && $slaves[$i].trust >= -20))>>
 			Society @@.red;dislikes@@ $slaves[$i].slaveName's inability to properly speak $language or hold $his tongue; allowing such a flaw hinders the notion of professional slavery.
 			<<= FutureSocieties.ChangePorn("SlaveProfessionalism", -2)>>
 		<</if>>
@@ -8277,11 +8277,11 @@
 /* LANGUAGE */
 
 <<if ($slaves[$i].accent > 0) && ($slaves[$i].fetish != "mindbroken")>>
-	<<if $slaves[$i].speechRules == "restrictive">>
+	<<if $slaves[$i].rules.speech == "restrictive">>
 		<<set _minweeks = 30 - Math.trunc(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/10)>>
-	<<elseif $slaves[$i].speechRules == "accent elimination">>
+	<<elseif $slaves[$i].rules.speech == "accent elimination">>
 		<<set _minweeks = 15 - Math.trunc(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/10)>>
-	<<elseif $slaves[$i].speechRules == "language lessons">>
+	<<elseif $slaves[$i].rules.speech == "language lessons">>
 		<<set _minweeks = 10 - Math.trunc(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/10)>>
 	<<else>>
 		<<set _minweeks = 20 - Math.trunc(($slaves[$i].intelligence+$slaves[$i].intelligenceImplant)/10)>>
@@ -8297,7 +8297,7 @@
 <<if ($slaves[$i].accent >= 4)>>
 	<<if ($week - $slaves[$i].weekAcquired) > _minweeks - 5>>
 		<<set $slaves[$i].accent -= 1>>
-		<<if $slaves[$i].speechRules == "language lessons">><<set $slaves[$i].speechRules = "accent elimination">><</if>>
+		<<if $slaves[$i].rules.speech == "language lessons">><<set $slaves[$i].rules.speech = "accent elimination">><</if>>
 			<<if $slaves[$i].voice == 0 || $slaves[$i].lips > 95>>
 				$He has managed to pick up enough $language that @@.green;$he could now barely get $his point across.@@ If $he were able to talk, that is.
 			<<else>>
@@ -8319,7 +8319,7 @@
 				<<set $slaves[$i].accent -= 1>>
 				$He has heard and spoken a great deal of $language as your slave. @@.green;$His accent has diminished to a pleasant exoticism.@@
 			<</if>>
-		<<elseif ($slaves[$i].accent == 1) && ($slaves[$i].speechRules == "accent elimination")>>
+		<<elseif ($slaves[$i].accent == 1) && ($slaves[$i].rules.speech == "accent elimination")>>
 			<<if ($week - $slaves[$i].weekAcquired) > (10 + _minweeks)>>
 
 				<<set $slaves[$i].accent -= 1>>
@@ -8337,15 +8337,15 @@
 <</if>>
 
 /* saPorn */
-<<if $slaves[$i].pornPrestige == 3>>
+<<if $slaves[$i].porn.prestige == 3>>
 	$He is the whore people envision when they think of $slaves[$i].porn.fameType porn. $His omnipresence on the internet @@.green;boosts $his owner's reputation.@@
-	<<run repX((750*$slaves[$i].pornPrestige), "porn", $slaves[$i])>>
-	<<set _donations = Math.floor($slaves[$i].pornFame/(random(13,20)))+(random(-5000,5000))>>
+	<<run repX((750*$slaves[$i].porn.prestige), "porn", $slaves[$i])>>
+	<<set _donations = Math.floor($slaves[$i].porn.viewerCount/(random(13,20)))+(random(-5000,5000))>>
 	<<if _donations > 0>>
 		A number of gifts and donations totaling @@.yellowgreen;<<print cashFormat(_donations)>>@@ were also sent to $him, among other things.
 		<<run cashX(_donations, "porn", $slaves[$i])>>
 	<</if>>
-<<elseif $slaves[$i].pornFeed > 0>>
+<<elseif $slaves[$i].porn.feed > 0>>
 	<<include "SA Porn">>
 <</if>>
 
diff --git a/src/uncategorized/saPleaseYou.tw b/src/uncategorized/saPleaseYou.tw
index 0768bbaa442521f6236d2825b947dbea201201f0..458a7b3a3062524a8cc27cd69dab12bd7d766339 100644
--- a/src/uncategorized/saPleaseYou.tw
+++ b/src/uncategorized/saPleaseYou.tw
@@ -1245,9 +1245,9 @@ serves you this week.
 <<elseif ($slaves[$i].ID == $HeadGirl.ID) && ($arcologies[0].FSEgyptianRevivalistLaw == 1)>>
 	<<set _multiplier += 0.05>>
 <</if>>
-<<if $slaves[$i].pornPrestige > 2>>
+<<if $slaves[$i].porn.prestige > 2>>
 	<<set _multiplier += 0.1>>
-<<elseif $slaves[$i].pornPrestige > 1>>
+<<elseif $slaves[$i].porn.prestige > 1>>
 	<<set _multiplier += 0.03>>
 <</if>>
 
@@ -1275,9 +1275,9 @@ Keeping $him as nothing but your personal
 	@@.green;adds slightly to your reputation@@ as a prosperous citizen.
 <</if>>
 
-<<if $slaves[$i].pornPrestige > 2>>
+<<if $slaves[$i].porn.prestige > 2>>
 	Having your every urge attended to by a famous porn star @@.green;is not lost on the citizenry.@@
-<<elseif $slaves[$i].pornPrestige > 1>>
+<<elseif $slaves[$i].porn.prestige > 1>>
 	Having a rising porn star to sate your urges with @@.green;demonstrates how well off you are.@@
 <</if>>
 
diff --git a/src/uncategorized/saRecruitGirls.tw b/src/uncategorized/saRecruitGirls.tw
index 7acf5fb360bec331aa6321feb2223bdf5316551b..6c8246c9be47c6a91e87902829912bddfb7b4dc2 100644
--- a/src/uncategorized/saRecruitGirls.tw
+++ b/src/uncategorized/saRecruitGirls.tw
@@ -403,7 +403,7 @@
 		<</if>>
 	<</if>>
 
-	<<if ($slaves[$i].livingRules != "luxurious")>>
+	<<if ($slaves[$i].rules.living != "luxurious")>>
 		$He would be more effective if $he could show off a luxurious standard of living.
 		<<set $recruiterProgress -= 1>>
 	<</if>>
@@ -416,7 +416,7 @@
 		$He has no real prospects yet and has more work to do before anyone agrees to enslavement.
 	<</if>>
 
-	<<if ($slaves[$i].livingRules == "luxurious")>>
+	<<if ($slaves[$i].rules.living == "luxurious")>>
 		Being continually trusted with this position @@.hotpink;increases $his devotion to you@@ and encourages $him to @@.mediumaquamarine;trust you in turn.@@
 		<<set $slaves[$i].devotion += 4, $slaves[$i].trust += 4>>
 	<<else>>
@@ -476,8 +476,8 @@
 	<<if $slaves[$i].intelligence+$slaves[$i].intelligenceImplant > 15>>
 		<<set _seed += _FSIntMod>>
 	<</if>>
-	<<if $studio && $slaves[$i].pornFame >= 10000 && $slaves[$i].pornPrestige > 0>>
-		<<set _seed += $slaves[$i].pornPrestige*3>>
+	<<if $studio && $slaves[$i].porn.viewerCount >= 10000 && $slaves[$i].porn.prestige > 0>>
+		<<set _seed += $slaves[$i].porn.prestige*3>>
 	<</if>>
 
 	<<if $arcologies[0].FSSupremacist != "unset">>
@@ -781,7 +781,7 @@
 		<<else>>
 			$He lacks the intelligence to compose thoughtful remarks; a lot the time $he merely +1s what others have said.
 		<</if>>
-		<<if $studio && $slaves[$i].pornFame >= 1000 && $slaves[$i].pornPrestige > 0>>
+		<<if $studio && $slaves[$i].porn.viewerCount >= 1000 && $slaves[$i].porn.prestige > 0>>
 			$His fan base from arcology porn significantly drives up $his followers count.
 		<</if>>
 	<</if>> /*temp close EWM so next two lines always show */
diff --git a/src/uncategorized/saRelationships.tw b/src/uncategorized/saRelationships.tw
index 2d3244df36d58741c8b4c0a21008938661ef3307..7d2e4ec1d15e22816043a61528aba9ae2ef3aebd 100644
--- a/src/uncategorized/saRelationships.tw
+++ b/src/uncategorized/saRelationships.tw
@@ -30,11 +30,11 @@
 				and loves you, $he begins to think of you as a $woman might think of $his lover — or _wifeP. $He knows $he cannot hope for more of a relationship with you than $he has, but $he finds emotional support in serving you nonetheless. @@.lightgreen;$He's become emotionally bonded to you!@@
 				<<set _SlaveI.relationship = -2>>
 			<</if>>
-		<<elseif _SlaveI.career == "a Futanari Sister" && _SlaveI.relationshipRules == "permissive">>
+		<<elseif _SlaveI.career == "a Futanari Sister" && _SlaveI.rules.relationship == "permissive">>
 			<<for _j = 0; _j < _SL; _j++>>
 				<<set _SlaveJ = $slaves[_j]>>
 				<<setLocalPronouns _SlaveJ 2>>
-				<<if (_SlaveJ.career == "a Futanari Sister") && _SlaveJ.relationshipRules == "permissive" && (_SlaveJ.relationship == 0) && (_SlaveI.rivalryTarget != _SlaveJ.ID) && (_SlaveJ.ID != _SlaveI.ID) && _SlaveJ.fetish != "mindbroken">>
+				<<if (_SlaveJ.career == "a Futanari Sister") && _SlaveJ.rules.relationship == "permissive" && (_SlaveJ.relationship == 0) && (_SlaveI.rivalryTarget != _SlaveJ.ID) && (_SlaveJ.ID != _SlaveI.ID) && _SlaveJ.fetish != "mindbroken">>
 					_SlaveI.slaveName greets _SlaveJ.slaveName with joy. It's not clear whether they ever knew each other during their lives as Futanari Sisters, but it seems that they believe themselves to be in a relationship by simple virtue of having been Sisters. In any case, _SlaveI.slaveName and _SlaveJ.slaveName @@.lightgreen;become inseparable lovers@@ instantly, as though there's no possibility they would do anything else. They're even surprised when other slaves ask them about it; it's as though they're unaware that other possibilities even exist.
 					<<set _SlaveJ.relationship = 4, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 4, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 					<<break>>
@@ -62,7 +62,7 @@
 			<<if _j == _SL>> /* gone through the full loop, found no matches, so reset _SlaveJ */
 				<<set _SlaveJ = null>>
 			<</if>>
-		<<elseif _SlaveI.relationshipRules != "restrictive">>
+		<<elseif _SlaveI.rules.relationship != "restrictive">>
 			<<if _SlaveI.devotion > -90>>
 				<<if _SlaveI.behavioralFlaw == "none">>
 					<<set _seed = random(1, 100)>>
@@ -76,7 +76,7 @@
 				<<setLocalPronouns _SlaveJ 2>>
 				<<if (_SlaveJ.ID != _SlaveI.ID) && (_SlaveJ.relationship == 0) && (_SlaveI.rivalryTarget != _SlaveJ.ID) && (_SlaveJ.assignment != "stay confined") && (_SlaveJ.fetish != "mindbroken")>>
 				<<if (_SlaveJ.ID == $Madam.ID) && (_SlaveI.assignment == "work in the brothel")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the Madam, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -87,7 +87,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $DJ.ID) && (_SlaveI.assignment == "serve in the club")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the DJ, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -98,7 +98,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Milkmaid.ID) && (_SlaveI.assignment == "work in the dairy")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the Milkmaid, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -109,7 +109,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Farmer.ID) && (_SlaveI.assignment == "work as a farmhand")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the Farmer, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -120,7 +120,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Schoolteacher.ID) && (_SlaveI.assignment == "learn in the schoolroom")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the Schoolteacher, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -131,7 +131,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Attendant.ID) && (_SlaveI.assignment == "rest in the spa")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName basks in the affection and care of the spa attendant, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -142,7 +142,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Stewardess.ID) && (_SlaveI.assignment == "work as a servant")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to ingratiate $himself with the Stewardess, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -153,7 +153,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Wardeness.ID) && (_SlaveI.assignment == "be confined in the cellblock")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName manages to earn the respect of the Wardeness, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -164,7 +164,7 @@
 						<</if>>
 					<</if>>
 				<<elseif (_SlaveJ.ID == $Concubine.ID) && (_SlaveI.assignment == "serve in the master suite")>>
-					<<if _SlaveJ.relationshipRules != "restrictive">>
+					<<if _SlaveJ.rules.relationship != "restrictive">>
 						_SlaveI.slaveName becomes especially close to the Concubine, _SlaveJ.slaveName. The two slaves have @@.lightgreen;struck up a friendship.@@
 						<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 						<<break>>
@@ -176,7 +176,7 @@
 					<</if>>
 				<<elseif _SlaveJ.assignment == _SlaveI.assignment>>
 					<<if random(1, 100) > 50>>
-						<<if _SlaveJ.relationshipRules != "restrictive">>
+						<<if _SlaveJ.rules.relationship != "restrictive">>
 							_SlaveI.slaveName and _SlaveJ.slaveName see a lot of each other at work and @@.lightgreen;strike up a friendship.@@
 							<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 							<<break>>
@@ -188,8 +188,8 @@
 						<</if>>
 					<</if>>
 				<<elseif mutualChildren(_SlaveI, _SlaveJ, $slaves) > 0>>
-					<<if (_SlaveI.releaseRules != "restrictive") && _SlaveI.releaseRules != "masturbation" && _SlaveI.releaseRules != "chastity">>
-						<<if _SlaveJ.relationshipRules == "permissive">>
+					<<if (_SlaveI.rules.release != "restrictive") && _SlaveI.rules.release != "masturbation" && _SlaveI.rules.release != "chastity">>
+						<<if _SlaveJ.rules.relationship == "permissive">>
 							_SlaveI.slaveName and _SlaveJ.slaveName have <<if mutualChildren(_SlaveI, _SlaveJ, $slaves) == 0>>a child<<else>>children<</if>> living in your penthouse, so it's not surprising that their offspring brings them together. They have @@.lightgreen;become friends@@ for their child's sake.
 							<<set _SlaveJ.relationship = 1, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 1, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 							<<break>>
@@ -199,8 +199,8 @@
 						<</if>>
 					<</if>>
 				<<elseif _SlaveJ.fetish == _SlaveI.fetish>>
-					<<if (_SlaveI.fetish != "none") && (_SlaveI.releaseRules != "restrictive") && _SlaveI.releaseRules != "masturbation" && _SlaveI.releaseRules != "chastity">>
-						<<if _SlaveJ.relationshipRules == "permissive">>
+					<<if (_SlaveI.fetish != "none") && (_SlaveI.rules.release != "restrictive") && _SlaveI.rules.release != "masturbation" && _SlaveI.rules.release != "chastity">>
+						<<if _SlaveJ.rules.relationship == "permissive">>
 							_SlaveI.slaveName and _SlaveJ.slaveName share sexual inclinations, so it's only natural that they @@.lightgreen;become friends with benefits.@@
 							<<set _SlaveJ.relationship = 3, _SlaveJ.relationshipTarget = _SlaveI.ID, _SlaveI.relationship = 3, _SlaveI.relationshipTarget = _SlaveJ.ID>>
 							<<break>>
@@ -920,8 +920,8 @@
 					<</if>>
 				<</if>>
 			<</if>>
-		<<elseif _SlaveI.relationshipRules == "restrictive">>
-			<<if _SlaveJ.relationshipRules == "restrictive">>
+		<<elseif _SlaveI.rules.relationship == "restrictive">>
+			<<if _SlaveJ.rules.relationship == "restrictive">>
 				Since the rules forbid the relationship between _SlaveI.slaveName and _SlaveJ.slaveName, they are @@.lightsalmon;forced apart.@@
 				<<if _SlaveI.relationship > 1>>
 					<<set _SlaveI.relationship--, _SlaveJ.relationship = _SlaveI.relationship>>
@@ -937,8 +937,8 @@
 					<<set _SlaveJ.devotion -= 2>>
 				<</if>>
 			<</if>>
-		<<elseif _SlaveI.relationshipRules == "just friends">>
-			<<if _SlaveI.relationship > 2 && _SlaveJ.relationshipRules == "restrictive">>
+		<<elseif _SlaveI.rules.relationship == "just friends">>
+			<<if _SlaveI.relationship > 2 && _SlaveJ.rules.relationship == "restrictive">>
 				Since the sexual relationship between _SlaveI.slaveName and _SlaveJ.slaveName is against the rules, they are<<if (!hasAnyArms(_SlaveI)) && (!hasAnyArms(_SlaveJ))>>, metaphorically speaking,<</if>> @@.lightsalmon;forced to keep their hands to themselves.@@
 				<<set _SlaveJ.relationship = 2, _SlaveI.relationship = 2>>
 				<<if _SlaveI.devotion <= 50>>
@@ -1353,7 +1353,7 @@
 			<</if>>
 		<</if>> /* closes extended family mode */
 
-		<<if _SlaveI.releaseRules != "restrictive" && _SlaveI.releaseRules != "masturbation" && _SlaveI.releaseRules != "chastity">>
+		<<if _SlaveI.rules.release != "restrictive" && _SlaveI.rules.release != "masturbation" && _SlaveI.rules.release != "chastity">>
 			<<if (_SlaveI.sexualQuirk == "size queen") && (canPenetrate(_SlaveJ))>>
 			<<if _SlaveJ.dick > 5>>
 				$He's @@.hotpink;very happy@@ with $his romantic status, since it means $he regularly gets monster cock.
diff --git a/src/uncategorized/saRivalries.tw b/src/uncategorized/saRivalries.tw
index 32498fc50b7e75ca26f5f9d6282a9fdab685b284..e36309203ea13d390796d45acfbab753ae30a2a9 100644
--- a/src/uncategorized/saRivalries.tw
+++ b/src/uncategorized/saRivalries.tw
@@ -158,8 +158,8 @@
 	<<else>>
 		<<if $slaves[$i].need>>
 			<<if $universalRulesConsent == 0>>
-				<<if $slaves[$i].releaseRules != "restrictive" && $slaves[$i].releaseRules != "masturbation" && $slaves[$i].releaseRules != "chastity">>
-					<<if $slaves[_j].releaseRules != "restrictive">>
+				<<if $slaves[$i].rules.release != "restrictive" && $slaves[$i].rules.release != "masturbation" && $slaves[$i].rules.release != "chastity">>
+					<<if $slaves[_j].rules.release != "restrictive">>
 						<<if $slaves[$i].fetishKnown>>
 							<<if $slaves[$i].fetish == "sadist">>
 								$slaves[$i].slaveName is horny and sadistic, so $he rapes $his rival <<= SlaveFullName($slaves[_j])>> every chance $he gets; this @@.hotpink;thrills@@ $slaves[$i].slaveName, but $slaves[_j].slaveName is @@.golden;frightened@@ that you let it happen.
diff --git a/src/uncategorized/saRules.tw b/src/uncategorized/saRules.tw
index 38b4b409fca6bd198a9a0cc26d542e0799487dad..97e0168ca594c99ea33196fe202d5a3a7e5f8daa 100644
--- a/src/uncategorized/saRules.tw
+++ b/src/uncategorized/saRules.tw
@@ -1,6 +1,6 @@
 :: SA rules [nobr]
 
-<<set _release = $slaves[$i].releaseRules>>
+<<set _release = $slaves[$i].rules.release>>
 
 /* TODO: may need updating to detail effects of chastity */
 
@@ -135,12 +135,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 2>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -158,7 +158,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -183,7 +183,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -193,7 +193,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -338,7 +338,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -470,7 +470,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -495,7 +495,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -505,7 +505,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -513,7 +513,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he
 					<<if $cellblock != 0>>
@@ -532,7 +532,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -628,12 +628,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment between $his sets, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 2>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -651,7 +651,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -684,7 +684,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -694,7 +694,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -839,7 +839,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -943,7 +943,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -968,7 +968,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing, often on stage during a dance,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -978,7 +978,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -986,7 +986,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he
 					<<if $cellblock != 0>>
@@ -1005,7 +1005,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -1102,12 +1102,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				$He spends much of $his time with a pair of automatic breast pumps attached to $his chest. The constant stimulation will have $him milky soon enough.
 				<<set $slaves[$i].induceLactation += 8>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -1125,7 +1125,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -1158,7 +1158,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -1240,7 +1240,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -1373,7 +1373,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given access to the amenities present for recovering slaves to pass the time.
 					<<if $slaves[$i].relationship > 0>>
@@ -1393,7 +1393,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -1403,7 +1403,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -1411,7 +1411,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he spends $his time @@.gold;strapped@@ to $his bed until $he behaves.
 					<<set $slaves[$i].trust -= _punishments>>
@@ -1425,7 +1425,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -1473,12 +1473,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 3>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -1496,7 +1496,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -1521,7 +1521,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -1531,7 +1531,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -1631,7 +1631,7 @@
 			<<elseif $slaves[$i].lips > 95>>
 				Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 				<<set $slaves[$i].devotion += 1>>
-			<<elseif $slaves[$i].speechRules == "restrictive">>
+			<<elseif $slaves[$i].rules.speech == "restrictive">>
 				Living under enforced silence @@.hotpink;molds $him@@ to your will.
 				<<set $slaves[$i].devotion += 1>>
 			<</if>>
@@ -1668,7 +1668,7 @@
 			<</if>>
 
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he @@.gold;spends $his day in solitary.@@
 					<<set $slaves[$i].trust -= 2*_punishments>>
@@ -1682,7 +1682,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -1779,12 +1779,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 4>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -1802,7 +1802,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he usually spends soaking in a hot bath or enjoying the amenities $his facility has to offer.
 					<<if $slaves[$i].relationship > 0>>
@@ -1822,7 +1822,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -1832,7 +1832,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -1975,7 +1975,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -2130,7 +2130,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he usually spends in a private bath<<if $Attendant != 0>>, enjoying $Attendant.slaveName's best care<</if>>.
 					<<if $slaves[$i].relationship > 0>>
@@ -2150,7 +2150,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -2160,7 +2160,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -2168,7 +2168,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he's
 					<<if $cellblock != 0>>
@@ -2187,7 +2187,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -2284,12 +2284,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 4>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -2307,7 +2307,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he usually spends soaking in a hot bath or enjoying the amenities $his facility has to offer.
 					<<if $slaves[$i].relationship > 0>>
@@ -2327,7 +2327,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -2337,7 +2337,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -2480,7 +2480,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -2635,7 +2635,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -2660,7 +2660,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -2670,7 +2670,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -2678,7 +2678,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he's
 					<<if $cellblock != 0>>
@@ -2697,7 +2697,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -2805,12 +2805,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				$His lectures frequently include demonstrations on the proper way to induce lactation.
 				<<set $slaves[$i].induceLactation += 5>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -2828,7 +2828,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -2853,7 +2853,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -2863,7 +2863,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -3038,7 +3038,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -3143,7 +3143,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -3168,7 +3168,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -3178,7 +3178,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -3186,7 +3186,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he
 					<<if $cellblock != 0>>
@@ -3205,7 +3205,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -3302,12 +3302,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 2>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -3325,7 +3325,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -3350,7 +3350,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -3360,7 +3360,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -3503,7 +3503,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -3642,7 +3642,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -3667,7 +3667,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -3677,7 +3677,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -3685,7 +3685,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he
 					<<if $cellblock != 0>>
@@ -3704,7 +3704,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -3801,12 +3801,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time hooked up to a milker to hasten $his milk production.
 				<<set $slaves[$i].induceLactation += 10>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses milkers whenever $he can,
 				<<set $servantMilkersMultiplier = 0.75>>
 				<<silently>><<include "SA get milked">><</silently>>
@@ -3819,7 +3819,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -3844,7 +3844,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -3854,7 +3854,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -4013,7 +4013,7 @@
 					<<elseif $slaves[$i].lips > 95>>
 						Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 						<<set $slaves[$i].devotion += 1>>
-					<<elseif $slaves[$i].speechRules == "restrictive">>
+					<<elseif $slaves[$i].rules.speech == "restrictive">>
 						Living under enforced silence @@.hotpink;molds $him@@ to your will.
 						<<set $slaves[$i].devotion += 1>>
 					<</if>>
@@ -4199,7 +4199,7 @@
 					<</if>>
 
 					<<if _rewards > 0>>
-						<<switch $slaves[$i].standardReward>>
+						<<switch $slaves[$i].rules.reward>>
 						<<case "relaxation">>
 							$He's given free time, which $he
 							<<if $spa != 0>>
@@ -4224,7 +4224,7 @@
 							$He's @@.hotpink;rewarded@@ with
 							<<if $slaves[$i].clitPiercing == 3>>
 								sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-							<<elseif $slaves[$i].releaseRules == "sapphic">>
+							<<elseif $slaves[$i].rules.release == "sapphic">>
 								immediate sex with any nearby slave,
 							<<else>>
 								a quick climax from a vibrator,
@@ -4234,7 +4234,7 @@
 							<<set $slaves[$i].devotion += _rewards>>
 						<<default>>
 							$He's @@.hotpink;rewarded@@
-							<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+							<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 								and @@.gold;punished@@
 							<</if>>
 							situationally, letting $him develop normally.
@@ -4242,7 +4242,7 @@
 						<</switch>>
 					<</if>>
 					<<if _punishments > 0>>
-						<<switch $slaves[$i].standardPunishment>>
+						<<switch $slaves[$i].rules.punishment>>
 						<<case "confinement">>
 							When $he disobeys, $he spends $his times @@.gold;getting milked in a cramped dark stall@@ until $he behaves.
 							<<set $slaves[$i].trust -= _punishments>>
@@ -4256,7 +4256,7 @@
 							<<set $slaves[$i].devotion += _punishments>>
 							<<set $slaves[$i].trust -= _punishments>>
 						<<default>>
-							<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+							<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 								When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 							<</if>>
 							<<set $slaves[$i].trust -= _punishments>>
@@ -4354,12 +4354,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				Whenever $he finds a free moment from $his duties, $he spends that time massaging $his breasts and working $his nipples.
 				<<set $slaves[$i].induceLactation += 2>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				<<if $servantMilkers == 1>>
 					$His duties keep $him busy, but $he <<if $slaves[$i].fetish == "boobs">>eagerly <</if>>uses the penthouse milkers whenever $he can,
 					<<set $servantMilkersMultiplier = 0.25>>
@@ -4377,7 +4377,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -4402,7 +4402,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -4412,7 +4412,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -4554,7 +4554,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -4739,7 +4739,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -4764,7 +4764,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -4774,7 +4774,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -4782,7 +4782,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he spends $his times @@.gold;getting milked in a cramped dark stall@@ until $he behaves.
 					<<set $slaves[$i].trust -= _punishments>>
@@ -4796,7 +4796,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -4819,12 +4819,12 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].lactationRules == "induce">>
+			<<if $slaves[$i].rules.lactation == "induce">>
 				$He spends $his time away from you fervently working to induce lactation, eager to enjoy it with you.
 				<<set $slaves[$i].induceLactation += 9>>
 				<<= induceLactation($slaves[$i])>>
-				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].lactationRules = "maintain">><</if>>
-			<<elseif $slaves[$i].lactationRules == "maintain">>
+				<<if $slaves[$i].lactation == 1>><<set $slaves[$i].rules.lactation = "maintain">><</if>>
+			<<elseif $slaves[$i].rules.lactation == "maintain">>
 				$He doesn't need to do anything to maintain $his lactation as you personally see to it each night.
 				<<set $slaves[$i].lactationDuration = 2, $slaves[$i].boobs -= $slaves[$i].boobsMilk, $slaves[$i].boobsMilk = 0>>
 			<</if>>
@@ -4834,7 +4834,7 @@
 			<<set _rewards = 3>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -4867,7 +4867,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -4922,7 +4922,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -4967,7 +4967,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -5000,7 +5000,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -5008,7 +5008,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he's
 					<<if $cellblock != 0>>
@@ -5027,7 +5027,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -5067,7 +5067,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your Head Girl's will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your Head Girl's will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -5118,7 +5118,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -5143,7 +5143,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -5153,7 +5153,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -5161,7 +5161,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he
 					<<if $cellblock != 0>>
@@ -5180,7 +5180,7 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
@@ -5321,7 +5321,7 @@
 				<<elseif $slaves[$i].lips > 95>>
 					Being unable to speak through $his facepussy @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif $slaves[$i].speechRules == "restrictive">>
+				<<elseif $slaves[$i].rules.speech == "restrictive">>
 					Living under enforced silence @@.hotpink;molds $him@@ to your will.
 					<<set $slaves[$i].devotion += 1>>
 				<</if>>
@@ -5329,9 +5329,9 @@
 
 			<<if $slaves[$i].assignment != "be your Head Girl" && $slaves[$i].assignment != "guard you">>
 				<<if $roomsPopulation > $rooms>>
-					<<if $slaves[$i].livingRules == "luxurious">>
+					<<if $slaves[$i].rules.living == "luxurious">>
 						There are @@.yellow;too many slaves for the penthouse's individual rooms,@@ so $he moves out into the dormitory.
-						<<set $slaves[$i].livingRules = "normal">>
+						<<set $slaves[$i].rules.living = "normal">>
 						<<set $dormitoryPopulation += 1>>
 						<<if $slaves[$i].relationship >= 4>><<set $roomsPopulation -= 0.5>><<else>><<set $roomsPopulation -= 1>><</if>>
 					<</if>>
@@ -5339,7 +5339,7 @@
 			<</if>>
 
 			<<if ($slaves[$i].devotion <= 20)>>
-				<<if ($slaves[$i].livingRules == "spare")>>
+				<<if ($slaves[$i].rules.living == "spare")>>
 					The spare living conditions @@.hotpink;get $him used@@ to the routine of
 					<<if ($slaves[$i].trust > 20)>>
 						slavery and @@.gold;keep $him aware of $his lowly place.@@
@@ -5348,7 +5348,7 @@
 						slavery.
 					<</if>>
 					<<set $slaves[$i].devotion += 1>>
-				<<elseif ($slaves[$i].livingRules == "normal")>>
+				<<elseif ($slaves[$i].rules.living == "normal")>>
 					The reasonable living conditions allow $him to @@.mediumaquamarine;feel self-reliant.@@
 					<<set $slaves[$i].trust += 1>>
 				<<else>>
@@ -5359,10 +5359,10 @@
 				<<if ($slaves[$i].ID == $HeadGirl.ID) && ($HGSuite == 1)>>
 					$He is @@.hotpink;very happy@@ with $his suite and @@.mediumaquamarine;trusts@@ you a bit more for providing it.
 					<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
-				<<elseif ($slaves[$i].livingRules == "luxurious")>>
+				<<elseif ($slaves[$i].rules.living == "luxurious")>>
 					$He is @@.hotpink;very happy@@ with $his little room and @@.mediumaquamarine;trusts@@ you a bit more for providing it.
 					<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
-				<<elseif ($slaves[$i].livingRules == "normal")>>
+				<<elseif ($slaves[$i].rules.living == "normal")>>
 					$He likes $his personal space in the dormitory.
 				<<elseif ($slaves[$i].trust > 40)>>
 					The spare living conditions @@.gold;remind $him not to get too comfortable@@ with $his life.
@@ -5373,7 +5373,7 @@
 				<</if>>
 			<</if>>
 
-			<<if $slaves[$i].livingRules != "luxurious">>
+			<<if $slaves[$i].rules.living != "luxurious">>
 				<<if $dormitoryPopulation > $dormitory>>
 					<<set _dormPop = $dormitoryPopulation - $dormitory>>
 					The slave dormitory is
@@ -5504,7 +5504,7 @@
 			<</if>>
 
 			<<if _rewards > 0>>
-				<<switch $slaves[$i].standardReward>>
+				<<switch $slaves[$i].rules.reward>>
 				<<case "relaxation">>
 					$He's given free time, which $he
 					<<if $spa != 0>>
@@ -5529,7 +5529,7 @@
 					$He's @@.hotpink;rewarded@@ with
 					<<if $slaves[$i].clitPiercing == 3>>
 						sustained orgasm from $his <<if $slaves[$i].dick == 0>>clit<<else>>dick<</if>> piercing,
-					<<elseif $slaves[$i].releaseRules == "sapphic">>
+					<<elseif $slaves[$i].rules.release == "sapphic">>
 						immediate sex with any nearby slave,
 					<<else>>
 						a quick climax from a vibrator,
@@ -5539,7 +5539,7 @@
 					<<set $slaves[$i].devotion += _rewards>>
 				<<default>>
 					$He's @@.hotpink;rewarded@@
-					<<if (_punishments > 0) && ($slaves[$i].standardReward == "situational")>>
+					<<if (_punishments > 0) && ($slaves[$i].rules.reward == "situational")>>
 						and @@.gold;punished@@
 					<</if>>
 					situationally, letting $him develop normally.
@@ -5547,7 +5547,7 @@
 				<</switch>>
 			<</if>>
 			<<if _punishments > 0>>
-				<<switch $slaves[$i].standardPunishment>>
+				<<switch $slaves[$i].rules.punishment>>
 				<<case "confinement">>
 					When $he disobeys, $he's
 					<<if $cellblock != 0>>
@@ -5566,13 +5566,13 @@
 					<<set $slaves[$i].devotion += _punishments>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<<default>>
-					<<if (_rewards == 0) || ($slaves[$i].standardReward != "situational")>>
+					<<if (_rewards == 0) || ($slaves[$i].rules.reward != "situational")>>
 						When $he disobeys, $he's @@.gold;punished@@ situationally, letting $him develop normally.
 					<</if>>
 					<<set $slaves[$i].trust -= _punishments>>
 				<</switch>>
 			<</if>>
-			<<if $subSlaves > 0 && (_release == "permissive" || $slaves[$i].releaseRules == "sapphic") && $slaves[$i].assignment != "serve your other slaves">>
+			<<if $subSlaves > 0 && (_release == "permissive" || $slaves[$i].rules.release == "sapphic") && $slaves[$i].assignment != "serve your other slaves">>
 				<<set $slaves[$i].need -= (20*$subSlaves)>> /* make those serve your other slaves do some work for once */
 			<</if>>
 		<</switch>>
diff --git a/src/uncategorized/salon.tw b/src/uncategorized/salon.tw
index 75e2f5a1c4a336f7b58329ed37bba0f4d88ddbc5..c460b2846a383a5f297231e8394dfdffc008bb09 100644
--- a/src/uncategorized/salon.tw
+++ b/src/uncategorized/salon.tw
@@ -750,7 +750,7 @@ Dye or paint:
 <<if ($activeSlave.markings == "birthmark")>>
 	<br><br>
 	$He has a large birthmark, which
-	<<if $activeSlave.prestige > 0 || $activeSlave.pornPrestige > 1>>
+	<<if $activeSlave.prestige > 0 || $activeSlave.porn.prestige > 1>>
 		enhances $his attractiveness due to $his prestige.
 	<<else>>
 		detracts from $his attractiveness.
diff --git a/src/uncategorized/schoolroomReport.tw b/src/uncategorized/schoolroomReport.tw
index db373d022f46ba22a1144e76961bd1e8e56a2533..f61ea790805c1ca0792c8758f38b2d466137288f 100644
--- a/src/uncategorized/schoolroomReport.tw
+++ b/src/uncategorized/schoolroomReport.tw
@@ -28,8 +28,8 @@
 		<<set $slaves[_FLs].trust++>>
 	<</if>>
 	<<set $slaves[_FLs].devotion += _devBonus>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
 		<<if $slaves[_FLs].fetish != "dom">>
@@ -157,8 +157,8 @@
 	<<elseif ($slaves[$i].health < 90)>>
 		<<set $slaves[$i].health += 3>>
 	<</if>>
-	<<if $slaves[$i].livingRules != "normal">>
-		<<set $slaves[$i].livingRules = "normal">>
+	<<if $slaves[$i].rules.living != "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 	<</if>>
 	/% Education done? Has to be here before we run the SA's or there will be double entries for slave %/
 	<<if $slaves[$i].fetish == "mindbroken">>
diff --git a/src/uncategorized/schoolteacherWorkaround.tw b/src/uncategorized/schoolteacherWorkaround.tw
index dba9ce2a900c9f6d6b8fbf636a98190a1cc9cd01..5097c95eeae39781ab2034a13de6337b177dd9e8 100644
--- a/src/uncategorized/schoolteacherWorkaround.tw
+++ b/src/uncategorized/schoolteacherWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Schoolteacher")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Schoolteacher = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/seRetirement.tw b/src/uncategorized/seRetirement.tw
index d192d37eeae8b258aee6c199c9e3495688c5e578..6a2bd29a2da6a805d73904bd0346d4b5d0b60ec2 100644
--- a/src/uncategorized/seRetirement.tw
+++ b/src/uncategorized/seRetirement.tw
@@ -86,10 +86,10 @@ $He's certainly going to have some adjustments to make.
 <<else>>
 	<<set $toSearch = $activeSlave.prestigeDesc>>
 <</if>>
-<<if $activeSlave.pornPrestigeDesc == 0>>
+<<if $activeSlave.porn.prestigeDesc == 0>>
 	<<set $toSearchAlt = "">>
 <<else>>
-	<<set $toSearchAlt = $activeSlave.pornPrestigeDesc>>
+	<<set $toSearchAlt = $activeSlave.porn.prestigeDesc>>
 <</if>>
 <<if ($toSearch.indexOf("Head Girl") != -1) || ($HeadGirl.ID == $activeSlave.ID)>>
 	<br><br>
@@ -103,7 +103,7 @@ $He's certainly going to have some adjustments to make.
 	<</if>>
 <<elseif ($toSearchAlt.indexOf("is world famous for") != -1)>>
 	<br><br>
-	<<set _pornFame = $activeSlave.pornPrestigeDesc>>
+	<<set _pornFame = $activeSlave.porn.prestigeDesc>>
 	<<set _pornFame = _pornFame.replace("$He is world famous for $his career in slave pornography. Millions are intimately familiar with", "enjoy")>>
 	<<set _pornFame = _pornFame.replace(".", ",")>>
 	In addition to $his annuity, you've laid the groundwork for $him to become wealthy by the way you publicized pornography of $him. Many thousands of people across the world are willing to pay to _pornFame and they enjoy it in part because $he doesn't mind it, either. $He's in a position to make great money for doing on camera what $he would probably do anyway.
diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw
index 7e74990ea0b67e37d1146770d46f5eaef5ea1943..cae5087bfe47a5bba74430b98ca2e79a6c8287c8 100644
--- a/src/uncategorized/sellSlave.tw
+++ b/src/uncategorized/sellSlave.tw
@@ -529,11 +529,11 @@ A reputable slave appraiser arrives promptly to inspect $him and certify $his qu
 	I see notes on $his notoriety in $his file. That will drive up $his price.
 <</if>>
 
-<<if $activeSlave.pornPrestige == 3>>
+<<if $activeSlave.porn.prestige == 3>>
 	$He's pretty popular in $activeSlave.porn.fameType smut, isn't $he? Buyers will be lining up for $him.
-<<elseif $activeSlave.pornPrestige == 2>>
+<<elseif $activeSlave.porn.prestige == 2>>
 	$He's gained quite the following in $activeSlave.porn.fameType smut. In fact, I've even seen some of $his smut; buyers will flock to $him.
-<<elseif $activeSlave.pornPrestige == 1>>
+<<elseif $activeSlave.porn.prestige == 1>>
 	$He's got a small fanbase in $activeSlave.porn.fameType smut. Who knows? Maybe one of them will want $him all to themselves?
 <</if>>
 
@@ -1320,7 +1320,7 @@ __Bids Received__
 	<</if>>
 <</if>>
 
-<<if $activeSlave.pornPrestige == 1>>
+<<if $activeSlave.porn.prestige == 1>>
 	<<if random(1,100) == 69>>
 		<br>''<<print cashFormat(200*Math.trunc(($slaveCost*2)/200))>>'' from an obsessive fan who absolutely must have $him for himself.
 		<<link "Accept bid" "Slave Sold">>
@@ -1329,7 +1329,7 @@ __Bids Received__
 			<<set $buyer = "obsessed fan">>
 		<</link>>
 	<</if>>
-<<elseif $activeSlave.pornPrestige == 3>>
+<<elseif $activeSlave.porn.prestige == 3>>
 	<<if random(1,100) > 90>>
 		<br>''<<print cashFormat(500*Math.trunc(($slaveCost*1.3)/500))>>'' from a studio interested in continued production of $his porn.
 		<<link "Accept bid" "Slave Sold">>
diff --git a/src/uncategorized/servantsQuartersReport.tw b/src/uncategorized/servantsQuartersReport.tw
index 06d0562225ebb18244b5d86764bca5e1c44e2759..ec010ee868be85a9e64c6143bd7a4365695658ff 100644
--- a/src/uncategorized/servantsQuartersReport.tw
+++ b/src/uncategorized/servantsQuartersReport.tw
@@ -39,8 +39,8 @@
 			<<set _FLsFetish = 2, $slaves[_FLs].fetishStrength += 4>>
 		<</if>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<set $Stewardess = $slaves[_FLs]>>
 	<<setLocalPronouns $Stewardess>>
@@ -246,27 +246,27 @@
 	<</if>>
 	<<switch $servantsQuartersDecoration>>
 	<<case "Arabian Revivalist" "Aztec Revivalist" "Chattel Religionist" "Chinese Revivalist" "Degradationist" "Edo Revivalist" "Egyptian Revivalist" "Roman Revivalist" "Subjugationist" "Supremacist">>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 	<<case "Slave Professionalism">>
 		<<if $slaves[$i].intelligence+$slaves[$i].intelligenceImplant > 15>>
-			<<set $slaves[$i].livingRules = "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<<else>>
-			<<set $slaves[$i].livingRules = "spare">>
+			<<set $slaves[$i].rules.living = "spare">>
 		<</if>>
 	<<case "Petite Admiration">>
 		<<if heightPass($slaves[$i])>>
-			<<set $slaves[$i].livingRules = "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<<else>>
-			<<set $slaves[$i].livingRules = "spare">>
+			<<set $slaves[$i].rules.living = "spare">>
 		<</if>>
 	<<case "Statuesque Glorification">>
 		<<if heightPass($slaves[$i])>>
-			<<set $slaves[$i].livingRules = "normal">>
+			<<set $slaves[$i].rules.living = "normal">>
 		<<else>>
-			<<set $slaves[$i].livingRules = "spare">>
+			<<set $slaves[$i].rules.living = "spare">>
 		<</if>>
 	<<default>>
-		<<set $slaves[$i].livingRules = "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 	<</switch>>
 	<<if $showEWD != 0>>
 		<br><br>
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index 7b0d3451c15f8be259af3377d1afab3b3ac10c71..4eac6a50b7eb4189b2447f5087e28a964a5781b4 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -19,23 +19,29 @@
 Depending on the conditions they may derive more or less 'utility' out of their credits spent
 i.e. a highly paternalist arcology with little choice for its lower class but Fuckdolls may still put money into them but not get the same satisfaction out of it*/
 /*Low rent increases demand/available money for sexual services, high rent decreases it*/
-<<set _LCRent = 1 + (20 - $LCRent) / 100,
-_lowerClassSexDemand = Math.trunc($lowerClass * _LCRent) * 10,
-_lowerClassSexDemandRef = Math.max(_lowerClassSexDemand, 0);
-_MCRent = 1 + (50 - $MCRent) / 250,
-_middleClassSexDemand = Math.trunc($middleClass * _MCRent) * 50,
-_UCRent = 1 + (180 - $UCRent) / 900,
-_upperClassSexDemand = Math.trunc($upperClass * _UCRent) * 400,
-_TCRent = 1 + (650 - $TCRent) / 3250,
-_topClassSexDemand = Math.trunc($topClass * _TCRent) * 4000,
+<<set _lowerClassSexDemand = Math.trunc($lowerClass * $whoreBudget.lowerClass),
+_lowerClassSexDemandRef = Math.max(_lowerClassSexDemand, 1),
+_middleClassSexDemand = Math.trunc($middleClass * $whoreBudget.middleClass),
+_middleClassSexDemandRef = Math.max(_middleClassSexDemand, 1),
+_upperClassSexDemand = Math.trunc($upperClass * $whoreBudget.upperClass),
+_upperClassSexDemandRef = Math.max(_upperClassSexDemand, 1),
+_topClassSexDemand = Math.trunc($topClass * $whoreBudget.topClass),
+_topClassSexDemandRef = Math.max(_topClassSexDemand, 1),
 _visitorsSexDemand = Math.trunc($visitors) * 40,
+$whorePriceAdjustment = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0},
+$NPCMarketShare = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0},
+$sexDemandResult = {lowerClass: 0, middleClass: 0, upperClass: 0, topClass: 0},
 $slaveJobValues = slaveJobValues()>>
 
 /*Supply of sexual services*/
 <<if ($cheatMode == 1) || ($debugMode == 1)>>
 	<br>Lower Class SD: <<print _lowerClassSexDemand>>
+	<br>Middle Class SD: <<print _middleClassSexDemand>>
+	<br>Upper Class SD: <<print _upperClassSexDemand>>
+	<br>Top Class SD: <<print _topClassSexDemand>>
 	<br>Club SP: <<print Math.trunc($slaveJobValues.club * $slaveJobValues.clubSP)>>
 	<br>Arcade SP: <<print $slaveJobValues.arcade>>
+	<br>Brothel SP: <<print $slaveJobValues.brothel.lowerClass>>, <<print $slaveJobValues.brothel.middleClass>>, <<print $slaveJobValues.brothel.upperClass>>, <<print $slaveJobValues.brothel.topClass>>
 <</if>>
 
 /*Arcade Specific Demand for Degradationists to give it higher priority*/
@@ -84,17 +90,50 @@ $slaveJobValues = slaveJobValues()>>
 
 /*Public slut sex supply. Top and upper class won't partake*/
 <<set _clubDemand = _lowerClassSexDemand + _middleClassSexDemand + _visitorsSexDemand,
-_lowerClassClubRatio = _lowerClassSexDemand / _clubDemand>>
+_lowerClassClubRatio = _lowerClassSexDemand / _clubDemand,
+_middleClassClubRatio = (_middleClassSexDemand + _visitorsSexDemand) / _clubDemand>>
 <<if $slaveJobValues.club * $slaveJobValues.clubSP < _clubDemand>>
 	<<set _lowerClassSexDemand -= Math.trunc($slaveJobValues.club * $slaveJobValues.clubSP * (_lowerClassSexDemand / _clubDemand)),
 	_middleClassSexDemand -= Math.trunc($slaveJobValues.club * $slaveJobValues.clubSP * (_middleClassSexDemand / _clubDemand)),
 	_visitorsSexDemand -= Math.trunc($slaveJobValues.club * $slaveJobValues.clubSP * (_visitorsSexDemand / _clubDemand))>>
+	<<set _middleClassSexDemand += Math.trunc(0.5 * _visitorsSexDemand),
+	_upperClassSexDemand += Math.trunc(0.5* _visitorsSexDemand)>> /*Let's not forget about leftover visitor sex demand and add it to middle and upper class*/
 <<else>>
 	<<set _lowerClassSexDemand = 0,
 	_middleClassSexDemand = 0,
 	_visitorsSexDemand = 0>>
 <</if>>
 
+/*Brothel or street whore sex supply*/
+<<if _lowerClassSexDemand < $slaveJobValues.brothel.lowerClass>>
+	<<set $whorePriceAdjustment.lowerClass = Math.pow(_lowerClassSexDemand / ($slaveJobValues.brothel.lowerClass + $NPCSexSupply.lowerClass), 2),
+	_lowerClassSexDemand = 0>> /*This accounts for people having too much choice and getting more picky how they spend their money*/
+<<else>>
+	<<set $whorePriceAdjustment.lowerClass = Math.pow(_lowerClassSexDemand / ($slaveJobValues.brothel.lowerClass + $NPCSexSupply.lowerClass), 0.25),
+	_lowerClassSexDemand -= $slaveJobValues.brothel.lowerClass>> /* People are willing to pay more for a scarce good, but within reason */
+<</if>>
+<<if _middleClassSexDemand < $slaveJobValues.brothel.middleClass>>
+	<<set $whorePriceAdjustment.middleClass = Math.pow(_middleClassSexDemand / ($slaveJobValues.brothel.middleClass + $NPCSexSupply.middleClass), 2),
+	_middleClassSexDemand = 0>>
+<<else>>
+	<<set $whorePriceAdjustment.middleClass = Math.pow(_middleClassSexDemand / ($slaveJobValues.brothel.middleClass + $NPCSexSupply.middleClass), 0.25),
+	_middleClassSexDemand -= $slaveJobValues.brothel.middleClass>>
+<</if>>
+<<if _upperClassSexDemand < $slaveJobValues.brothel.upperClass>>
+	<<set $whorePriceAdjustment.upperClass = Math.pow(_upperClassSexDemand / ($slaveJobValues.brothel.upperClass + $NPCSexSupply.upperClass), 2),
+	_upperClassSexDemand = 0>>
+<<else>>
+	<<set $whorePriceAdjustment.upperClass = Math.pow(_upperClassSexDemand / ($slaveJobValues.brothel.upperClass + $NPCSexSupply.upperClass), 0.25),
+	_upperClassSexDemand -= $slaveJobValues.brothel.upperClass>>
+<</if>>
+<<if _topClassSexDemand < $slaveJobValues.brothel.topClass>>
+	<<set $whorePriceAdjustment.topClass = Math.pow(_topClassSexDemand / ($slaveJobValues.brothel.topClass + $NPCSexSupply.topClass), 2),
+	_topClassSexDemand = 0>>
+<<else>>
+	<<set $whorePriceAdjustment.topClass = Math.pow(_topClassSexDemand / ($slaveJobValues.brothel.topClass + $NPCSexSupply.topClass), 0.25),
+	_topClassSexDemand -= $slaveJobValues.brothel.topClass>>
+<</if>>
+
 /*Price for sex in the arcade or at a glory hole*/
 <<if $arcologies[0].FSPaternalist != "unset">>
 	<<set _arcadeDemand = Math.max((_arcadeDemandDeg + _lowerClassSexDemand) * (1 - $arcologies[0].FSPaternalist / 50), 0)>> /*Paternalists sap demand for the arcade*/
@@ -122,8 +161,11 @@ _lowerClassClubRatio = _lowerClassSexDemand / _clubDemand>>
 <</if>>
 
 /*NPC sex supply*/
-<<set $NPCSexSupply = NPCSexSupply(_lowerClassSexDemand/_lowerClassSexDemandRef),
-$NPCMarketShareLC = Math.trunc(($NPCSexSupply.lowerClass * 1000) / ($NPCSexSupply.lowerClass + $slaveJobValues.arcade + Math.trunc($slaveJobValues.club * $slaveJobValues.clubSP * _lowerClassClubRatio)))>>
+<<set $NPCSexSupply = NPCSexSupply(_lowerClassSexDemand, _lowerClassSexDemandRef, _middleClassSexDemand, _middleClassSexDemandRef, _upperClassSexDemand, _upperClassSexDemandRef, _topClassSexDemand, _topClassSexDemandRef),
+$NPCMarketShare.lowerClass = Math.trunc(($NPCSexSupply.lowerClass * 1000) / _lowerClassSexDemandRef),
+$NPCMarketShare.middleClass = Math.trunc(($NPCSexSupply.middleClass * 1000) / _middleClassSexDemandRef),
+$NPCMarketShare.upperClass = Math.trunc(($NPCSexSupply.upperClass * 1000) / _upperClassSexDemandRef),
+$NPCMarketShare.topClass = Math.trunc(($NPCSexSupply.topClass * 1000) / _topClassSexDemandRef)>>
 <<if _lowerClassSexDemand < $NPCSexSupply.lowerClass>>
 	<<set _lowerClassSexDemand = 0>>
 <<else>>
@@ -132,41 +174,153 @@ $NPCMarketShareLC = Math.trunc(($NPCSexSupply.lowerClass * 1000) / ($NPCSexSuppl
 <<if ($cheatMode == 1) || ($debugMode == 1)>>
 	<br>NPC Supply Lower Class: $NPCSexSupply.lowerClass
 <</if>>
-
 <<if ($cheatMode == 1) || ($debugMode == 1)>>
 	<br>Leftover Lower Class SD: <<print _lowerClassSexDemand>>
 <</if>>
 
+<<if _middleClassSexDemand < $NPCSexSupply.middleClass>>
+	<<set _middleClassSexDemand = 0>>
+<<else>>
+	<<set _middleClassSexDemand -= $NPCSexSupply.middleClass>>
+<</if>>
+<<if ($cheatMode == 1) || ($debugMode == 1)>>
+	<br>NPC Supply Middle Class: $NPCSexSupply.middleClass
+<</if>>
+<<if ($cheatMode == 1) || ($debugMode == 1)>>
+	<br>Leftover Middle Class SD: <<print _middleClassSexDemand>>
+<</if>>
+
+<<if _upperClassSexDemand < $NPCSexSupply.upperClass>>
+	<<set _upperClassSexDemand = 0>>
+<<else>>
+	<<set _upperClassSexDemand -= $NPCSexSupply.upperClass>>
+<</if>>
+<<if ($cheatMode == 1) || ($debugMode == 1)>>
+	<br>NPC Supply Upper Class: $NPCSexSupply.upperClass
+<</if>>
+<<if ($cheatMode == 1) || ($debugMode == 1)>>
+	<br>Leftover Upper Class SD: <<print _upperClassSexDemand>>
+<</if>>
+
+<<if _topClassSexDemand < $NPCSexSupply.topClass>>
+	<<set _topClassSexDemand = 0>>
+<<else>>
+	<<set _topClassSexDemand -= $NPCSexSupply.topClass>>
+<</if>>
+<<if ($cheatMode == 1) || ($debugMode == 1)>>
+	<br>NPC Supply Top Class: $NPCSexSupply.topClass
+<</if>>
+<<if ($cheatMode == 1) || ($debugMode == 1)>>
+	<br>Leftover Top Class SD: <<print _topClassSexDemand>>
+<</if>>
+
 /*Sexual satisfaction effects*/
-<<if _lowerClassSexDemand > $lowerClass * _LCRent * 3>> /*You are providing < 40% of their desired amount of sex*/
-	<<set $lowerClassSexDemandResult = 1>>
+<<set $sexDemandResult.lowerClass = Math.trunc(((_lowerClassSexDemandRef - _lowerClassSexDemand) * 1000) / _lowerClassSexDemandRef),
+$sexDemandResult.middleClass = Math.trunc(((_middleClassSexDemandRef - _middleClassSexDemand) * 1000) / _middleClassSexDemandRef),
+$sexDemandResult.upperClass = Math.trunc(((_upperClassSexDemandRef - _upperClassSexDemand) * 1000) / _upperClassSexDemandRef),
+$sexDemandResult.topClass = Math.trunc(((_topClassSexDemandRef - _topClassSexDemand) * 1000) / _topClassSexDemandRef)>>
+<<if $sexDemandResult.lowerClass < 400>> /*You are providing < 40% of their desired amount of sex*/
+	<<if $week <= 30>>
+		<<set $classSatisfied.lowerClass = 0>>
+	<<else>>
+		<<set $classSatisfied.lowerClass = -1>>
+	<</if>>
+<<elseif $sexDemandResult.lowerClass < 600>> /*You are providing between 40 and 60% of their desired amount of sex*/
+	<<if $week <= 40>>
+		<<set $classSatisfied.lowerClass = 1>>
+	<<elseif $week <= 60>>
+		<<set $classSatisfied.lowerClass = 0>>
+	<<else>>
+		<<set $classSatisfied.lowerClass = -1>>
+	<</if>>
+<<elseif $sexDemandResult.lowerClass < 800>> /*You are providing between 60 and 80% of their desired amount of sex*/
+	<<if $week <= 50>>
+		<<set $classSatisfied.lowerClass = 1>>
+	<<else>>
+		<<set $classSatisfied.lowerClass = 0>>
+	<</if>>
+<<elseif $sexDemandResult.lowerClass == 1000>> /*You are providing 100% or more of their desired amount of sex*/
+	<<set $classSatisfied.lowerClass = 2>>
+<<else>> /*You are providing > 80% of their desired amount of sex*/
+	<<set $classSatisfied.lowerClass = 1>>
+<</if>>
+
+<<if $sexDemandResult.middleClass < 400>> /*You are providing < 40% of their desired amount of sex*/
+	<<if $week <= 30>>
+		<<set $classSatisfied.middleClass = 0>>
+	<<else>>
+		<<set $classSatisfied.middleClass = -1>>
+	<</if>>
+<<elseif $sexDemandResult.middleClass < 600>> /*You are providing between 40 and 60% of their desired amount of sex*/
+	<<if $week <= 40>>
+		<<set $classSatisfied.middleClass = 1>>
+	<<elseif $week <= 60>>
+		<<set $classSatisfied.middleClass = 0>>
+	<<else>>
+		<<set $classSatisfied.middleClass = -1>>
+	<</if>>
+<<elseif $sexDemandResult.middleClass < 800>> /*You are providing between 60 and 80% of their desired amount of sex*/
+	<<if $week <= 50>>
+		<<set $classSatisfied.middleClass = 1>>
+	<<else>>
+		<<set $classSatisfied.middleClass = 0>>
+	<</if>>
+<<elseif $sexDemandResult.middleClass == 1000>> /*You are providing 100% or more of their desired amount of sex*/
+	<<set $classSatisfied.middleClass = 2>>
+<<else>> /*You are providing > 80% of their desired amount of sex*/
+	<<set $classSatisfied.middleClass = 1>>
+<</if>>
+
+<<if $sexDemandResult.upperClass < 400>> /*You are providing < 40% of their desired amount of sex*/
+	<<if $week <= 30>>
+		<<set $classSatisfied.upperClass = 0>>
+	<<else>>
+		<<set $classSatisfied.upperClass = -1>>
+	<</if>>
+<<elseif $sexDemandResult.upperClass < 600>> /*You are providing between 40 and 60% of their desired amount of sex*/
+	<<if $week <= 40>>
+		<<set $classSatisfied.upperClass = 1>>
+	<<elseif $week <= 60>>
+		<<set $classSatisfied.upperClass = 0>>
+	<<else>>
+		<<set $classSatisfied.upperClass = -1>>
+	<</if>>
+<<elseif $sexDemandResult.upperClass < 800>> /*You are providing between 60 and 80% of their desired amount of sex*/
+	<<if $week <= 50>>
+		<<set $classSatisfied.upperClass = 1>>
+	<<else>>
+		<<set $classSatisfied.upperClass = 0>>
+	<</if>>
+<<elseif $sexDemandResult.upperClass == 1000>> /*You are providing 100% or more of their desired amount of sex*/
+	<<set $classSatisfied.upperClass = 2>>
+<<else>> /*You are providing > 80% of their desired amount of sex*/
+	<<set $classSatisfied.upperClass = 1>>
+<</if>>
+
+<<if $sexDemandResult.topClass < 400>> /*You are providing < 40% of their desired amount of sex*/
 	<<if $week <= 30>>
-		<<set $lowerClassSatisfied = 0>>
+		<<set $classSatisfied.topClass = 0>>
 	<<else>>
-		<<set $lowerClassSatisfied = -1>>
+		<<set $classSatisfied.topClass = -1>>
 	<</if>>
-<<elseif _lowerClassSexDemand > $lowerClass * _LCRent * 2>> /*You are providing between 40 and 60% of their desired amount of sex*/
-	<<set $lowerClassSexDemandResult = 2>>
+<<elseif $sexDemandResult.topClass < 600>> /*You are providing between 40 and 60% of their desired amount of sex*/
 	<<if $week <= 40>>
-		<<set $lowerClassSatisfied = 1>>
+		<<set $classSatisfied.topClass = 1>>
 	<<elseif $week <= 60>>
-		<<set $lowerClassSatisfied = 0>>
+		<<set $classSatisfied.topClass = 0>>
 	<<else>>
-		<<set $lowerClassSatisfied = -1>>
+		<<set $classSatisfied.topClass = -1>>
 	<</if>>
-<<elseif _lowerClassSexDemand > $lowerClass * _LCRent>> /*You are providing between 60 and 80% of their desired amount of sex*/
-	<<set $lowerClassSexDemandResult = 3>>
+<<elseif $sexDemandResult.topClass < 800>> /*You are providing between 60 and 80% of their desired amount of sex*/
 	<<if $week <= 50>>
-		<<set $lowerClassSatisfied = 1>>
+		<<set $classSatisfied.topClass = 1>>
 	<<else>>
-		<<set $lowerClassSatisfied = 0>>
+		<<set $classSatisfied.topClass = 0>>
 	<</if>>
-<<elseif _lowerClassSexDemand == 0>> /*You are providing 100% or more of their desired amount of sex*/
-	<<set $lowerClassSexDemandResult = 5,
-	$lowerClassSatisfied = 2>>
+<<elseif $sexDemandResult.topClass == 1000>> /*You are providing 100% or more of their desired amount of sex*/
+	<<set $classSatisfied.topClass = 2>>
 <<else>> /*You are providing > 80% of their desired amount of sex*/
-	<<set $lowerClassSexDemandResult = 4,
-	$lowerClassSatisfied = 1>>
+	<<set $classSatisfied.topClass = 1>>
 <</if>>
 <br><br>
 
@@ -193,7 +347,7 @@ $NPCMarketShareLC = Math.trunc(($NPCSexSupply.lowerClass * 1000) / ($NPCSexSuppl
 	<<set $slaves[$i].skill.oral = 0>>
 <</if>>
 
-<<if ($seeDicks > 0) && (canPenetrate($slaves[$i])) && ($slaves[$i].releaseRules != "restrictive") && ($slaves[$i].releaseRules != "masturbation") && ($slaves[$i].releaseRules != "chastity")>>
+<<if ($seeDicks > 0) && (canPenetrate($slaves[$i])) && ($slaves[$i].rules.release != "restrictive") && ($slaves[$i].rules.release != "masturbation") && ($slaves[$i].rules.release != "chastity")>>
 	<<set $averageDick += $slaves[$i].dick, $slavesWithWorkingDicks++>>
 <</if>>
 
@@ -274,25 +428,18 @@ $NPCMarketShareLC = Math.trunc(($NPCSexSupply.lowerClass * 1000) / ($NPCSexSuppl
 		<<= removeJob($slaves[$i], "recruit girls")>>
 	<</if>>
 <<case "be the Madam">>
-	<<set $Madam = $slaves[$i]>>
-	<<if !canTalk($Madam)>>
+	<<if $unMadam == 1>>
 		''__@@.pink;$Madam.slaveName@@__'' can't give whores verbal orders @@.yellow;and cannot serve as your Madam any more.@@<br>
-		<<set $Madam = 0>>
-	<<elseif $Madam.preg > 37 && $Madam.broodmother == 2>>
+	<<elseif $unMadam == 2>>
 		''__@@.pink;$Madam.slaveName@@__'' spends so much time giving birth and laboring that @@.yellow;$he cannot effectively serve as your Madam any longer.@@
-		<<set $Madam = 0>>
-	<<elseif $Madam.fetish == "mindbroken">>
+	<<elseif $unMadam == 3>>
 		''__@@.pink;$Madam.slaveName@@__'' is mindbroken @@.yellow;and cannot serve as your Madam any more.@@<br>
-		<<set $Madam = 0>>
-	<<elseif !canWalk($Madam)>>
+	<<elseif $unMadam == 4>>
 		''__@@.pink;$Madam.slaveName@@__'' is no longer independently mobile @@.yellow;and cannot serve as your Madam any more.@@<br>
-		<<set $Madam = 0>>
-	<<elseif !canSee($Madam)>>
+	<<elseif $unMadam == 5>>
 		''__@@.pink;$Madam.slaveName@@__'' can no longer see @@.yellow;and cannot serve as your Madam any more.@@<br>
-		<<set $Madam = 0>>
-	<<elseif !canHear($Madam)>>
+	<<elseif $unMadam == 6>>
 		''__@@.pink;$Madam.slaveName@@__'' can no longer hear @@.yellow;and cannot serve as your Madam any more.@@<br>
-		<<set $Madam = 0>>
 	<</if>>
 	<<if $Madam == 0>>
 		<<= removeJob($slaves[$i], "be the Madam")>>
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 236138083cc8c15be10f8fa5a86998fb5f486c1b..b42b5890d2d1fdbb971b831f4c613f38ad40ee85 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -536,6 +536,15 @@
 
 <</switch>> /* END CAN BE REASSIGNED */
 
+<<if $activeSlave.assignment == "whore" || $activeSlave.assignment == "work in the brothel">>
+	<br>Whoring Target: <strong><span id="whoreClass"><<if !$activeSlave.whoreClass>>auto<<elseif $activeSlave.whoreClass == 1>>the lower class<<elseif $activeSlave.whoreClass == 2>>the middle class<<elseif $activeSlave.whoreClass == 3>>the upper class<<elseif $activeSlave.whoreClass == 4>>millionaires<<else>>THERE HAS BEEN AN ERROR<</if>></span></strong>. //This is the highest class they are allowed to service, when eligable// 
+	<<link "Auto">><<set $activeSlave.whoreClass = 0>><<replace "#whoreClass">>auto<</replace>><</link>> |
+	<<link "Lower Class">><<set $activeSlave.whoreClass = 1>><<replace "#whoreClass">>the lower class<</replace>><</link>> |
+	<<link "Middle Class">><<set $activeSlave.whoreClass = 2>><<replace "#whoreClass">>the middle class<</replace>><</link>> |
+	<<link "Upper Class">><<set $activeSlave.whoreClass = 3>><<replace "#whoreClass">>the upper class<</replace>><</link>> |
+	<<link "Millionaires">><<set $activeSlave.whoreClass = 4>><<replace "#whoreClass">>millionaires<</replace>><</link>>
+<</if>>
+
 <<if $showWardrobe == 1>>
 
 <br><br>__Appearance:__
@@ -1521,7 +1530,7 @@ Hormones: <strong><span id="hormones">
 	<<set $dormitoryPopulation = 0, $roomsPopulation = 0>>
 	<<for $i = 0; $i < _SL; $i++>>
 		<<if $slaves[$i].assignmentVisible == 1 && ($slaves[$i].assignment != "be your Head Girl" || $HGSuite != 1) && ($slaves[$i].assignment != "guard you" || $dojo <= 1)>>
-			<<if $slaves[$i].livingRules == "luxurious">>
+			<<if $slaves[$i].rules.living == "luxurious">>
 				<<if $slaves[$i].relationship >= 4>>
 					<<set $roomsPopulation += 0.5>>
 				<<else>>
@@ -1532,7 +1541,7 @@ Hormones: <strong><span id="hormones">
 			<</if>>
 		<</if>>
 	<</for>>
-	Living standard: ''<span id="livingRules">$activeSlave.livingRules</span>.''
+	Living standard: ''<span id="livingRules">$activeSlave.rules.living</span>.''
 	<<if setup.facilityCareers.includes($activeSlave.assignment)>>
 		//$His living conditions are managed by $his assignment.//
 	<<elseif ($activeSlave.assignment == "be your Head Girl") && ($HGSuite == 1)>>
@@ -1540,40 +1549,40 @@ Hormones: <strong><span id="hormones">
 	<<elseif ($activeSlave.assignment == "guard you") && ($dojo > 1)>>
 		//$He has a comfortable room in the armory to call $his own.//
 	<<else>>
-		<<link "Spare">><<set $activeSlave.livingRules = "spare">><<replace "#livingRules">>$activeSlave.livingRules<</replace>><</link>> |
-		<<link "Normal">><<set $activeSlave.livingRules = "normal">><<replace "#livingRules">>$activeSlave.livingRules<</replace>><</link>> |
-		<<if $roomsPopulation <= $rooms-0.5>><<link "Luxurious">><<set $activeSlave.livingRules = "luxurious">><<replace "#livingRules">>$activeSlave.livingRules<</replace>><</link>><<else>>//No luxurious rooms available//<</if>>
+		<<link "Spare">><<set $activeSlave.rules.living = "spare">><<replace "#livingRules">>$activeSlave.rules.living<</replace>><</link>> |
+		<<link "Normal">><<set $activeSlave.rules.living = "normal">><<replace "#livingRules">>$activeSlave.rules.living<</replace>><</link>> |
+		<<if $roomsPopulation <= $rooms-0.5>><<link "Luxurious">><<set $activeSlave.rules.living = "luxurious">><<replace "#livingRules">>$activeSlave.rules.living<</replace>><</link>><<else>>//No luxurious rooms available//<</if>>
 	<</if>>
 
-	<br>Typical punishment: ''<span id="standardPunishment">$activeSlave.standardPunishment</span>.''
-	<<link "Confinement">><<set $activeSlave.standardPunishment = "confinement">><<replace "#standardPunishment">>$activeSlave.standardPunishment<</replace>><</link>> |
-	<<link "Whipping">><<set $activeSlave.standardPunishment = "whipping">><<replace "#standardPunishment">>$activeSlave.standardPunishment<</replace>><</link>> |
-	<<link "Chastity">><<set $activeSlave.standardPunishment = "chastity">><<replace "#standardPunishment">>$activeSlave.standardPunishment<</replace>><</link>> |
-	<<link "Situational">><<set $activeSlave.standardPunishment = "situational">><<replace "#standardPunishment">>$activeSlave.standardPunishment<</replace>><</link>>
+	<br>Typical punishment: ''<span id="standardPunishment">$activeSlave.rules.punishment</span>.''
+	<<link "Confinement">><<set $activeSlave.rules.punishment = "confinement">><<replace "#standardPunishment">>$activeSlave.rules.punishment<</replace>><</link>> |
+	<<link "Whipping">><<set $activeSlave.rules.punishment = "whipping">><<replace "#standardPunishment">>$activeSlave.rules.punishment<</replace>><</link>> |
+	<<link "Chastity">><<set $activeSlave.rules.punishment = "chastity">><<replace "#standardPunishment">>$activeSlave.rules.punishment<</replace>><</link>> |
+	<<link "Situational">><<set $activeSlave.rules.punishment = "situational">><<replace "#standardPunishment">>$activeSlave.rules.punishment<</replace>><</link>>
 	&nbsp;&nbsp;&nbsp;&nbsp;
-	Typical reward: ''<span id="standardReward">$activeSlave.standardReward</span>.''
-	<<link "Relaxation">><<set $activeSlave.standardReward = "relaxation">><<replace "#standardReward">>$activeSlave.standardReward<</replace>><</link>> |
-	<<link "Drugs">><<set $activeSlave.standardReward = "drugs">><<replace "#standardReward">>$activeSlave.standardReward<</replace>><</link>> |
-	<<link "Orgasm">><<set $activeSlave.standardReward = "orgasm">><<replace "#standardReward">>$activeSlave.standardReward<</replace>><</link>> |
-	<<link "Situational">><<set $activeSlave.standardReward = "situational">><<replace "#standardReward">>$activeSlave.standardReward<</replace>><</link>>
-
-	<br>Non-assignment orgasm rules: ''<span id="releaseRules">$activeSlave.releaseRules</span>.''
-	<<link "Permit masturbation and interslave sex">><<set $activeSlave.releaseRules = "permissive">><<replace "#releaseRules">>$activeSlave.releaseRules<</replace>><</link>> |
-	<<link "Let $him get off with other slaves">><<set $activeSlave.releaseRules = "sapphic">><<replace "#releaseRules">>$activeSlave.releaseRules<</replace>><</link>> |
+	Typical reward: ''<span id="standardReward">$activeSlave.rules.reward</span>.''
+	<<link "Relaxation">><<set $activeSlave.rules.reward = "relaxation">><<replace "#standardReward">>$activeSlave.rules.reward<</replace>><</link>> |
+	<<link "Drugs">><<set $activeSlave.rules.reward = "drugs">><<replace "#standardReward">>$activeSlave.rules.reward<</replace>><</link>> |
+	<<link "Orgasm">><<set $activeSlave.rules.reward = "orgasm">><<replace "#standardReward">>$activeSlave.rules.reward<</replace>><</link>> |
+	<<link "Situational">><<set $activeSlave.rules.reward = "situational">><<replace "#standardReward">>$activeSlave.rules.reward<</replace>><</link>>
+
+	<br>Non-assignment orgasm rules: ''<span id="releaseRules">$activeSlave.rules.release</span>.''
+	<<link "Permit masturbation and interslave sex">><<set $activeSlave.rules.release = "permissive">><<replace "#releaseRules">>$activeSlave.rules.release<</replace>><</link>> |
+	<<link "Let $him get off with other slaves">><<set $activeSlave.rules.release = "sapphic">><<replace "#releaseRules">>$activeSlave.rules.release<</replace>><</link>> |
 	<<if !isAmputee($activeSlave) && $activeSlave.fuckdoll == 0 && $activeSlave.fetish != "mindbroken">>
-		<<link "Restrict $him to masturbation only">><<set $activeSlave.releaseRules = "masturbation">><<replace "#releaseRules">>$activeSlave.releaseRules<</replace>><</link>> |
+		<<link "Restrict $him to masturbation only">><<set $activeSlave.rules.release = "masturbation">><<replace "#releaseRules">>$activeSlave.rules.release<</replace>><</link>> |
 	<</if>>
-	<<link "Only with you">><<set $activeSlave.releaseRules = "restrictive">><<replace "#releaseRules">>$activeSlave.releaseRules<</replace>><</link>> |
-	<<link "Have $him remain chaste">><<set $activeSlave.releaseRules = "chastity">><<replace "#releaseRules">>$activeSlave.releaseRules<</replace>><</link>>
+	<<link "Only with you">><<set $activeSlave.rules.release = "restrictive">><<replace "#releaseRules">>$activeSlave.rules.release<</replace>><</link>> |
+	<<link "Have $him remain chaste">><<set $activeSlave.rules.release = "chastity">><<replace "#releaseRules">>$activeSlave.rules.release<</replace>><</link>>
 
 	<<if setup.facilityHeads.includes($activeSlave.assignment)>>
 		<<if $activeSlave.lactation != 2>>
-			<br>Lactation maintenance for facility heads: ''<span id="lactationRules">$activeSlave.lactationRules</span>.''
-			<<link "Left alone">><<set $activeSlave.lactationRules = "none">><<replace "#lactationRules">>$activeSlave.lactationRules<</replace>><</link>> |
+			<br>Lactation maintenance for facility heads: ''<span id="lactationRules">$activeSlave.rules.lactation</span>.''
+			<<link "Left alone">><<set $activeSlave.rules.lactation = "none">><<replace "#lactationRules">>$activeSlave.rules.lactation<</replace>><</link>> |
 			<<if $activeSlave.lactation == 0>>
-				<<link "Induce lactation">><<set $activeSlave.lactationRules = "induce">><<replace "#lactationRules">>$activeSlave.lactationRules<</replace>><</link>>
+				<<link "Induce lactation">><<set $activeSlave.rules.lactation = "induce">><<replace "#lactationRules">>$activeSlave.rules.lactation<</replace>><</link>>
 			<<else>>
-				<<link "Maintain lactation">><<set $activeSlave.lactationRules = "maintain">><<replace "#lactationRules">>$activeSlave.lactationRules<</replace>><</link>>
+				<<link "Maintain lactation">><<set $activeSlave.rules.lactation = "maintain">><<replace "#lactationRules">>$activeSlave.rules.lactation<</replace>><</link>>
 			<</if>>
 		<</if>>
 	<</if>>
@@ -1612,43 +1621,43 @@ Hormones: <strong><span id="hormones">
 <</if>>
 
 <<if $activeSlave.voice != 0>>
-	<br>Speech rules: ''<span id="speechRules">$activeSlave.speechRules</span>.''
-	<<link "Restrictive">><<set $activeSlave.speechRules = "restrictive">><<replace "#speechRules">>$activeSlave.speechRules<</replace>><</link>> |
-	<<link "Permissive">><<set $activeSlave.speechRules = "permissive">><<replace "#speechRules">>$activeSlave.speechRules<</replace>><</link>>
-	<<if $activeSlave.accent > 0 && $activeSlave.accent < 4>>| <<link "Accent elimination">><<set $activeSlave.speechRules = "accent elimination">><<replace "#speechRules">>$activeSlave.speechRules<</replace>><</link>>
-	<<elseif $activeSlave.accent > 3>>| <<link "Language lessons">><<set $activeSlave.speechRules = "language lessons">><<replace "#speechRules">>$activeSlave.speechRules<</replace>><</link>>
+	<br>Speech rules: ''<span id="speechRules">$activeSlave.rules.speech</span>.''
+	<<link "Restrictive">><<set $activeSlave.rules.speech = "restrictive">><<replace "#speechRules">>$activeSlave.rules.speech<</replace>><</link>> |
+	<<link "Permissive">><<set $activeSlave.rules.speech = "permissive">><<replace "#speechRules">>$activeSlave.rules.speech<</replace>><</link>>
+	<<if $activeSlave.accent > 0 && $activeSlave.accent < 4>>| <<link "Accent elimination">><<set $activeSlave.rules.speech = "accent elimination">><<replace "#speechRules">>$activeSlave.rules.speech<</replace>><</link>>
+	<<elseif $activeSlave.accent > 3>>| <<link "Language lessons">><<set $activeSlave.rules.speech = "language lessons">><<replace "#speechRules">>$activeSlave.rules.speech<</replace>><</link>>
 	<</if>>
 <</if>>
 
 <br>
-Relationship rules: ''<span id="relationshipRules">$activeSlave.relationshipRules</span>.''
-<<link "Restrictive">><<set $activeSlave.relationshipRules = "restrictive">><<replace "#relationshipRules">>$activeSlave.relationshipRules<</replace>><</link>> |
-<<link "Just friends">><<set $activeSlave.relationshipRules = "just friends">><<replace "#relationshipRules">>$activeSlave.relationshipRules<</replace>><</link>> |
-<<link "Permissive">><<set $activeSlave.relationshipRules = "permissive">><<replace "#relationshipRules">>$activeSlave.relationshipRules<</replace>><</link>>
+Relationship rules: ''<span id="relationshipRules">$activeSlave.rules.relationship</span>.''
+<<link "Restrictive">><<set $activeSlave.rules.relationship = "restrictive">><<replace "#relationshipRules">>$activeSlave.rules.relationship<</replace>><</link>> |
+<<link "Just friends">><<set $activeSlave.rules.relationship = "just friends">><<replace "#relationshipRules">>$activeSlave.rules.relationship<</replace>><</link>> |
+<<link "Permissive">><<set $activeSlave.rules.relationship = "permissive">><<replace "#relationshipRules">>$activeSlave.rules.relationship<</replace>><</link>>
 
 <<if $studio == 1>>
 
 	<br><br>__Media__:<br>
-	<<if $activeSlave.pornPrestige == 3>>
+	<<if $activeSlave.porn.prestige == 3>>
 		//$He is so prestigious in the realm of $activeSlave.porn.fameType porn that $his fame is self-sustaining.//
-	<<elseif $activeSlave.pornFeed == 0>>
-		The media hub is not releasing highlights of $his sex life. [[Release|Slave Interact][$activeSlave.pornFeed = 1]]
+	<<elseif $activeSlave.porn.feed == 0>>
+		The media hub is not releasing highlights of $his sex life. [[Release|Slave Interact][$activeSlave.porn.feed = 1]]
 	<<else>>
-		The media hub is releasing highlights of $his sex life <<if $activeSlave.pornFameSpending < 500>>to those who can find it<<elseif $activeSlave.pornFameSpending < 2500>>on several websites<<elseif $activeSlave.pornFameSpending > 5000>>through your old distributor<<else>>on many websites<</if>>.
-		<<if $activeSlave.pornFameSpending == 0>>
-			[[Halt|Slave Interact][$activeSlave.pornFeed = 0, $activeSlave.porn.focus = "none"]] |
-			[[Publicize|Slave Interact][$activeSlave.pornFameSpending += 1000]]
+		The media hub is releasing highlights of $his sex life <<if $activeSlave.porn.spending < 500>>to those who can find it<<elseif $activeSlave.porn.spending < 2500>>on several websites<<elseif $activeSlave.porn.spending > 5000>>through your old distributor<<else>>on many websites<</if>>.
+		<<if $activeSlave.porn.spending == 0>>
+			[[Halt|Slave Interact][$activeSlave.porn.feed = 0, $activeSlave.porn.focus = "none"]] |
+			[[Publicize|Slave Interact][$activeSlave.porn.spending += 1000]]
 			//Will cost <<print cashFormat(1000)>> weekly.//
 		<<else>>
-			<<textbox "_newPornSpending" $activeSlave.pornFameSpending>> weekly is spent to publicize them. [[Save changes|Slave Interact][$activeSlave.pornFameSpending = Number(_newPornSpending) || 0]] |
-			[[Halt|Slave Interact][$activeSlave.pornFeed = 0, $activeSlave.pornFameSpending = 0, $activeSlave.porn.focus = "none", $PCSlutContacts = 1]] |
-			<<if $activeSlave.pornFameSpending < 5000>>
-				[[Increase|Slave Interact][$activeSlave.pornFameSpending += 1000]] |
+			<<textbox "_newPornSpending" $activeSlave.porn.spending>> weekly is spent to publicize them. [[Save changes|Slave Interact][$activeSlave.porn.spending = Number(_newPornSpending) || 0]] |
+			[[Halt|Slave Interact][$activeSlave.porn.feed = 0, $activeSlave.porn.spending = 0, $activeSlave.porn.focus = "none", $PCSlutContacts = 1]] |
+			<<if $activeSlave.porn.spending < 5000>>
+				[[Increase|Slave Interact][$activeSlave.porn.spending += 1000]] |
 			<</if>>
-			[[Decrease|Slave Interact][$activeSlave.pornFameSpending -= 1000]]
-			<<if $activeSlave.pornFameSpending > 5000>><<set _warn = 1>><</if>>
-			<<set $activeSlave.pornFameSpending = Number($activeSlave.pornFameSpending) || 0>>
-			<<set $activeSlave.pornFameSpending = Math.clamp(Math.ceil($activeSlave.pornFameSpending/1000)*1000, 0, 5000)>>
+			[[Decrease|Slave Interact][$activeSlave.porn.spending -= 1000]]
+			<<if $activeSlave.porn.spending > 5000>><<set _warn = 1>><</if>>
+			<<set $activeSlave.porn.spending = Number($activeSlave.porn.spending) || 0>>
+			<<set $activeSlave.porn.spending = Math.clamp(Math.ceil($activeSlave.porn.spending/1000)*1000, 0, 5000)>>
 			<<if _warn>><br>//Spending more than <<print cashFormat(5000)>> weekly will have no effect.//<</if>>
 			<<if $PC.career == "escort">>
 				<br>
@@ -1665,11 +1674,11 @@ Relationship rules: ''<span id="relationshipRules">$activeSlave.relationshipRule
 
 		<<if $studioFeed == 1>>
 			<br>
-			<<if $activeSlave.pornFame < 100>>
+			<<if $activeSlave.porn.viewerCount < 100>>
 				$He lacks the fame in porn needed to discern what $his feed is getting tagged as.
 			<<else>>
-				<<if $activeSlave.pornPrestige > 0>>
-					$He is known for $activeSlave.porn.fameType porn<<if $activeSlave.pornPrestige > 1>> and viewers have grown to expect it from $him<</if>>.
+				<<if $activeSlave.porn.prestige > 0>>
+					$He is known for $activeSlave.porn.fameType porn<<if $activeSlave.porn.prestige > 1>> and viewers have grown to expect it from $him<</if>>.
 				<</if>>
 				<<if $activeSlave.porn.focus == "none">>
 					You are allowing $his viewers to guide the direction of $his content.
diff --git a/src/uncategorized/slaveSold.tw b/src/uncategorized/slaveSold.tw
index b3dfc160af4bac29daaa9fb2de9bf6ad3e10d108..94e6c2b3510aee07d8d4602d1b35257c88734303 100644
--- a/src/uncategorized/slaveSold.tw
+++ b/src/uncategorized/slaveSold.tw
@@ -1068,7 +1068,7 @@
 	$activeSlave.slaveName becomes a frequent sight in $activeSlave.porn.fameType smut and attracts huge crowds with each public appearance.
 	<<run clearSummaryCache()>>
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
-		<<if $slaves[_ss].pornPrestige > 0 && $slaves[_ss].pornPrestige < 3>>
+		<<if $slaves[_ss].porn.prestige > 0 && $slaves[_ss].porn.prestige < 3>>
 			<<if ($slaves[_ss].devotion > 20)>>
 				<<run clearSummaryCache($slaves[_ss])>>
 				<<set $slaves[_ss].trust += 2>>
@@ -1084,7 +1084,7 @@
 	$activeSlave.slaveName is rarely seen after $his buyer takes charge of $him, since he prefers to keep his prize safe and sound at home.
 	<<run clearSummaryCache()>>
 	<<for _ss = 0; _ss < $slaves.length; _ss++>>
-		<<if $slaves[_ss].pornPrestige == 1>>
+		<<if $slaves[_ss].porn.prestige == 1>>
 			<<if ($slaves[_ss].devotion > 20)>>
 				<<run clearSummaryCache($slaves[_ss])>>
 				<<set $slaves[_ss].trust += 1>>
diff --git a/src/uncategorized/slaveStats.tw b/src/uncategorized/slaveStats.tw
index 781d7f683e3b914955404fc214a4cfe97238e96b..94bcf449df526a8dad9fc690c4670bca1399358e 100644
--- a/src/uncategorized/slaveStats.tw
+++ b/src/uncategorized/slaveStats.tw
@@ -50,13 +50,13 @@ Aphrodisiacs: $activeSlave.aphrodisiacs
 
 <br><br>Rules: 
 Current: $activeSlave.currentRules, 
-Living: $activeSlave.livingRules, 
-Speech: $activeSlave.speechRules, 
-Release: $activeSlave.releaseRules
+Living: $activeSlave.rules.living, 
+Speech: $activeSlave.rules.speech, 
+Release: $activeSlave.rules.release
 
 <br>Standard: 
-Punishment: $activeSlave.standardPunishment, 
-Reward: $activeSlave.standardReward
+Punishment: $activeSlave.rules.punishment, 
+Reward: $activeSlave.rules.reward
 <br>UseRulesAssistant: $activeSlave.useRulesAssistant, 
 ChoosesOwnChastity: $activeSlave.choosesOwnChastity
 
@@ -273,7 +273,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		Induce: $activeSlave.induceLactation,
 		Adaptation: $activeSlave.lactationAdaptation
 		<br>MammaryCount: $activeSlave.counter.mammary
-		<br>LactationRules: $activeSlave.lactationRules
+		<br>LactationRules: $activeSlave.rules.lactation
 		<br>BreastMesh: $activeSlave.breastMesh
 		
 		<br><br>
@@ -341,12 +341,12 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 <div id="Porn" class="tabcontent">
 	<div class="content">
 		Focus: $activeSlave.porn.focus,
-		Feed: $activeSlave.pornFeed
-		<br>Fame: $activeSlave.pornFame
+		Feed: $activeSlave.porn.feed
+		<br>ViewerCount: $activeSlave.porn.viewerCount
 		FameType: $activeSlave.porn.fameType
-		<br>FameSpending: $activeSlave.pornFameSpending
-		<br>Prestige: $activeSlave.pornPrestige
-		PrestigeDesc: $activeSlave.pornPrestigeDesc
+		<br>WeeklySpending: $activeSlave.porn.spending
+		<br>Prestige: $activeSlave.porn.prestige
+		PrestigeDesc: $activeSlave.porn.prestigeDesc
  
 		<br><br>
 		<h2>Type</h2>
@@ -473,7 +473,7 @@ Income: <<= num($activeSlave.lastWeeksRepIncome)>>
 		RapidCellGrowth: $activeSlave.geneMods.rapidCellGrowth, 
 		
 		<br><br> <h2>Relationships</h2>
-		<br>Rules: $activeSlave.relationshipRules
+		<br>Rules: $activeSlave.rules.relationship
 		<br>Relation: $activeSlave.relation,
 		Target: $activeSlave.relationTarget
 		<br>Relationship: $activeSlave.relationship,
diff --git a/src/uncategorized/spaReport.tw b/src/uncategorized/spaReport.tw
index 11b411961e9ce3a02a962d595b3cc80a63aa0f04..089f93be4e74d0e52e71925b81a69a1718efb2cb 100644
--- a/src/uncategorized/spaReport.tw
+++ b/src/uncategorized/spaReport.tw
@@ -21,8 +21,8 @@
 	<<if $slaves[_FLs].trust < 60>>
 		<<set $slaves[_FLs].trust++>>
 	<</if>>
-	<<if $slaves[_FLs].livingRules != "luxurious">>
-		<<set $slaves[_FLs].livingRules = "luxurious">>
+	<<if $slaves[_FLs].rules.living != "luxurious">>
+		<<set $slaves[_FLs].rules.living = "luxurious">>
 	<</if>>
 	<<set _FLsFetish = 0>>
 	<<if $slaves[_FLs].fetishStrength <= 95>>
@@ -272,11 +272,11 @@
 	<</if>>
 	<<switch $spaDecoration>>
 	<<case "Chattel Religionist" "Chinese Revivalist">>
-		<<set $slaves[$i].livingRules = "normal">>
+		<<set $slaves[$i].rules.living = "normal">>
 	<<case "Degradationist">>
-		<<set $slaves[$i].livingRules = "spare">>
+		<<set $slaves[$i].rules.living = "spare">>
 	<<default>>
-		<<set $slaves[$i].livingRules = "luxurious">>
+		<<set $slaves[$i].rules.living = "luxurious">>
 	<</switch>>
 	<<if ($slaves[$i].health >= 20) && ($slaves[$i].trust > 60) && ($slaves[$i].devotion > 60) && ($slaves[$i].fetish != "mindbroken") && ($slaves[$i].sexualFlaw == "none") && ($slaves[$i].behavioralFlaw == "none")>>
 		<br><br>''__@@.pink;$slaves[$i].slaveName@@__'' is feeling well enough to leave $spaName, so @@.yellow;$his assignment has defaulted to rest.@@
diff --git a/src/uncategorized/stewardessWorkaround.tw b/src/uncategorized/stewardessWorkaround.tw
index 99c517aa1df49bda08582aa8d438d569a6f9c8ed..92c6ae83a282fa710f51b052b77da4592ab4f56a 100644
--- a/src/uncategorized/stewardessWorkaround.tw
+++ b/src/uncategorized/stewardessWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Stewardess")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Stewardess = $slaves[$i]>>
 <</if>>
 
diff --git a/src/uncategorized/wardenessWorkaround.tw b/src/uncategorized/wardenessWorkaround.tw
index 954e4f63ab66615fd1703ea25a0d5aa74fa56dff..57a3607a0c400ab0c53cc11bbfc48a5f08060d40 100644
--- a/src/uncategorized/wardenessWorkaround.tw
+++ b/src/uncategorized/wardenessWorkaround.tw
@@ -5,7 +5,7 @@
 <</if>>
 <<if $i > -1>>
 	<<= assignJob($slaves[$i], "be the Wardeness")>>
-	<<set $slaves[$i].livingRules = "luxurious">>
+	<<set $slaves[$i].rules.living = "luxurious">>
 	<<set $Wardeness = $slaves[$i]>>
 <</if>>
 
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index d9fc99a5ca8718eb513cbb543c68ad1238f1f700..4cd8914ed198b50129656c165c877f8f523ef35e 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -4064,7 +4064,7 @@ $He's got a
 <<= App.Desc.mods($activeSlave, "clit")>>
 
 <<if $activeSlave.fuckdoll == 0>>
-	<<if ($activeSlave.releaseRules == "permissive") || $activeSlave.releaseRules == "masturbation">>
+	<<if ($activeSlave.rules.release == "permissive") || $activeSlave.rules.release == "masturbation">>
 		<<if (($activeSlave.aphrodisiacs > 0) || ($activeSlave.inflationType == "aphrodisiac")) && $activeSlave.drugs != "priapism agents">>
 			<<if ($activeSlave.aphrodisiacs > 1) || ($activeSlave.inflationType == "aphrodisiac" && $activeSlave.inflation > 1)>>
 				<<if ($activeSlave.dick != 0) && ($activeSlave.hormoneBalance >= 100) && (!hasAnyArms($activeSlave))>>
@@ -16813,10 +16813,10 @@ $His womb contains <<= num(_slaveWD.litters.length)>> separate pregnancies;
 <<if $activeSlave.accent != 0>>
 	<<if $activeSlave.accent == 1>>
 		<<set _accent = either("a beautiful", "a distinctive", "an intriguing", "a light", "a lovely", "a mild", "a pleasant", "a rich", "a slight", "a smooth")>>
-		$He speaks $language in _accent <<print aNational($activeSlave.nationality)>> accent<<if $activeSlave.speechRules == "accent elimination">>, which the rules encourage $him to suppress<</if>>.
+		$He speaks $language in _accent <<print aNational($activeSlave.nationality)>> accent<<if $activeSlave.rules.speech == "accent elimination">>, which the rules encourage $him to suppress<</if>>.
 	<<elseif $activeSlave.accent == 2>>
 		<<set _accent = either("a broad", "a harsh", "a heavy", "an intense", "a marked", "a noticeable", "a rough", "a significant", "a stressed", "a strong", "a thick")>>
-		$He speaks $language in _accent <<print aNational($activeSlave.nationality)>> accent that can be hard to understand<<if $activeSlave.speechRules == "accent elimination">>, and the rules encourage $him to make an effort to suppress it<</if>>.
+		$He speaks $language in _accent <<print aNational($activeSlave.nationality)>> accent that can be hard to understand<<if $activeSlave.rules.speech == "accent elimination">>, and the rules encourage $him to make an effort to suppress it<</if>>.
 	<<else>>
 		$He speaks little $language, but understands enough to be given orders.
 	<</if>>