diff --git a/src/endWeek/saWorkTheFarm.js b/src/endWeek/saWorkTheFarm.js
index 40396a30a9910eb1306ad6a7d49992099d2e182a..1ffc93c6b7b543f5a0012efbce0e5f7df0013422 100644
--- a/src/endWeek/saWorkTheFarm.js
+++ b/src/endWeek/saWorkTheFarm.js
@@ -7,10 +7,17 @@
 App.SlaveAssignment.workTheFarm = function(slave) {
 	let frag = document.createDocumentFragment();
 
+	let
+		sexualQuirks = ["perverted", "unflinching"],
+		behavorialQuirks = ["sinful"],
+		fetishes = ["humiliation", "masochist"];
+
 	const
 		{ he, him, his, hers, He, His } = getPronouns(slave),
 		incomeStats = getSlaveStatisticData(slave, V.facility.farmyard),
-		arcology = V.arcologies[0];
+		arcology = V.arcologies[0],
+
+		slaveApproves = () => sexualQuirks.includes(slave.sexualQuirk) || behavorialQuirks.includes(slave.behavioralQuirk) || fetishes.includes(slave.fetish);
 
 	let
 		food = Math.trunc(App.Facilities.Farmyard.foodAmount(slave)),
@@ -111,8 +118,6 @@ App.SlaveAssignment.workTheFarm = function(slave) {
 			return `${His} muscular form helps ${him} work better, increasing ${his} productivity.`;
 		} else if (slave.muscles < -50) {
 			return `${He} is so weak that ${he} is not able to work effectively.`;
-		} else {
-			return ``; // TODO: third case?
 		}
 	};
 
