diff --git a/devNotes/colorCSS.txt b/devNotes/colorCSS.txt
index 87d52a8578a276e2ac99e18be65b13ba5d84a26c..c330bbbb66a152a2454cf35ffd69481318c4a359 100644
--- a/devNotes/colorCSS.txt
+++ b/devNotes/colorCSS.txt
@@ -6,12 +6,30 @@ CLASS         -   COLOR
 DEVOTION
 .devotion.inc - hotpink
 .devotion.dec - mediumorchid
+.devotion.hateful - darkviolet ( < -50) (there is also very hateful, but they are the same color, so same class for now)
+.devotion.resistant - mediumorchid ( < -20)
+.devotion.ambivalent - yellow ( <= 20)
+.devotion.accept - hotpink ( <= 50)
+.devotion.devoted - deeppink ( <= 95)
+.devotion.worship - magenta ( > 95)
 
-TRUST
+TRUST (defiant versions for devotion < -20)
 .trust.inc - mediumaquamarine
+.defiant.inc - orangered (trust > -20)
 .trust.dec - gold
-.defiant - darkred
-.trust.inc-defiant - orangered (trust increase without enough devotion)
+.trust.extremely-terrified - darkgoldenrod ( < - 95)
+.trust.terrified - goldenrod ( < -50)
+.trust.frightened - gold ( < -20)
+.trust.fearful - yellow ( <= 20)
+.trust.careful - mediumaquamarine ( <= 50)
+.defiant.careful - orange
+.trust.trusting - mediumseagreen ( <= 95)
+.defiant.bold - orangered
+.trust.prof-trusting - seagreen ( > 95)
+.defiant.full - darkred
+
+MINDBROKEN
+.mindbroken - red
 
 SKILL (not final)
 - Player
@@ -59,4 +77,7 @@ FLAWS
 
 GENERAL
 .error - red