@@ -138,7 +143,7 @@ App.SlaveAssignment.workTheFarm = function(slave) {
 
 
 	if (V.Farmer) {
-		// TODO: keep oral check? replace with something else?
+		// TODO: replace with something else
 		t += `While there, ${he} benefits from ${V.Farmer.slaveName}'s ${V.Farmer.physicalAge < 21 ? `youthful energy` : `care`} ${V.Farmer.skill.oral ? ` and talented tongue` : ``}.`;
 		if (slave.devotion < V.FarmerDevotionThreshold) {
 			slave.devotion += V.FarmerDevotionBonus;
@@ -183,13 +188,21 @@ App.SlaveAssignment.workTheFarm = function(slave) {
 
 		if (arcology.FSSupremacist !== "unset") {
 			if (isSuperiorRace(slave)) {
-				r.push(`Society <span class="reputation dec">disapproves</span> of your allowing a member of the elite race to be degraded in such a fashion, and thus ${he} didn't earn as much.`);
+				if (V.seeBestiality) {
+					r.push(`Since ${arcology.FSSupremacistRace} slaves are in fashion, ${he} attracts a little more attention than if ${he} wasn't ${arcology.FSSupremacistRace}.`);
+				} else {
+					r.push(`Society <span class="reputation dec">disapproves</span> of your allowing a member of the elite race to be degraded in such a fashion, and thus ${he} didn't earn as much.`);
+				}
 			}
 		}
 
 		if (arcology.FSSubjugationist !== "unset") {
 			if (isInferiorRace(slave)) {
-				r.push(`Society <span class="reputation inc">approves</span> of the degradation you submit your ${arcology.FSSubjugationistRace} slaves to, and so ${he} earns you a bit more.`);
+				if (V.seeBestiality) {
+					r.push(`Society <span class="reputation inc">approves</span> of the degradation you submit your ${arcology.FSSubjugationistRace} slaves to, and so ${he} earns you a bit more.`);
+				} else {
+					r.push(`Fewer people want to go see a ${arcology.FSSubjugationistRace} slave put on a show, and so ${he} doesn't earn as much as ${he} otherwise could.`);
+				}
 			} else {
 				r.push(`Society doesn't disapprove of ${him} not being ${arcology.FSSubjugationistRace}, but ${he} doesn't earn as much as ${he} would if ${he} was.`);
 			}
@@ -229,10 +242,6 @@ App.SlaveAssignment.workTheFarm = function(slave) {
 			} else {
 				r.push(`${His} viewers <span class="reputation dec">are disappointed</span> that ${he} isn't pregnant.`);
 			}
-
-			if (slave.dick > 0) {
-				// TODO: something here?
-			}
 		}
 
 		if (arcology.FSPaternalist !== "unset") {
@@ -303,7 +312,7 @@ App.SlaveAssignment.workTheFarm = function(slave) {
 
 		if (arcology.FSPhysicalIdealist !== "unset") {
 			if (genderLawPass(slave)) {
-				// TODO: write this
+				r.push(`The fact that ${slave.slaveName} has what is considered the ideal form also helps ${him} attract attention, and so ${he} earns a bit more.`);
 			}
 		}
 
@@ -403,7 +412,7 @@ App.SlaveAssignment.workTheFarm = function(slave) {
 		if (slave.muscles > 30) {
 			// TODO: write this - do we want something for muscles?
 		} else if (slave.muscles < -30) {
-			// TODO: write this - maybe something about the slave's ability to handle the animal?
+			r.push(`${slave.slaveName} is so weak that ${he} cannot even properly handle the animals ${he}'s assigned to ${V.seeBestiality ? `fuck` : `work with`}, and isn't able to put on any sort of meaningful show.`);
 		}
 
 		if (!canSeePerfectly(slave)) {
@@ -411,29 +420,17 @@ App.SlaveAssignment.workTheFarm = function(slave) {
 		}
 
 		if (slave.hears < 0) {
-			r.push(`${His} ${slave.hears < -1 ? `lack of` : `poor`} hearing makes it difficult for ${him} to do a good job of putting on a show.`);
+			r.push(`${His} ${slave.hears < -1 ? `lack of` : `poor`} hearing makes it difficult for ${him} to hear what ${his} audience wants from ${him}, which really affects ${his} earnings.`);
 		}
 
-		if (slave.boobs > 800) {
-			// TODO: write this
-		}
-
-		if (slave.butt > 4) {
-			// TODO: write this
-		}
-
-		if (slave.preg > 10) {
-			// TODO: write this
+		if (isPreg(slave)) {
+			r.push(`${His}${slave.bellyPreg > 100000 ? ` advanced` : ``} pregnancy makes it more difficult for him to effectively put on a good show.`);
 		}
 
 		if (slave.health.tired > 60) {
 			r.push(`${He} is so tired that the energy in ${his} shows is basically nonexistent, affecting ${his} profits.`);
 		}
 
-		if (slave.chem > 10) {
-			// TODO: write this - would this make sense to include?
-		}
-
 		if (slave.intelligence > 50) {
 			// TODO: write this - include something about .intelligenceImplant?
 		} else if (slave.intelligence < -50) {
@@ -461,13 +458,13 @@ App.SlaveAssignment.workTheFarm = function(slave) {
 					if (slave.fetishKnown) {
 						r.push(`${He} is so submissive that ${he} willingly accepts ${his} position as an animal's fucktoy and <span class="reputation inc">is able to put on a decent show</span>.`);
 					} else {
-						// TODO:
+						r.push(`${V.Headgirl ? `${V.Headgirl.slaveName} notices` : `You notice`} that ${slave.slaveName} seems to have really taken to ${his} position as a fucktoy for animals. <span class="lightcoral">${He}'s a submissive!</span>`);
 					}
 				} else {
 					if (slave.fetishKnown) {
 						r.push(`Being a submissive, ${he} <span class="reputation dec">doesn't have the confidence required</span> to really put on a good show.`);
 					} else {
-						// TODO:
+						r.push(`${slave.slaveName} doesn't seem to have the type of fortitude needed to put on a show, and after some probing, you discover why - it turns out <span class="lightcoral">${he}'s a submissive!</span>`);
 					}
 				}
 				break;
@@ -531,21 +528,19 @@ App.SlaveAssignment.workTheFarm = function(slave) {
 
 	// Open Long-Term Effects
 
-	if (slave.fetishKnown && (slave.fetish === "submissive" || slave.fetish === "humiliation" || slave.fetish === "masochist") || slave.energy > 95) {
+	if (slave.fetishKnown && slaveApproves() || slave.energy > 95) {
 		if (V.farmyardShows) {
 			if (V.seeBestiality) {
 				r.push(`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 {
-				r.push(`${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
+				r.push(`${He} loves putting on shows with animals, and as far as ${he} can tell, it's the perfect job for ${him}. It isn't as degrading as ${he} would like, but <span class="devotion inc">${he} is happy nonetheless.</span>`);
 			}
 		}
-		slave.devotion += 1;
 
-		if (slave.need) {
-			slave.need = 0;
-		}
+		slave.need = 0;
 	}
 
+	// TODO: keep this?
 	if (slave.behavioralQuirk === "fitness") {
 		r.push(`${slave.slaveName} <span class="devotion inc">privately enjoys</span> the exercise ${he} receives while working in ${V.farmyardName}.`);
 		slave.devotion += 1;
diff --git a/src/facilities/farmyard/farmyardShows.js b/src/facilities/farmyard/farmyardShows.js
index bc673e40fcffd389005d6d2b63a695235de6bb77..092b9f6e5555cb96147a464a1632f02ba4ff4a7c 100644
--- a/src/facilities/farmyard/farmyardShows.js
+++ b/src/facilities/farmyard/farmyardShows.js
@@ -20,18 +20,26 @@ App.Facilities.Farmyard.farmShowsIncome = function(slave) {
 
 		/* OPEN FS EFFECTS */
 		if (arcology.FSSupremacist !== "unset") {
-			if (slave.race === arcology.FSSupremacistRace) {		// slave is of supreme race
-				cash *= 0.9;										// TODO: should supreme race slaves receive a penalty?
-				repX(-10, "shows");									// TODO: should this cause a rep loss
+			if (isSuperiorRace(slave)) {
+				if (V.seeBestiality) {
+					cash *= 0.9;
+				} else {
+					cash *= 1.2;
+				}
+				repX(-10, "shows");
 			}
 		}
 
 		if (arcology.FSSubjugationist !== "unset") {
-			if (slave.race === arcology.FSSubjugationistRace) { 	// slave is of subjugated race
-				cash *= 1.1;
+			if (isInferiorRace(slave)) {
+				if (V.seeBestiality) {
+					cash *= 1.1;
+				} else {
+					cash *= 0.9;
+				}
 				repX(10, "shows");									// TODO: should this cause a rep gain?
 			} else {
-				cash *= 0.9;										// TODO: should unsubjugated race slaves receive a penalty?
+				cash *= 0.9;
 			}
 		}
 
@@ -240,17 +248,17 @@ App.Facilities.Farmyard.farmShowsIncome = function(slave) {
 		}
 
 		if (slave.muscles > 30) { 									// slave is muscular or more
-			cash *= 0.9;											// TODO: tie in height eugenics policy
+			cash *= 0.9;
 		} else if (slave.muscles < -30) {							// slave is very weak or less
-			cash *= 0.9;											// TODO: should this be on a scale?
+			cash *= 0.6;
 		}
 
 		if (!canSeePerfectly(slave)) {								// slaves eyesight is nearsighted or worse
-			cash *= 0.9;											// TODO: should nearsighted and blind slaves receive a penalty?
+			cash *= 0.8;
 		}
 
 		if (!canHear(slave)) {
-			cash *= 0.9;											// TODO: should hard of hearing slaves receive a penalty?
+			cash *= 0.8;
 		}
 
 		if (isPreg(slave)) {