-.noteworthy - yellow
\ No newline at end of file
+.noteworthy - yellow
+
+FUTURE SOCIETIES
+.elites.loss - red (when incrementing $failedElite)
\ No newline at end of file
diff --git a/src/endWeek/saChoosesOwnClothes.js b/src/endWeek/saChoosesOwnClothes.js
index 596e6491122f2be4f1df86133580de2ca7d14386..65b60dbc0a99a9733a9ead14dbbacc8b327974ac 100644
--- a/src/endWeek/saChoosesOwnClothes.js
+++ b/src/endWeek/saChoosesOwnClothes.js
@@ -48,7 +48,7 @@ window.saChoosesOwnClothes = (function() {
 				r += `${shoeChoice.text} `;
 				slave.shoes = shoeChoice.shoes;
 			}
-			r += `Allowing ${him} permission to dress as ${he} sees fit <span class="mediumorchid">increases ${his} independence.</span>`;
+			r += `Allowing ${him} permission to dress as ${he} sees fit <span class="devotion dec">increases ${his} independence.</span>`;
 			slave.devotion -= 5;
 		} else {
 			const neckChoice = todaysCollar(slave);
@@ -57,7 +57,7 @@ window.saChoosesOwnClothes = (function() {
 			slave.collar = neckChoice.collar;
 			slave.bellyAccessory = corsetChoice.bellyAccessory;
 			slave.clothes = clothingChoice.clothes;
-			r += `${He} <span class="hotpink">loves</span> being able to dress ${himself}, ${neckChoice.text} ${corsetChoice.text} ${clothingChoice.text} `;
+			r += `${He} <span class="devotion inc">loves</span> being able to dress ${himself}, ${neckChoice.text} ${corsetChoice.text} ${clothingChoice.text} `;
 			slave.devotion += 1;
 
 			if (V.arcologies[0].FSRestart !== "unset" && slave.choosesOwnChastity === 1) {
diff --git a/src/endWeek/saGetMilked.js b/src/endWeek/saGetMilked.js
index 81cea8418c0eac287ce88131a77fcc1c5a83de65..1aeac0abe361ffe1186956759899ef6e44a36268 100644
--- a/src/endWeek/saGetMilked.js
+++ b/src/endWeek/saGetMilked.js
@@ -266,8 +266,7 @@ window.saGetMilked = (function saGetMilked() {
 		r += ` As a result, $he produces ${milk} liters of milk over the week.`;
 
 		/*
-		slaves.counter.milk += milk;
-		V.milkTotal += milk;
+		actX(slave, "milk", milk);
 		T.incomeStats.milk = milk;
 		*/
 
@@ -334,8 +333,7 @@ window.saGetMilked = (function saGetMilked() {
 		}
 
 		// Consider returning these if this function gets gutted
-		slave.counter.milk += milk;
-		V.milkTotal += milk;
+		actX(slave, "milk", milk);
 		T.incomeStats.milk = milk;
 
 		if (arcology.FSPastoralistLaw === 1) {
@@ -365,7 +363,7 @@ window.saGetMilked = (function saGetMilked() {
 	function milkingEffects(slave) {
 		if (slave.fetishKnown) {
 			if (slave.fetish === "boobs" || slave.energy > 95) {
-				r += ` Getting constantly milked is as good as sex, as far as ${he}'s concerned. <span class="hotpink">$He is happy</span> to have ${his} breasts receive so much attention.`;
+				r += ` Getting constantly milked is as good as sex, as far as ${he}'s concerned. <span class="devotion inc">$He is happy</span> to have ${his} breasts receive so much attention.`;
 				slave.devotion += 1;
 				if (slave.need > 0) {
 					slave.need = 0;
@@ -374,7 +372,7 @@ window.saGetMilked = (function saGetMilked() {
 		}
 
 		if (slave.career === "a dairy cow" && slave.fetish !== "mindbroken" && slave.fuckdoll === 0) {
-			r += ` ${He} feels like <span class="hotpink">${he} was made to be milked,</span> <span class="mediumaquamarine">not that ${he}'d complain about such a good feeling.</span>`;
+			r += ` ${He} feels like <span class="devotion inc">${he} was made to be milked,</span> <span class="trust inc">not that ${he}'d complain about such a good feeling.</span>`;
 			slave.devotion++;
 			slave.trust++;
 			if (slave.need > 0) {
@@ -385,10 +383,10 @@ window.saGetMilked = (function saGetMilked() {
 		if (slave.nipples !== "huge") {
 			if (slave.nipples === "inverted") {
 				if (slave.fetish === "masochist" && slave.fetishKnown === 1) {
-					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="hotpink">extremely uncomfortable; ${he} loves it.</span>`;
+					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="devotion inc">extremely uncomfortable; ${he} loves it.</span>`;
 					slave.devotion += 3;
 				} else {
-					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="mediumorchid">extremely uncomfortable.</span>`;
+					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="devotion dec">extremely uncomfortable.</span>`;
 					slave.devotion -= 3;
 				}
 				if (jsRandom(1, 100) > 50) {
@@ -403,10 +401,10 @@ window.saGetMilked = (function saGetMilked() {
 				}
 			} else if (slave.nipples === "partially inverted") {
 				if (slave.fetish === "masochist" && slave.fetishKnown === 1) {
-					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="hotpink">quite uncomfortable; ${he} loves it.</span>`;
+					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="devotion inc">quite uncomfortable; ${he} loves it.</span>`;
 					slave.devotion += 1;
 				} else {
-					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="mediumorchid">quite uncomfortable.</span>`;
+					r += ` Having the milkers constantly haul ${his} inverted nipples out is <span class="devotion dec">quite uncomfortable.</span>`;
 					slave.devotion -= 1;
 				}
 				if (jsRandom(1, 100) > 30) {
@@ -602,8 +600,7 @@ window.saGetMilked = (function saGetMilked() {
 		}
 
 		/*
-		slave.counter.cum += cum;
-		V.cumTotal += cum;
+		actX(slave, "cum", cum);
 		T.incomeStats.cum = cum;
 		*/
 
@@ -659,8 +656,7 @@ window.saGetMilked = (function saGetMilked() {
 		}
 
 		// Consider returning these if this function gets gutted
-		slave.counter.cum += cum;
-		V.cumTotal += cum;
+		actX(slave, "cum", cum);
 		T.incomeStats.cum = cum;
 
 		if (arcology.FSPastoralist === "unset") {
@@ -693,7 +689,7 @@ window.saGetMilked = (function saGetMilked() {
 	 * */
 	function cumEffects(slave) {
 		if (slave.energy > 95) {
-			r += ` Getting ${his} dick constantly milked is almost as good as getting constant blowjobs as far as ${he}'s concerned. <span class="hotpink">${He} is happy</span> to have ${his} member receive so much attention.`;
+			r += ` Getting ${his} dick constantly milked is almost as good as getting constant blowjobs as far as ${he}'s concerned. <span class="devotion inc">${He} is happy</span> to have ${his} member receive so much attention.`;
 			slave.devotion += 1;
 		}
 
@@ -703,7 +699,7 @@ window.saGetMilked = (function saGetMilked() {
 		}
 
 		if (!canAchieveErection(slave)) {
-			r += ` Since ${he} cannot maintain an erection, ${he} requires <span class="gold">painful</span> and <span class="mediumorchid">degrading</span> anal electrostimulation to produce.`;
+			r += ` Since ${he} cannot maintain an erection, ${he} requires <span class="trust dec">painful</span> and <span class="devotion dec">degrading</span> anal electrostimulation to produce.`;
 			slave.devotion -= 2;
 			slave.trust -= 2;
 			if (slave.anus === 0) {
@@ -711,7 +707,7 @@ window.saGetMilked = (function saGetMilked() {
 				slave.anus = 1;
 			}
 		} else if (slave.devotion <= 20) {
-			r += ` Since ${he}'s unaroused by ${his} situation, ${he} requires <span class="gold">painful</span> and <span class="mediumorchid">degrading</span> anal electrostimulation to produce.`;
+			r += ` Since ${he}'s unaroused by ${his} situation, ${he} requires <span class="trust dec">painful</span> and <span class="devotion dec">degrading</span> anal electrostimulation to produce.`;
 			slave.devotion -= 2;
 			slave.trust -= 2;
 			if (slave.anus === 0) {
@@ -832,7 +828,7 @@ window.saGetMilked = (function saGetMilked() {
 	function mentalEffects(slave) {
 		if (slave.assignment === "get milked" || (slave.assignment === "work in the dairy" && V.dairyRestraintsSetting < 2)) {
 			if (slave.behavioralQuirk === "fitness") {
-				r += ` ${slave.slaveName} <span class="hotpink">privately enjoys</span> the focus on ${his} health and fitness that comes with being a cow.`;
+				r += ` ${slave.slaveName} <span class="devotion inc">privately enjoys</span> the focus on ${his} health and fitness that comes with being a cow.`;
 				slave.devotion += 1;
 			}
 		}
@@ -865,23 +861,23 @@ window.saGetMilked = (function saGetMilked() {
 		} else if (vignette.type === "devotion") {
 			if (vignette.effect > 0) {
 				if (slave.devotion > 50) {
-					r += `<span class="hotpink">increasing ${his} devotion to you.</span>`;
+					r += `<span class="devotion inc">increasing ${his} devotion to you.</span>`;
 				} else if (slave.devotion >= -20) {
-					r += `<span class="hotpink">increasing ${his} acceptance of you.</span>`;
+					r += `<span class="devotion inc">increasing ${his} acceptance of you.</span>`;
 				} else if (slave.devotion >= -50) {
-					r += `<span class="hotpink">reducing ${his} dislike of you.</span>`;
+					r += `<span class="devotion inc">reducing ${his} dislike of you.</span>`;
 				} else {
-					r += `<span class="hotpink">reducing ${his} hatred of you.</span>`;
+					r += `<span class="devotion inc">reducing ${his} hatred of you.</span>`;
 				}
 			} else if (vignette.effect < 0) {
 				if (slave.devotion > 50) {
-					r += `<span class="mediumorchid">reducing ${his} devotion to you.</span>`;
+					r += `<span class="devotion dec">reducing ${his} devotion to you.</span>`;
 				} else if (slave.devotion >= -20) {
-					r += `<span class="mediumorchid">reducing ${his} acceptance of you.</span>`;
+					r += `<span class="devotion dec">reducing ${his} acceptance of you.</span>`;
 				} else if (slave.devotion >= -50) {
-					r += `<span class="mediumorchid">increasing ${his} dislike of you.</span>`;
+					r += `<span class="devotion dec">increasing ${his} dislike of you.</span>`;
 				} else {
-					r += `<span class="mediumorchid">increasing ${his} hatred of you.</span>`;
+					r += `<span class="devotion dec">increasing ${his} hatred of you.</span>`;
 				}
 			} else {
 				r += `an incident without lasting effect.`;
@@ -890,19 +886,19 @@ window.saGetMilked = (function saGetMilked() {
 		} else if (vignette.type === "trust") {
 			if (vignette.effect > 0) {
 				if (slave.trust > 20) {
-					r += `<span class="mediumaquamarine">increasing ${his} trust in you.</span>`;
+					r += `<span class="trust inc">increasing ${his} trust in you.</span>`;
 				} else if (slave.trust >= -50) {
-					r += `<span class="mediumaquamarine">reducing ${his} fear of you.</span>`;
+					r += `<span class="trust inc">reducing ${his} fear of you.</span>`;
 				} else {
-					r += `<span class="mediumaquamarine">reducing ${his} terror of you.</span>`;
+					r += `<span class="trust inc">reducing ${his} terror of you.</span>`;
 				}
 			} else if (vignette.effect < 0) {
 				if (slave.trust > 20) {
-					r += `<span class="gold">reducing ${his} trust in you.</span>`;
+					r += `<span class="trust dec">reducing ${his} trust in you.</span>`;
 				} else if (slave.trust >= -20) {
-					r += `<span class="gold">increasing ${his} fear of you.</span>`;
+					r += `<span class="trust dec">increasing ${his} fear of you.</span>`;
 				} else {
-					r += `<span class="gold">increasing ${his} terror of you.</span>`;
+					r += `<span class="trust dec">increasing ${his} terror of you.</span>`;
 				}
 			} else {
 				r += `an incident without lasting effect.`;
diff --git a/src/endWeek/saNanny.js b/src/endWeek/saNanny.js
index af3d3bfffe984a0ba74f7795629c38e394519f67..547ee8a3f4dff8daa48d7e65f0971864e9ba84f2 100644
--- a/src/endWeek/saNanny.js
+++ b/src/endWeek/saNanny.js
@@ -154,23 +154,23 @@ window.saNanny = function saNanny(slave) {
 		if (vignette.type === "devotion") {
 			if (vignette.effect > 0) {
 				if (slave.devotion > 50) {
-					t += `<span class="hotpink">increasing ${his} devotion to you.</span>`;
+					t += `<span class="devotion inc">increasing ${his} devotion to you.</span>`;
 				} else if (slave.devotion >= -20) {
-					t += `<span class="hotpink">increasing ${his} acceptance of you.</span>`;
+					t += `<span class="devotion inc">increasing ${his} acceptance of you.</span>`;
 				} else if (slave.devotion > -10) {
-					t += `<span class="hotpink">reducing ${his} dislike of you.</span>`;
+					t += `<span class="devotion inc">reducing ${his} dislike of you.</span>`;
 				} else {
-					t += `<span class="hotpink">reducing ${his} hatred of you.</span>`;
+					t += `<span class="devotion inc">reducing ${his} hatred of you.</span>`;
 				}
 			} else if (vignette.effect < 0) {
 				if (slave.devotion > 50) {
-					t += `<span class="mediumorchid">reducing ${his} devotion to you.</span>`;
+					t += `<span class="devotion dec">reducing ${his} devotion to you.</span>`;
 				} else if (slave.devotion >= -20) {
-					t += `<span class="mediumorchid">reducing ${his} acceptance of you.</span>`;
+					t += `<span class="devotion dec">reducing ${his} acceptance of you.</span>`;
 				} else if (slave.devotion > -10) {
-					t += `<span class="mediumorchid">increasing ${his} dislike of you.</span>`;
+					t += `<span class="devotion dec">increasing ${his} dislike of you.</span>`;
 				} else {
-					t += `<span class="mediumorchid">increasing ${his} hatred of you.</span>`;
+					t += `<span class="devotion dec">increasing ${his} hatred of you.</span>`;
 				}
 			} else {
 				t += `an incident without lasting effect.`;
@@ -188,19 +188,19 @@ window.saNanny = function saNanny(slave) {
 		if (vignette.type === "trust") {
 			if (vignette.effect > 0) {
 				if (slave.trust > 20) {
-					t += `<span class="mediumaquamarine">increasing ${his} trust in you.</span>`;
+					t += `<span class="trust inc">increasing ${his} trust in you.</span>`;
 				} else if (slave.trust > -10) {
-					t += `<span class="mediumaquamarine">reducing ${his} fear of you.</span>`;
+					t += `<span class="trust inc">reducing ${his} fear of you.</span>`;
 				} else {
-					t += `<span class="mediumaquamarine">reducing ${his} terror of you.</span>`;
+					t += `<span class="trust inc">reducing ${his} terror of you.</span>`;
 				}
 			} else if (vignette.effect < 0) {
 				if (slave.trust > 20) {
-					t += `<span class="gold">reducing ${his} trust in you.</span>`;
+					t += `<span class="trust dec">reducing ${his} trust in you.</span>`;
 				} else if (slave.trust >= -20) {
-					t += `<span class="gold">increasing ${his} fear of you.</span>`;
+					t += `<span class="trust dec">increasing ${his} fear of you.</span>`;
 				} else {
-					t += `<span class="gold">increasing ${his} terror of you.</span>`;
+					t += `<span class="trust dec">increasing ${his} terror of you.</span>`;
 				}
 			} else {
 				t += `an incident without lasting effect.`;
diff --git a/src/endWeek/saRest.js b/src/endWeek/saRest.js
index 962785e0e9daca3efc33fb141feef3f0c7615de3..41e0c8d28c6a01c0fd0debcf0834eb177d176886 100644
--- a/src/endWeek/saRest.js
+++ b/src/endWeek/saRest.js
@@ -39,18 +39,18 @@ window.saRest = function saRest(slave) {
 	if (slave.fuckdoll === 0 && slave.fetish !== "mindbroken") {
 		if (slave.devotion > 20) {
 			if (slave.trust <= 20) {
-				t += ` Being allowed to rest <span class="mediumaquamarine">reduces ${his} fear</span> of you.`;
+				t += ` Being allowed to rest <span class="trust inc">reduces ${his} fear</span> of you.`;
 				slave.trust += 4;
 			} else if (slave.trust <= 50) {
-				t += ` Being allowed to rest <span class="mediumaquamarine">builds ${his} trust</span> in you.`;
+				t += ` Being allowed to rest <span class="trust inc">builds ${his} trust</span> in you.`;
 				slave.trust += 2;
 			} else {
-				t += ` Being allowed to rest <span class="mediumaquamarine">confirms ${his} trust</span> in you.`;
+				t += ` Being allowed to rest <span class="trust inc">confirms ${his} trust</span> in you.`;
 				slave.trust += 2;
 			}
 		} else {
 			if (slave.trust < -20) {
-				t += ` Being allowed to rest <span class="mediumaquamarine">reduces ${his} fear</span> of you.`;
+				t += ` Being allowed to rest <span class="trust inc">reduces ${his} fear</span> of you.`;
 				slave.trust += 4;
 			}
 		}
@@ -97,23 +97,23 @@ window.saRest = function saRest(slave) {
 		} else if (_vignette.type === "devotion") {
 			if (_vignette.effect > 0) {
 				if (slave.devotion > 50) {
-					t += `<span class="hotpink">increasing ${his} devotion to you.</span>`;
+					t += `<span class="devotion inc">increasing ${his} devotion to you.</span>`;
 				} else if (slave.devotion >= -20) {
-					t += `<span class="hotpink">increasing ${his} acceptance of you.</span>`;
+					t += `<span class="devotion inc">increasing ${his} acceptance of you.</span>`;
 				} else if (slave.devotion > -10) {
-					t += `<span class="hotpink">reducing ${his} dislike of you.</span>`;
+					t += `<span class="devotion inc">reducing ${his} dislike of you.</span>`;
 				} else {
-					t += `<span class="hotpink">reducing ${his} hatred of you.</span>`;
+					t += `<span class="devotion inc">reducing ${his} hatred of you.</span>`;
 				}
 			} else if (_vignette.effect < 0) {
 				if (slave.devotion > 50) {
-					t += `<span class="mediumorchid">reducing ${his} devotion to you.</span>`;
+					t += `<span class="devotion dec">reducing ${his} devotion to you.</span>`;
 				} else if (slave.devotion >= -20) {
-					t += `<span class="mediumorchid">reducing ${his} acceptance of you.</span>`;
+					t += `<span class="devotion dec">reducing ${his} acceptance of you.</span>`;
 				} else if (slave.devotion > -10) {
-					t += `<span class="mediumorchid">increasing ${his} dislike of you.</span>`;
+					t += `<span class="devotion dec">increasing ${his} dislike of you.</span>`;
 				} else {
-					t += `<span class="mediumorchid">increasing ${his} hatred of you.</span>`;
+					t += `<span class="devotion dec">increasing ${his} hatred of you.</span>`;
 				}
 			} else {
 				t += `an incident without lasting effect.`;
@@ -122,19 +122,19 @@ window.saRest = function saRest(slave) {
 		} else if (_vignette.type === "trust") {
 			if (_vignette.effect > 0) {
 				if (slave.trust > 20) {
-					t += `<span class="mediumaquamarine">increasing ${his} trust in you.</span>`;
+					t += `<span class="trust inc">increasing ${his} trust in you.</span>`;
 				} else if (slave.trust > -10) {
-					t += `<span class="mediumaquamarine">reducing ${his} fear of you.</span>`;
+					t += `<span class="trust inc">reducing ${his} fear of you.</span>`;
 				} else {
-					t += `<span class="mediumaquamarine">reducing ${his} terror of you.</span>`;
+					t += `<span class="trust inc">reducing ${his} terror of you.</span>`;
 				}
 			} else if (_vignette.effect < 0) {
 				if (slave.trust > 20) {
-					t += `<span class="gold">reducing ${his} trust in you.</span>`;
+					t += `<span class="trust dec">reducing ${his} trust in you.</span>`;
 				} else if (slave.trust >= -20) {
-					t += `<span class="gold">increasing ${his} fear of you.</span>`;
+					t += `<span class="trust dec">increasing ${his} fear of you.</span>`;
 				} else {
-					t += `<span class="gold">increasing ${his} terror of you.</span>`;
+					t += `<span class="trust dec">increasing ${his} terror of you.</span>`;
 				}
 			} else {
 				t += `an incident without lasting effect.`;
diff --git a/src/endWeek/saRules_old.js b/src/endWeek/saRules_old.js
index 6b9c38e2ca185aa41624b9ee914ee9a7779cac67..7a5d53211792ccdc1016883b656c5d2bedca354c 100644
--- a/src/endWeek/saRules_old.js
+++ b/src/endWeek/saRules_old.js
@@ -53,8 +53,7 @@
 							r += `is routinely relieved of any built up tension by ${V.Matron.slaveName} and ${his}`;
 							if (canPenetrate(slave) && V.Matron.boobs >= 500) {
 								r += `luscious breasts. `;
-								slave.counter.mammary += 14;
-								V.mammaryTotal += 14;
+								actX(slave, "mammary", 14);
 							} else {
 								if (slave.lips > 40) {
 									r += `luscious lips. `;
@@ -63,8 +62,7 @@
 								} else {
 									r += `willing mouth. `;
 								}
-								slave.counter.oral += 14;
-								V.oralTotal += 14;
+								actX(slave, "oral", 14);
 							}
 							slave.need = -60;
 						} else {
@@ -1030,8 +1028,7 @@
 
 		let
 			r = ``,
-			who = (slave.rules.release.slaves === 1) ? `other slaves` : `${his} family`, // should be the only two choices if we get here
-			fuckCount;
+			who = (slave.rules.release.slaves === 1) ? `other slaves` : `${his} family`; // should be the only two choices if we get here
 
 		if (slave.fetishKnown && slave.fetishStrength >= 60) {
 			switch (slave.fetish) {
@@ -1042,8 +1039,7 @@
 							if ((slave.anus * 40) - (averageDick * 5) < jsRandom(1, 100)) {
 								r += `<span class="lime">${His} asshole is loosened</span> during sex with ${who}, since most of the cocks ${he} enticed a dominating buttfuck from are `;
 								slave.anus++;
-								slave.counter.anal += 3;
-								V.analTotal += 3;
+								actX(slave, "anal", 3);
 							}
 
 							if (averageDick > 5) {
@@ -1051,8 +1047,7 @@
 									if ((slave.vagina * 40) - (averageDick * 5) < jsRandom(1, 100)) {
 										r += `Since most of the slaves ${he} enticed a pounding from are extremely hung, <span class="lime">${his} cunt gets stretched out. </span>`;
 										slave.vagina++;
-										slave.counter.vaginal += 3;
-										V.vaginalTotal += 3;
+										actX(slave, "vaginal", 3);
 									}
 								}
 							}
@@ -1066,9 +1061,7 @@
 					} else {
 						r += `suck or be sucked by any relative ${he} fancies. `;
 					}
-					fuckCount = jsRandom(5, 15);
-					slave.counter.oral += fuckCount;
-					V.oralTotal += fuckCount;
+					actX(slave, "oral", jsRandom(5, 15));
 					break;
 				case "humiliation":
 					r += `demand that ${who} let ${him} fuck them in public. `;
@@ -1082,9 +1075,7 @@
 							rival.rivalryTarget = slave.ID;
 							SimpleSexAct.Slave(rival, 4);
 							if (canPenetrate(rival)) {
-								fuckCount = jsRandom(1, 3);
-								rival.counter.penetrative += fuckCount;
-								V.penetrativeTotal += fuckCount;
+								actX(rival, "penetrative", jsRandom(1, 3));
 							}
 
 							if (!App.Utils.sexAllowed(slave, rival)) {
@@ -1095,9 +1086,7 @@
 					}
 					SimpleSexAct.Slave(slave, 4);
 					if (canPenetrate(slave)) {
-						fuckCount = jsRandom(1, 3);
-						slave.counter.penetrative += fuckCount;
-						V.penetrativeTotal += fuckCount;
+						actX(slave, "penetrative", jsRandom(1, 3));
 					}
 					break;
 				case "buttslut":
@@ -1110,9 +1099,7 @@
 							}
 						}
 					}
-					fuckCount = jsRandom(5, 12);
-					slave.counter.anal += fuckCount;
-					V.analTotal += fuckCount;
+					actX(slave, "anal", jsRandom(5, 12));
 					break;
 				case "boobs":
 					r += `demand that ${who} massage ${his} breasts. `;
@@ -1123,9 +1110,7 @@
 					} else {
 						induceLactation(slave);
 					}
-					fuckCount = jsRandom(10, 25);
-					slave.counter.mammary += fuckCount;
-					V.mammaryTotal += fuckCount;
+					actX(slave, "mammary", jsRandom(10, 25));
 					break;
 				case "sadist":
 					if (slave.rules.release.slaves === 1) {
@@ -1162,11 +1147,8 @@
 							rival.rivalryTarget = slave.ID;
 							SimpleSexAct.Slave(rival, 4);
 							if (canPenetrate(rival)) {
-								fuckCount = jsRandom(1, 3);
-								rival.counter.penetrative += fuckCount;
-								V.penetrativeTotal += fuckCount;
+								actX(rival, "penetrative", jsRandom(1, 3));
 							}
-
 							if (!App.Utils.sexAllowed(slave, rival)) {
 								r += `As the rules do not permit ${slave.slaveName} and ${rival.slaveName} to have sex, ${he} is <span class="yellow">severely punished.</span> `;
 								slave.trust -= 4;
@@ -1175,9 +1157,7 @@
 					}
 					SimpleSexAct.Slave(slave, 4);
 					if (canPenetrate(slave)) {
-						fuckCount = jsRandom(1, 3);
-						slave.counter.penetrative += fuckCount;
-						V.penetrativeTotal += fuckCount;
+						actX(slave, "penetrative", jsRandom(1, 3));
 					}
 					break;
 				case "masochist":
@@ -1187,8 +1167,7 @@
 							if ((slave.anus * 30) - (averageDick * 5) < jsRandom(1, 100)) {
 								r += `<span class="lime">${His} asshole is loosened</span> during sex with hung slaves, since ${he} often relies on painal to address ${his} needs. `;
 								slave.anus++;
-								slave.counter.anal += 3;
-								V.analTotal += 3;
+								actX(slave, "anal", 3);
 							}
 						}
 
@@ -1197,8 +1176,7 @@
 								if ((slave.vagina * 30) - (averageDick * 5) < jsRandom(1, 100)) {
 									r += `Since ${he} usually demands that hung slaves fuck ${him} hard enough to make ${his} pussy hurt, <span class="lime">${his} cunt gets stretched out. </span>`;
 									slave.vagina++;
-									slave.counter.vaginal += 3;
-									V.vaginalTotal += 3;
+									actX(slave, "vaginal", 3);
 								}
 							}
 						}
@@ -1225,9 +1203,7 @@
 					}
 					SimpleSexAct.Slave(slave, 7);
 					if (canPenetrate(slave)) {
-						fuckCount = jsRandom(6, 9);
-						slave.counter.penetrative += fuckCount;
-						V.penetrativeTotal += fuckCount;
+						actX(slave, "penetrative", jsRandom(6, 9));
 					}
 					break;
 				case "pregnancy":
@@ -1238,9 +1214,7 @@
 								if ((slave.vagina * 40) - (averageDick * 5) < jsRandom(1, 100)) {
 									r += `Since ${he} constantly demands to be fucked deeply to get ${his} womb filled with cum, <span class="lime">${his} cunt gets stretched out. </span>`;
 									slave.vagina++;
-									fuckCount = jsRandom(7, 14);
-									slave.counter.vaginal += fuckCount;
-									V.vaginalTotal += fuckCount;
+									actX(slave, "vaginal", jsRandom(7, 14));
 								}
 							}
 						} else {
@@ -1248,18 +1222,14 @@
 								if ((slave.anus * 40) - (averageDick * 5) < jsRandom(1, 100)) {
 									r += `Since ${he} constantly demands to be fucked deeply to get ${his} womb filled with cum, <span class="lime">${his} ass gets stretched out. </span>`;
 									slave.anus++;
-									fuckCount = jsRandom(7, 14);
-									slave.counter.anal += fuckCount;
-									V.analTotal += fuckCount;
+									actX(slave, "anal", jsRandom(7, 14));
 								}
 							}
 						}
 					}
 
 					if (canPenetrate(slave)) {
-						fuckCount = jsRandom(6, 9);
-						slave.counter.penetrative += fuckCount;
-						V.penetrativeTotal += fuckCount;
+						actX(slave, "penetrative", jsRandom(6, 9));
 					}
 					break;
 				default:
@@ -1270,8 +1240,7 @@
 								if ((slave.anus * 30) - (averageDick * 5) < jsRandom(1, 100)) {
 									r += `<span class="lime">${His} asshole is loosened</span> during sex with well endowed slaves, since ${he}'s so addicted to sex all ${his} holes see heavy traffic. `;
 									slave.anus++;
-									slave.counter.anus += 3;
-									slave.counter.anal += 3;
+									actX(slave, "anal", 3);
 								}
 							}
 							if (averageDick > 5) {
@@ -1279,25 +1248,20 @@
 									if ((slave.vagina * 30) - (averageDick * 5) < jsRandom(1, 100)) {
 										r += `${He} indulges in non-stop sex with your well endowed slaves, so much so that <span class="lime">${his} cunt gets stretched out. </span>`;
 										slave.vagina++;
-										slave.counter.vaginal += 3;
-										V.vaginalTotal += 3;
+										actX(slave, "vaginal", 3);
 									}
 								}
 							}
 						}
 						SimpleSexAct.Slave(slave, 7);
 						if (canPenetrate(slave)) {
-							fuckCount = jsRandom(3, 6);
-							slave.counter.penetrative += fuckCount;
-							V.penetrativeTotal += fuckCount;
+							actX(slave, "penetrative", jsRandom(3, 6));
 						}
 					} else {
 						r += `demand that ${who} have sex with ${him}. `;
 						SimpleSexAct.Slave(slave, 7);
 						if (canPenetrate(slave)) {
-							fuckCount = jsRandom(3, 6);
-							slave.counter.penetrative += fuckCount;
-							V.penetrativeTotal += fuckCount;
+							actX(slave, "penetrative", jsRandom(3, 6));
 						}
 					}
 					break;
@@ -1306,9 +1270,7 @@
 			r += `demand that ${who} have sex with ${him}. `;
 			SimpleSexAct.Slave(slave, 7);
 			if (canPenetrate(slave)) {
-				fuckCount = jsRandom(3, 6);
-				slave.counter.penetrative += fuckCount;
-				V.penetrativeTotal += fuckCount;
+				actX(slave, "penetrative", jsRandom(3, 6));
 			}
 		}
 
@@ -1398,30 +1360,24 @@
 					if (largeDicks(slave, 40)) {
 						r += `<span class="lime">${His} asshole is loosened</span> during sex with other slaves, since most of the cocks ${he} lets dominate ${his} backdoor are very `;
 						slave.anus++;
-						slave.counter.anal += 3;
-						V.analTotal += 3;
+						actX(slave, "anal", 3);
 						if (hugeDicks(slave, 40)) {
 							r += `Since most of the slaves ${he} takes a pounding from are extremely hung, <span class="lime">${his} cunt gets stretched out .</span>`;
 							slave.vagina++;
-							slave.counter.vagina += 3;
-							V.vaginalTotal += 3;
+							actX(slave, "vaginal", 3);
 						}
 					}
 					SimpleSexAct.Slave(slave, 7);
 					break;
 				case "cumslut":
 					r += `and is popular for ${his} willingness to give oral. `;
-					fuckCount = jsRandom(5, 15);
-					slave.counter.oral += fuckCount;
-					V.oralTotal += fuckCount;
+					actX(slave, "oral", jsRandom(5, 15));
 					break;
 				case "humiliation":
 					r += `usually asking them to fuck out in the open. `;
 					SimpleSexAct.Slave(slave, 7);
 					if (canPenetrate(slave)) {
-						fuckCount = jsRandom(1, 3);
-						slave.counter.penetrative += fuckCount;
-						V.penetrativeTotal += fuckCount;
+						actX(slave, "penetrative", jsRandom(1, 3));
 					}
 					break;
 				case "buttslut":
@@ -1429,9 +1385,7 @@
 					if (slave.anus > 0) {
 						if (canDoAnal(slave)) {
 							r += `penetrate`;
-							fuckCount = jsRandom(5, 12);
-							slave.counter.anal += fuckCount;
-							V.analTotal += fuckCount;
+							actX(slave, "anal", jsRandom(5, 12));
 						} else {
 							r += `tease`;
 						}
@@ -1453,17 +1407,13 @@
 					} else {
 						induceLactation(slave);
 					}
-					fuckCount = jsRandom(10, 25);
-					slave.counter.mammary += fuckCount;
-					V.mammaryTotal += fuckCount;
+					actX(slave, "mammary", jsRandom(10, 25));
 					break;
 				case "sadist":
 					r += `usually pairing off with a masochistic slave willing to accept ${his} abuse. `;
 					SimpleSexAct.Slave(slave, 7);
 					if (canPenetrate(slave)) {
-						fuckCount = jsRandom(1, 3);
-						slave.counter.penetrative += fuckCount;
-						V.penetrativeTotal += fuckCount;
+						actX(slave, "penetrative", jsRandom(1, 3));
 					}
 					break;
 				case "masochist":
@@ -1471,12 +1421,11 @@
 					if (largeDicks(slave, 30)) {
 						r += `<span class="lime">${His} asshole is loosened,</span> since ${he} begs hung slaves to fuck ${his} butt until ${he} cries. `;
 						slave.anus++;
-						slave.counter.anal += 3;
-						V.analTotal += 3;
+						actX(slave, "anal", 3);
 						if (hugeDicks(slave, 30)) {
 							r += `Since ${he} eagerly begs hung slaves to fuck ${him} until ${he} cries, <span class="lime">${his} cunt gets stretched out .</span>`;
 							slave.vagina++;
-							slave.counter.vaginal += 3; V.vaginalTotal += 3;
+							actX(slave, "vaginal", 3);
 						}
 					}
 					SimpleSexAct.Slave(slave, 6);
@@ -1485,9 +1434,7 @@
 					r += `usually pairing off with a submissive bitch. `;
 					SimpleSexAct.Slave(slave, 6);
 					if (canPenetrate(slave)) {
-						fuckCount = jsRandom(1, 3);
-						slave.counter.penetrative += fuckCount;
-						V.penetrativeTotal += fuckCount;
+						actX(slave, "penetrative", jsRandom(1, 3));
 					}
 					break;
 				case "pregnancy":
@@ -1496,22 +1443,18 @@
 						if (hugeDicks(slave, 40)) {
 							r += `${He} also takes cock whenever ${he} can, begging to be fucked deeply to get ${his} womb filled with cum, so <span class="lime">${his} cunt gets stretched out. </span>`;
 							slave.vagina++;
-							slave.counter.vagina += 3;
-							V.vaginalTotal += 3;
+							actX(slave, "vaginal", 3);
 						}
 					} else {
 						if (hugeDicks(slave, 40)) {
 							r += `${He} also takes cock whenever ${he} can, begging to be fucked deeply to get ${his} womb filled with cum, so <span class="lime">${his} ass gets stretched out. </span>`;
 							slave.anus++;
-							slave.counter.anal += 3;
-							V.analTotal += 3;
+							actX(slave, "anal", 3);
 						}
 					}
 					SimpleSexAct.Slave(slave, 7);
 					if (canPenetrate(slave)) {
-						fuckCount = jsRandom(6, 9);
-						slave.counter.penetrative += fuckCount;
-						V.penetrativeTotal += fuckCount;
+						actX(slave, "penetrative", jsRandom(6, 9));
 					}
 					break;
 				default:
@@ -1520,28 +1463,22 @@
 						if (largeDicks(slave, 30)) {
 							r += `<span class="lime">${His} asshole is loosened</span> during sex with well endowed slaves, since ${he}'s so addicted to sex all ${his} holes see heavy traffic. `;
 							slave.anus++;
-							slave.counter.anal += 3;
-							V.analTotal += 3;
+							actX(slave, "anal", 3);
 							if (hugeDicks(slave, 30)) {
 								r += `${He} indulges in non-stop sex with your well endowed slaves, so much so that <span class="lime">${his} cunt gets stretched out. </span>`;
 								slave.vagina++;
-								slave.counter.vaginal += 3;
-								V.vaginalTotal += 3;
+								actX(slave, "vaginal", 3);
 							}
 						}
 						SimpleSexAct.Slave(slave, 7);
 						if (canPenetrate(slave)) {
-							fuckCount = jsRandom(3, 6);
-							slave.counter.penetrative += fuckCount;
-							V.penetrativeTotal += fuckCount;
+							actX(slave, "penetrative", jsRandom(3, 6));
 						}
 					} else {
 						r += `doing ${his} best to get off and move on. `;
 						SimpleSexAct.Slave(slave, 7);
 						if (canPenetrate(slave)) {
-							fuckCount = jsRandom(3, 6);
-							slave.counter.penetrative += fuckCount;
-							V.penetrativeTotal += fuckCount;
+							actX(slave, "penetrative", jsRandom(3, 6));
 						}
 					}
 					break;
@@ -1550,9 +1487,7 @@
 			r += `doing ${his} best to get off and move on. `;
 			SimpleSexAct.Slave(slave, 7);
 			if (canPenetrate(slave)) {
-				fuckCount = jsRandom(3, 6);
-				slave.counter.penetrative += fuckCount;
-				V.penetrativeTotal += fuckCount;
+				actX(slave, "penetrative", jsRandom(3, 6));
 			}
 		}
 
diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js
index 18b4e6f84f9c4591a6600f7b1e9bed97ea6cf248..73b11a4b5d90dcab1bd124f1e1416dc6a352aa84 100644
--- a/src/endWeek/saServant.js
+++ b/src/endWeek/saServant.js
@@ -21,14 +21,14 @@ window.saServant = function saServant(slave) {
 			if (V.Stewardess !== 0) {
 				t += ` This brings ${him} under ${V.Stewardess.slaveName}'s supervision. The Stewardess `;
 				if (slave.devotion < -20) {
-					t += `subjects ${him} to <span class="gold">corrective rape</span> when ${his} service is imperfect, <span class="hotpink">when ${he} steps out of line,</span> or when the Stewardess just feels like raping ${him}, forcing the poor slave to <span class="yellowgreen">find refuge in work.</span>`;
+					t += `subjects ${him} to <span class="trust dec">corrective rape</span> when ${his} service is imperfect, <span class="devotion inc">when ${he} steps out of line,</span> or when the Stewardess just feels like raping ${him}, forcing the poor slave to <span class="yellowgreen">find refuge in work.</span>`;
 					slave.devotion += 2;
 					slave.trust -= 2;
 				} else if (slave.devotion <= 20) {
-					t += `molests ${him}, encouraging the poor slave to <span class="hotpink">keep ${his} head down</span> and <span class="yellowgreen">work harder.</span>`;
+					t += `molests ${him}, encouraging the poor slave to <span class="devotion inc">keep ${his} head down</span> and <span class="yellowgreen">work harder.</span>`;
 					slave.devotion += 2;
 				} else {
-					t += `uses <span class="hotpink">sex as a reward,</span> getting ${him} off when ${he} <span class="yellowgreen">works harder.</span>`;
+					t += `uses <span class="devotion inc">sex as a reward,</span> getting ${him} off when ${he} <span class="yellowgreen">works harder.</span>`;
 					slave.devotion++;
 				}
 				if (!(canHear(slave))) {
@@ -92,8 +92,7 @@ window.saServant = function saServant(slave) {
 	// is the current number of servants correct to accomplish this task?
 	// why can't the player prevent this on-assignment sex while still getting the other benefits of having a servant?
 	const _oral = jsRandom(5, 10);
-	slave.counter.oral += _oral;
-	V.oralTotal += _oral;
+	actX(slave, "oral", _oral);
 
 	if (slave.relationship === -2) {
 		t += ` ${He} does ${his} best to perfect your domesticity due to ${his} emotional bond to you.`;
@@ -158,23 +157,23 @@ window.saServant = function saServant(slave) {
 		} else if (vignette.type === "devotion") {
 			if (vignette.effect > 0) {
 				if (slave.devotion > 50) {
-					t += `<span class="hotpink">increasing ${his} devotion to you.</span>`;
+					t += `<span class="devotion inc">increasing ${his} devotion to you.</span>`;
 				} else if (slave.devotion >= -20) {
-					t += `<span class="hotpink">increasing ${his} acceptance of you.</span>`;
+					t += `<span class="devotion inc">increasing ${his} acceptance of you.</span>`;
 				} else if (slave.devotion > -10) {
-					t += `<span class="hotpink">reducing ${his} dislike of you.</span>`;
+					t += `<span class="devotion inc">reducing ${his} dislike of you.</span>`;
 				} else {
-					t += `<span class="hotpink">reducing ${his} hatred of you.</span>`;
+					t += `<span class="devotion inc">reducing ${his} hatred of you.</span>`;
 				}
 			} else if (vignette.effect < 0) {
 				if (slave.devotion > 50) {
-					t += `<span class="mediumorchid">reducing ${his} devotion to you.</span>`;
+					t += `<span class="devotion dec">reducing ${his} devotion to you.</span>`;
 				} else if (slave.devotion >= -20) {
-					t += `<span class="mediumorchid">reducing ${his} acceptance of you.</span>`;
+					t += `<span class="devotion dec">reducing ${his} acceptance of you.</span>`;
 				} else if (slave.devotion > -10) {
-					t += `<span class="mediumorchid">increasing ${his} dislike of you.</span>`;
+					t += `<span class="devotion dec">increasing ${his} dislike of you.</span>`;
 				} else {
-					t += `<span class="mediumorchid">increasing ${his} hatred of you.</span>`;
+					t += `<span class="devotion dec">increasing ${his} hatred of you.</span>`;
 				}
 			} else {
 				t += `an incident without lasting effect.`;
@@ -183,19 +182,19 @@ window.saServant = function saServant(slave) {
 		} else if (vignette.type === "trust") {
 			if (vignette.effect > 0) {
 				if (slave.trust > 20) {
-					t += `<span class="mediumaquamarine">increasing ${his} trust in you.</span>`;
+					t += `<span class="trust inc">increasing ${his} trust in you.</span>`;
 				} else if (slave.trust > -10) {
-					t += `<span class="mediumaquamarine">reducing ${his} fear of you.</span>`;
+					t += `<span class="trust inc">reducing ${his} fear of you.</span>`;
 				} else {
-					t += `<span class="mediumaquamarine">reducing ${his} terror of you.</span>`;
+					t += `<span class="trust inc">reducing ${his} terror of you.</span>`;
 				}
 			} else if (vignette.effect < 0) {
 				if (slave.trust > 20) {
-					t += `<span class="gold">reducing ${his} trust in you.</span>`;
+					t += `<span class="trust dec">reducing ${his} trust in you.</span>`;
 				} else if (slave.trust >= -20) {
-					t += `<span class="gold">increasing ${his} fear of you.</span>`;
+					t += `<span class="trust dec">increasing ${his} fear of you.</span>`;
 				} else {
-					t += `<span class="gold">increasing ${his} terror of you.</span>`;
+					t += `<span class="trust dec">increasing ${his} terror of you.</span>`;
 				}
 			} else {
 				t += `an incident without lasting effect.`;
diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index 93c0ccc40326830f15a0d6971553a6e34b1dab28..46e6925734d63445ba6147cac384c6fdaf524885 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -291,14 +291,14 @@ window.saServeThePublic = (function saServeThePublic() {
 	 */
 	function mentalEffects(slave) {
 		if (slave.behavioralQuirk === "advocate") {
-			r += ` ${slave.slaveName} <span class="hotpink">really enjoys</span> being able to share ${his} convert's enthusiasm about slavery with new people.`;
+			r += ` ${slave.slaveName} <span class="devotion inc">really enjoys</span> being able to share ${his} convert's enthusiasm about slavery with new people.`;
 			slave.devotion += 1;
 		} else if (slave.behavioralQuirk === "funny") {
-			r += ` ${slave.slaveName} <span class="hotpink">really enjoys</span> making so many people laugh.`;
+			r += ` ${slave.slaveName} <span class="devotion inc">really enjoys</span> making so many people laugh.`;
 			slave.devotion += 1;
 		}
 		if (slave.sexualQuirk === "tease") {
-			r += ` ${slave.slaveName} <span class="mediumaquamarine">trusts your judgment</span> in assigning ${him} a job that affords ${him} a chance to tease and flirt.`;
+			r += ` ${slave.slaveName} <span class="trust inc">trusts your judgment</span> in assigning ${him} a job that affords ${him} a chance to tease and flirt.`;
 			slave.trust += 1;
 		}
 		if (slave.assignment === "serve in the club" && slave.devotion > 50) {
@@ -391,15 +391,15 @@ window.saServeThePublic = (function saServeThePublic() {
 		if (canDoVaginal(slave)) {
 			if (slave.vagina === 0) {
 				if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
-					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> ${He}'s so full of aphrodisiacs that ${he} <span class="hotpink">enjoys the experience.</span> <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> <span class="lime">${His} pussy is now broken in.</span>`;
 					slave.devotion += 4;
 					slave.vagina = 1;
 				} else if (slave.devotion > 20) {
-					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> Losing ${his} virginity in this way <span class="hotpink">confirms ${his} submission to you.</span> <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> Losing ${his} virginity in this way <span class="devotion inc">confirms ${his} submission to you.</span> <span class="lime">${His} pussy is now broken in.</span>`;
 					slave.devotion += 4;
 					slave.vagina = 1;
 				} else {
-					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> ${He} tries to resist, and losing ${his} virginity to a rape makes ${him} <span class="mediumorchid">hate</span> and <span class="gold">fear</span> you a great deal. <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the <span class="green">citizen who most deserves the gift of a slave's cherry.</span> ${He} tries to resist, and losing ${his} virginity to a rape makes ${him} <span class="devotion dec">hate</span> and <span class="trust dec">fear</span> you a great deal. <span class="lime">${His} pussy is now broken in.</span>`;
 					slave.devotion -= 10;
 					slave.trust -= 10;
 					slave.vagina = 1;
@@ -415,15 +415,15 @@ window.saServeThePublic = (function saServeThePublic() {
 		if (canDoAnal(slave)) {
 			if (slave.anus === 0) {
 				if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
-					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. ${He}'s so full of aphrodisiacs that ${he} <span class="hotpink">enjoys the experience.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
 					slave.devotion += 4;
 					slave.anus = 2;
 				} else if (slave.devotion > 20) {
-					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. The pain and humiliation <span class="hotpink">confirm ${his} submission to you.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. The pain and humiliation <span class="devotion inc">confirm ${his} submission to you.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
 					slave.devotion += 4;
 					slave.anus = 2;
 				} else {
-					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. The pain and humiliation increases ${his} <span class="mediumorchid">hatred</span> and <span class="gold">fear</span> for you. ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the <span class="green">most prominent citizen</span> to show an interest in an anal virgin. The pain and humiliation increases ${his} <span class="devotion dec">hatred</span> and <span class="trust dec">fear</span> for you. ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
 					slave.devotion -= 5;
 					slave.trust -= 5;
 					slave.anus = 2;
@@ -479,15 +479,15 @@ window.saServeThePublic = (function saServeThePublic() {
 		}
 
 		if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
-			r += ` The aphrodisiac cocktail has ${him} so desperately horny that regardless of ${his} personal feelings, ${he} <span class="hotpink">gets off with the public all week.</span> In ${his} drug-addled state ${he} doesn't remember enough to learn sexual skills.`;
+			r += ` The aphrodisiac cocktail has ${him} so desperately horny that regardless of ${his} personal feelings, ${he} <span class="devotion inc">gets off with the public all week.</span> In ${his} drug-addled state ${he} doesn't remember enough to learn sexual skills.`;
 			slave.devotion += 4;
 		} else if (slave.devotion <= 20 && slave.energy <= 95) {
 			if (slave.trust >= -20) {
-				r += ` ${He} tries to refuse being treated as an open slut, so ${he} is restrained for public use. ${He} loses a bit of ${himself} to a week of rape, but remembers enough to know <span class="mediumorchid">you're responsible,</span> and <span class="gold">can force ${him} if necessary.</span>`;
+				r += ` ${He} tries to refuse being treated as an open slut, so ${he} is restrained for public use. ${He} loses a bit of ${himself} to a week of rape, but remembers enough to know <span class="devotion dec">you're responsible,</span> and <span class="trust dec">can force ${him} if necessary.</span>`;
 				slave.devotion -= 5;
 				slave.trust -= 5;
 			} else {
-				r += ` ${He} doesn't show much enthusiasm, but the habit of sexual slavery <span class="hotpink">wears away at ${his} will.</span>`;
+				r += ` ${He} doesn't show much enthusiasm, but the habit of sexual slavery <span class="devotion inc">wears away at ${his} will.</span>`;
 				slave.devotion += 4;
 			}
 		} else {
@@ -1419,21 +1419,12 @@ window.saServeThePublic = (function saServeThePublic() {
 		mammaryUse = Math.trunc((mammaryUse / demand) * slave.sexAmount);
 		penetrativeUse = Math.trunc((penetrativeUse / demand) * slave.sexAmount);
 
-		slave.counter.oral += oralUse;
-		slave.counter.publicUse += oralUse;
-		V.oralTotal += oralUse;
-		slave.counter.anal += analUse;
-		slave.counter.publicUse += analUse;
-		V.analTotal += analUse;
-		slave.counter.vaginal += vaginalUse;
-		slave.counter.publicUse += vaginalUse;
-		V.vaginalTotal += vaginalUse;
-		slave.counter.mammary += mammaryUse;
-		slave.counter.publicUse += mammaryUse;
-		V.mammaryTotal += mammaryUse;
-		slave.counter.penetrative += penetrativeUse;
-		slave.counter.publicUse += penetrativeUse;
-		V.penetrativeTotal += penetrativeUse;
+		actX(slave, "oral", oralUse);
+		actX(slave, "anal", analUse);
+		actX(slave, "vaginal", vaginalUse);
+		actX(slave, "mammary", mammaryUse);
+		actX(slave, "penetrative", penetrativeUse);
+		actX(slave, "publicUse", (oralUse + analUse + vaginalUse + mammaryUse + penetrativeUse));
 
 		cervixPump = 0;
 		if (slave.cervixImplant === 1 || slave.cervixImplant === 3) {
@@ -1549,23 +1540,23 @@ window.saServeThePublic = (function saServeThePublic() {
 			} else if (vignette.type === "devotion") {
 				if (vignette.effect > 0) {
 					if (slave.devotion > 50) {
-						r += `<span class="hotpink">increasing ${his} devotion to you.</span>`;
+						r += `<span class="devotion inc">increasing ${his} devotion to you.</span>`;
 					} else if (slave.devotion >= -20) {
-						r += `<span class="hotpink">increasing ${his} acceptance of you.</span>`;
+						r += `<span class="devotion inc">increasing ${his} acceptance of you.</span>`;
 					} else if (slave.devotion >= -50) {
-						r += `<span class="hotpink">reducing ${his} dislike of you.</span>`;
+						r += `<span class="devotion inc">reducing ${his} dislike of you.</span>`;
 					} else {
-						r += `<span class="hotpink">reducing ${his} hatred of you.</span>`;
+						r += `<span class="devotion inc">reducing ${his} hatred of you.</span>`;
 					}
 				} else if (vignette.effect < 0) {
 					if (slave.devotion > 50) {
-						r += `<span class="mediumorchid">reducing ${his} devotion to you.</span>`;
+						r += `<span class="devotion dec">reducing ${his} devotion to you.</span>`;
 					} else if (slave.devotion >= -20) {
-						r += `<span class="mediumorchid">reducing ${his} acceptance of you.</span>`;
+						r += `<span class="devotion dec">reducing ${his} acceptance of you.</span>`;
 					} else if (slave.devotion >= -50) {
-						r += `<span class="mediumorchid">increasing ${his} dislike of you.</span>`;
+						r += `<span class="devotion dec">increasing ${his} dislike of you.</span>`;
 					} else {
-						r += `<span class="mediumorchid">increasing ${his} hatred of you.</span>`;
+						r += `<span class="devotion dec">increasing ${his} hatred of you.</span>`;
 					}
 				} else {
 					r += `an incident without lasting effect.`;
@@ -1574,19 +1565,19 @@ window.saServeThePublic = (function saServeThePublic() {
 			} else if (vignette.type === "trust") {
 				if (vignette.effect > 0) {
 					if (slave.trust > 20) {
-						r += `<span class="mediumaquamarine">increasing ${his} trust in you.</span>`;
+						r += `<span class="trust inc">increasing ${his} trust in you.</span>`;
 					} else if (slave.trust >= -50) {
-						r += `<span class="mediumaquamarine">reducing ${his} fear of you.</span>`;
+						r += `<span class="trust inc">reducing ${his} fear of you.</span>`;
 					} else {
-						r += `<span class="mediumaquamarine">reducing ${his} terror of you.</span>`;
+						r += `<span class="trust inc">reducing ${his} terror of you.</span>`;
 					}
 				} else if (vignette.effect < 0) {
 					if (slave.trust > 20) {
-						r += `<span class="gold">reducing ${his} trust in you.</span>`;
+						r += `<span class="trust dec">reducing ${his} trust in you.</span>`;
 					} else if (slave.trust >= -20) {
-						r += `<span class="gold">increasing ${his} fear of you.</span>`;
+						r += `<span class="trust dec">increasing ${his} fear of you.</span>`;
 					} else {
-						r += `<span class="gold">increasing ${his} terror of you.</span>`;
+						r += `<span class="trust dec">increasing ${his} terror of you.</span>`;
 					}
 				} else {
 					r += `an incident without lasting effect.`;
diff --git a/src/endWeek/saStayConfined.js b/src/endWeek/saStayConfined.js
index 2259c017701c90cf7972dabd99baf9eb60c6a2cd..0ea858cdf70d543ac13be99883b3e31968721f91 100644
--- a/src/endWeek/saStayConfined.js
+++ b/src/endWeek/saStayConfined.js
@@ -14,28 +14,28 @@ window.saStayConfined = function saStayConfined(slave) {
 
 	if (slave.fetish !== "mindbroken") {
 		if (slave.devotion < -50) {
-			t += `is kept in solitary confinement whenever ${he} is not being forced to do something else. ${He} still hates ${his} place in the world, but being forced to rely on slave life as ${his} only human contact <span class="hotpink">grinds down ${his} resistance.</span>`;
+			t += `is kept in solitary confinement whenever ${he} is not being forced to do something else. ${He} still hates ${his} place in the world, but being forced to rely on slave life as ${his} only human contact <span class="devotion inc">grinds down ${his} resistance.</span>`;
 			slave.devotion += 2;
 		} else if (slave.devotion <= 20) {
-			t += `is kept in solitary confinement whenever ${he} is not being forced to do something else. With nothing to do but look forward to the next time ${he}'s let out to serve, <span class="hotpink">${he} begins to rely on servitude.</span>`;
+			t += `is kept in solitary confinement whenever ${he} is not being forced to do something else. With nothing to do but look forward to the next time ${he}'s let out to serve, <span class="devotion inc">${he} begins to rely on servitude.</span>`;
 			slave.devotion += 1;
 		} else if (slave.devotion <= 50) {
 			t += `accepts solitary confinement whenever ${he} is not being forced to do something else. Since ${he} is obedient, the mental torture neither breaks ${him} further nor causes ${him} to hate you.`;
 		} else {
-			t += `accepts solitary confinement whenever ${he} is not being forced to do something else. ${He} spends ${his} time wondering hopelessly how ${he} has failed you, <span class="mediumorchid">damaging ${his} devotion to you.</span>`;
+			t += `accepts solitary confinement whenever ${he} is not being forced to do something else. ${He} spends ${his} time wondering hopelessly how ${he} has failed you, <span class="devotion dec">damaging ${his} devotion to you.</span>`;
 			slave.devotion -= 2;
 		}
 
 		if (slave.trust < -50) {
 			t += ` ${He} is so terrified of you that this confinement does not make ${him} fear you any more.`;
 		} else if (slave.trust < -20) {
-			t += ` ${He} is already afraid of you, but this confinement makes ${him} <span class="gold">fear you even more.</span>`;
+			t += ` ${He} is already afraid of you, but this confinement makes ${him} <span class="trust dec">fear you even more.</span>`;
 			slave.trust -= 2;
 		} else if (slave.trust <= 20) {
-			t += ` This confinement makes ${him} <span class="gold">fear your power</span> over ${him}.`;
+			t += ` This confinement makes ${him} <span class="trust dec">fear your power</span> over ${him}.`;
 			slave.trust -= 4;
 		} else {
-			t += ` This confinement makes ${him} <span class="gold">trust you less,</span> and fear you more.`;
+			t += ` This confinement makes ${him} <span class="trust dec">trust you less,</span> and fear you more.`;
 			slave.trust -= 5;
 		}
 
@@ -97,7 +97,7 @@ window.saStayConfined = function saStayConfined(slave) {
 		if (slave.fetish === "mindbroken") {
 			t += ` ${His} broken mind hinges entirely on other's guidance,`;
 		} else {
-			t += ` ${He} is now willing to <span class="hotpink">do as ${he}'s told,</span>`;
+			t += ` ${He} is now willing to <span class="devotion accept">do as ${he}'s told,</span>`;
 		}
 		t += ` so <span class="yellow">${his} assignment has defaulted to rest.</span>`;
 		if (slave.assignment === "be confined in the cellblock") {
diff --git a/src/endWeek/saTakeClasses.js b/src/endWeek/saTakeClasses.js
index bab08437462921d9e6b3a58307b70ea5f2deaefc..dd2fc6c1e5fd7b9f3ed7353762ae25130a569ff1 100644
--- a/src/endWeek/saTakeClasses.js
+++ b/src/endWeek/saTakeClasses.js
@@ -71,26 +71,26 @@ window.saTakeClasses = (function saServeThePublic() {
 				}
 				r += ` under ${V.Schoolteacher.slaveName}'s supervision;`;
 				if (slave.devotion > 20) {
-					r += ` ${he} is such an obedient slave that ${schoolteacherPronouns.pronoun} <span class="hotpink">encourages ${him}</span> to be the best slave ${he} can.`;
+					r += ` ${he} is such an obedient slave that ${schoolteacherPronouns.pronoun} <span class="devotion inc">encourages ${him}</span> to be the best slave ${he} can.`;
 					slave.devotion += 2;
 				} else if (slave.trust < -20) {
-					r += ` ${he} obeys out of fear, so ${schoolteacherPronouns.pronoun} <span class="hotpink">encourages ${him}</span> to be a better slave.`;
+					r += ` ${he} obeys out of fear, so ${schoolteacherPronouns.pronoun} <span class="devotion inc">encourages ${him}</span> to be a better slave.`;
 					slave.devotion++;
 				} else {
-					r += ` ${he} is resistant, so ${schoolteacherPronouns.pronoun} ends up mostly <span class="gold">punishing ${him},</span> increasing ${his} <span class="mediumorchid">dislike for slavery.</span>`;
+					r += ` ${he} is resistant, so ${schoolteacherPronouns.pronoun} ends up mostly <span class="trust dec">punishing ${him},</span> increasing ${his} <span class="devotion dec">dislike for slavery.</span>`;
 					slave.devotion -= 2;
 					slave.trust -= 4;
 				}
 			} else {
 				r += ` under ${V.assistantName}'s supervision;`;
 				if (slave.devotion > 20) {
-					r += ` ${he} is such an obedient slave that ${V.assistantName} mostly <span class="hotpink">encourages ${him}.</span>`;
+					r += ` ${he} is such an obedient slave that ${V.assistantName} mostly <span class="devotion inc">encourages ${him}.</span>`;
 					slave.devotion += 2;
 				} else if (slave.trust < -20) {
-					r += ` ${he} obeys out of fear, so ${V.assistantName} mostly <span class="hotpink">encourages ${him}</span> to be a better slave.`;
+					r += ` ${he} obeys out of fear, so ${V.assistantName} mostly <span class="devotion inc">encourages ${him}</span> to be a better slave.`;
 					slave.devotion++;
 				} else {
-					r += ` ${he} is resistant, so ${V.assistantName} mostly <span class="gold">punishes ${him},</span> increasing ${his} <span class="mediumorchid">dislike for slavery.</span>`;
+					r += ` ${he} is resistant, so ${V.assistantName} mostly <span class="trust dec">punishes ${him},</span> increasing ${his} <span class="devotion dec">dislike for slavery.</span>`;
 					slave.devotion -= 2;
 					slave.trust -= 4;
 				}
@@ -275,7 +275,7 @@ window.saTakeClasses = (function saServeThePublic() {
 		}
 		for (let lessons = 0; lessons < learning; lessons++) {
 			if (slave.devotion <= 20 && undevoted === 0) {
-				r += ` Since ${he} is wanting in basic obedience, ${he} suffers through courses on <span class="hotpink">$his place</span> in the Free Cities world.`;
+				r += ` Since ${he} is wanting in basic obedience, ${he} suffers through courses on <span class="devotion inc">$his place</span> in the Free Cities world.`;
 				slave.devotion += 10;
 				undevoted++;
 			} else if (slave.skill.oral <= 10) {
diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js
index e5e59cd9f58fb538328993ce4cce0e07788a885a..f996c8a1bd5a79f8f97c84c1d755dca2723eb23e 100644
--- a/src/endWeek/saWhore.js
+++ b/src/endWeek/saWhore.js
@@ -322,14 +322,14 @@ window.saWhore = (function saWhore() {
 	 */
 	function mentalEffects(slave) {
 		if (slave.behavioralQuirk === "sinful") {
-			r += ` ${slave.slaveName} <span class="hotpink">secretly enjoys</span> how utterly sinful and depraved it is for ${him} to sell ${his} body.`;
+			r += ` ${slave.slaveName} <span class="devotion inc">secretly enjoys</span> how utterly sinful and depraved it is for ${him} to sell ${his} body.`;
 			slave.devotion += 1;
 		} else if (slave.behavioralQuirk === "cutting") {
-			r += ` ${slave.slaveName} <span class="hotpink">openly enjoys</span> the direct, frank language of prostitution, and delights customers with cutting remarks even as they fuck ${him}.`;
+			r += ` ${slave.slaveName} <span class="devotion inc">openly enjoys</span> the direct, frank language of prostitution, and delights customers with cutting remarks even as they fuck ${him}.`;
 			slave.devotion += 1;
 		}
 		if (slave.sexualQuirk === "caring") {
-			r += ` ${slave.slaveName} sees ${his} role as helping people with their sexual needs, and ${he} <span class="mediumaquamarine">trusts that ${his} place</span> in society is an important one.`;
+			r += ` ${slave.slaveName} sees ${his} role as helping people with their sexual needs, and ${he} <span class="trust inc">trusts that ${his} place</span> in society is an important one.`;
 			slave.trust += 1;
 		}
 		if (slave.assignment === "work in the brothel" && slave.devotion > 50) {
@@ -453,15 +453,15 @@ window.saWhore = (function saWhore() {
 		if (canDoVaginal(slave)) {
 			if (slave.vagina === 0) {
 				if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
-					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. ${He}'s so full of aphrodisiacs that ${he} <span class="hotpink">enjoys the experience.</span> <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> <span class="lime">${His} pussy is now broken in.</span>`;
 					slave.devotion += 4;
 					slave.vagina = 1;
 				} else if (slave.devotion > 20) {
-					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. Losing ${his} virginity in this way <span class="hotpink">confirms ${his} submission to you.</span> <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. Losing ${his} virginity in this way <span class="devotion inc">confirms ${his} submission to you.</span> <span class="lime">${His} pussy is now broken in.</span>`;
 					slave.devotion += 4;
 					slave.vagina = 1;
 				} else {
-					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. ${He} tries to resist, and losing ${his} virginity to a rape makes ${him} <span class="mediumorchid">hate</span> and <span class="gold">fear</span> you a great deal. <span class="lime">${His} pussy is now broken in.</span>`;
+					r += ` ${His} virginity goes to the highest bidder, earning ${cashFormat(beauty * 10)}. ${He} tries to resist, and losing ${his} virginity to a rape makes ${him} <span class="devotion dec">hate</span> and <span class="trust dec">fear</span> you a great deal. <span class="lime">${His} pussy is now broken in.</span>`;
 					slave.devotion -= 10;
 					slave.trust -= 10;
 					slave.vagina = 1;
@@ -477,15 +477,15 @@ window.saWhore = (function saWhore() {
 		if (canDoAnal(slave)) {
 			if (slave.anus === 0) {
 				if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
-					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. ${He}'s so full of aphrodisiacs that ${he} <span class="hotpink">enjoys the experience.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. ${He}'s so full of aphrodisiacs that ${he} <span class="devotion inc">enjoys the experience.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
 					slave.devotion += 4;
 					slave.anus = 2;
 				} else if (slave.devotion > 20) {
-					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. The pain and humiliation <span class="hotpink">confirm ${his} submission to you.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. The pain and humiliation <span class="devotion inc">confirm ${his} submission to you.</span> ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
 					slave.devotion += 4;
 					slave.anus = 2;
 				} else {
-					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. The pain and humiliation increases ${his} <span class="mediumorchid">hatred</span> and <span class="gold">fear</span> for you. ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
+					r += ` ${His} tight little anus goes to the highest bidder, earning ${cashFormat(beauty * 5)}. The pain and humiliation increases ${his} <span class="devotion dec">hatred</span> and <span class="trust dec">fear</span> for you. ${His} fresh asshole is fucked all week, and by the end of it <span class="lime">${he} won't sit down.</span>`;
 					slave.devotion -= 5;
 					slave.trust -= 5;
 					slave.anus = 2;
@@ -559,15 +559,15 @@ window.saWhore = (function saWhore() {
 		}
 
 		if (slave.aphrodisiacs > 1 || slave.inflationType === "aphrodisiac") {
-			r += ` The aphrodisiac cocktail has ${him} so desperately horny that regardless of ${his} personal feelings, ${he} <span class="hotpink">gets off with customers all week.</span> In ${his} drug-addled state ${he} doesn't remember enough to learn sexual skills.`;
+			r += ` The aphrodisiac cocktail has ${him} so desperately horny that regardless of ${his} personal feelings, ${he} <span class="devotion inc">gets off with customers all week.</span> In ${his} drug-addled state ${he} doesn't remember enough to learn sexual skills.`;
 			slave.devotion += 4;
 		} else if (slave.devotion <= 20 && slave.energy <= 95) {
 			if (slave.trust >= -20) {
-				r += ` ${He} tries to refuse being sold as a whore, so ${he} is restrained for sale. ${He} loses a bit of ${himself} to a week of rape, but remembers enough to know <span class="mediumorchid">you're responsible,</span> and <span class="gold">can force ${him} if necessary.</span>`;
+				r += ` ${He} tries to refuse being sold as a whore, so ${he} is restrained for sale. ${He} loses a bit of ${himself} to a week of rape, but remembers enough to know <span class="devotion dec">you're responsible,</span> and <span class="trust dec">can force ${him} if necessary.</span>`;
 				slave.devotion -= 5;
 				slave.trust -= 5;
 			} else {
-				r += ` ${He} doesn't show much enthusiasm, but the habit of sexual prostitution <span class="hotpink">wears away at ${his} will.</span>`;
+				r += ` ${He} doesn't show much enthusiasm, but the habit of sexual prostitution <span class="devotion inc">wears away at ${his} will.</span>`;
 				slave.devotion += 4;
 			}
 		} else {
@@ -1501,21 +1501,12 @@ window.saWhore = (function saWhore() {
 		mammaryUse = Math.trunc((mammaryUse / demand) * beauty);
 		penetrativeUse = Math.trunc((penetrativeUse / demand) * beauty);
 
-		slave.counter.oral += oralUse;
-		slave.counter.publicUse += oralUse;
-		V.oralTotal += oralUse;
-		slave.counter.anal += analUse;
-		slave.counter.publicUse += analUse;
-		V.analTotal += analUse;
-		slave.counter.vaginal += vaginalUse;
-		slave.counter.publicUse += vaginalUse;
-		V.vaginalTotal += vaginalUse;
-		slave.counter.mammary += mammaryUse;
-		slave.counter.publicUse += mammaryUse;
-		V.mammaryTotal += mammaryUse;
-		slave.counter.penetrative += penetrativeUse;
-		slave.counter.publicUse += penetrativeUse;
-		V.penetrativeTotal += penetrativeUse;
+		actX(slave, "oral", oralUse);
+		actX(slave, "anal", analUse);
+		actX(slave, "vaginal", vaginalUse);
+		actX(slave, "mammary", mammaryUse);
+		actX(slave, "penetrative", penetrativeUse);
+		actX(slave, "publicUse", (oralUse + analUse + vaginalUse + mammaryUse + penetrativeUse));
 
 		cervixPump = 0;
 		if (slave.cervixImplant === 1 || slave.cervixImplant === 3) {
@@ -1634,23 +1625,23 @@ window.saWhore = (function saWhore() {
 		} else if (vignette.type === "devotion") {
 			if (vignette.effect > 0) {
 				if (slave.devotion > 50) {
-					r += `<span class="hotpink">increasing ${his} devotion to you.</span>`;
+					r += `<span class="devotion inc">increasing ${his} devotion to you.</span>`;
 				} else if (slave.devotion >= -20) {
-					r += `<span class="hotpink">increasing ${his} acceptance of you.</span>`;
+					r += `<span class="devotion inc">increasing ${his} acceptance of you.</span>`;
 				} else if (slave.devotion >= -50) {
-					r += `<span class="hotpink">reducing ${his} dislike of you.</span>`;
+					r += `<span class="devotion inc">reducing ${his} dislike of you.</span>`;
 				} else {
-					r += `<span class="hotpink">reducing ${his} hatred of you.</span>`;
+					r += `<span class="devotion inc">reducing ${his} hatred of you.</span>`;
 				}
 			} else if (vignette.effect < 0) {
 				if (slave.devotion > 50) {
-					r += `<span class="mediumorchid">reducing ${his} devotion to you.</span>`;
+					r += `<span class="devotion dec">reducing ${his} devotion to you.</span>`;
 				} else if (slave.devotion >= -20) {
-					r += `<span class="mediumorchid">reducing ${his} acceptance of you.</span>`;
+					r += `<span class="devotion dec">reducing ${his} acceptance of you.</span>`;
 				} else if (slave.devotion >= -50) {
-					r += `<span class="mediumorchid">increasing ${his} dislike of you.</span>`;
+					r += `<span class="devotion dec">increasing ${his} dislike of you.</span>`;
 				} else {
-					r += `<span class="mediumorchid">increasing ${his} hatred of you.</span>`;
+					r += `<span class="devotion dec">increasing ${his} hatred of you.</span>`;
 				}
 			} else {
 				r += `an incident without lasting effect.`;
@@ -1659,19 +1650,19 @@ window.saWhore = (function saWhore() {
 		} else if (vignette.type === "trust") {
 			if (vignette.effect > 0) {
 				if (slave.trust > 20) {
-					r += `<span class="mediumaquamarine">increasing ${his} trust in you.</span>`;
+					r += `<span class="trust inc">increasing ${his} trust in you.</span>`;
 				} else if (slave.trust >= -50) {
-					r += `<span class="mediumaquamarine">reducing ${his} fear of you.</span>`;
+					r += `<span class="trust inc">reducing ${his} fear of you.</span>`;
 				} else {
-					r += `<span class="mediumaquamarine">reducing ${his} terror of you.</span>`;
+					r += `<span class="trust inc">reducing ${his} terror of you.</span>`;
 				}
 			} else if (vignette.effect < 0) {
 				if (slave.trust > 20) {
-					r += `<span class="gold">reducing ${his} trust in you.</span>`;
+					r += `<span class="trust dec">reducing ${his} trust in you.</span>`;
 				} else if (slave.trust >= -20) {
-					r += `<span class="gold">increasing ${his} fear of you.</span>`;
+					r += `<span class="trust dec">increasing ${his} fear of you.</span>`;
 				} else {
-					r += `<span class="gold">increasing ${his} terror of you.</span>`;
+					r += `<span class="trust dec">increasing ${his} terror of you.</span>`;
 				}
 			} else {
 				r += `an incident without lasting effect.`;
diff --git a/src/endWeek/saWorkAGloryHole.js b/src/endWeek/saWorkAGloryHole.js
index f0bbfbc3b6d600ec6d5eb668172955aff702b2e3..d7fefd1a706696b0e006364b09a7c4273a4c695c 100644
--- a/src/endWeek/saWorkAGloryHole.js
+++ b/src/endWeek/saWorkAGloryHole.js
@@ -159,7 +159,7 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 			} else {
 				r += `Fuckdoll`;
 			}
-			r += ` user takes ${his} virginity. He does not notice or care. <span class="lime">${His} pussy has been broken in</span> in a <span class="gold">painful</span> and <span class="mediumorchid">degrading</span> way.`;
+			r += ` user takes ${his} virginity. He does not notice or care. <span class="lime">${His} pussy has been broken in</span> in a <span class="trust dec">painful</span> and <span class="devotion dec">degrading</span> way.`;
 			slave.devotion -= 10;
 			slave.trust -= 10;
 			slave.vagina = 1;
@@ -181,7 +181,7 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 			} else {
 				r += `a Fuckdoll`;
 			}
-			r += ` is so great. <span class="lime">${His} ass has been broken in</span> in a <span class="gold">painful</span> and <span class="mediumorchid">degrading</span> way.`;
+			r += ` is so great. <span class="lime">${His} ass has been broken in</span> in a <span class="trust dec">painful</span> and <span class="devotion dec">degrading</span> way.`;
 			slave.devotion -= 5;
 			slave.trust -= 5;
 			slave.anus = 1;
@@ -225,15 +225,15 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 					slave.behavioralFlaw = "odd";
 				}
 				if (slave.devotion > 50) {
-					r += ` ${He} does ${his} best to tolerate ${his} sentence to the glory hole, but <span class="mediumorchid">${his} devotion is hurt</span> and ${he} is <span class="gold">filled with fear</span> ${he} won't be let out.`;
+					r += ` ${He} does ${his} best to tolerate ${his} sentence to the glory hole, but <span class="devotion dec">${his} devotion is hurt</span> and ${he} is <span class="trust dec">filled with fear</span> ${he} won't be let out.`;
 				} else if (slave.devotion > 20) {
-					r += ` ${He} does not understand why ${his} obedience has earned ${him} a sentence to this torture. <span class="mediumorchid">${His} obedience is hurt</span> and ${he} is <span class="gold">filled with fear</span> ${he} won't be let out.`;
+					r += ` ${He} does not understand why ${his} obedience has earned ${him} a sentence to this torture. <span class="devotion dec">${His} obedience is hurt</span> and ${he} is <span class="trust dec">filled with fear</span> ${he} won't be let out.`;
 				} else if (slave.devotion >= -20) {
-					r += ` ${His} fear of you turns to desperation during ${his} sentence. <span class="mediumorchid">${His} obedience is reduced</span> and ${he} is <span class="gold">filled with fear</span> ${he} won't be let out.`;
+					r += ` ${His} fear of you turns to desperation during ${his} sentence. <span class="devotion dec">${His} obedience is reduced</span> and ${he} is <span class="trust dec">filled with fear</span> ${he} won't be let out.`;
 				} else if (slave.devotion >= -50) {
-					r += ` Though ${he} is only temporarily sentenced to suffer, <span class="mediumorchid">${his} resistance is increased</span> and ${he} is <span class="gold">filled with fear</span> ${he} won't be let out.`;
+					r += ` Though ${he} is only temporarily sentenced to suffer, <span class="devotion dec">${his} resistance is increased</span> and ${he} is <span class="trust dec">filled with fear</span> ${he} won't be let out.`;
 				} else {
-					r += ` ${He} has hope ${he}'ll be released after ${his} sentence, but <span class="mediumorchid">${his} hatred of you is increased</span> and ${he} is <span class="gold">filled with fear</span> ${he} won't be let out.`;
+					r += ` ${He} has hope ${he}'ll be released after ${his} sentence, but <span class="devotion dec">${his} hatred of you is increased</span> and ${he} is <span class="trust dec">filled with fear</span> ${he} won't be let out.`;
 				}
 				slave.devotion -= 5;
 				slave.trust -= 5;
@@ -243,15 +243,15 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 					slave.behavioralFlaw = "odd";
 				}
 				if (slave.devotion > 50) {
-					r += ` ${He} feels starved of personal contact. <span class="mediumorchid">${His} devotion is hurt</span> and ${he} is <span class="gold">filled with fear</span> ${he} won't be let out.`;
+					r += ` ${He} feels starved of personal contact. <span class="devotion dec">${His} devotion is hurt</span> and ${he} is <span class="trust dec">filled with fear</span> ${he} won't be let out.`;
 				} else if (slave.devotion > 20) {
-					r += ` ${He} does not understand why ${his} obedience has earned ${him} this immurement. <span class="mediumorchid">${His} obedience is hurt</span> and ${he} is <span class="gold">filled with fear</span> ${he} won't be let out.`;
+					r += ` ${He} does not understand why ${his} obedience has earned ${him} this immurement. <span class="devotion dec">${His} obedience is hurt</span> and ${he} is <span class="trust dec">filled with fear</span> ${he} won't be let out.`;
 				} else if (slave.devotion >= -20) {
-					r += ` ${His} fear of you has increased into something like a pathology. <span class="mediumorchid">${His} obedience is reduced</span> and ${he} is <span class="gold">filled with fear</span> ${he} won't be let out.`;
+					r += ` ${His} fear of you has increased into something like a pathology. <span class="devotion dec">${His} obedience is reduced</span> and ${he} is <span class="trust dec">filled with fear</span> ${he} won't be let out.`;
 				} else if (slave.devotion >= -50) {
-					r += ` ${His} resistance is deepening into hatred. <span class="mediumorchid">${His} resistance is increased</span> and ${he} is <span class="gold">filled with fear</span> ${he} won't be let out.`;
+					r += ` ${His} resistance is deepening into hatred. <span class="devotion dec">${His} resistance is increased</span> and ${he} is <span class="trust dec">filled with fear</span> ${he} won't be let out.`;
 				} else {
-					r += ` <span class="mediumorchid">${His} helpless hatred of you is increased</span> and ${he} is <span class="gold">filled with fear</span> ${he} won't be let out.`;
+					r += ` <span class="devotion dec">${His} helpless hatred of you is increased</span> and ${he} is <span class="trust dec">filled with fear</span> ${he} won't be let out.`;
 				}
 				slave.devotion -= 10;
 				slave.trust -= 10;
@@ -402,13 +402,10 @@ window.saWorkAGloryHole = (function saWorkAGloryHole() {
 
 		slave.need -= ((analUse + vaginalUse) / 4);
 
-		slave.counter.oral += oralUse;
-		V.oralTotal += oralUse;
-		slave.counter.anal += analUse;
-		V.analTotal += analUse;
-		slave.counter.vaginal += vaginalUse;
-		V.vaginalTotal += vaginalUse;
-		slave.counter.publicUse += oralUse + analUse + vaginalUse;
+		actX(slave, "oral", oralUse);
+		actX(slave, "anal", analUse);
+		actX(slave, "vaginal", vaginalUse);
+		actX(slave, "publicUse", (oralUse + analUse + vaginalUse));
 
 		if (slave.cervixImplant === 1 || slave.cervixImplant === 3) {
 			cervixPump += (20 * vaginalUse);
diff --git a/src/endWeek/saWorkTheFarm.js b/src/endWeek/saWorkTheFarm.js
index 913596d344d4701bcc1be693240595fcfa4e6597..d2a362218139ad1a8c38899ef300fffa0892095b 100644
--- a/src/endWeek/saWorkTheFarm.js
+++ b/src/endWeek/saWorkTheFarm.js
@@ -432,9 +432,9 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 	if (slave.fetishKnown && (slave.fetish === "submissive" || slave.fetish === "humiliation" || slave.fetish === "masochist") || slave.energy > 95) {
 		if (V.farmyardShows) {
 			if (V.seeBestiality === 1) {
-				t += `Getting fucked by animals is the perfect job for ${him}, as far as ${he} can tell. <span class="hotpink">${He} is happy</span> to spend ${his} days being utterly degraded. `;
+				t += `Getting fucked by animals is the perfect job for ${him}, as far as ${he} can tell. <span class="devotion inc">${He} is happy</span> to spend ${his} days being utterly degraded. `;
 			} else {
-				t += `${He} loves putting on shows with animals, and as far as ${he} can tell, it's the perfect job for ${him}. <span class="hotpink">${He} is happy</span> to spend ${his} days doing something so degrading. `; // TODO: not sure how degrading putting on shows is
+				t += `${He} loves putting on shows with animals, and as far as ${he} can tell, it's the perfect job for ${him}. <span class="devotion inc">${He} is happy</span> to spend ${his} days doing something so degrading. `; // TODO: not sure how degrading putting on shows is
 			}
 		}
 		slave.devotion += 1;
@@ -443,7 +443,7 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 		}
 	}
 	if (slave.behavioralQuirk === "fitness") {
-		t += `${slave.slaveName} <span class="hotpink">privately enjoys</span> the exercise ${he} receives while working in ${V.farmyardName}. `;
+		t += `${slave.slaveName} <span class="devotion inc">privately enjoys</span> the exercise ${he} receives while working in ${V.farmyardName}. `;
 		slave.devotion += 1;
 	}
 
@@ -468,23 +468,23 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 		} else if (vignette.type === "devotion") {
 			if (vignette.effect > 0) {
 				if (slave.devotion > 50) {
-					t += ` <span class="hotpink">increasing ${his} devotion to you.</span> `;
+					t += ` <span class="devotion inc">increasing ${his} devotion to you.</span> `;
 				} else if (slave.devotion >= 20) {
-					t += ` <span class="hotpink">increasing ${his} acceptance of you.</span> `;
+					t += ` <span class="devotion inc">increasing ${his} acceptance of you.</span> `;
 				} else if (slave.devotion >= -20) {
-					t += ` <span class="hotpink">reducing ${his} dislike of you.</span> `;
+					t += ` <span class="devotion inc">reducing ${his} dislike of you.</span> `;
 				} else {
-					t += ` <span class="hotpink">reducing ${his} hatred of you.</span> `;
+					t += ` <span class="devotion inc">reducing ${his} hatred of you.</span> `;
 				}
 			} else if (vignette.effect < 0) {
 				if (slave.devotion > 50) {
-					t += ` <span class="mediumorchid">reducing ${his} devotion to you.</span> `;
+					t += ` <span class="devotion dec">reducing ${his} devotion to you.</span> `;
 				} else if (slave.devotion >= 20) {
-					t += ` <span class="mediumorchid">reducing ${his} acceptance of you.</span> `;
+					t += ` <span class="devotion dec">reducing ${his} acceptance of you.</span> `;
 				} else if (slave.devotion >= -20) {
-					t += ` <span class="mediumorchid">increasing ${his} dislike of you.</span> `;
+					t += ` <span class="devotion dec">increasing ${his} dislike of you.</span> `;
 				} else {
-					t += ` <span class="mediumorchid">increasing ${his} hatred of you.</span> `;
+					t += ` <span class="devotion dec">increasing ${his} hatred of you.</span> `;
 				}
 			} else {
 				t += ` an incident without lasting effect. `;
@@ -493,19 +493,19 @@ window.saWorkTheFarm = function saWorkTheFarm(slave) {
 		} else if (vignette.type === "trust") {
 			if (vignette.effect > 0) {
 				if (slave.trust > 20) {
-					t += ` <span class="mediumaquamarine">increasing ${his} trust in you.</span> `;
+					t += ` <span class="trust inc">increasing ${his} trust in you.</span> `;
 				} else if (slave.trust >= -20) {
-					t += ` <span class="mediumaquamarine">reducing ${his} fear of you.</span> `;
+					t += ` <span class="trust inc">reducing ${his} fear of you.</span> `;
 				} else {
-					t += ` <span class="mediumaquamarine">reducing ${his} terror of you.</span> `;
+					t += ` <span class="trust inc">reducing ${his} terror of you.</span> `;
 				}
 			} else if (vignette.effect < 0) {
 				if (slave.trust > 20) {
-					t += ` <span class="gold">reducing ${his} trust in you.</span> `;
+					t += ` <span class="trust dec">reducing ${his} trust in you.</span> `;
 				} else if (slave.trust >= -20) {
-					t += ` <span class="gold">increasing ${his} fear of you.</span> `;
+					t += ` <span class="trust dec">increasing ${his} fear of you.</span> `;
 				} else {
-					t += ` <span class="gold">increasing ${his} terror of you.</span> `;
+					t += ` <span class="trust dec">increasing ${his} terror of you.</span> `;
 				}
 			} else {
 				t += ` an incident without lasting effect. `;
diff --git a/src/facilities/nursery/nurseryWidgets.js b/src/facilities/nursery/nurseryWidgets.js
index cb4ef5362206841de0fc3536120a2ee2b2df9dab..46eed76b34e4c21d2b33223fa922708d1890eb29 100644
--- a/src/facilities/nursery/nurseryWidgets.js
+++ b/src/facilities/nursery/nurseryWidgets.js
@@ -2666,49 +2666,49 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 	function shortDevotion(child) {
 		r += `<br>`;
 		if (child.fetish === "mindbroken") {
-			r += `<span class="red">MB</span> `;
+			r += `<span class="mindbroken">MB</span> `;
 		} else if (child.devotion < -95) {
-			r += `<span class="darkviolet">Hate${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
+			r += `<span class="devotion hateful">Hate${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
 		} else if (child.devotion < -50) {
-			r += `<span class="darkviolet">Hate${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
+			r += `<span class="devotion hateful">Hate${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
 		} else if (child.devotion < -20) {
-			r += `<span class="mediumorchid">Res${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
+			r += `<span class="devotion resistant">Res${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
 		} else if (child.devotion <= 20) {
-			r += `<span class="yellow">Ambiv${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
+			r += `<span class="devotion ambivalent">Ambiv${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
 		} else if (child.devotion <= 50) {
-			r += `<span class="hotpink">Accept${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
+			r += `<span class="devotion accept">Accept${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
 		} else if (child.devotion <= 95) {
-			r += `<span class="deeppink">Devo${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
+			r += `<span class="devotion devoted">Devo${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
 		} else {
-			r += `<span class="magenta">Wor${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
+			r += `<span class="devotion worship">Wor${V.summaryStats ? `[${child.devotion}]` : ''}</span> `;
 		}
 		if (child.fetish === "mindbroken") {
 			return;
 		} else if (child.trust < -95) {
-			r += `<span class="darkgoldenrod">ETerr${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
+			r += `<span class="trust extremely-terrified">ETerr${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
 		} else if (child.trust < -50) {
-			r += `<span class="goldenrod">Terr${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
+			r += `<span class="trust terrified">Terr${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
 		} else if (child.trust < -20) {
-			r += `<span class="gold">Fright${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
+			r += `<span class="trust frightened">Fright${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
 		} else if (child.trust <= 20) {
-			r += `<span class="yellow">Fear${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
+			r += `<span class="trust fearful">Fear${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
 		} else if (child.trust <= 50) {
 			if (child.devotion < -20) {
-				r += `<span class="orange">Caref${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
+				r += `<span class="defiant careful">Caref${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
 			} else {
-				r += `<span class="mediumaquamarine">Caref${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
+				r += `<span class="trust careful">Caref${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
 			}
 		} else if (child.trust < 95) {
 			if (child.devotion < -20) {
-				r += `<span class="orangered">Bold${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
+				r += `<span class="defiant bold">Bold${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
 			} else {
-				r += `<span class="mediumseagreen">Trust${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
+				r += `<span class="trust trusting">Trust${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
 			}
 		} else {
 			if (child.devotion < -20) {
-				r += `<span class="darkred">Defiant${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
+				r += `<span class="defiant full">Defiant${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
 			} else {
-				r += `<span class="seagreen">VTrust ${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
+				r += `<span class="trust prof-trusting">VTrust ${V.summaryStats ? `[${child.trust}]` : ''}</span> `;
 			}
 		}
 	}
@@ -2719,49 +2719,49 @@ App.Facilities.Nursery.ChildSummary = function(child) {
 	function longDevotion(child) {
 		r += `<br>`;
 		if (child.fetish === "mindbroken") {
-			r += `<span class="red">Mindbroken.</span> `;
+			r += `<span class="mindbroken">Mindbroken.</span> `;
 		} else if (child.devotion < -95) {
-			r += `<span class="darkviolet">Very hateful${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
+			r += `<span class="devotion hateful">Very hateful${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
 		} else if (child.devotion < -50) {
-			r += `<span class="darkviolet">Hateful${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
+			r += `<span class="devotion hateful">Hateful${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
 		} else if (child.devotion < -20) {
-			r += `<span class="mediumorchid">Resistant${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
+			r += `<span class="devotion resistant">Resistant${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
 		} else if (child.devotion <= 20) {
-			r += `<span class="yellow">Ambivalent${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
+			r += `<span class="devotion ambivalent">Ambivalent${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
 		} else if (child.devotion <= 50) {
-			r += `<span class="hotpink">Accepting${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
+			r += `<span class="devotion accept">Accepting${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
 		} else if (child.devotion <= 95) {
-			r += `<span class="deeppink">Devoted${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
+			r += `<span class="devotion devoted">Devoted${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
 		} else {
-			r += `<span class="magenta">Worshipful${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
+			r += `<span class="devotion worship">Worshipful${V.summaryStats ? `[${child.devotion}]` : ''}.</span> `;
 		}
 		if (child.fetish === "mindbroken") {
 			return;
 		} else if (child.trust < -95) {
-			r += `<span class="darkgoldenrod">Extremely terrified${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
+			r += `<span class="trust extremely-terrified">Extremely terrified${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
 		} else if (child.trust < -50) {
-			r += `<span class="goldenrod">Terrified${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
+			r += `<span class="trust terrifies">Terrified${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
 		} else if (child.trust < -20) {
-			r += `<span class="gold">Frightened${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
+			r += `<span class="trust frightened">Frightened${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
 		} else if (child.trust <= 20) {
-			r += `<span class="yellow">Fearful${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
+			r += `<span class="trust fearful">Fearful${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
 		} else if (child.trust <= 50) {
 			if (child.devotion < -20) {
-				r += `<span class="orange">Careful${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
+				r += `<span class="defiant careful">Careful${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
 			} else {
-				r += `<span class="mediumaquamarine">Careful${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
+				r += `<span class="trust careful">Careful${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
 			}
 		} else if (child.trust < 95) {
 			if (child.devotion < -20) {
-				r += `<span class="orangered">Bold${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
+				r += `<span class="defiant bold">Bold${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
 			} else {
-				r += `<span class="mediumseagreen">Trusting${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
+				r += `<span class="trust trusting">Trusting${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
 			}
 		} else {
 			if (child.devotion < -20) {
-				r += `<span class="darkred">Defiant${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
+				r += `<span class="defiant full">Defiant${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
 			} else {
-				r += `<span class="seagreen">Profoundly trusting${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
+				r += `<span class="trust prof-trusting">Profoundly trusting${V.summaryStats ? `[${child.trust}]` : ''}.</span> `;
 			}
 		}
 	}
@@ -12949,46 +12949,46 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 	r += ` is `;
 
 	if (child.devotion < -95) {
-		r += `a <span class="darkviolet">hate-filled,</span> `;
+		r += `a <span class="devotion hateful">hate-filled,</span> `;
 	} else if (child.devotion < -50) {
-		r += `a <span class="darkviolet">hateful,</span> `;
+		r += `a <span class="devotion hateful">hateful,</span> `;
 	} else if (child.devotion < -20) {
-		r += `a <span class="mediumorchid">reluctant,</span> `;
+		r += `a <span class="devotion resistant">reluctant,</span> `;
 	} else if (child.devotion <= 20) {
-		r += `a <span class="yellow">hesitant,</span> `;
+		r += `a <span class="devotion ambivalent">hesitant,</span> `;
 	} else if (child.devotion <= 50) {
-		r += `an <span class="hotpink">accepting,</span> `;
+		r += `an <span class="devotion accept">accepting,</span> `;
 	} else if (child.devotion <= 95) {
-		r += `a <span class="deeppink">devoted,</span> `;
+		r += `a <span class="devotion devoted">devoted,</span> `;
 	} else {
-		r += `a <span class="magenta">worshipful,</span> `;
+		r += `a <span class="devotion worship">worshipful,</span> `;
 	}
 
 	if (child.trust < -95) {
-		r += `<span class="goldenrod">abjectly terrified</span> `;
+		r += `<span class="trust extremely-terrified">abjectly terrified</span> `;
 	} else if (child.devotion < -50) {
-		r += `<span class="goldenrod">terrified</span> `;
+		r += `<span class="trust terrified">terrified</span> `;
 	} else if (child.devotion < -20) {
-		r += `<span class="gold">frightened</span> `;
+		r += `<span class="trust frightened">frightened</span> `;
 	} else if (child.devotion <= 20) {
-		r += `<span class="yellow">fearful</span> `;
+		r += `<span class="trust fearful">fearful</span> `;
 	} else if (child.devotion <= 50) {
 		if (child.devotion < -20) {
-			r += `<span class="orange">careful</span> `;
+			r += `<span class="defiant careful">careful</span> `;
 		} else {
-			r += `<span class="mediumaquamarine">careful</span> `;
+			r += `<span class="trust careful">careful</span> `;
 		}
 	} else if (child.devotion <= 95) {
 		if (child.devotion < -20) {
-			r += `<span class="orangered">bold</span> `;
+			r += `<span class="defiant bold">bold</span> `;
 		} else {
-			r += `<span class="mediumseagreen">trusting</span> `;
+			r += `<span class="trust trusting">trusting</span> `;
 		}
 	} else {
 		if (child.devotion < -20) {
-			r += `<span class="darkred">defiant</span> `;
+			r += `<span class="defiant full">defiant</span> `;
 		} else {
-			r += `<span class="seagreen">profoundly trusting</span> `;
+			r += `<span class="trust prof-trusting">profoundly trusting</span> `;
 		}
 	}
 
diff --git a/src/facilities/nursery/scenes/fChildWidgets.js b/src/facilities/nursery/scenes/fChildWidgets.js
index e0b3dc6a236464921e9f5290fff0a73c419db7a1..bbe8d32a23ac110ced739313353982f554833f2d 100644
--- a/src/facilities/nursery/scenes/fChildWidgets.js
+++ b/src/facilities/nursery/scenes/fChildWidgets.js
@@ -4,7 +4,7 @@ App.Facilities.Nursery.fChildOral = function fChildOral(child) {
 	let
 		r = ``;
 
-	child.counter.oral++, V.oralTotal++;	// TODO: will this counts towards the total count?
+	actX(child, "oral");// TODO: will this counts towards the total count?
 	clearSummaryCache(child);
 
 	// TODO: all of this
@@ -18,7 +18,7 @@ App.Facilities.Nursery.fChildVaginal = function fChildVaginal(child) {
 	let
 		r = ``;
 
-	child.counter.vaginal++, V.vaginalTotal++;	// TODO: will this counts towards the total count?
+	actX(child, "vaginal");// TODO: will this counts towards the total count?
 	clearSummaryCache(child);
 
 	// TODO: all of this
@@ -32,7 +32,7 @@ App.Facilities.Nursery.fChildAnal = function fChildAnal(child) {
 	let
 		r = ``;
 
-	child.counter.anal++, V.analTotal++;	// TODO: will this counts towards the total count?
+	actX(child, "anal");
 	clearSummaryCache(child);
 
 	// TODO: all of this
@@ -50,9 +50,9 @@ App.Facilities.Nursery.fChildImpreg = function fChildImpreg(child) {
 
 	clearSummaryCache(child);
 	if (child.mpreg) {
-		child.counter.anal += bonus + 1, V.analTotal += bonus + 1;
+		actX(child, "anal", (bonus + 1));
 	} else {
-		child.counter.vaginal += bonus + 1, V.vaginalTotal += bonus + 1;
+		actX(child, "vaginal", (bonus + 1));
 	}
 
 	// TODO: all of this
diff --git a/src/gui/css/mainStyleSheet.css b/src/gui/css/mainStyleSheet.css
index 17a481c79b65352d4e4bf1a0f71edd5cf207f26c..5db722676d7d00d1e46bfc224fdc05fcafb0bff0 100644
--- a/src/gui/css/mainStyleSheet.css
+++ b/src/gui/css/mainStyleSheet.css
@@ -184,19 +184,19 @@ span.zeroButton > a:hover { text-decoration: none; }
 .aquamarine, .aquamarine a, .skill, .skill a { color: aquamarine }
 .coral, .coral a, .fetish.loss, .fetish.loss a { color: coral }
 .cyan, .cyan a { color: cyan } /* used for aphrodisiac & neighbor arcs */
-.darkgoldenrod, .darkgoldenrod a { color: darkgoldenrod }
-.darkred, .darkred a, .defiant, .defiant a { color: darkred }
-.darkviolet, .darkviolet a { color: darkviolet }
-.deeppink, .deeppink a { color: deeppink } /* used for devotion once & agent */
+.darkgoldenrod, .darkgoldenrod a, .trust.extremely-terrified, .trust.extremely-terrified a { color: darkgoldenrod }
+.darkred, .darkred a, .defiant.full, .defiant.full a { color: darkred }
+.darkviolet, .darkviolet a, .devotion.hateful, .devotion.hateful a { color: darkviolet }
+.deeppink, .deeppink a, .devotion.devoted, .devotion.devoted a { color: deeppink } /* used for devotion once & agent */
 .steelblue, .steelblue a { color: steelblue }
 .deepskyblue, .deepskyblue a, .intelligent, .intelligent a { color: deepskyblue }
 .dodgerblue, .dodgerblue a { color: dodgerblue }
 .blue, .blue a { color: blue }
-.gold, .gold a, .trust.dec, .trust.dec a { color: gold }
-.goldenrod, .goldenrod a { color: goldenrod }
+.gold, .gold a, .trust.dec, .trust.dec a, .trust.frightened, .trust.frightened a { color: gold }
+.goldenrod, .goldenrod a, .trust.terrified, .trust.terrified a { color: goldenrod }
 .gray, .gray a { color: gray }
 .green, .green a, .reputation.inc, .reputation.inc a, .improvement, .improvement a { color: green }
-.hotpink, .hotpink a, .devotion.inc, .devotion.inc a { color: hotpink }
+.hotpink, .hotpink a, .devotion.inc, .devotion.inc a, .devotion.accept, .devotion.accept a { color: hotpink }
 .lawngreen, .lawngreen a { color: lawngreen }
 .lightblue, .lightblue a { color: lightblue }
 .lightcoral, .lightcoral a, .fetish.gain, .fetish.gain a { color: lightcoral } /* compare pink for fetish */
@@ -205,23 +205,23 @@ span.zeroButton > a:hover { text-decoration: none; }
 .lightsalmon, .lightsalmon a, .fetish.inc, .fetish.inc a { color: lightsalmon }
 .lime, .lime a, .change.positive, .change.positive a, .virginity.loss, .virginity.loss a, .pregnant, .pregnant a { color: lime } /* tight orifices, breast changes, take virginity, not sure on good aliases */
 .limegreen, .limegreen a { color: limegreen } /* multiple questionable uses */
-.magenta, .magenta a { color: magenta }
-.mediumaquamarine, .mediumaquamarine a, .trust.inc, .trust.inc a  { color: mediumaquamarine }
-.mediumorchid, .mediumorchid a, .devotion.dec, .devotion.dec a { color: mediumorchid }
-.mediumseagreen, .mediumseagreen a { color: mediumseagreen }
-.orange, .orange a, .stupid, .stupid a, .change.negative, .change.negative a { color: orange } /* generally between red and green, and a lot of other places */
-.orangered, .orangered a, .trust.inc-defiant, .trust.inc-defiant a { color: orangered }
+.magenta, .magenta a, .devotion.worship, .devotion.worship a { color: magenta }
+.mediumaquamarine, .mediumaquamarine a, .trust.inc, .trust.inc a, .trust.careful, .trust.careful a  { color: mediumaquamarine }
+.mediumorchid, .mediumorchid a, .devotion.dec, .devotion.dec a, .devotion.resistant, .devotion.resistant a { color: mediumorchid }
+.mediumseagreen, .mediumseagreen a, .trust.trusting, .trust.trusting a { color: mediumseagreen }
+.orange, .orange a, .stupid, .stupid a, .change.negative, .change.negative a, .defiant.careful, .defiant.careful a { color: orange } /* generally between red and green, and a lot of other places */
+.orangered, .orangered a, .defiant.inc, .defiant.inc a, .defiant.bold, .defiant.bold a { color: orangered }
 .orchid, .orchid a { color: orchid } /* used once (wrong? */
 .pink, .pink a { color: pink } /* also fetish start ??? , and a lot of other stuff */
-.red, .red a, .health.dec, .health.dec a, .cash.dec, .cash.dec a, .flaw.gain, .flaw.gain a, .error, .error a { color: red } /* also generally bad stuff */
-.seagreen, .seagreen a { color: seagreen }
+.red, .red a, .health.dec, .health.dec a, .cash.dec, .cash.dec a, .flaw.gain, .flaw.gain a, .error, .error a, .elites.loss, .elites.loss a { color: red } /* also generally bad stuff */
+.seagreen, .seagreen a, .trust.prof-trusting, .trust.prof-trusting a { color: seagreen }
 .springgreen, .springgreen a, .skill.advantage, .skill.advantage a { color: springgreen }
 .tan, .tan a { color: tan } /* some ethnicity */
 .chocolate, .chocolate a { color: chocolate }
 .saddlebrown, .saddlebrown a { color: saddlebrown }
 .teal, .teal a { color: teal }
-.yellow, .yellow a, .noteworthy, .noteworthy a { color: yellow }
-.yellowgreen, .yellowgreen a, .cash.inc, .cash.inc a { color: yellowgreen } /* maybe only positive cash? */
+.yellow, .yellow a, .noteworthy, .noteworthy a, .devotion.ambivalent, .devotion.ambivalent a, .trust.fearful, .trust.fearful a { color: yellow }
+.yellowgreen, .yellowgreen a, .cash.inc, .cash.inc a { color: yellowgreen }
 
 /*! <<checkvars>> macro for SugarCube 2.x */
 #ui-dialog-body.checkvars{padding:1em}#ui-dialog-body.checkvars h1{font-size:1em;margin-top:0}#ui-dialog-body.checkvars table{border-collapse:collapse;border-spacing:0}#ui-dialog-body.checkvars thead tr{border-bottom:2px solid #444}#ui-dialog-body.checkvars tr:not(:first-child){border-top:1px solid #444}#ui-dialog-body.checkvars td,#ui-dialog-body.checkvars th{padding:.25em 1em}#ui-dialog-body.checkvars td:first-child,#ui-dialog-body.checkvars th:first-child{padding-left:.5em;border-right:1px solid #444}#ui-dialog-body.checkvars td:last-child,#ui-dialog-body.checkvars th:last-child{padding-right:.5em}#ui-dialog-body.checkvars th:first-child{text-align:center}#ui-dialog-body.checkvars td:first-child{font-weight:700;text-align:right}#ui-dialog-body.checkvars td{font-family:monospace,monospace;vertical-align:top;white-space:pre-wrap}#ui-dialog-body.checkvars .scroll-pad{margin:0;padding:0}
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index c4a1f9af801c806f0edef532249d8b3c863c7d9c..1f7a13f67cac6c82a1d6a2b23a8427a7e110054c 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -2801,10 +2801,6 @@ window.DefaultRules = (function() {
 
 				// Apply brands:
 				if (["left", "right", "anywhere"].includes(brandPlace)) {
-					if (slave.devotion < 18) {
-						slave.devotion -= 5;
-					}
-					slave.trust -= 5;
 					healthDamage(slave, 10);
 					r += `<br>${slave.slaveName} has been branded on the `;
 					if (brandPlace === "left") {
@@ -2817,16 +2813,20 @@ window.DefaultRules = (function() {
 						slave.brand[rule.brandTarget] = rule.brandDesign;
 						r += `${rule.brandTarget}`;
 					}
-					r += `, with <span class="gold">fear</span>${slave.devotion < 18 ? `, <span class="mediumorchid">regard,</span>` : ``} and <span class="red">health</span> consequences.`;
+					r += `, with <span class="trust dec">fear</span>${slave.devotion < 18 ? `, <span class="devotion dec">regard,</span>` : ``} and <span class="red">health</span> consequences.`;
+					if (slave.devotion < 18) {
+						slave.devotion -= 5;
+					}
+					slave.trust -= 5;
 				} else if (brandPlace === "both") {
 					slave.brand[left] = rule.brandDesign;
 					slave.brand[right] = rule.brandDesign;
+					healthDamage(slave, 20);
+					r += `<br>${slave.slaveName} has been branded on both ${rule.brandTarget}, with <span class="trust dec">fear</span>${slave.devotion < 18 ? `, <span class="devotion dec">regard,</span>` : ``} and <span class="red">health</span> consequences.`;
 					if ((slave.devotion < 18)) {
 						slave.devotion -= 10;
 					}
 					slave.trust -= 10;
-					healthDamage(slave, 20);
-					r += `<br>${slave.slaveName} has been branded on both ${rule.brandTarget}, with <span class="gold">fear</span>${slave.devotion < 18 ? `, <span class="mediumorchid">regard,</span>` : ``} and <span class="red">health</span> consequences.`;
 				}
 			}
 		}
diff --git a/src/js/sexActsJS.js b/src/js/sexActsJS.js
index 66685cb5f66d34009b3ae634f36404f0d9471886..3375204a38707d61a7f4185c72c92188403ca894 100644
--- a/src/js/sexActsJS.js
+++ b/src/js/sexActsJS.js
@@ -65,8 +65,7 @@ window.VCheck = (function() {
 			if (canImpreg(slave, V.PC)) {
 				r += knockMeUp(slave, 10, 1, -1, 1);
 			}
-			V.analTotal += times;
-			slave.counter.anal += times;
+			actX(slave, "anal", times);
 		}
 		return r;
 	}
@@ -112,8 +111,7 @@ window.VCheck = (function() {
 			if (canImpreg(slave, V.PC)) {
 				r += knockMeUp(slave, 10, 0, -1, 1);
 			}
-			V.vaginalTotal += times;
-			slave.counter.vaginal += times;
+			actX(slave, "vaginal", times);
 		}
 		return r;
 	}
@@ -190,16 +188,13 @@ window.VCheck = (function() {
 				slave.anus = 1;
 			}
 			if (canDoAnal(slave)) {
-				V.vaginalTotal += bothTimes;
-				V.analTotal += bothTimes;
-				slave.counter.vaginal += bothTimes;
-				slave.counter.anal += bothTimes;
+				actX(slave, "vaginal", bothTimes);
+				actX(slave, "anal", bothTimes);
 				if (canImpreg(slave, V.PC)) {
 					r += knockMeUp(slave, 10, 2, -1, 1);
 				}
 			} else {
-				V.vaginalTotal += bothTimes;
-				slave.counter.vaginal += bothTimes;
+				actX(slave, "vaginal", bothTimes);
 				if (canImpreg(slave, V.PC)) {
 					r += knockMeUp(slave, 10, 0, -1, 1);
 				}
@@ -227,8 +222,7 @@ window.VCheck = (function() {
 				}
 				slave.anus = 1;
 			}
-			V.analTotal += analTimes;
-			slave.counter.anal += analTimes;
+			actX(slave, "vaginal", analTimes);
 			if (canImpreg(slave, V.PC)) {
 				r += knockMeUp(slave, 10, 1, -1, 1);
 			}
@@ -280,16 +274,13 @@ window.VCheck = (function() {
 			}
 
 			if (canDoAnal(partner)) {
-				V.vaginalTotal += bothTimes;
-				V.analTotal += bothTimes;
-				partner.counter.vaginal += bothTimes;
-				partner.counter.anal += bothTimes;
+				actX(partner, "vaginal", bothTimes);
+				actX(partner, "anal", bothTimes);
 				if (canImpreg(partner, V.PC)) {
 					r += knockMeUp(partner, 10, 2, -1);
 				}
 			} else {
-				V.vaginalTotal += bothTimes;
-				partner.counter.vaginal += bothTimes;
+				actX(partner, "vaginal", bothTimes);
 				if (canImpreg(partner, V.PC)) {
 					r += knockMeUp(partner, 10, 0, -1);
 				}
@@ -299,8 +290,7 @@ window.VCheck = (function() {
 				r += `Since it's ${partner.slaveName}'s first time, you take your time and gently ease yourself into ${his} butthole before gradually increasing the intensity of your thrusts into ${his} ass. <span class="lime">This breaks in ${partner.slaveName}'s virgin ass.</span> `;
 				partner.anus = 1;
 			}
-			V.analTotal += analTimes;
-			partner.counter.anal += analTimes;
+			actX(slave, "anal", analTimes);
 			if (canImpreg(partner, V.PC)) {
 				r += knockMeUp(partner, 10, 1, -1);
 			}
@@ -333,23 +323,19 @@ window.SimpleSexAct = (function() {
 		for (let i = 0; i < fuckCount; i++) {
 			fuckTarget = jsRandom(1, 100);
 			if (slave.nipples === "fuckable" && V.PC.dick >0 && fuckTarget > 80) {
-				V.mammaryTotal += 1;
-				slave.counter.mammary += 1;
+				actX(slave, "mammary");
 			} else if (canDoVaginal(slave) && slave.vagina > 0 && fuckTarget > 33) {
-				V.vaginalTotal += 1;
-				slave.counter.vaginal += 1;
+				actX(slave, "vaginal");
 				if (canImpreg(slave, V.PC)) {
 					r += knockMeUp(slave, 10, 0, -1, 1);
 				}
 			} else if (canDoAnal(slave) && slave.anus > 0 && fuckTarget > 10) {
-				V.analTotal += 1;
-				slave.counter.anal += 1;
+				actX(slave, "anal");
 				if (canImpreg(slave, V.PC)) {
 					r += knockMeUp(slave, 10, 1, -1, 1);
 				}
 			} else {
-				V.oralTotal += 1;
-				slave.counter.oral += 1;
+				actX(slave, "oral");
 			}
 		}
 		return r;
@@ -369,17 +355,13 @@ window.SimpleSexAct = (function() {
 		for (let i = 0; i < fuckCount; i++) {
 			fuckTarget = jsRandom(1, 100);
 			if (slave.nipples === "fuckable" && fuckTarget > 80) {
-				V.mammaryTotal += 1;
-				slave.counter.mammary += 1;
+				actX(slave, "mammary");
 			} else if (canDoVaginal(slave) && slave.vagina > 0 && fuckTarget > 33) {
-				V.vaginalTotal += 1;
-				slave.counter.vaginal += 1;
+				actX(slave, "vaginal");
 			} else if (canDoAnal(slave) && slave.anus > 0 && fuckTarget > 10) {
-				V.analTotal += 1;
-				slave.counter.anal += 1;
+				actX(slave, "anal");
 			} else {
-				V.oralTotal += 1;
-				slave.counter.oral += 1;
+				actX(slave, "oral");
 			}
 		}
 	}
@@ -403,40 +385,28 @@ window.SimpleSexAct = (function() {
 			if (subslave.nipples === "fuckable" && canPenetrate(domslave) && fuckTarget > 80) {
 				if (passage() === "SA serve your other slaves") {
 					if (subslave.ID === V.slaves[V.i].ID) {
-						V.slaves[V.i].counter.mammary++;
-						V.mammaryTotal++;
-						domslave.counter.penetrative++;
-						V.penetrativeTotal++;
+						actX(V.slaves[V.i], "mammary");
+						actX(domslave, "penetrative");
 					} else {
-						subslave.counter.mammary++;
-						V.mammaryTotal++;
-						V.slaves[V.i].counter.penetrative++;
-						V.penetrativeTotal++;
+						actX(subslave, "mammary");
+						actX(V.slaves[V.i], "penetrative");
 					}
 				} else {
-					V.mammaryTotal++;
-					V.penetrativeTotal++;
-					subslave.counter.mammary++;
-					domslave.counter.penetrative++;
+					actX(subslave, "mammary");
+					actX(domslave, "penetrative");
 				}
 			} else if (canDoVaginal(subslave) && subslave.vagina > 0 && canPenetrate(domslave) && fuckTarget > 33) {
 				if (passage() === "SA serve your other slaves") {
 					if (subslave.ID === V.slaves[V.i].ID) {
-						V.slaves[V.i].counter.vaginal++;
-						V.vaginalTotal++;
-						V.penetrativeTotal++;
-						domslave.counter.penetrative++;
+						actX(V.slaves[V.i], "vaginal");
+						actX(domslave, "penetrative");
 					} else {
-						V.slaves[V.i].counter.penetrative++;
-						V.penetrativeTotal++;
-						subslave.counter.vaginal++;
-						V.vaginalTotal++;
+						actX(subslave, "vaginal");
+						actX(V.slaves[V.i], "penetrative");
 					}
 				} else {
-					V.vaginalTotal++;
-					subslave.counter.vaginal++;
-					V.penetrativeTotal++;
-					domslave.counter.penetrative++;
+					actX(subslave, "vaginal");
+					actX(domslave, "penetrative");
 				}
 				if (canImpreg(subslave, domslave)) {
 					r += knockMeUp(subslave, 3, 0, domslave.ID, 1);
@@ -448,25 +418,18 @@ window.SimpleSexAct = (function() {
 				}
 				if (passage() === "SA serve your other slaves") {
 					if (subslave.ID === V.slaves[V.i].ID) {
-						V.slaves[V.i].counter.anal++;
-						V.analTotal++;
-						V.penetrativeTotal++;
-						domslave.counter.penetrative++;
+						actX(V.slaves[V.i], "anal");
+						actX(domslave, "penetrative");
 					} else {
-						V.slaves[V.i].counter.penetrative++;
-						V.penetrativeTotal++;
-						V.analTotal++;
-						subslave.counter.anal++;
+						actX(subslave, "anal");
+						actX(slave[V.i], "penetrative");
 					}
 				} else {
-					V.analTotal++;
-					subslave.counter.anal++;
-					V.penetrativeTotal++;
-					domslave.counter.penetrative++;
+					actX(subslave, "anal");
+					actX(domslave, "penetrative");
 				}
 			} else {
-				V.oralTotal++;
-				subslave.counter.oral++;
+				actX(subslave, "oral");
 			}
 		}
 		return r;
@@ -474,19 +437,60 @@ window.SimpleSexAct = (function() {
 })();
 
 /**
+ * Increments a slave's personal counter and the global counter for a particular action.
  * @param {App.Entity.SlaveState} slave
+ * @param {string} act oral, anal, etc
  * @param {number} count
  */
-window.SimpleVaginaFuck = function SimpleVaginaFuck(slave, count = 1) {
-	State.variables.vaginalTotal += count;
-	slave.counter.vaginal += count;
-};
-
-/**
- * @param {App.Entity.SlaveState} slave
- * @param {number} count
- */
-window.SimpleAssFuck = function SimpleAssFuck(slave, count = 1) {
-	State.variables.analTotal += count;
-	slave.counter.anal += count;
+window.actX = function actX(slave, act, count = 1) {
+	switch (act) {
+		case "PCChildrenFathered":
+			break;
+		case "PCKnockedUp":
+			break;
+		case "anal":
+			V.analTotal += count;
+			break;
+		case "births":
+			V.birthsTotal += count;
+			break;
+		case "birthsTotal":
+			break;
+		case "cum":
+			V.cumTotal += count;
+			break;
+		case "laborCount":
+			break;
+		case "mammary":
+			V.mammaryTotal += count;
+			break;
+		case "milk":
+			V.milkTotal += count;
+			break;
+		case "oral":
+			V.oralTotal += count;
+			break;
+		case "penetrative":
+			V.penetrativeTotal += count;
+			break;
+		case "pitKills":
+			V.pitKillsTotal += count;
+			break;
+		case "publicUse":
+			break;
+		case "slavesFathered":
+			break;
+		case "slavesKnockedUp":
+			break;
+		case "vaginal":
+			V.vaginalTotal += count;
+			break;
+		default:
+			// Act was likely entered incorrectly.
+			return;
+	}
+	if (act === "birth") { // Annoyingly at the moment, V.birthsTotal means all the births in your arc.  Within the slave counter though, .birth is all births in your arc and .birthTotal includes births outside your arch.
+		slave.counter.birthToal += count;
+	}
+	slave.counter[act] += count;
 };
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index ea9d144efaf56176c8acbba7e9a1eb32a02d6b89..3f1d3a541b1098f76223a2e1840f8543e0a86b0b 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -272,49 +272,49 @@ window.SlaveSummaryUncached = (function() {
 	 */
 	function short_devotion(slave, c) {
 		if (slave.fetish === "mindbroken") {
-			makeSpan(c, "MB", "red");
+			makeSpan(c, "MB", "mindbroken");
 		} else if (slave.devotion < -95) {
-			makeSpan(c, "Hate", "darkviolet", true, slave.devotion);
+			makeSpan(c, "Hate", ["devotion", "hateful"], true, slave.devotion);
 		} else if (slave.devotion < -50) {
-			makeSpan(c, "Hate", "darkviolet", true, slave.devotion);
+			makeSpan(c, "Hate", ["devotion", "hateful"], true, slave.devotion);
 		} else if (slave.devotion < -20) {
-			makeSpan(c, "Res", "mediumorchid", true, slave.devotion);
+			makeSpan(c, "Res", ["devotion", "resistant"], true, slave.devotion);
 		} else if (slave.devotion <= 20) {
-			makeSpan(c, "Ambiv", "yellow", true, slave.devotion);
+			makeSpan(c, "Ambiv", ["devotion", "ambivalent"], true, slave.devotion);
 		} else if (slave.devotion <= 50) {
-			makeSpan(c, "Accept", "hotpink", true, slave.devotion);
+			makeSpan(c, "Accept", ["devotion", "accept"], true, slave.devotion);
 		} else if (slave.devotion <= 95) {
-			makeSpan(c, "Devo", "deeppink", true, slave.devotion);
+			makeSpan(c, "Devo", ["devotion", "devoted"], true, slave.devotion);
 		} else {
-			makeSpan(c, "Wor", "magenta", true, slave.devotion);
+			makeSpan(c, "Wor", ["devotion", "worship"], true, slave.devotion);
 		}
 		if (slave.fetish === "mindbroken") {
 			return;
 		} else if (slave.trust < -95) {
-			makeSpan(c, "ETerr", "darkgoldenrod", true, slave.trust);
+			makeSpan(c, "ETerr", ["trust", "extremely-terrified"], true, slave.trust);
 		} else if (slave.trust < -50) {
-			makeSpan(c, "Terr", "goldenrod", true, slave.trust);
+			makeSpan(c, "Terr", ["trust", "terrified"], true, slave.trust);
 		} else if (slave.trust < -20) {
-			makeSpan(c, "Fright", "gold", true, slave.trust);
+			makeSpan(c, "Fright", ["trust", "frightened"], true, slave.trust);
 		} else if (slave.trust <= 20) {
-			makeSpan(c, "Fear", "yellow", true, slave.trust);
+			makeSpan(c, "Fear", ["trust", "fearful"], true, slave.trust);
 		} else if (slave.trust <= 50) {
 			if (slave.devotion < -20) {
-				makeSpan(c, "Caref", "orange", true, slave.trust);
+				makeSpan(c, "Caref", ["defiant", "careful"], true, slave.trust);
 			} else {
-				makeSpan(c, "Caref", "mediumaquamarine", true, slave.trust);
+				makeSpan(c, "Caref", ["trust", "careful"], true, slave.trust);
 			}
 		} else if (slave.trust < 95) {
 			if (slave.devotion < -20) {
-				makeSpan(c, "Bold", "orangered", true, slave.trust);
+				makeSpan(c, "Bold", ["defiant", "bold"], true, slave.trust);
 			} else {
-				makeSpan(c, "Trust", "mediumseagreen", true, slave.trust);
+				makeSpan(c, "Trust", ["trust", "trusting"], true, slave.trust);
 			}
 		} else {
 			if (slave.devotion < -20) {
-				makeSpan(c, "Defiant", "darkred", true, slave.trust);
+				makeSpan(c, "Defiant", ["defiant", "full"], true, slave.trust);
 			} else {
-				makeSpan(c, "VTrust", "seagreen", true, slave.trust);
+				makeSpan(c, "VTrust", ["trust", "prof-trusting"], true, slave.trust);
 			}
 		}
 	}
@@ -326,49 +326,49 @@ window.SlaveSummaryUncached = (function() {
 	 */
 	function long_devotion(slave, c) {
 		if (slave.fetish === "mindbroken") {
-			makeSpan(c, "Mindbroken.", "red");
+			makeSpan(c, "Mindbroken.", "mindbroken");
 		} else if (slave.devotion < -95) {
-			makeSpan(c, "Very hateful", "darkviolet", true, slave.devotion);
+			makeSpan(c, "Very hateful", ["devotion", "hateful"], true, slave.devotion);
 		} else if (slave.devotion < -50) {
-			makeSpan(c, "Hateful", "darkviolet", true, slave.devotion);
+			makeSpan(c, "Hateful", ["devotion", "hateful"], true, slave.devotion);
 		} else if (slave.devotion < -20) {
-			makeSpan(c, "Resistant", "mediumorchid", true, slave.devotion);
+			makeSpan(c, "Resistant", ["devotion", "resistant"], true, slave.devotion);
 		} else if (slave.devotion <= 20) {
-			makeSpan(c, "Ambivalent", "yellow", true, slave.devotion);
+			makeSpan(c, "Ambivalent", ["devotion", "ambivalent"], true, slave.devotion);
 		} else if (slave.devotion <= 50) {
-			makeSpan(c, "Accepting", "hotpink", true, slave.devotion);
+			makeSpan(c, "Accepting", ["devotion", "accept"], true, slave.devotion);
 		} else if (slave.devotion <= 95) {
-			makeSpan(c, "Devoted", "deeppink", true, slave.devotion);
+			makeSpan(c, "Devoted", ["devotion", "devoted"], true, slave.devotion);
 		} else {
-			makeSpan(c, "Worshipful", "magenta", true, slave.devotion);
+			makeSpan(c, "Worshipful", ["devotion", "worship"], true, slave.devotion);
 		}
 		if (slave.fetish === "mindbroken") {
 			return;
 		} else if (slave.trust < -95) {
-			makeSpan(c, "Extremely terrified", "darkgoldenrod", true, slave.trust);
+			makeSpan(c, "Extremely terrified", ["trust", "extremely-terrified"], true, slave.trust);
 		} else if (slave.trust < -50) {
-			makeSpan(c, "Terrified", "goldenrod", true, slave.trust);
+			makeSpan(c, "Terrified", ["trust", "terrified"], true, slave.trust);
 		} else if (slave.trust < -20) {
-			makeSpan(c, "Frightened", "gold", true, slave.trust);
+			makeSpan(c, "Frightened", ["trust", "frightened"], true, slave.trust);
 		} else if (slave.trust <= 20) {
-			makeSpan(c, "Fearful", "yellow", true, slave.trust);
+			makeSpan(c, "Fearful", ["trust", "fearful"], true, slave.trust);
 		} else if (slave.trust <= 50) {
 			if (slave.devotion < -20) {
-				makeSpan(c, "Careful", "orange", true, slave.trust);
+				makeSpan(c, "Careful", ["defiant", "careful"], true, slave.trust);
 			} else {
-				makeSpan(c, "Careful", "mediumaquamarine", true, slave.trust);
+				makeSpan(c, "Careful", ["trust", "careful"], true, slave.trust);
 			}
-		} else if (slave.trust < 95) {
+		} else if (slave.trust <= 95) {
 			if (slave.devotion < -20) {
-				makeSpan(c, "Bold", "orangered", true, slave.trust);
+				makeSpan(c, "Bold", ["defiant", "bold"], true, slave.trust);
 			} else {
-				makeSpan(c, "Trusting", "mediumseagreen", true, slave.trust);
+				makeSpan(c, "Trusting", ["trust", "trusting"], true, slave.trust);
 			}
 		} else {
 			if (slave.devotion < -20) {
-				makeSpan(c, "Defiant", "darkred", true, slave.trust);
+				makeSpan(c, "Defiant", ["defiant", "full"], true, slave.trust);
 			} else {
-				makeSpan(c, "Profoundly trusting", "seagreen", true, slave.trust);
+				makeSpan(c, "Profoundly trusting", ["trust", "prof-trusting"], true, slave.trust);
 			}
 		}
 	}
diff --git a/src/npc/descriptions/fButt.tw b/src/npc/descriptions/fButt.tw
index 6a4db93a57fdbfb0c001478d922d338079bfc5f6..e2a38b04d46c610210554ecd7ae7518a38f83e36 100644
--- a/src/npc/descriptions/fButt.tw
+++ b/src/npc/descriptions/fButt.tw
@@ -62,40 +62,40 @@ You call $him over so you can
 		Brooking no resistance, you take $his virginity and then break in $his virgin butt.
 	<</if>>
 	<<if ($activeSlave.devotion > 50)>>
-		You ease yourself into $his pussy before gradually working your way into $his ass and alternate between the two holes while $he begins to moan. In just a few minutes, $he has lost $his virginity and been assfucked for the first time. $He @@.hotpink;submits utterly@@ to your spoilage of $his innocence and thanks you meekly for introducing $him to proper sexual slavery. @@.lime;$His holes have been broken in.@@
+		You ease yourself into $his pussy before gradually working your way into $his ass and alternate between the two holes while $he begins to moan. In just a few minutes, $he has lost $his virginity and been assfucked for the first time. $He @@.devotion.inc;submits utterly@@ to your spoilage of $his innocence and thanks you meekly for introducing $him to proper sexual slavery. @@.virginity.loss;$His holes have been broken in.@@
 		<<set $activeSlave.devotion += 10>>
 	<<elseif ($activeSlave.devotion > 20)>>
-		You ease yourself into $his pussy before gradually working your way into $his ass and alternate between the two holes while $he begins to moan. In just a few minutes, $he has lost $his virginity and been assfucked for the first time. $He's so bewildered by the pain and novelty that all $he feels is @@.gold;a little fear@@ of further use. @@.lime;$His holes have been broken in.@@
+		You ease yourself into $his pussy before gradually working your way into $his ass and alternate between the two holes while $he begins to moan. In just a few minutes, $he has lost $his virginity and been assfucked for the first time. $He's so bewildered by the pain and novelty that all $he feels is @@.trust.dec;a little fear@@ of further use. @@.virginity.loss;$His holes have been broken in.@@
 		<<set $activeSlave.trust -= 5>>
 	<<else>>
-		You force yourself into $his pussy before gradually working your way into $his ass. $He sobs and cries with disgust while you alternate between the two holes. In just a few minutes, $he has lost $his virginity to rape and $his anal virginity to a rough buttfuck. To say $he @@.mediumorchid;resents you@@ and @@.gold;fears further abuse@@ would be an understatement. @@.lime;$His holes have been broken in.@@
+		You force yourself into $his pussy before gradually working your way into $his ass. $He sobs and cries with disgust while you alternate between the two holes. In just a few minutes, $he has lost $his virginity to rape and $his anal virginity to a rough buttfuck. To say $he @@.devotion.dec;resents you@@ and @@.trust.dec;fears further abuse@@ would be an understatement. @@.virginity.loss;$His holes have been broken in.@@
 		<<set $activeSlave.devotion -= 10, $activeSlave.trust -= 10>>
 	<</if>>
 	<<set $activeSlave.vagina++, $activeSlave.anus++>>
 	<<= VCheck.Both()>>
 <<elseif ($activeSlave.vagina == 0) && canDoVaginal($activeSlave)>>
 	<<if ($activeSlave.devotion > 20)>>
-		$He accepts your orders without comment and presents $his virgin pussy for defloration<<if ($PC.dick == 0)>>, watching with some small trepidation as you don a strap-on<</if>>. You gently ease into $his pussy before gradually increasing the intensity of your thrusts into $him. Before long, $he's moaning loudly as you pound away. Since $he is already well broken, this new connection with $his <<= WrittenMaster($activeSlave)>> @@.hotpink;increases $his devotion to you.@@ @@.lime;$His pussy has been broken in.@@
+		$He accepts your orders without comment and presents $his virgin pussy for defloration<<if ($PC.dick == 0)>>, watching with some small trepidation as you don a strap-on<</if>>. You gently ease into $his pussy before gradually increasing the intensity of your thrusts into $him. Before long, $he's moaning loudly as you pound away. Since $he is already well broken, this new connection with $his <<= WrittenMaster($activeSlave)>> @@.devotion.inc;increases $his devotion to you.@@ @@.virginity.loss;$His pussy has been broken in.@@
 		<<set $activeSlave.devotion += 10>>
 	<<elseif ($activeSlave.devotion >= -20)>>
-		$He is clearly unhappy at losing $his pearl of great price to you; this probably isn't what $he imagined $his first real sex would be like.<<if ($PC.dick == 0)>>$His lower lip quivers with trepidation as $he watches you don a strap-on and maneuver to fuck $his virgin hole.<</if>> You gently ease into $his pussy before gradually increasing the intensity of your thrusts into $him. Before long, $he's moaning as you pound away. Nevertheless, this new connection with $his <<= WrittenMaster($activeSlave)>> @@.hotpink;increases $his devotion to you.@@ @@.lime;$His pussy has been broken in,@@ and $he is @@.gold;fearful@@ that sex will continue to be painful.
+		$He is clearly unhappy at losing $his pearl of great price to you; this probably isn't what $he imagined $his first real sex would be like.<<if ($PC.dick == 0)>>$His lower lip quivers with trepidation as $he watches you don a strap-on and maneuver to fuck $his virgin hole.<</if>> You gently ease into $his pussy before gradually increasing the intensity of your thrusts into $him. Before long, $he's moaning as you pound away. Nevertheless, this new connection with $his <<= WrittenMaster($activeSlave)>> @@.devotion.inc;increases $his devotion to you.@@ @@.virginity.loss;$His pussy has been broken in,@@ and $he is @@.trust.dec;fearful@@ that sex will continue to be painful.
 		<<set $activeSlave.devotion += 5>>
 		<<set $activeSlave.trust -= 5>>
 	<<else>>
-		As you anticipated, $he refuses to give you $his virginity. And as you expected, $he is unable to resist you. $He cries as <<if ($PC.dick == 0)>>your strap-on<<else>>your cock<</if>> opens $his fresh, tight hole. You force your way into $his pussy and continue thrusting into $him. $He sobs and cries with horror as you pound away. The rape @@.mediumorchid;decreases $his devotion to you.@@ @@.lime;$His pussy has been broken in,@@ and $he @@.gold;fears further abuse.@@
+		As you anticipated, $he refuses to give you $his virginity. And as you expected, $he is unable to resist you. $He cries as <<if ($PC.dick == 0)>>your strap-on<<else>>your cock<</if>> opens $his fresh, tight hole. You force your way into $his pussy and continue thrusting into $him. $He sobs and cries with horror as you pound away. The rape @@.devotion.dec;decreases $his devotion to you.@@ @@.virginity.loss;$His pussy has been broken in,@@ and $he @@.trust.dec;fears further abuse.@@
 		<<set $activeSlave.devotion -= 10,  $activeSlave.trust -= 15>>
 	<</if>>
 	<<set $activeSlave.vagina++>>
 	<<= VCheck.Vaginal()>>
 <<elseif ($activeSlave.anus == 0)>>
 	<<if ($activeSlave.devotion > 20)>>
-		$He accepts your orders without comment and presents $his virgin anus for defloration. You<<if ($PC.dick == 0)>> don a strap-on and<</if>> gently sodomize $him. You gently ease yourself into $his butthole and gradually speed up your thrusts while $he slowly learns to move $his hips along with you. Since $he is already well broken, this new connection with $his <<= WrittenMaster($activeSlave)>> @@.hotpink;increases $his devotion to you.@@ @@.lime;$His tight little ass has been broken in.@@
+		$He accepts your orders without comment and presents $his virgin anus for defloration. You<<if ($PC.dick == 0)>> don a strap-on and<</if>> gently sodomize $him. You gently ease yourself into $his butthole and gradually speed up your thrusts while $he slowly learns to move $his hips along with you. Since $he is already well broken, this new connection with $his <<= WrittenMaster($activeSlave)>> @@.devotion.inc;increases $his devotion to you.@@ @@.virginity.loss;$His tight little ass has been broken in.@@
 		<<set $activeSlave.devotion += 4>>
 	<<elseif ($activeSlave.devotion >= -20)>>
-		$He is clearly unhappy at the idea of taking a dick up $his butt. $He obeys orders anyway, and lies there wincing and moaning as you<<if ($PC.dick == 0)>> don a strap-on and<</if>> fuck $his ass. @@.lime;$His tight little ass has been broken in,@@ and $he @@.gold;fears further anal pain.@@
+		$He is clearly unhappy at the idea of taking a dick up $his butt. $He obeys orders anyway, and lies there wincing and moaning as you<<if ($PC.dick == 0)>> don a strap-on and<</if>> fuck $his ass. @@.virginity.loss;$His tight little ass has been broken in,@@ and $he @@.trust.dec;fears further anal pain.@@
 		<<set $activeSlave.trust -= 5>>
 	<<else>>
-		$He is appalled at the idea of taking it up the ass<<if ($PC.dick == 0)>> and cries with fear as you don a strap-on<</if>>. $He does anyway though, sobbing into the cushions<<if hasAnyArms($activeSlave)>> while you hold $his arm<<if hasBothArms($activeSlave)>>s<</if>> behind $him<</if>>. You force yourself into $his butthole. $He sobs and cries with disgust while you continue thrusting into $his ass. The painful anal rape @@.mediumorchid;decreases $his devotion to you.@@ @@.lime;$His tight little ass has been broken in,@@ and $he is @@.gold;terrified of further anal pain.@@
+		$He is appalled at the idea of taking it up the ass<<if ($PC.dick == 0)>> and cries with fear as you don a strap-on<</if>>. $He does anyway though, sobbing into the cushions<<if hasAnyArms($activeSlave)>> while you hold $his arm<<if hasBothArms($activeSlave)>>s<</if>> behind $him<</if>>. You force yourself into $his butthole. $He sobs and cries with disgust while you continue thrusting into $his ass. The painful anal rape @@.devotion.dec;decreases $his devotion to you.@@ @@.virginity.loss;$His tight little ass has been broken in,@@ and $he is @@.trust.dec;terrified of further anal pain.@@
 		<<set $activeSlave.devotion -= 5,  $activeSlave.trust -= 5>>
 	<</if>>
 	<<set $activeSlave.anus++>>
@@ -180,12 +180,12 @@ You call $him over so you can
 
 <<if (random(1,100) > (100+$activeSlave.devotion))>>
 	<<if ($activeSlave.fetish !== "buttslut") && ($activeSlave.energy <= 95) && ($activeSlave.sexualFlaw !== "hates penetration")>>
-		Being brutally used has given $him a @@.red;hatred of penetration.@@
+		Being brutally used has given $him a @@.flaw.gain;hatred of penetration.@@
 		<<set $activeSlave.sexualFlaw = "hates penetration">>
 	<</if>>
 <<elseif (random(1,100) > (110-$activeSlave.devotion))>>
 	<<if ($activeSlave.fetish == "none") && ($activeSlave.sexualFlaw !== "hates penetration")>>
-		Orgasming to your use of $his fuckhole @@.lightcoral;has $him eager for more buttsex.@@
+		Orgasming to your use of $his fuckhole @@.fetish.gain;has $him eager for more buttsex.@@
 		<<set $activeSlave.fetish = "buttslut", $activeSlave.fetishKnown = 1>>
 	<</if>>
 <</if>>
diff --git a/src/npc/descriptions/fFuckdollWidgets.tw b/src/npc/descriptions/fFuckdollWidgets.tw
index 526a09fa123addc3c39462cb45d4684636238c3d..6fd2e471c0143b7cd62afbdbe83d301b52e35249 100644
--- a/src/npc/descriptions/fFuckdollWidgets.tw
+++ b/src/npc/descriptions/fFuckdollWidgets.tw
@@ -169,7 +169,7 @@ You repeat this ritual throughout the week, ensuring that $he will be an @@.preg
 
 <<if $arcologies[0].FSRestart != "unset" && $eugenicsFullControl != 1>>
 	<<if $activeSlave.breedingMark != 1 || $propOutcome == 0>>
-		Rumors spread about you knocking up your playthings; the Societal Elite are @@.red; very displeased@@ by these rumors.
+		Rumors spread about you knocking up your playthings; the Societal Elite are @@.elites.loss; very displeased@@ by these rumors.
 		<<set $failedElite += 5>>
 	<</if>>
 <</if>>
diff --git a/src/npc/surgery/organFarm.js b/src/npc/surgery/organFarm.js
index 80a88e9e7ec7aed24497fd4e267aa600c5d9a6ee..083b4d6b80b4c55d849ff306be889b1e122d1bda 100644
--- a/src/npc/surgery/organFarm.js
+++ b/src/npc/surgery/organFarm.js
@@ -1,9 +1,8 @@
 /**
  * @param {App.Entity.SlaveState} slave
- * @param {string} slaveString - variable that refers to the slave, usually "$activeSlave"
  * @returns {string}
  */
-App.Medicine.OrganFarm.growActions = function(slave, slaveString) {
+App.Medicine.OrganFarm.growActions = function(slave) {
 	const organOrder = App.Medicine.OrganFarm.organDisplayOrder;
 	const O = App.Medicine.OrganFarm.Organs;
 
@@ -39,7 +38,7 @@ App.Medicine.OrganFarm.growActions = function(slave, slaveString) {
 	for (const organ of organOrder) {
 		if (slaveOrgans[organ] === 0) {
 			if (O[organ].canGrow()) {
-				grow += `<div><<link "${O[organ].name}" "Remote Surgery">><<run App.Medicine.OrganFarm.growOrgan(${slaveString}, "${organ}")>><</link>></div>`;
+				grow += `<div>${App.UI.link(O[organ].name, App.Medicine.OrganFarm.growOrgan, [slave, organ], "Remote Surgery")}</div>`;
 				grow += `<div class="detail">Costs ${cashFormat(O[organ].cost)}${O[organ].tooltip !== "" ? ` and ${O[organ].tooltip}` : ""}.</div>`;
 			}
 		} else if (slaveOrgans[organ] > 0) {
@@ -78,10 +77,9 @@ App.Medicine.OrganFarm.growOrgan = function(slave, organType) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * @param {string} slaveString - variable that refers to the slave, usually "$activeSlave"
  * @returns {string}
  */
-App.Medicine.OrganFarm.implantActions = function(slave, slaveString) {
+App.Medicine.OrganFarm.implantActions = function(slave) {
 	let slaveOrgans = V.completedOrgans.filter(o => o.ID === slave.ID);
 	if (slaveOrgans.length === 0) { return ""; }
 
@@ -96,7 +94,8 @@ App.Medicine.OrganFarm.implantActions = function(slave, slaveString) {
 		for (let i = 0; i < F.Organs[organ.type].implantActions.length; i++) {
 			const action = F.Organs[organ.type].implantActions[i];
 			if (action.canImplant(slave)) {
-				lines.push(`<span class="detail">${action.tooltip === "" ? "" : `${capFirstChar(action.tooltip)}: `}</span>[[${action.name}|Surgery Degradation][App.Medicine.OrganFarm.implant(${slaveString}, "${organ.type}", ${i})]]`);
+				const implantLink = App.UI.link(action.name, App.Medicine.OrganFarm.implant, [slave, organ.type, i], "Surgery Degradation");
+				lines.push(`<span class="detail">${action.tooltip === "" ? "" : `${capFirstChar(action.tooltip)}: `}</span>${implantLink}`);
 				anyAction = true;
 				break; // there can only be one implant action
 			} else {
@@ -117,7 +116,7 @@ App.Medicine.OrganFarm.implantActions = function(slave, slaveString) {
 		if (anyAction) {
 			r += " | ";
 		}
-		r += `[[Discard|Remote Surgery][App.Medicine.OrganFarm.removeOrgan(${slaveString}, "${organ.type}")]]</div></div>`;
+		r += `${App.UI.link("Discard", App.Medicine.OrganFarm.removeOrgan, [slave, organ.type], "Remote Surgery")}</div></div>`;
 	}
 
 	return `The fabricator has completed ${slaveOrgans.length} organ(s):<div class="organContainer">${r}</div>`;
@@ -187,20 +186,18 @@ App.Medicine.OrganFarm.getSortedOrgans = function(slave) {
  * Returns the full organ farm menu, hiding empty parts
  *
  * @param {App.Entity.SlaveState} slave
- * @param {string} slaveString - variable that refers to the slave, usually "$activeSlave"
  * @return {string}
  */
-App.Medicine.OrganFarm.fullMenu = function(slave, slaveString) {
+App.Medicine.OrganFarm.fullMenu = function(slave) {
 	if (V.organFarmUpgrade >= 1 && slave.indentureRestrictions < 2) {
-
 		let r = "";
 
-		let actions = App.Medicine.OrganFarm.growActions(slave, slaveString);
+		let actions = App.Medicine.OrganFarm.growActions(slave);
 		if (actions !== "") {
 			r += `<h3>Grow new organs</h3><div class="indent">${actions}</div>`;
 		}
 
-		actions = App.Medicine.OrganFarm.implantActions(slave, slaveString);
+		actions = App.Medicine.OrganFarm.implantActions(slave);
 		if (actions !== "") {
 			r += `<h3>Implant organs</h3><div class="indent">${actions}</div>`;
 		}
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index dafb80ff2e1e6d977f3a8c0c3ff3cc3f1a410495..cc9f3061b9b531e4385a0c99ae5155d3c76bd179 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -155,7 +155,7 @@
 		<<set _n = 0>>
 		<<if getLeftEyeVision($activeSlave) === 1 && getLeftEyeType($activeSlave) === 1>>
 			<<set _n++>>
-			| [[Fix left eye|Surgery Degradation][eyeSurgery($activeSlave, "left", "fix"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave,10), $surgeryType = "eyeFix"]]
+			| [[Fix left eye|Surgery Degradation][eyeSurgery($activeSlave, "left", "fix"), cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), surgeryDamage($activeSlave,5), $surgeryType = "eyeFix"]]
 		<</if>>
 		<<if getRightEyeVision($activeSlave) === 1 && getRightEyeType($activeSlave) === 1>>
 			<<set _n++>>
@@ -1726,7 +1726,7 @@
 	<</if>>
 </div>
 
-<<print App.Medicine.OrganFarm.fullMenu($activeSlave, "$activeSlave")>>
+<<print App.Medicine.OrganFarm.fullMenu($activeSlave)>>
 
 <<if $geneticMappingUpgrade >= 1>>
 	<h3>Retro-virus treatments:</h3>