diff --git a/.gitattributes b/.gitattributes
index 5e76e859a615ca4605797792a20a3902a9fa63df..d3d1a1483fd037041b2365331ce1b5ce261f8c77 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,4 +1,5 @@
 *.bat	text eol=crlf
+*.js	text eol=lf
 *.tw	text eol=lf
 *.sh	text eol=lf
 *.py	text eol=lf
diff --git a/devNotes/VersionChangeLog-Premod+LoliMod.txt b/devNotes/VersionChangeLog-Premod+LoliMod.txt
index 9d26840b575cdaa6e35f85d412ded68bf4a6e9e5..28cc1c7205f96e64aa21033d6fad286a523048d8 100644
--- a/devNotes/VersionChangeLog-Premod+LoliMod.txt
+++ b/devNotes/VersionChangeLog-Premod+LoliMod.txt
@@ -2,6 +2,8 @@ Pregmod
 
 0.10.7.1-2.2.x
 
+03/09/2019
+
 	0
 	-overhauled chastity
 	-overhauled reputation tracking
@@ -9,13 +11,16 @@ Pregmod
 	-ear shaping surgeries
 	-horn implant surgeries
 	-tail socket cybernetics port and tails
+	-taste and smell senses
 	-fertility diet no longer blocked by chastity
 	-RA can now apply contraceptives to postpartum slaves
 	-RA can now manage basic abortions
 	-added abortion tracking tattoos
 	-added bulk incubator retrieval
-	-added "albinism", "pFace" and "uFace" genetic traits
+	-added "albinism", "heterochromia", "pFace" and "uFace" genetic traits
 	-added sexy Santa outfit
+	-watersports is now toggleable
+	-added option for force surname-name on all slaves
 	-fixes
 	-various code cleaning
 
diff --git a/slave variables documentation - Pregmod.txt b/slave variables documentation - Pregmod.txt
index 8aafdbf84ab080de0dcf5a42e97d782e80c3261d..3a62a921c74391c60317e7e32528849b3b7238d8 100644
--- a/slave variables documentation - Pregmod.txt	
+++ b/slave variables documentation - Pregmod.txt	
@@ -1257,6 +1257,19 @@ kemonomimi ear color
 accepts hColor strings
 "hairless"
 
+smells:
+
+sense of smell
+-1 - no
+0 - yes
+
+tastes:
+
+sense of taste
+-1 - no
+0 - yes
+
+
 horn:
 
 horn type if any
@@ -3578,7 +3591,7 @@ How to set up your own hero slave.
 
 -The default slave template used:
 
-<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", pronoun: "she", possessive: "her", possessivePronoun: "hers", objectReflexive: "herself", object: "her", noun: "girl", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFeed: 0, pornFame: 0, pornFameSpending: 0, pornPrestige: 0, pornPrestigeDesc: 0, pornFameType: "none", pornFocus: "none", pornTypeGeneral: 0, pornTypeFuckdoll: 0, pornTypeRape: 0, pornTypePreggo: 0, pornTypeBBW: 0, pornTypeGainer: 0, pornTypeStud: 0, pornTypeLoli: 0, pornTypeDeepThroat: 0, pornTypeStruggleFuck: 0, pornTypePainal: 0, pornTypeTease: 0, pornTypeRomantic: 0, pornTypePervert: 0, pornTypeCaring: 0, pornTypeUnflinching: 0, pornTypeSizeQueen: 0, pornTypeNeglectful: 0, pornTypeCumAddict: 0, pornTypeAnalAddict: 0, pornTypeAttentionWhore: 0, pornTypeBreastGrowth: 0, pornTypeAbusive: 0, pornTypeMalicious: 0, pornTypeSelfHating: 0, pornTypeBreeder: 0, pornTypeSub: 0, pornTypeCumSlut: 0, pornTypeAnal: 0, pornTypeHumiliation: 0, pornTypeBoobs: 0, pornTypeDom: 0, pornTypeSadist: 0, pornTypeMasochist: 0, pornTypePregnancy: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", origRace: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", pupil: "circular", sclerae: "white", eyewear: "none", hears: 0, earwear: "none", earImplant: 0, origHColor: "brown", hColor: "brown", pubicHColor: "brown", underArmHColor: "brown", eyebrowHColor: "brown", origSkin: "light", skin: "light", hLength: 60, eyebrowFullness: "natural", hStyle: "short", pubicHStyle: "neat", underArmHStyle: "neat", eyebrowHStyle: "natural", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, nipplesAccessory: 0, areolae: 0, areolaePiercing: 0, areolaeShape: "circle", boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, pregAdaptation: 50, superfetation: 0, ovaImplant: 0, wombImplant: "none", broodmother: 0, broodmotherFetuses: 0, broodmotherOnHold: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", legAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, reservedChildrenNursery: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", origBodyOwnerID: 0, death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, prematureBirth: 0, premature: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillMT: 0, skillST: 0, skillMM: 0, skillFA: 0, skillWA: 0, skillS: 0, skillE: 0, skillW: 0, tankBaby: 0, geneMods: {NCS: 0, rapidCellGrowth: 0}, NCSyouthening: 0, override_Race: 0, override_Skin: 0, override_Eye_Color: 0, override_H_Color: 0, override_Pubic_H_Color: 0, override_Arm_H_Color: 0, override_Brow_H_Color: 0, albinismOverride: 0, missingEyes: 0, missingArms: 0, missingLegs: 0, slaveCost: 0, lifetimeCashExpenses: 0, lifetimeCashIncome: 0, lastWeeksCashIncome: 0, lifetimeRepExpenses: 0, lifetimeRepIncome: 0, lastWeeksRepIncome: 0, chastityVagina = 0, chastityPenis = 0, chastityAnus = 0}>>
+<<set $activeSlave = {slaveName: "blank", slaveSurname: 0, birthName: "blank", birthSurname: 0, genes: "XX", pronoun: "she", possessive: "her", possessivePronoun: "hers", objectReflexive: "herself", object: "her", noun: "girl", weekAcquired: 0, origin: 0, career: 0, ID: 0, prestige: 0, pornFeed: 0, pornFame: 0, pornFameSpending: 0, pornPrestige: 0, pornPrestigeDesc: 0, pornFameType: "none", pornFocus: "none", pornTypeGeneral: 0, pornTypeFuckdoll: 0, pornTypeRape: 0, pornTypePreggo: 0, pornTypeBBW: 0, pornTypeGainer: 0, pornTypeStud: 0, pornTypeLoli: 0, pornTypeDeepThroat: 0, pornTypeStruggleFuck: 0, pornTypePainal: 0, pornTypeTease: 0, pornTypeRomantic: 0, pornTypePervert: 0, pornTypeCaring: 0, pornTypeUnflinching: 0, pornTypeSizeQueen: 0, pornTypeNeglectful: 0, pornTypeCumAddict: 0, pornTypeAnalAddict: 0, pornTypeAttentionWhore: 0, pornTypeBreastGrowth: 0, pornTypeAbusive: 0, pornTypeMalicious: 0, pornTypeSelfHating: 0, pornTypeBreeder: 0, pornTypeSub: 0, pornTypeCumSlut: 0, pornTypeAnal: 0, pornTypeHumiliation: 0, pornTypeBoobs: 0, pornTypeDom: 0, pornTypeSadist: 0, pornTypeMasochist: 0, pornTypePregnancy: 0, prestigeDesc: 0, recruiter: 0, relation: 0, relationTarget: 0, relationship: 0, relationshipTarget: 0, rivalry: 0, rivalryTarget: 0, subTarget: 0, father: 0, mother: 0, daughters: 0, sisters: 0, canRecruit: 0, choosesOwnAssignment: 0, assignment: "rest", assignmentVisible: 1, sentence: 0, training: 0, toyHole: "all her holes", indenture: -1, indentureRestrictions: 0, birthWeek: random(0,51), actualAge: 18, visualAge: 18, physicalAge: 18, ovaryAge: 18, ageImplant: 0, health: 0, minorInjury: 0, trust: 0, oldTrust: 0, devotion: 0, oldDevotion: 0, weight: 0, muscles: 0, height: 170, heightImplant: 0, nationality: "slave", race: "white", origRace: "white", markings: "none", eyes: 1, eyeColor: "brown", origEye: "brown", pupil: "circular", sclerae: "white", eyewear: "none", hears: 0, earwear: "none", earImplant: 0, origHColor: "brown", hColor: "brown", pubicHColor: "brown", underArmHColor: "brown", eyebrowHColor: "brown", origSkin: "light", skin: "light", hLength: 60, eyebrowFullness: "natural", hStyle: "short", pubicHStyle: "neat", underArmHStyle: "neat", eyebrowHStyle: "natural", waist: 0, corsetPiercing: 0, PLimb: 0, amp: 0, heels:0, voice: 2, voiceImplant: 0, accent: 0, shoulders: 0, shouldersImplant: 0, boobs: 0, boobsImplant: 0, boobsImplantType: 0, boobShape: "normal", nipples: "cute", nipplesPiercing: 0, nipplesAccessory: 0, areolae: 0, areolaePiercing: 0, areolaeShape: "circle", boobsTat: 0, lactation: 0, lactationAdaptation: 0, milk: 0, cum: 0, hips: 0, hipsImplant: 0, butt: 0, buttImplant: 0, buttImplantType: 0, buttTat: 0, face: 0, faceImplant: 0, faceShape: "normal", lips: 15, lipsImplant: 0, lipsPiercing: 0, lipsTat: 0, teeth: "normal", tonguePiercing: 0, vagina: 0, vaginaLube: 0, vaginaPiercing: 0, vaginaTat: 0, preg: -1, pregSource: 0, pregType: 0, pregAdaptation: 50, superfetation: 0, ovaImplant: 0, wombImplant: "none", broodmother: 0, broodmotherFetuses: 0, broodmotherOnHold: 0, broodmotherCountDown: 0, labor: 0, births: 0, cSec: 0, bellyAccessory: "none", labia: 0, clit: 0, clitPiercing: 0, clitSetting: "vanilla", foreskin: 0, anus: 0, dick: 0, analArea: 1, dickPiercing: 0, dickTat: 0, prostate: 0, balls: 0, scrotum: 0, ovaries: 0, anusPiercing: 0, anusTat: 0, makeup: 0, nails: 0, brand: 0, brandLocation: 0, earPiercing: 0, nosePiercing: 0, eyebrowPiercing: 0, navelPiercing: 0, shouldersTat: 0, armsTat: 0, legsTat: 0, backTat: 0, stampTat: 0, vaginalSkill: 0, oralSkill: 0, analSkill: 0, whoreSkill: 0, entertainSkill: 0, combatSkill: 0, livingRules: "spare", speechRules: "restrictive", releaseRules: "restrictive", relationshipRules: "restrictive", standardPunishment: "situational", standardReward: "situational", useRulesAssistant: 1, diet: "healthy", dietCum: 0, dietMilk: 0, tired: 0, hormones: 0, drugs: "no drugs", curatives: 0, chem: 0, aphrodisiacs: 0, addict: 0, fuckdoll: 0, choosesOwnClothes: 0, clothes: "no clothing", collar: "none", shoes: "none", vaginalAccessory: "none", dickAccessory: "none", legAccessory: "none", buttplug: "none", buttplugAttachment: "none", intelligence: 0, intelligenceImplant: 0, energy: 50, need: 0, attrXX: 0, attrXY: 0, attrKnown: 0, fetish: "none", fetishStrength: 70, fetishKnown: 0, behavioralFlaw: "none", behavioralQuirk: "none", sexualFlaw: "none", sexualQuirk: "none", oralCount: 0, vaginalCount: 0, analCount: 0, mammaryCount: 0, penetrativeCount: 0, publicCount: 0, pitKills: 0, customTat: "", customLabel: "", customDesc: "", customTitle: "", customTitleLisp: "", rudeTitle: 0, customImage: 0, currentRules: [], bellyTat: 0, induce: 0, mpreg: 0, inflation: 0, inflationType: "none", inflationMethod: 0, milkSource: 0, cumSource: 0, burst: 0, pregKnown: 0, pregWeek: 0, belly: 0, bellyPreg: 0, bellyFluid: 0, bellyImplant: -1, bellySag: 0, bellySagPreg: 0, bellyPain: 0, cervixImplant: 0, birthsTotal: 0, pubertyAgeXX: 13, pubertyAgeXY: 13, scars: 0, breedingMark: 0, bodySwap: 0, HGExclude: 0, ballType: "human", eggType: "human", reservedChildren: 0, reservedChildrenNursery: 0, choosesOwnChastity: 0, pregControl: "none", readyLimbs: [], ageAdjust: 0, bald: 0, origBodyOwner: "", origBodyOwnerID: 0, death: "", hormoneBalance: 0, onDiet: 0, breastMesh: 0, slavesFathered: 0, PCChildrenFathered: 0, slavesKnockedUp: 0, PCKnockedUp: 0, prematureBirth: 0, premature: 0, origSkin: "white", vasectomy: 0, haircuts: 0, newGamePlus: 0, skillHG: 0, skillRC: 0, skillBG: 0, skillMD: 0, skillDJ: 0, skillNU: 0, skillTE: 0, skillAT: 0, skillMT: 0, skillST: 0, skillMM: 0, skillFA: 0, skillWA: 0, skillS: 0, skillE: 0, skillW: 0, tankBaby: 0, geneMods: {NCS: 0, rapidCellGrowth: 0}, NCSyouthening: 0, override_Race: 0, override_Skin: 0, override_Eye_Color: 0, override_H_Color: 0, override_Pubic_H_Color: 0, override_Arm_H_Color: 0, override_Brow_H_Color: 0, albinismOverride: 0, missingEyes: 0, missingArms: 0, missingLegs: 0, slaveCost: 0, lifetimeCashExpenses: 0, lifetimeCashIncome: 0, lastWeeksCashIncome: 0, lifetimeRepExpenses: 0, lifetimeRepIncome: 0, lastWeeksRepIncome: 0, chastityVagina = 0, chastityPenis = 0, chastityAnus = 0, smells: 0, tastes: 0}>>
 
 Making your slave; add their name to the following, then go down the documentation adding in your changes.
 -each variable must be separated from the last by a comma followed by a space
diff --git a/src/Mods/DinnerParty/dinnerPartyExecution.tw b/src/Mods/DinnerParty/dinnerPartyExecution.tw
index 14a2d408afcf93dbf3f9a5ae95e353a1e9f5e557..4b4ef0cde76ff0011ffeac56e67ca4f76f30163e 100644
--- a/src/Mods/DinnerParty/dinnerPartyExecution.tw
+++ b/src/Mods/DinnerParty/dinnerPartyExecution.tw
@@ -442,8 +442,13 @@
 			<</if>>
 			One man moves to the head of $HeadGirl.slaveName and shoved his cock into $his mouth, fucking $his throat roughly. He buries his cock deep down $his throat all the way to his balls.
 			He places both hands around $his neck and squeezes with every stroke. Your Head Girl's face turns red and $he gags uncontrollably. $His eyes roll back as another man shoves his hard cock in $his asshole, sodomizing $him with no mercy. As your Head Girl makes squeaking noises in pain, several guests pick up forks and jab it at $his butt and $his back, chanting "More meat... More meat..." and "Squeal, piggy, squeal." You slump over your chair at the head of the table. Gulping down your drink, you suppress the urge to order your security drones to open fire on those men. You know they would never dare to harm your Head Girl, not permanently, at least not anything your remote surgery couldn't fix. It's not as if you haven't done worse to your slaves, but the message is clear; the attack on your Head Girl was meant as disrespect and an insult towards you. Raping your Head Girl is like raping you. You stare at the group of men gang raping your Head Girl at the end of your own dining table, burning their @@.yellow;names and their faces@@ into your memory as they take turns fucking $him. They make use of $his every hole. When they are done, $he is left on the floor, battered and bruised, covered in cum and blood from superficial wounds.
-			The leader of the pack pulls out his half erect cock and pees on your Head Girl as a final insult towards you. The poor $girl is so spent that $he doesn't even flinch at the urine hitting $his face.
-			He finishes showering your Head Girl, then turns towards you and says smilingly:
+			The leader of the pack pulls out his half erect cock and
+			<<if $seePee == 1>>
+				pees on your Head Girl as a final insult towards you. The poor $girl is so spent that $he doesn't even flinch at the urine hitting $his face. He finishes showering your Head Girl, then
+			<<else>>
+				ejaculates all over your Head Girl's face, clearly and intentionally aiming for $his eyes. The poor $girl is so spent that $he doesn't even flinch from this final insult towards you. When he's done, he
+			<</if>>
+			turns towards you and says smilingly:
 			<br><br>
 			//"I must congratulate you//
 			<<if $PC.title > 0>>
diff --git a/src/art/artJS.js b/src/art/artJS.js
index e350ea6bd265583464586d301e74266d9167d684..44d1868700ff194e9c178d162206a249139f7608 100644
--- a/src/art/artJS.js
+++ b/src/art/artJS.js
@@ -11,7 +11,7 @@ UIDisplay (optional, only used by legacy art): icon UI Display for vector art, 1
 */
 window.SlaveArt = function(artSlave, artSize, UIDisplay) {
 	const imageChoice = State.variables.imageChoice;
-	if (artSlave.customImage !== 0)
+	if (artSlave.customImage !== "")
 		return CustomArt(artSlave, artSize);
 	else if (imageChoice === 1) /* VECTOR ART BY NOX/DEEPMURK */
 		return VectorArt(artSlave, artSize);
diff --git a/src/cheats/PCCheatMenu.tw b/src/cheats/PCCheatMenu.tw
index 91ba348cc36da515fdbf9c90b7e9132b3afc535c..f8c2f8c9290f60d8bc1b9c5c64f00c84db7872c1 100644
--- a/src/cheats/PCCheatMenu.tw
+++ b/src/cheats/PCCheatMenu.tw
@@ -260,7 +260,7 @@ Sex: ''$tempSlave.genes''
 <<elseif $tempSlave.medicine >= -40>>
 	Gauze is your friend. Just keep wrapping.
 <<elseif $tempSlave.medicine >= -60>>
-	You know how to apply a bandaid.
+	You know how to apply a band-aid.
 <<elseif $tempSlave.medicine >= -80>>
 	Cure-alls are wonderful. Why aren't they sold in stores, though?
 <<else>>
@@ -275,7 +275,7 @@ Sex: ''$tempSlave.genes''
 <<radiobutton "$tempSlave.medicine" 0>> Basic medic
 <<radiobutton "$tempSlave.medicine" -10>> Can treat wounds
 <<radiobutton "$tempSlave.medicine" -30>> First-aid kit user
-<<radiobutton "$tempSlave.medicine" -50>> Band-aid applyer
+<<radiobutton "$tempSlave.medicine" -50>> Band-aid applier
 <<radiobutton "$tempSlave.medicine" -70>> MEDIC!
 <<radiobutton "$tempSlave.medicine" -90>> Give me another beer
 <br>
diff --git a/src/cheats/mod_EditChildCheatNew.tw b/src/cheats/mod_EditChildCheatNew.tw
index 36e3c059ae03d7bf0a3511114ab43b0d6c947e6a..0cef8259710fbf5c75e31511c871acf5aa270553 100644
--- a/src/cheats/mod_EditChildCheatNew.tw
+++ b/src/cheats/mod_EditChildCheatNew.tw
@@ -859,7 +859,7 @@
 	<<radiobutton "$tempSlave.markings" "birthmark">> Birth Mark
 	<br><br>
 
-	''$His hearing is :''
+	''Sense of Hearing:''
 	<<switch $tempSlave.hears>>
 	<<case -2>>@@.yellow;Deaf@@
 	<<case -1>>@@.yellow;Hard Of Hearing@@
@@ -880,6 +880,16 @@
 	<<checkbox "$tempSlave.earImplant" 0 1>>
 	<</if>>
 
+	''Sense of Smell:''
+	<<switch $tempSlave.smells>>
+	<<case -1>>@@.yellow;None@@
+	<<case 0>>@@.yellow;Normal@@
+	<</switch>>
+	<br>
+	<<radiobutton "$tempSlave.smells" 0>> Normal
+	<<radiobutton "$tempSlave.smells" -1>> None
+	<br>
+
 <</widget>>
 
 <<widget HairTab>>
@@ -1375,7 +1385,7 @@
 
 	<br><br>
 
-	''Voice : ''
+	''Voice: ''
 	<<switch $tempSlave.voice>>
 	<<case 0>>@@.yellow;Mute@@
 	<<case 1>>@@.yellow;Deep@@
@@ -1401,6 +1411,16 @@
 	<<radiobutton "$tempSlave.accent" 3>> Barely Understands Language
 	<br>
 
+	''Sense of Taste: ''
+	<<switch $tempSlave.tastes>>
+	<<case 0>>@@.yellow;Normal@@
+	<<case -1>>@@.yellow;None@@
+	<</switch>>
+	<br>
+	<<radiobutton "$tempSlave.tastes" 0>> Normal
+	<<radiobutton "$tempSlave.tastes" -1>> None
+	<br>
+
 <</widget>>
 
 <<widget BodyTab>>
diff --git a/src/cheats/mod_EditSlaveCheat.tw b/src/cheats/mod_EditSlaveCheat.tw
index 3c8652f564af77774fc1f38b10994449456b0b14..90608a19e4f6529e49543cc44f93c88d2e9825ab 100644
--- a/src/cheats/mod_EditSlaveCheat.tw
+++ b/src/cheats/mod_EditSlaveCheat.tw
@@ -336,6 +336,22 @@ Custom sclera color: <<textbox "$tempSlave.sclerae" $tempSlave.sclerae>>
 
 <br><br>
 
+<<if $seeExtreme == 1>>
+''$His sense of smell is (-1: disabled, 0: normal): $tempSlave.smells''
+<br>Ears: <<textbox "$tempSlave.smells" $tempSlave.smells>>
+<<radiobutton "$tempSlave.smells" 0>> Normal
+<<radiobutton "$tempSlave.smells" -1>> None
+
+<br><br>
+
+''$His sense of taste is (-1: disabled, 0: normal): $tempSlave.tastes''
+<br>Ears: <<textbox "$tempSlave.tastes" $tempSlave.tastes>>
+<<radiobutton "$tempSlave.tastes" 0>> Normal
+<<radiobutton "$tempSlave.tastes" -1>> None
+
+<br><br>
+<</if>>
+
 ''Change $his custom tattoo:'' <<textbox "$tempSlave.customTat" $tempSlave.customTat>>
 <br>
 //For best results, use complete, capitalized and punctuated sentences; for example: 'She has blue stars tattooed along her cheekbones, and a blue arrow down each arm.'//
@@ -507,6 +523,13 @@ Unskilled.
 <<radiobutton "$tempSlave.voice" 2>> Normal
 <<radiobutton "$tempSlave.voice" 3>> High
 
+<br>
+''Sense of Taste (0,-1): $tempSlave.tastes |''
+<<textbox "$tempSlave.tastes" $tempSlave.tastes>>
+<br>
+<<radiobutton "$tempSlave.tastes" 0>> Normal
+<<radiobutton "$tempSlave.tastes" -1>> None
+
 <br><br>
 
 ''Weight (-100 to 100):''
diff --git a/src/cheats/mod_editSlaveCheatNew.tw b/src/cheats/mod_editSlaveCheatNew.tw
index 24c39f3723d6cd57901c3c37d22783790e57bfda..284cad66810bc8977fe20c2c81a3a22305c4c7e1 100644
--- a/src/cheats/mod_editSlaveCheatNew.tw
+++ b/src/cheats/mod_editSlaveCheatNew.tw
@@ -1452,7 +1452,7 @@
 	<<radiobutton "$tempSlave.markings" "birthmark">> Birth Mark
 	<br><br>
 
-	''$His hearing is :''
+	''Sense of Hearing:''
 	<<switch $tempSlave.hears>>
 	<<case -2>>@@.yellow;Deaf@@
 	<<case -1>>@@.yellow;Hard Of Hearing@@
@@ -1493,6 +1493,16 @@
 	<<radiobutton "$tempSlave.earT" "tanuki">> TANUKI
 	<br><br>
 
+	''Sense of Smell:''
+	<<switch $tempSlave.smells>>
+	<<case -1>>@@.yellow;None@@
+	<<case 0>>@@.yellow;Normal@@
+	<</switch>>
+	<br>
+	<<radiobutton "$tempSlave.smells" 0>> Normal
+	<<radiobutton "$tempSlave.smells" -1>> None
+	<br>
+
 	''Horn Type: @@.yellow;$tempSlave.horn@@ ''
 	<br>
 	<<radiobutton "$tempSlave.horn" "none">> None
@@ -2040,6 +2050,16 @@
 	<<radiobutton "$tempSlave.voiceImplant" 2>> Much Higher
 	<br>
 
+	''Sense of Taste: ''
+	<<switch $tempSlave.tastes>>
+	<<case 0>>@@.yellow;Normal@@
+	<<case -1>>@@.yellow;None@@
+	<</switch>>
+	<br>
+	<<radiobutton "$tempSlave.tastes" 0>> Normal
+	<<radiobutton "$tempSlave.tastes" -1>> None
+	<br>
+
 <</widget>>
 
 <<widget BodyTab>>
diff --git a/src/events/intro/introSummary.tw b/src/events/intro/introSummary.tw
index 662adbdc68b12e729b48b70b073c8d3eab09c8c6..fed370bd12d76da72b6b51fe1103888d8c30b870 100644
--- a/src/events/intro/introSummary.tw
+++ b/src/events/intro/introSummary.tw
@@ -202,10 +202,12 @@ __''General slave settings''__
 //This only affects slave generation and not your ability to name your slaves.//
 
 <br>
-<<if $surnameOrder != 1>>
-	Order names ''based on country of origin''. [[Force name surname|Intro Summary][$surnameOrder = 1]]
-<<else>>
-	Names will always be ''Name Surname''. [[Allow nationality name order|Intro Summary][$surnameOrder = 0]]
+<<if $surnameOrder == 0>>
+	Order names ''based on country of origin''. [[Force name surname|Intro Summary][$surnameOrder = 1]] | [[Force surname name|Intro Summary][$surnameOrder = 2]]
+<<elseif $surnameOrder == 1>>
+	Names will always be ''Name Surname''. [[Allow nationality name order|Intro Summary][$surnameOrder = 0]] | [[Force surname name|Intro Summary][$surnameOrder = 2]]
+<<elseif $surnameOrder == 2>>
+	Names will always be ''Surname Name''. [[Allow nationality name order|Intro Summary][$surnameOrder = 0]] | [[Force name surname|Intro Summary][$surnameOrder = 1]]
 <</if>>
 
 <br>
@@ -470,6 +472,15 @@ Should children born in game strictly adhere to dick content settings?
 	[[Enable|Intro Summary][$seeBestiality = 1]]
 <</if>>
 
+<br>
+<<if $seePee == 1>>
+	Watersports content is ''enabled''.
+	[[Disable|Intro Summary][$seePee = 0]]
+<<else>>
+	Watersports content is ''disabled''.
+	[[Enable|Intro Summary][$seePee = 1]]
+<</if>>
+
 <<if $seeDicks != 0>>
 	<br>
 	<<if $seeCircumcision == 1>>
@@ -730,7 +741,7 @@ __''Player Character''__
 			<<set _PCCreationCareer = "a member of the idle wealthy">>
 	<</switch>>
 	<br>
-	Before you came to the free cities, you were ''_PCCreationCareer'' and it is rumoured that you acquired your arcology through ''$PC.rumor''.
+	Before you came to the Free Cities, you were ''_PCCreationCareer'' and it is rumored that you acquired your arcology through ''$PC.rumor''.
 
 	<br>__Past career:__
 	<<if $PC.career != "arcology owner">>
diff --git a/src/events/intro/locationIntro.tw b/src/events/intro/locationIntro.tw
index 0f2702c69f50d4b266a04af0e4ba7a245d533030..79a8c4009df3cda17379a1aabc33cb9bcd7ba453 100644
--- a/src/events/intro/locationIntro.tw
+++ b/src/events/intro/locationIntro.tw
@@ -9,7 +9,11 @@ As the old countries crumble and technology stagnates, the gap between rich and
 [[the Middle East|Intro Summary][$continent = "the Middle East", $language = "Arabic"]]
 [[Africa|Intro Summary][$continent = "Africa", $language = "Arabic"]]
 [[Asia|Intro Summary][$continent = "Asia", $language = "Chinese"]]
-[[Japan|Intro Summary][$continent = "Japan", $language = "Japanese", $PC.race = "asian", $PC.nationality = "Japanese", $PC.hColor = "black", $PC.eyeColor = "brown"]]
+<<if $freshPC == 1 || $saveImported == 0>>
+	[[Japan|Intro Summary][$continent = "Japan", $language = "Japanese", $PC.race = "asian", $PC.nationality = "Japanese", $PC.hColor = "black", $PC.eyeColor = "brown"]]
+<<else>>
+	[[Japan|Intro Summary][$continent = "Japan", $language = "Japanese"]]
+<</if>>
 [[Australia|Intro Summary][$continent = "Australia", $language = "English"]]
 <br>
 //Slaves from countries in the selected continent will appear more frequently.//
diff --git a/src/facilities/farmyard/farmyardReport.tw b/src/facilities/farmyard/farmyardReport.tw
index 312dff6449c4604d00c934094c48aa1a612138ad..2338cb6e9e12450ad6bc9bc292f94ce9b05c57cd 100644
--- a/src/facilities/farmyard/farmyardReport.tw
+++ b/src/facilities/farmyard/farmyardReport.tw
@@ -95,9 +95,14 @@
 		$His turgid dick helps $him manage $his workers.
 		<<set $FarmerCashBonus += 0.05>>
 	<</if>>
+	<<if !canSmell($Farmer)>>
+		$His lack of a sense of smell protects $him from that omnipresent barnyard scent.
+		<<set $FarmerCashBonus += 0.05>>
+	<</if>>
 
 	<<for _dI = 0; _dI < _DL; _dI++>>
 		<<set $i = $slaveIndices[$FarmyardiIDs[_dI]]>>
+		<<setLocalPronouns $slaves[$i] 2>>
 		<<if $Farmer.rivalryTarget == $slaves[$i].ID>>
 			$He forces $his <<print rivalryTerm($Farmer)>> to service all the slaves in the farmyard.
 			<<set $slaves[$i].devotion -= 2, $slaves[$i].trust -= 2>>
@@ -115,15 +120,12 @@
 				<<set $slaves[_FLs].rivalry++, $Farmer.rivalry++, $slaves[$i].rivalry++>>
 			<</if>>
 		<<elseif $Farmer.relationshipTarget == $slaves[$i].ID>>
-			<<setLocalPronouns $slaves[$i] 2>>
 			$He dotes over $his <<print relationshipTerm($Farmer)>>, $slaves[$i].slaveName, making sure _he2 isn't worked too hard, but unfortunately manages to get in the way of _his2 work.
 			<<set $slaves[$i].devotion++, $FarmerCashBonus -= 0.05>>
 		<<elseif $familyTesting == 1 && areRelated($Farmer, $slaves[$i]) > 0>>
-			<<setLocalPronouns $slaves[$i] 2>>
 			$He pays special attention to $his <<print relativeTerm($Farmer.ID,$slaves[$i].ID)>>, $slaves[$i].slaveName, making sure _he2 is treated well and showing off _his2 skills. /* TODO: does this need rewriting? */
 			<<set $slaves[$i].trust++, $FarmerCashBonus += 0.05>>
 		<<elseif $Farmer.relationTarget == $slaves[$i].ID && $familyTesting == 0>>
-			<<setLocalPronouns $slaves[$i] 2>>
 			$He pays special attention to $his $slaves[$i].relation, $slaves[$i].slaveName, making sure _he2 is treated well and showing off _his2 skills. /* TODO: does this need rewriting? */
 			<<set $slaves[$i].trust++, $FarmerCashBonus += 0.05>>
 		<</if>>
diff --git a/src/facilities/nursery/longChildDescription.tw b/src/facilities/nursery/longChildDescription.tw
index f360965eac0cfc1f6bb313e5089b7690279b948c..c8b8be8dff20e615ba4de15eb25a5b4bbd66fd7b 100644
--- a/src/facilities/nursery/longChildDescription.tw
+++ b/src/facilities/nursery/longChildDescription.tw
@@ -69,23 +69,23 @@ is a
 		<<if $activeChild.slaveName != $activeChild.birthName && $activeChild.slaveSurname != $activeChild.birthSurname>>
 			<<= SlaveFullName($activeChild)>> is not $his original full name;
 			<<if $activeChild.birthName === "" || $activeChild.birthSurname === "">>
-				whatever it was, however, has been lost forever.
+				whatever it was, however, has been lost forever. Regardless,
 			<</if>>
 		<<elseif $activeChild.slaveName != $activeChild.birthName>>
 			$activeChild.slaveName is not $his original given name;
 			<<if $activeChild.birthName === "">>
-				whatever it was, however, has been lost forever.
+				whatever it was, however, has been lost forever. Regardless,
 			<</if>>
 		<<elseif $activeChild.slaveSurname != $activeChild.birthSurname>>
 			<<if $activeChild.slaveSurname === 0>>
 				$He once had a surname;
 				<<if $activeChild.birthSurname === "">>
-					whatever it was, however, has been lost forever.
+					whatever it was, however, has been lost forever. Regardless,
 				<</if>>
 			<<else>>
 				$activeChild.slaveSurname is not $his original surname;
 				<<if $activeChild.birthSurname === "">>
-					whatever it was, however, has been lost forever.
+					whatever it was, however, has been lost forever. Regardless,
 				<</if>>
 			<</if>>
 		<</if>>
@@ -101,21 +101,14 @@ is a
 			<<elseif $activeChild.devotion >= -50>>
 				$he uses $his slave name with resentment since $he prefers $his original name,
 			<<else>>
-				$He uses $his slave name only when constantly punished, since $he feels $his real name is
+				$he uses $his slave name only when constantly punished, since $he feels $his real name is
 			<</if>>
 			<<if $activeChild.birthName === "">>
 				$activeChild.birthSurname.
 			<<elseif $activeChild.birthSurname === "">>
 				$activeChild.birthName.
-			<<elseif $surnameOrder != 1>>
-				<<switch $activeChild.nationality>>
-				<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-					<<if $activeChild.birthSurname>>$activeChild.birthSurname <</if>>$activeChild.birthName.
-				<<default>>
-					$activeChild.birthName<<if $activeChild.birthSurname>> $activeChild.birthSurname<</if>>.
-				<</switch>>
 			<<else>>
-				$activeChild.birthName<<if $activeChild.birthSurname>> $activeChild.birthSurname<</if>>.
+				<<= SlaveFullBirthName($activeChild)>>.
 			<</if>>
 		<</if>>
 		<<if $activeChild.slaveSurname == 0>>
@@ -129,17 +122,7 @@ is a
 			<</if>>
 		<</if>>
 	<<else>>
-		$activeChild.slaveName<<if $activeChild.slaveSurname>> $activeChild.slaveSurname<</if>> is not its original name: it was once called
-		<<if $surnameOrder != 1>>
-			<<switch $activeChild.nationality>>
-			<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-				<<if $activeChild.birthSurname>>$activeChild.birthSurname <</if>>$activeChild.birthName.
-			<<default>>
-				$activeChild.birthName<<if $activeChild.birthSurname>> $activeChild.birthSurname<</if>>.
-			<</switch>>
-		<<else>>
-			$activeChild.birthName<<if $activeChild.birthSurname>> $activeChild.birthSurname<</if>>.
-		<</if>>
+		<<= SlaveFullName($activeChild)>> is not $his original name: $he was once called <<= SlaveFullBirthName($activeChild)>>.
 	<</if>>
 <</if>>
 */
@@ -1039,13 +1022,13 @@ and
 	<<if $arcologies[0].FSHedonisticDecadence != "unset">>
 		<<print either("perfectly curvy", "perfectly plush")>>.
 	<<else>>
-		@@.red;<<print either("dangerously overweight", "extremely obese", "dangerously fat")>>.@@
+		@@.red;<<print either("dangerously fat", "dangerously overweight", "extremely obese")>>.@@
 	<</if>>
 <<elseif $activeChild.weight > 160 >>
 	<<if $arcologies[0].FSHedonisticDecadence != "unset">>
 		<<print either("spectacularly curvy", "spectacularly plush")>>.
 	<<else>>
-		@@.red;<<print either("extremely overweight", "very obese", "extremely fat")>>.@@
+		@@.red;<<print either("extremely fat", "extremely overweight", "very obese")>>.@@
 	<</if>>
 <<elseif $activeChild.weight > 130 >>
 	<<if $arcologies[0].FSHedonisticDecadence != "unset">>
@@ -1067,11 +1050,11 @@ and
 	<<elseif $arcologies[0].FSHedonisticDecadence != "unset">>
 		<<print either("quite curvy", "very plush")>>.
 	<<else>>
-		@@.red;<<print either("chubby", "carrying extra weight")>>.@@
+		@@.red;<<print either("carrying extra weight", "chubby")>>.@@
 	<</if>>
-<<elseif $activeChild.weight > 10 >><<print either("pleasingly curvy", "nicely plush")>>.
-<<elseif $activeChild.weight >= -10>><<print either("a healthy weight", "neither too fat nor too skinny", "an attractive weight for $his frame")>>.
-<<elseif $activeChild.weight >= -30>><<print either("pleasingly thin", "appealingly skinny")>>.
+<<elseif $activeChild.weight > 10 >><<print either("nicely plush", "pleasingly curvy")>>.
+<<elseif $activeChild.weight >= -10>><<print either("a healthy weight", "an attractive weight for $his frame", "neither too fat nor too skinny")>>.
+<<elseif $activeChild.weight >= -30>><<print either("appealingly skinny", "pleasingly thin")>>.
 <<elseif $activeChild.weight >= -95>>
 	<<if $activeChild.hips > 1>>
 		<<print either("quite skinny", "very thin")>>, but $his wide hips make the gap between $his thighs very noticeable.
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index 9398dfcbdfa15f1b8fe8b91ecf9dea53e02c0527..791d4f2e130d134a0037491ae78b24e6635b49d6 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -2914,10 +2914,10 @@ LORE: INTERVIEWS
 	| [[Living Conditions|Encyclopedia][$encyclopedia = "Living Conditions"]]
 	| [[Health|Encyclopedia][$encyclopedia = "Health"]]
 	| @@.hotpink;[[Devotion|Encyclopedia][$encyclopedia = "From Rebellious to Devoted"]]@@
-	| @@.mediumaquamarine;[[trust|Encyclopedia][$encyclopedia = "Trust"]]@@
+	| @@.mediumaquamarine;[[Trust|Encyclopedia][$encyclopedia = "Trust"]]@@
 	| [[Drugs and Their Effects|Encyclopedia][$encyclopedia = "Drugs and Their Effects"]]
 	| [[Gender|Encyclopedia][$encyclopedia = "Gender"]]
-	| [[nymphomania|Encyclopedia][$encyclopedia = "Nymphomania"]]
+	| [[Nymphomania|Encyclopedia][$encyclopedia = "Nymphomania"]]
 	| [[Indentured Servants|Encyclopedia][$encyclopedia = "Indentured Servants"]]
 	| [[Menial Slaves|Encyclopedia][$encyclopedia = "Menial Slaves"]]
 	| [[Fuckdolls|Encyclopedia][$encyclopedia = "Fuckdolls"]]
@@ -3025,7 +3025,7 @@ LORE: INTERVIEWS
 	| [[Submissives|Encyclopedia][$encyclopedia = "Submissives"]]
 <</if>>
 
-<<if["Adores men", "Adores women", "Advocate", "Confident", "Cutting", "Fitness", "Funny", "Insecure", "Quirks", "Sinful"].includes($encyclopedia)>>
+<<if ["Adores men", "Adores women", "Advocate", "Confident", "Cutting", "Fitness", "Funny", "Insecure", "Quirks", "Sinful"].includes($encyclopedia)>>
 	<br><br>//Behavioral [[Quirks|Encyclopedia][$encyclopedia = "Quirks"]]://
 
 	<br>[[Adores men|Encyclopedia][$encyclopedia = "Adores men"]]
diff --git a/src/init/dummy.tw b/src/init/dummy.tw
index b910c0245fa08902863f6657c246bd95ad6c241d..4d711a08a2ee0c33e41063fbd4a2c355372bab67 100644
--- a/src/init/dummy.tw
+++ b/src/init/dummy.tw
@@ -17,15 +17,15 @@ $belarusianSlaveNames, $dominicanSlaveNames, $scottishSlaveNames
 $ArcologyNamesEugenics, $ArcologyNamesRepopulationist, $ArcologyNamesHedonisticDecadence
 $LurcherSpeed
 $$i
-$activeSlave.bodySwap, $activeSlave.customImageFormat, $activeSlave.customHairVector, $activeSlave.shoeColor, $activeSlave.newGamePlus, $activeSlave.nipplesAccessory, $activeSlave.slaveCost
+$activeSlave.bodySwap, $activeSlave.customImageFormat, $activeSlave.customHairVector, $activeSlave.shoeColor, $activeSlave.newGamePlus, $activeSlave.nipplesAccessory, $activeSlave.slaveCost, $activeSlave.premature, $activeSlave.missingEyes, $activeSlave.missingArms, $activeSlave.missingLegs, 
 $activeSlave.noun, $activeSlave.pronoun, $activeSlave.possessive, $activeSlave.possessivePronoun, $activeSlave.object, $activeSlave.objectReflexive
 $drugs, $harshCollars, $shoes, $bellyAccessories, $vaginalAccessories, $dickAccessories, $buttplugs
 $PC.origRace, $PC.origSkin
-$isReady, $fatherID,
 $servantsQuartersSpots
 $sayEnunciate, $sEnunciate, $SEnunciate, $ssEnunciate, $cEnunciate, $CEnunciate, $ccEnunciate, $zEnunciate, $ZEnunciate, $chEnunciate, $ChEnunciate, $shEnunciate, $ShEnunciate, $scEnunciate, $ScEnunciate, $schEnunciate, $SchEnunciate, $xEnunciate, $XEnunciate
 $ZEnunciate = $ZEnunciate
 $Girl
 $corpPeopleEnslaved, $slaveAssets, $slaveAssetPrice, $corpProfit, $corpValue, $sharePrice, $oldSharePrice, $generalAssetPrice, $generalAssets, $entrapmentAssets, $entrapmentAssetPrice, $captureAssets, $captureAssetPrice, $trainingAssets, $trainingAssetPrice, $surgicalAssets, $surgicalAssetPrice, $drugAssets, $drugAssetPrice
 $TradeShowMenials
+$readySlaves
 */
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 4af2015b252fc6f25d115988eed1083dccb18ab7..40e1ec1adcbaf5e7233222d861782f4f492eac55 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -15,8 +15,8 @@ You should have received a copy of the GNU General Public License along with thi
 <<set $returnTo = "init", $nextButton = "Continue", $nextLink = "Alpha disclaimer">>
 
 <<unset $releaseID>>
-<<set $ver = "0.10.7", $pmodVer = "2.1.X", $releaseID = 1041>>
-<<if ndef $pmodVer>><<set $pmodVer = "2.1.X">><</if>>
+<<set $ver = "0.10.7", $pmodVer = "2.2.X", $releaseID = 1042>>
+<<if ndef $pmodVer>><<set $pmodVer = "2.2.X">><</if>>
 
 /* This needs to be broken down into individual files that can be added to StoryInit instead. */
 
@@ -240,6 +240,7 @@ You should have received a copy of the GNU General Public License along with thi
 	<<set $useSummaryCache = true>>
 	<<set $seeExtreme = 0>>
 	<<set $seeBestiality = 0>>
+	<<set $seePee = 0>>
 	<<set $extremeUnderage = 0>>
 	<<set $seeHyperPreg = 0>>
 	<<set $seePreg = 1>>
@@ -358,6 +359,7 @@ You should have received a copy of the GNU General Public License along with thi
 	<<set $familyTesting = 0>>
 	<<set $inbreeding = 1>>
 	<<set $allowFamilyTitles = 0>>
+	<<set $surnameOrder = 0>>
 
 	/% Begin mod section: toggle whether slaves lisp. %/
 	<<set $disableLisping = 0>>
diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js
index 865c8a92f9bbfbfe63a3c97d26e883f3968b0440..b028235b359e8a38177877876cf89d1d722121fe 100644
--- a/src/js/DefaultRules.js
+++ b/src/js/DefaultRules.js
@@ -11,7 +11,7 @@ window.DefaultRules = (function() {
 
 	/** @param {App.Entity.SlaveState} slave */
 	function DefaultRules(slave) {
-		if (slave.useRulesAssistant === 0) return r; //exempted
+		if (slave.useRulesAssistant === 0) return r; // exempted
 
 		V = State.variables;
 		r = "";
@@ -23,7 +23,7 @@ window.DefaultRules = (function() {
 		if (Object.keys(rule).length === 0) return r; // no rules apply
 
 		AssignJobToSlave(slave, rule);
-		if(slave.fuckdoll === 0) {
+		if (slave.fuckdoll === 0) {
 			ProcessClothing(slave, rule);
 			ProcessCollar(slave, rule);
 			ProcessEyewear(slave, rule);
@@ -31,15 +31,18 @@ window.DefaultRules = (function() {
 			ProcessDildos(slave, rule);
 			ProcessDickAccessories(slave, rule);
 			ProcessAnalAccessories(slave, rule);
+			ProcessChastity(slave, rule);
 			ProcessShoes(slave, rule);
 			ProcessBellyAccessories(slave, rule);
 			ProcessLegAccessory(slave, rule);
 		}
 		ProcessBellyImplant(slave, rule);
-		if (isFertile(slave) || slave.pregWeek < 0)
+		if (isFertile(slave) || slave.pregWeek < 0) {
 			ProcessContraceptives(slave, rule);
-		if (slave.preg > 0 && slave.pregKnown == 1 && slave.broodmother == 0)
+		}
+		if (slave.preg > 0 && slave.pregKnown === 1 && slave.broodmother === 0) {
 			ProcessAbortions(slave, rule);
+		}
 		ProcessOtherDrugs(slave, rule);
 		ProcessAssetGrowthDrugs(slave, rule);
 		ProcessEnema(slave, rule);
@@ -49,7 +52,7 @@ window.DefaultRules = (function() {
 		ProcessPenisHormones(slave, rule);
 		ProcessFemaleHormones(slave, rule);
 		ProcessPregnancyDrugs(slave, rule);
-		if(slave.fuckdoll === 0) {
+		if (slave.fuckdoll === 0) {
 			ProcessLivingStandard(slave, rule);
 			ProcessSpeech(slave, rule);
 			ProcessRelationship(slave, rule);
@@ -60,8 +63,9 @@ window.DefaultRules = (function() {
 		ProcessToyHole(slave, rule);
 		ProcessDietCum(slave, rule);
 		ProcessDietMilk(slave, rule);
-		if (V.arcologies[0].FSHedonisticDecadenceResearch === 1)
+		if (V.arcologies[0].FSHedonisticDecadenceResearch === 1) {
 			ProcessSolidFood(slave, rule);
+		}
 		ProcessTeeth(slave, rule);
 		ProcessStyle(slave, rule);
 		ProcessPiercings(slave, rule);
@@ -76,9 +80,9 @@ window.DefaultRules = (function() {
 	/** @param {App.Entity.SlaveState} slave */
 	function MergeRules(slave) {
 		// merge all rules applying on a slave into one big rule
-		const rules = V.defaultRules.filter(x => ruleAppliesP(x.condition, slave));
-		slave.currentRules = rules.map(x => x.ID);
-		return mergeRules(rules.map(x => ProcessAssignments(slave, Object.assign({}, x.set))));
+		const rules = V.defaultRules.filter((x) => ruleAppliesP(x.condition, slave));
+		slave.currentRules = rules.map((x) => x.ID);
+		return mergeRules(rules.map((x) => ProcessAssignments(slave, Object.assign({}, x.set))));
 	}
 
 	/** @param {App.Entity.SlaveState} slave */
@@ -92,77 +96,76 @@ window.DefaultRules = (function() {
 
 			case "rest":
 			case "please you":
-			case "choose her own job":
 				// slaves always qualify for this assignment
 				break;
 
 			case "live with your Head Girl":
-				if ((V.HGSuiteSlaves < 1 && slave.indentureRestrictions <= 0))
+				if ((V.HGSuiteSlaves < 1 && slave.indentureRestrictions <= 0)) {
 					break;
-				else {
+				} else {
 					RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 					delete rule.setAssignment;
 				}
 				break;
 
 			case "be confined in the arcade":
-				if ((V.arcadeSlaves < V.arcade && slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0)))
+				if ((V.arcadeSlaves < V.arcade && slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0))) {
 					break;
-				else {
+				} else {
 					RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 					delete rule.setAssignment;
 				}
 				break;
 
 			case "serve in the master suite":
-				if ((V.masterSuiteSlaves < V.masterSuite && (slave.devotion > 20 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20))))
+				if ((V.masterSuiteSlaves < V.masterSuite && (slave.devotion > 20 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)))) {
 					break;
-				else {
+				} else {
 					RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 					delete rule.setAssignment;
 				}
 				break;
 
 			case "get treatment in the clinic":
-				if ((V.clinicSlaves < V.clinic && (slave.health < 20 || (slave.chem > 15 && V.Nurse !== 0 && V.clinicUpgradeFilters === 1)) || ((slave.bellyImplant > -1) && (V.bellyImplants === 1)) || slave.preg > 1))
+				if ((V.clinicSlaves < V.clinic && (slave.health < 20 || (slave.chem > 15 && V.Nurse !== 0 && V.clinicUpgradeFilters === 1)) || ((slave.bellyImplant > -1) && (V.bellyImplants === 1)) || slave.preg > 1)) {
 					break;
-				else {
+				} else {
 					RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 					delete rule.setAssignment;
 				}
 				break;
 
 			case "rest in the spa":
-				if ((V.spaSlaves < V.spa) && (slave.health < 20) || (slave.trust < 60) || (slave.devotion <= 60) || (slave.fetish === "mindbroken") && (slave.devotion >= -20))
+				if ((V.spaSlaves < V.spa) && (slave.health < 20) || (slave.trust < 60) || (slave.devotion <= 60) || (slave.fetish === "mindbroken") && (slave.devotion >= -20)) {
 					break;
-				else {
-					RAFacilityRemove(slave,rule); // before deleting rule.setAssignment
+				} else {
+					RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 					delete rule.setAssignment;
 				}
 				break;
 
 			case "work as a nanny":
-				if ((V.nurserySlaves < V.nursery) && !slave.fuckdoll && (slave.devotion > 20 || slave.trust > 20))
+				if ((V.nurserySlaves < V.nursery) && !slave.fuckdoll && (slave.devotion > 20 || slave.trust > 20)) {
 					break;
-				else {
+				} else {
 					RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 					delete rule.setAssignment;
 				}
 				break;
 
 			case "work in the brothel":
-				if ((V.brothelSlaves < V.brothel && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0)))
+				if ((V.brothelSlaves < V.brothel && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0))) {
 					break;
-				else {
+				} else {
 					RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 					delete rule.setAssignment;
 				}
 				break;
 
 			case "serve in the club":
-				if ((V.clubSlaves < V.club && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0)))
+				if ((V.clubSlaves < V.club && (slave.devotion > 50 || slave.trust > 50 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)) && (slave.breedingMark !== 1 || V.propOutcome === 0))) {
 					break;
-				else {
+				} else {
 					RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 					delete rule.setAssignment;
 				}
@@ -170,30 +173,30 @@ window.DefaultRules = (function() {
 
 			case "work in the dairy":
 				if ((V.dairy > V.dairySlaves+V.bioreactorsXY+V.bioreactorsXX+V.bioreactorsHerm+V.bioreactorsBarren)) {
-					if ((slave.indentureRestrictions > 0) && (V.dairyRestraintsSetting > 1))
+					if ((slave.indentureRestrictions > 0) && (V.dairyRestraintsSetting > 1)) {
 						break;
-					else if (((slave.indentureRestrictions > 1) && (V.dairyRestraintsSetting > 0)) || (slave.breedingMark === 1 && V.propOutcome === 1 && V.dairyRestriantsSettings > 0) || ((V.dairyPregSetting > 0) && ((slave.bellyImplant !== -1) || (slave.broodmother !== 0))))
+					} else if (((slave.indentureRestrictions > 1) && (V.dairyRestraintsSetting > 0)) || (slave.breedingMark === 1 && V.propOutcome === 1 && V.dairyRestriantsSettings > 0) || ((V.dairyPregSetting > 0) && ((slave.bellyImplant !== -1) || (slave.broodmother !== 0)))) {
 						break;
-					else {
+					} else {
 						if ((slave.lactation > 0 || ((V.dairySlimMaintainUpgrade === 0 || V.dairySlimMaintain === 0) && (slave.boobs > 300 || slave.dick === 0 || V.dairyImplantsSetting === 1) && V.dairyImplantsSetting !== 2)) || (slave.balls > 0)) {
 							if ((slave.devotion > 20) || ((slave.devotion >= -50) && (slave.trust < -20)) || (slave.trust < -50) || (slave.amp === 1) || (V.dairyRestraintsUpgrade === 1)) {
 								if ((V.dairyStimulatorsSetting < 2) || (slave.anus > 2) || (V.dairyPrepUpgrade === 1)) {
-									if ((V.dairyPregSetting < 2) || (slave.vagina > 2) || (slave.ovaries === 0) || (V.dairyPrepUpgrade === 1))
+									if ((V.dairyPregSetting < 2) || (slave.vagina > 2) || (slave.ovaries === 0) || (V.dairyPrepUpgrade === 1)) {
 										break;
-									else {
-										RAFacilityRemove(slave,rule); // before deleting rule.setAssignment
+									} else {
+										RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 										delete rule.setAssignment;
 									}
 								} else {
-									RAFacilityRemove(slave,rule); // before deleting rule.setAssignment
+									RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 									delete rule.setAssignment;
 								}
 							} else {
-								RAFacilityRemove(slave,rule); // before deleting rule.setAssignment
+								RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 								delete rule.setAssignment;
 							}
 						} else {
-							RAFacilityRemove(slave,rule); // before deleting rule.setAssignment
+							RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 							delete rule.setAssignment;
 						}
 					}
@@ -201,92 +204,98 @@ window.DefaultRules = (function() {
 				break;
 
 			case "work as a farmhand":
-				if ((V.farmyardSlaves < V.farmyard)) //TODO: rework these requirements
+				if ((V.farmyardSlaves < V.farmyard)) { // TODO: rework these requirements
 					break;
-				else {
+				} else {
 					RAFacilityRemove(slave, rule);
 					delete rule.setAssignment;
 				}
 				break;
 
 			case "work as a servant":
-				if ((V.servantsQuartersSlaves < V.servantsQuarters && canSee(slave) && canWalk(slave) && (slave.devotion >= -20 || slave.trust < -20 || (slave.devotion >= -50 && slave.trust <= 20))))
+				if ((V.servantsQuartersSlaves < V.servantsQuarters && canSee(slave) && canWalk(slave) && (slave.devotion >= -20 || slave.trust < -20 || (slave.devotion >= -50 && slave.trust <= 20)))) {
 					break;
-				else {
-					RAFacilityRemove(slave,rule); // before deleting rule.setAssignment
+				} else {
+					RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 					delete rule.setAssignment;
 				}
 				break;
 
 			case "learn in the schoolroom":
-				if ((V.schoolroomSlaves < V.schoolroom && slave.fetish !== "mindbroken" && (slave.devotion >= -20 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20))))
-					if ((slave.intelligenceImplant < 30) || (slave.voice !== 0 && slave.accent+V.schoolroomUpgradeLanguage > 2) || (slave.oralSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.whoreSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.entertainSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.analSkill < 10+V.schoolroomUpgradeSkills*20) || ((slave.vagina >= 0) && (slave.vaginalSkill < 10+V.schoolroomUpgradeSkills*20)))
+				if ((V.schoolroomSlaves < V.schoolroom && slave.fetish !== "mindbroken" && (slave.devotion >= -20 || slave.trust < -50 || (slave.devotion >= -50 && slave.trust < -20)))) {
+					if ((slave.intelligenceImplant < 30) || (slave.voice !== 0 && slave.accent+V.schoolroomUpgradeLanguage > 2) || (slave.oralSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.whoreSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.entertainSkill <= 10+V.schoolroomUpgradeSkills*20) || (slave.analSkill < 10+V.schoolroomUpgradeSkills*20) || ((slave.vagina >= 0) && (slave.vaginalSkill < 10+V.schoolroomUpgradeSkills*20))) {
 						break;
-					else {
-						RAFacilityRemove(slave,rule); // before deleting rule.setAssignment
+					} else {
+						RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 						delete rule.setAssignment;
 					}
-				else {
-					RAFacilityRemove(slave,rule); // before deleting rule.setAssignment
+				} else {
+					RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 					delete rule.setAssignment;
 				}
 				break;
 
 			case "be confined in the cellblock":
-				if ((V.cellblockSlaves < V.cellblock && ((slave.devotion < -20 && slave.trust >= -20) || (slave.devotion < -50 && slave.trust >= -50))))
+				if ((V.cellblockSlaves < V.cellblock && ((slave.devotion < -20 && slave.trust >= -20) || (slave.devotion < -50 && slave.trust >= -50)))) {
 					break;
-				else {
-					RAFacilityRemove(slave,rule); // before deleting rule.setAssignment
+				} else {
+					RAFacilityRemove(slave, rule); // before deleting rule.setAssignment
 					delete rule.setAssignment;
 				}
 				break;
 
 			case "take classes":
-				if (slave.intelligenceImplant < 15 && slave.fetish !== "mindbroken" && (slave.devotion >= -20 || slave.trust < -50 || (slave.trust < -20 && slave.devotion >= -50)))
+				if (slave.intelligenceImplant < 15 && slave.fetish !== "mindbroken" && (slave.devotion >= -20 || slave.trust < -50 || (slave.trust < -20 && slave.devotion >= -50))) {
 					break;
-				else
+				} else {
 					delete rule.setAssignment;
+				}
 				break;
 
 			case "choose her own job":
-				if ((slave.fetish !== "mindbroken"))
+				if ((slave.fetish !== "mindbroken")) {
 					break;
-				else
+				} else {
 					delete rule.setAssignment;
+				}
 				break;
 
 			case "get milked":
-				if ((slave.lactation > 0 || slave.balls > 0))
+				if ((slave.lactation > 0 || slave.balls > 0)) {
 					break;
-				else
+				} else {
 					delete rule.setAssignment;
+				}
 				break;
 
 			case "be a servant":
-				if ((canWalk(slave) && canSee(slave) && (slave.devotion >= -20 || slave.trust < -50 || (slave.trust < -20 && slave.devotion >= -50))))
+				if ((canWalk(slave) && canSee(slave) && (slave.devotion >= -20 || slave.trust < -50 || (slave.trust < -20 && slave.devotion >= -50)))) {
 					break;
-				else
+				} else {
 					delete rule.setAssignment;
+				}
 				break;
 
 			case "work a glory hole":
-				if (slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0))
+				if (slave.indentureRestrictions <= 0 && (slave.breedingMark !== 1 || V.propOutcome === 0)) {
 					break;
-				else
+				} else {
 					delete rule.setAssignment;
+				}
 				break;
 
 			case "whore":
 			case "serve the public":
 			case "stay confined":
-				if ((slave.fuckdoll === 0) && (slave.breedingMark !== 1 || V.propOutcome === 0))
+				if ((slave.fuckdoll === 0) && (slave.breedingMark !== 1 || V.propOutcome === 0)) {
 					break;
-				else
+				} else {
 					delete rule.setAssignment;
+				}
 				break;
 
 			default:
-				r += `<span class="red">raWidgets missing case for assignment 'V.{rule.setAssignment}'</span>.`;
+				r += "<span class=\"red\">raWidgets missing case for assignment 'V.{rule.setAssignment}'</span>.";
 				break;
 		}
 		return rule;
@@ -372,23 +381,25 @@ window.DefaultRules = (function() {
 		// apply collar to slave
 		if ((rule.collar !== undefined) && (rule.collar !== "no default setting")) {
 			if ((slave.collar !== rule.collar)) {
-				r += '<br>';
+				r += "<br>";
 				if (rule.collar === "preg biometrics" && slave.preg <= -1 && slave.ovaries === 0 && slave.mpreg === 0) {
 					slave.collar = "none";
 					r += `${slave.slaveName} cannot utilize preg biometrics. `;
 				} else if ((rule.collar === "massive dildo gag" && slave.oralSkill <= 50)) {
 					slave.collar = "none";
 					r += `${slave.slaveName} lacks the oral skill to successfully keep the massive dildo gag in ${his} throat. `;
-				} else
+				} else {
 					slave.collar = rule.collar;
-				if ((slave.collar === "none"))
+				}
+				if ((slave.collar === "none")) {
 					r += `${slave.slaveName} has been given no collar.`;
-				else if ((slave.collar === "pretty jewelry"))
+				} else if ((slave.collar === "pretty jewelry")) {
 					r += `${slave.slaveName} has been given ${slave.collar}.`;
-				else if ((["ball gag", "bell collar", "bit gag", "bowtie", "dildo gag", "massive dildo gag", "neck corset", "porcelain mask"].includes(slave.collar)))
+				} else if ((["ball gag", "bell collar", "bit gag", "bowtie", "dildo gag", "massive dildo gag", "neck corset", "porcelain mask"].includes(slave.collar))) {
 					r += `${slave.slaveName} has been given a ${slave.collar}.`;
-				else
+				} else {
 					r += `${slave.slaveName} has been given a ${slave.collar} collar.`;
+				}
 			}
 		}
 	}
@@ -547,12 +558,13 @@ window.DefaultRules = (function() {
 	/** @param {App.Entity.SlaveState} slave */
 	function ProcessDildos(slave, rule) {
 		// apply vaginal dildos to slave
-		if (slave.vagina === 0)
+		if (slave.vagina === 0) {
 			ProcessVVirginDildos(slave, rule);
-		else if ((slave.vagina > 0) && (slave.anus === 0))
+		} else if ((slave.vagina > 0) && (slave.anus === 0)) {
 			ProcessAVirginDildos(slave, rule);
-		else if (slave.vagina > 0)
+		} else if (slave.vagina > 0) {
 			ProcessNonVirginDildos(slave, rule);
+		}
 	}
 
 	/** @param {App.Entity.SlaveState} slave */
@@ -564,9 +576,9 @@ window.DefaultRules = (function() {
 				switch (slave.vaginalAccessory) {
 					case "huge dildo":
 						r += `<br>${slave.slaveName} is a virgin and has been given a `;
-						if (slave.vagina >= 2)
+						if (slave.vagina >= 2) {
 							r += `massive dildo to permanently gape ${his} cunt.`;
-						else {
+						} else {
 							r += `large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`;
 							slave.vaginalAccessory = "large dildo";
 						}
@@ -592,9 +604,9 @@ window.DefaultRules = (function() {
 							slave.vaginalAccessory = "huge dildo";
 						} else {
 							r += `<br>${slave.slaveName} is a virgin and has been given a `;
-							if (slave.vagina >= 2)
+							if (slave.vagina >= 2) {
 								r += `massive and oversized dildo to permanently gape ${his} cunt.`;
-							else {
+							} else {
 								r += `long, large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`;
 								slave.vaginalAccessory = "long, large dildo";
 							}
@@ -622,9 +634,9 @@ window.DefaultRules = (function() {
 				switch (slave.vaginalAccessory) {
 					case "huge dildo":
 						r += `<br>${slave.slaveName} is a virgin and has been given a `;
-						if (slave.vagina >= 2)
+						if (slave.vagina >= 2) {
 							r += `massive dildo to permanently gape ${his} cunt.`;
-						else {
+						} else {
 							r += `large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`;
 							slave.vaginalAccessory = "large dildo";
 						}
@@ -650,9 +662,9 @@ window.DefaultRules = (function() {
 							slave.vaginalAccessory = "huge dildo";
 						} else {
 							r += `<br>${slave.slaveName} is a virgin and has been given a `;
-							if (slave.vagina >= 2)
+							if (slave.vagina >= 2) {
 								r += `massive and oversized dildo to permanently gape ${his} cunt.`;
-							else {
+							} else {
 								r += `long, large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`;
 								slave.vaginalAccessory = "long, large dildo";
 							}
@@ -680,9 +692,9 @@ window.DefaultRules = (function() {
 				switch (slave.vaginalAccessory) {
 					case "huge dildo":
 						r += `<br>${slave.slaveName} has been given a `;
-						if (slave.vagina >= 2)
+						if (slave.vagina >= 2) {
 							r += `massive dildo to permanently gape ${his} cunt.`;
-						else {
+						} else {
 							r += `large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`;
 							slave.vaginalAccessory = "large dildo";
 						}
@@ -708,9 +720,9 @@ window.DefaultRules = (function() {
 							slave.vaginalAccessory = "huge dildo";
 						} else {
 							r += `<br>${slave.slaveName} has been given a `;
-							if (slave.vagina >= 2)
+							if (slave.vagina >= 2) {
 								r += `massive and oversized dildo to permanently gape ${his} cunt.`;
-							else {
+							} else {
 								r += `long, large dildo for ${his} pussy, since it must be stretched before it can accommodate a huge one.`;
 								slave.vaginalAccessory = "long, large dildo";
 							}
@@ -736,24 +748,65 @@ window.DefaultRules = (function() {
 				if ((rule.aVirginDickAccessory !== undefined) && (rule.aVirginDickAccessory !== "no default setting")) {
 					if ((slave.dickAccessory !== rule.aVirginDickAccessory)) {
 						slave.dickAccessory = rule.aVirginDickAccessory;
-						if (slave.dickAccessory === "none")
+						if (slave.dickAccessory === "none") {
 							r += `<br>${slave.slaveName} is a virgin and has been instructed not to wear a dick accessory.`;
-						else
+						} else {
 							r += `<br>${slave.slaveName} is a virgin and has been given a ${slave.dickAccessory} accessory for ${his} cock.`;
+						}
 					}
 				}
 			} else {
 				if ((rule.dickAccessory !== undefined) && (rule.dickAccessory !== "no default setting")) {
 					if ((slave.dickAccessory !== rule.dickAccessory)) {
 						slave.dickAccessory = rule.dickAccessory;
-						if (slave.dickAccessory === "none")
+						if (slave.dickAccessory === "none") {
 							r += `<br>${slave.slaveName} has been instructed not to wear a dick accessory.`;
-						else
+						} else {
 							r += `<br>${slave.slaveName} has been given a ${slave.dickAccessory} accessory for ${his} cock.`;
+						}
+					}
+				}
+			}
+		}
+	}
+
+	/** @param {App.Entity.SlaveState} slave */
+	function ProcessChastity(slave, rule) {
+		// apply chastity to slave
+		if ((rule.chastityVagina !== undefined) && (rule.chastityVagina !== "no default setting")) {
+			if (slave.vagina > -1) {
+				if ((slave.chastityVagina !== rule.chastityVagina)) {
+					slave.chastityVagina = rule.chastityVagina;
+					if (rule.chastityVagina === 1) {
+						r += `<br>${slave.slaveName} has been given a chastity belt to wear.`;
+					} else {
+						r += `<br>${slave.slaveName}'s vaginal chastity has been removed.`;
+					}
+				}
+			}
+		}
+		if ((rule.chastityPenis !== undefined) && (rule.chastityPenis !== "no default setting")) {
+			if (slave.dick > 0) {
+				if ((slave.chastityPenis !== rule.chastityPenis)) {
+					slave.chastityPenis = rule.chastityPenis;
+					if (rule.chastityPenis === 1) {
+						r += `<br>${slave.slaveName} has been given a chastity cage to wear.`;
+					} else {
+						r += `<br>${slave.slaveName}'s chastity cage has been removed.`;
 					}
 				}
 			}
 		}
+		if ((rule.chastityAnus !== undefined) && (rule.chastityAnus !== "no default setting")) {
+			if ((slave.chastityAnus !== rule.chastityAnus)) {
+				slave.chastityAnus = rule.chastityAnus;
+				if (rule.chastityAnus === 1) {
+					r += `<br>${slave.slaveName} has been given anal chastity to wear.`;
+				} else {
+					r += `<br>${slave.slaveName}'s anal chastity has been removed.`;
+				}
+			}
+		}
 	}
 
 	/** @param {App.Entity.SlaveState} slave */
@@ -779,10 +832,11 @@ window.DefaultRules = (function() {
 					slave.bellyAccessory = "none";
 				} else {
 					slave.bellyAccessory = rule.bellyAccessory;
-					if (slave.bellyAccessory === "none")
+					if (slave.bellyAccessory === "none") {
 						r += `<br>${slave.slaveName} has been instructed not to wear a torso accessory.`;
-					else
+					} else {
 						r += `<br>${slave.slaveName} has been given ${slave.bellyAccessory} to wear.`;
+					}
 				}
 			}
 		}
@@ -800,10 +854,11 @@ window.DefaultRules = (function() {
 	function ProcessAnalAccessories(slave, rule) {
 		// apply buttplugs and buttplug accessories to slave
 		if (slave.chastityAnus !== 1) {
-			if (slave.anus === 0)
+			if (slave.anus === 0) {
 				ProcessAnalVirginButtplugs(slave, rule);
-			else
+			} else {
 				ProcessNonVirginButtplugs(slave, rule);
+			}
 		}
 		ProcessButtplugAttachments(slave, rule);
 	}
@@ -817,9 +872,9 @@ window.DefaultRules = (function() {
 				switch (slave.buttplug) {
 					case "huge plug":
 						r += `<br>${slave.slaveName} is an anal virgin and has been given a `;
-						if ((slave.anus >= 2))
+						if ((slave.anus >= 2)) {
 							r += `massive plug to permanently gape ${his} asshole.`;
-						else {
+						} else {
 							slave.buttplug = "large plug";
 							r += `large buttplug for ${his} asshole, since it must be stretched before it can accommodate a huge one.`;
 						}
@@ -845,9 +900,9 @@ window.DefaultRules = (function() {
 							slave.buttplug = "huge plug";
 						} else {
 							r += `<br>${slave.slaveName} is an anal virgin and has been given a `;
-							if (slave.anus >= 2)
+							if (slave.anus >= 2) {
 								r += `massive and oversized plug to permanently gape ${his} asshole.`;
-							else {
+							} else {
 								r += `long, large buttplug for ${his} asshole, since it must be stretched before it can accommodate a huge one.`;
 								slave.buttplug = "long, large plug";
 							}
@@ -875,9 +930,9 @@ window.DefaultRules = (function() {
 				switch (slave.buttplug) {
 					case "huge plug":
 						r += `<br>${slave.slaveName} has been given a `;
-						if ((slave.anus >= 2))
+						if ((slave.anus >= 2)) {
 							r += `massive plug to permanently gape ${his} asshole.`;
-						else {
+						} else {
 							slave.buttplug = "large plug";
 							r += `large buttplug for ${his} asshole, since it must be stretched before it can accommodate a huge one.`;
 						}
@@ -903,9 +958,9 @@ window.DefaultRules = (function() {
 							slave.buttplug = "huge plug";
 						} else {
 							r += `<br>${slave.slaveName} has been given a `;
-							if (slave.anus >= 2)
+							if (slave.anus >= 2) {
 								r += `massive and oversized plug to permanently gape ${his} asshole.`;
-							else {
+							} else {
 								r += `long, large buttplug for ${his} asshole, since it must be stretched before it can accommodate a huge one.`;
 								slave.buttplug = "long, large plug";
 							}
@@ -928,12 +983,11 @@ window.DefaultRules = (function() {
 	function ProcessButtplugAttachments(slave, rule) {
 		// apply buttplug accessories to slaves
 		if (slave.buttplug === "none" && slave.buttplugAttachment !== "none") {
-			slave.buttplugAttachment = "none"; //clears buttplug attachments when buttplugs are removed above
+			slave.buttplugAttachment = "none"; // clears buttplug attachments when buttplugs are removed above
 		} else if ((rule.buttplugAttachment !== undefined) && (rule.buttplugAttachment !== "no default setting")) {
 			if ((slave.buttplugAttachment !== rule.buttplugAttachment)) {
 				slave.buttplugAttachment = rule.buttplugAttachment;
 				switch (slave.buttplugAttachment) {
-
 					case "none":
 						r += `<br>${slave.slaveName} has been instructed not to use an attachment for ${his} anal accessory.`;
 						break;
@@ -1006,8 +1060,9 @@ window.DefaultRules = (function() {
 				}
 			}
 		} else { // bellyDown
-			if (slave.bellyImplant < 0)
+			if (slave.bellyImplant < 0) {
 				slave.bellyImplant = 0;
+			}
 			SetBellySize(slave);
 			if (slave.devotion > 50) {
 				slave.devotion += 3;
@@ -1033,13 +1088,12 @@ window.DefaultRules = (function() {
 			}
 		}
 	}
-	
+
 	/** @param {App.Entity.SlaveState} slave */
 	function ProcessAbortions(slave, rule) {
 		if ((rule.abortion !== undefined) && (rule.abortion !== "no default setting")) {
 			if (rule.abortion === "all") {
-				
-				if (slave.preg < 4 || (slave.fetish === "mindbroken" || slave.fuckdoll != 0)) {
+				if (slave.preg < 4 || (slave.fetish === "mindbroken" || slave.fuckdoll !== 0)) {
 					r += `<br>${slave.slaveName}'s pregnancy has been terminated.`;
 				} else {
 					r += `<br>${slave.slaveName}'s pregnancy has been terminated; `;
@@ -1054,7 +1108,7 @@ window.DefaultRules = (function() {
 						slave.trust -= 10, slave.devotion -= 10;
 					} else if (slave.fetish === "pregnancy") {
 						r += `${he} did not handle it well.`;
-						var fetishModifier = (slave.fetishStrength / 2);
+						let fetishModifier = (slave.fetishStrength / 2);
 						slave.devotion -= (1 * fetishModifier), (slave.trust -= 1 * fetishModifier);
 					} else if (slave.devotion <= 20) {
 						r += `${he} did not handle it well.`;
@@ -1063,20 +1117,26 @@ window.DefaultRules = (function() {
 						r += `${he} did not handle it well.`;
 						slave.trust -= 10;
 					} else {
-						r += `it had little mental effect.`;
+						r += "it had little mental effect.";
 					}
 				}
 
-				if (lastPregRule(slave, V.defaultRules)) { slave.preg = -1; } else { slave.preg = 0; }
-				if (slave.abortionTat > -1) { slave.abortionTat++, cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave); }
+				if (lastPregRule(slave, V.defaultRules)) {
+					slave.preg = -1;
+				} else {
+					slave.preg = 0;
+				}
+				if (slave.abortionTat > -1) {
+					slave.abortionTat++, cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave);
+				}
 				V.reservedChildren = FetusGlobalReserveCount("incubator");
 				V.reservedChildrenNursery = FetusGlobalReserveCount("nursery");
 				slave.pregType = 0, slave.pregSource = 0, slave.pregKnown = 0, slave.pregWeek = -2;
 				WombFlush(slave);
 			} else if (rule.abortion === "male") {
 				if (slave.preg < 4) {
-					var WL = slave.womb.length;
-					for (var index = 0; index < WL; index++) {
+					let WL = slave.womb.length;
+					for (let index = 0; index < WL; index++) {
 						if (slave.womb[index].genetics.gender === "XY") {
 							WombRemoveFetus(slave, index);
 							index--;
@@ -1091,8 +1151,8 @@ window.DefaultRules = (function() {
 				}
 			} else if (rule.abortion === "female") {
 				if (slave.preg < 4) {
-					var WL = slave.womb.length;
-					for (var index = 0; index < WL; index++) {
+					let WL = slave.womb.length;
+					for (let index = 0; index < WL; index++) {
 						if (slave.womb[index].genetics.gender === "XX") {
 							WombRemoveFetus(slave, index);
 							index--;
@@ -1102,7 +1162,6 @@ window.DefaultRules = (function() {
 					if (WL === 0) {
 						slave.pregType = 0, slave.pregSource = 0, slave.pregKnown = 0, slave.pregWeek = -2;
 						WombFlush(slave);
-						
 					}
 					r += `<br>${slave.slaveName}'s female fetuses have been terminated.`;
 				}
@@ -1114,7 +1173,7 @@ window.DefaultRules = (function() {
 	/** @param {App.Entity.SlaveState} slave */
 	function ProcessAssetGrowthDrugs(slave, rule) {
 		// Asset Growth
-		const growth_drugs = new Set(["breast injections", "breast redistributors", "butt injections", "butt redistributors", "hyper breast injections", "hyper butt injections", "hyper penis enhancement", "hyper testicle enhancement", "intensive breast injections", "intensive butt injections", "intensive penis enhancement", "intensive testicle enhancement", "lip atrophiers", "lip injections", "penis atrophiers", "penis enhancement", "testicle atrophiers", "testicle enhancement"]);
+		const growthDrugs = new Set(["breast injections", "breast redistributors", "butt injections", "butt redistributors", "hyper breast injections", "hyper butt injections", "hyper penis enhancement", "hyper testicle enhancement", "intensive breast injections", "intensive butt injections", "intensive penis enhancement", "intensive testicle enhancement", "lip atrophiers", "lip injections", "penis atrophiers", "penis enhancement", "testicle atrophiers", "testicle enhancement"]);
 		if ((slave.drugs === "super fertility drugs" || slave.drugs === "fertility drugs") && isFertile(slave)) {
 			r += `<br>${slave.slaveName} is on ${slave.drugs} and will not be considered for drug enhancement until that regime is complete.`;
 			return;
@@ -1131,7 +1190,7 @@ window.DefaultRules = (function() {
 				} else if ((slave.boobs > parseInt(rule.growth_boobs)+200) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch === 1)) {
 					_priority = {
 						drug: "breast redistributors",
-						weight: (1+((slave.boobs-slave.boobsImplant-slave.boobsMilk-rule.growth_boobs)/rule.growth_boobs)) };
+						weight: (1+((slave.boobs-slave.boobsImplant-slave.boobsMilk-rule.growth_boobs)/rule.growth_boobs))};
 					_priorities.push(_priority);
 				}
 			}
@@ -1143,7 +1202,7 @@ window.DefaultRules = (function() {
 				} else if ((Math.trunc(slave.butt) > rule.growth_butt) && slave.weight < 100 && (V.arcologies[0].FSSlimnessEnthusiastResearch === 1)) {
 					_priority = {
 						drug: "butt redistributors",
-						weight: (1+((slave.butt-slave.buttImplant-rule.growth_butt)/rule.growth_butt)) };
+						weight: (1+((slave.butt-slave.buttImplant-rule.growth_butt)/rule.growth_butt))};
 					_priorities.push(_priority);
 				}
 			}
@@ -1184,12 +1243,14 @@ window.DefaultRules = (function() {
 				}
 			}
 			if (_priorities.length > 1) {
-				_priorities = _priorities.sort(function(a, b){if(a.weight > b.weight) return -1; if(a.weight < b.weight) return 1; return 0;});
+				_priorities = _priorities.sort(function(a, b) {
+					if (a.weight > b.weight) return -1; if (a.weight < b.weight) return 1; return 0;
+				});
 				if (slave.drugs !== _priorities[0].drug) {
 					slave.drugs = _priorities[0].drug;
 					r += `<br>${slave.slaveName} has been put on `;
 					if (rule.growth_intensity && slave.drugs !== "lip injections" && slave.health > 0) {
-						slave.drugs = "intensive " + slave.drugs;
+						slave.drugs = `intensive ${ slave.drugs}`;
 						r += `${slave.drugs}, since ${he}'s healthy enough to take them, and `;
 					} else {
 						r += `${slave.drugs}, since `;
@@ -1205,14 +1266,15 @@ window.DefaultRules = (function() {
 					slave.drugs = _priorities[0].drug;
 					r += `<br>${slave.slaveName} has been put on `;
 					if (rule.growth_intensity && slave.drugs !== "lip injections" && slave.health > 0) {
-						slave.drugs = "intensive " + slave.drugs;
+						slave.drugs = `intensive ${ slave.drugs}`;
 						r += `${slave.drugs}, since ${he}'s healthy enough to take them, and `;
-					} else
+					} else {
 						r += `${slave.drugs}, since `;
+					}
 					r += `that is the only part of ${his} body that does not meet the targeted size.`;
 				}
 				return;
-			} else if (growth_drugs.has(slave.drugs)) {
+			} else if (growthDrugs.has(slave.drugs)) {
 				slave.drugs = "no drugs";
 				r += `<br>${slave.slaveName}'s body has met all relevant growth targets, so ${his} pharmaceutical regime has been ended.`;
 				return;
@@ -1310,7 +1372,7 @@ window.DefaultRules = (function() {
 					}
 				}
 			}
-			if (growth_drugs.has(slave.drugs)) {
+			if (growthDrugs.has(slave.drugs)) {
 				slave.drugs = "no drugs";
 				r += `<br>${slave.slaveName} has met all relevant growth targets, so ${his} pharmaceutical regime has been ended.`;
 				return;
@@ -1324,143 +1386,158 @@ window.DefaultRules = (function() {
 		if (slave.indentureRestrictions < 2 && rule.drug !== "no default setting" && slave.drugs !== rule.drug) {
 			let flag = true;
 			switch (rule.drug) {
-			case "anti-aging cream":
-				if (slave.visualAge < 18)
-					flag = false;
-				break;
-
-			case "growth stimulants":
-				if (!(slave.height < 274 && slave.height < Math.clamp((Height.mean(slave) * 1.25),0,274)))
-					flag = false;
-				break;
-
-			case "sag-B-gone":
-				if (!(slave.boobs > 250 && slave.boobShape !== "saggy"))
-					flag = false;
-				break;
+				case "anti-aging cream":
+					if (slave.visualAge < 18) {
+						flag = false;
+					}
+					break;
 
-			case "female hormone injections":
-				if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && (slave.ovaries === 1 || slave.mpreg === 1) && slave.pubertyXX === 0))
-					flag = false;
-				break;
+				case "growth stimulants":
+					if (!(slave.height < 274 && slave.height < Math.clamp((Height.mean(slave) * 1.25), 0, 274))) {
+						flag = false;
+					}
+					break;
 
-			case "male hormone injections":
-				if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && slave.balls > 0 && slave.pubertyXY === 0))
-					flag = false;
-				break;
+				case "sag-B-gone":
+					if (!(slave.boobs > 250 && slave.boobShape !== "saggy")) {
+						flag = false;
+					}
+					break;
 
-			case "psychosuppressants":
-				if (!(slave.intelligence > -100 && slave.indentureRestrictions < 1))
-					flag = false;
-				break;
+				case "female hormone injections":
+					if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && (slave.ovaries === 1 || slave.mpreg === 1) && slave.pubertyXX === 0)) {
+						flag = false;
+					}
+					break;
 
-			case "breast injections":
-				if (!(slave.boobs < 48000))
-					flag = false;
-				break;
+				case "male hormone injections":
+					if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && slave.balls > 0 && slave.pubertyXY === 0)) {
+						flag = false;
+					}
+					break;
 
-			case "hyper breast injections":
-				if (!(slave.boobs < 48000))
-					flag = false;
-				break;
+				case "psychosuppressants":
+					if (!(slave.intelligence > -100 && slave.indentureRestrictions < 1)) {
+						flag = false;
+					}
+					break;
 
-			case "breast redistributors":
-				if (!(slave.boobs - slave.boobsImplant > 100))
-					flag = false;
-				break;
+				case "breast injections":
+					if (!(slave.boobs < 48000)) {
+						flag = false;
+					}
+					break;
 
-			case "butt injections":
-				if (!(slave.butt < 9))
-					flag = false;
-				break;
+				case "hyper breast injections":
+					if (!(slave.boobs < 48000)) {
+						flag = false;
+					}
+					break;
 
-			case "hyper butt injections":
-				if (!(slave.butt < 20))
-					flag = false;
-				break;
+				case "breast redistributors":
+					if (!(slave.boobs - slave.boobsImplant > 100)) {
+						flag = false;
+					}
+					break;
 
-			case "nipple atrophiers":
-				if (!(["cute", "huge", "puffy"].includes(slave.nipples)))
-					flag = false;
-				break;
+				case "butt injections":
+					if (!(slave.butt < 9)) {
+						flag = false;
+					}
+					break;
 
-			case "butt redistributors":
-				if (!(slave.buttImplant > 0))
-					flag = false;
-				break;
+				case "hyper butt injections":
+					if (!(slave.butt < 20)) {
+						flag = false;
+					}
+					break;
 
-			case "lip injections":
-				if (!(slave.lips <= 95 || (slave.lips <= 85 && V.seeExtreme !== 1)))
-					flag = false;
-				break;
+				case "nipple atrophiers":
+					if (!(["cute", "huge", "puffy"].includes(slave.nipples))) {
+						flag = false;
+					}
+					break;
 
-			case "lip atrophiers":
-				if (!(slave.lips - slave.lipsImplant > 0))
-					flag = false;
-				break;
+				case "butt redistributors":
+					if (!(slave.buttImplant > 0)) {
+						flag = false;
+					}
+					break;
 
-			case "super fertility drugs":
-				if (!(slave.indentureRestrictions < 1 && (slave.breedingMark !== 1 || V.propOutcome === 0)))
-					flag = false;
-				break;
+				case "lip injections":
+					if (!(slave.lips <= 95 || (slave.lips <= 85 && V.seeExtreme !== 1))) {
+						flag = false;
+					}
+					break;
 
-			case "penis enhancement":
-				if (!((slave.dick > 0 && slave.dick < 10) || slave.clit < 5))
-					flag = false;
-				break;
+				case "lip atrophiers":
+					if (!(slave.lips - slave.lipsImplant > 0)) {
+						flag = false;
+					}
+					break;
 
-			case "hyper penis enhancement":
-				if (!((slave.dick > 0 && slave.dick < 31) || slave.clit < 5))
-					flag = false;
-				break;
+				case "super fertility drugs":
+					if (!(slave.indentureRestrictions < 1 && (slave.breedingMark !== 1 || V.propOutcome === 0))) {
+						flag = false;
+					}
+					break;
 
-			case "penis atrophiers":
-				if (!(slave.dick > 1))
-					flag = false;
-				break;
+				case "penis enhancement":
+					if (!((slave.dick > 0 && slave.dick < 10) || slave.clit < 5)) {
+						flag = false;
+					}
+					break;
 
-			case "testicle enhancement":
-				if (!(slave.balls > 0))
-					flag = false;
-				break;
+				case "hyper penis enhancement":
+					if (!((slave.dick > 0 && slave.dick < 31) || slave.clit < 5)) {
+						flag = false;
+					}
+					break;
 
-			case "hyper testicle enhancement":
-				if (!(slave.balls > 0))
-					flag = false;
-				break;
+				case "penis atrophiers":
+					if (!(slave.dick > 1)) {
+						flag = false;
+					}
+					break;
 
-			case "testicle atrophiers":
-				if (!(slave.balls > 1))
-					flag = false;
-				break;
+				case "testicle enhancement":
+					if (!(slave.balls > 0)) {
+						flag = false;
+					}
+					break;
 
-			case "clitoris atrophiers":
-				if (!(slave.clit > 0))
-					flag = false;
-				break;
+				case "hyper testicle enhancement":
+					if (!(slave.balls > 0)) {
+						flag = false;
+					}
+					break;
 
-			case "labia atrophiers":
-				if (!(slave.labia > 0))
-					flag = false;
-				break;
+				case "testicle atrophiers":
+					if (!(slave.balls > 1)) {
+						flag = false;
+					}
+					break;
 
-			case "appetite suppressors":
-				if (!(slave.weight <= -95))
-					flag = false;
-				break;
+				case "clitoris atrophiers":
+					if (!(slave.clit > 0)) {
+						flag = false;
+					}
+					break;
 
-			case "female hormone injections":
-				if (!((slave.breedingMark !== 1 || V.propOutcome === 0) && (slave.ovaries === 1 || slave.mpreg === 1) && slave.pubertyXX === 0))
-					flag = false;
-				break;
+				case "labia atrophiers":
+					if (!(slave.labia > 0)) {
+						flag = false;
+					}
+					break;
 
-			case "male hormone injections":
-				if (!(slave.balls > 0 && slave.pubertyXY === 0))
-					flag = false;
-				break;
+				case "appetite suppressors":
+					if (!(slave.weight <= -95)) {
+						flag = false;
+					}
+					break;
 
-			default:
-				break;
+				default:
+					break;
 			}
 			if (flag) {
 				slave.drugs = rule.drug;
@@ -1543,7 +1620,6 @@ window.DefaultRules = (function() {
 							slave.diet = "restricted";
 							r += `<br>${slave.slaveName} is too fat so ${his} diet has been set to restricted.`;
 						}
-
 					} else if ((slave.weight - rule.diet) < -5) {
 						if ((slave.diet !== "fattening")) {
 							slave.diet = "fattening";
@@ -1634,7 +1710,7 @@ window.DefaultRules = (function() {
 						r += `<br>${slave.slaveName} has been put on a diet of cleansers.`;
 					}
 				} else if ((rule.diet === "fertility")) {
-					if (isFertile(slave) && slave.preg == 0) {
+					if (isFertile(slave) && slave.preg === 0) {
 						if ((slave.diet !== "fertility")) {
 							slave.diet = "fertility";
 							r += `<br>${slave.slaveName} has been put on a diet to enhance fertility.`;
@@ -1707,7 +1783,7 @@ window.DefaultRules = (function() {
 						slave.curatives = rule.curatives;
 					}
 				} else {
-					r += `<br>${slave.slaveName} has been ${rule.curatives > 0 ? `put on preventatives` : `taken off health drugs`}`;
+					r += `<br>${slave.slaveName} has been ${rule.curatives > 0 ? "put on preventatives" : "taken off health drugs"}`;
 					slave.curatives = rule.curatives;
 				}
 			}
@@ -1718,7 +1794,7 @@ window.DefaultRules = (function() {
 	function ProcessAphrodisiacs(slave, rule) {
 		if ((rule.aphrodisiacs !== undefined) && (rule.aphrodisiacs !== "no default setting")) {
 			if (slave.aphrodisiacs !== rule.aphrodisiacs) {
-				r += `<br>${slave.slaveName} has been ${rule.aphrodisiacs > 0 ? `put on the proper` : `taken off`} aphrodisiacs.`;
+				r += `<br>${slave.slaveName} has been ${rule.aphrodisiacs > 0 ? "put on the proper" : "taken off"} aphrodisiacs.`;
 				slave.aphrodisiacs = rule.aphrodisiacs;
 			}
 		}
@@ -1810,7 +1886,7 @@ window.DefaultRules = (function() {
 	function ProcessLivingStandard(slave, rule) {
 		if ((rule.livingRules !== undefined) && (rule.livingRules !== "no default setting")) {
 			if (setup.facilityCareers.includes(slave.assignment)) {
-				r += ``; // `<br>${slave.slaveName}'s living standards are controlled by ${his} assignment.`;
+				r += ""; // `<br>${slave.slaveName}'s living standards are controlled by ${his} assignment.`;
 			} else if (((slave.assignment === "be your Head Girl") && (V.HGSuite === 1)) || ((slave.assignment === "guard you") && (V.dojo > 1))) {
 				r += `<br>${slave.slaveName} has a private room.`;
 			} else if ((slave.fetish === "mindbroken")) {
@@ -1823,10 +1899,11 @@ window.DefaultRules = (function() {
 					if (V.roomsPopulation <= V.rooms-0.5) {
 						slave.livingRules = rule.livingRules;
 						r += `<br>${slave.slaveName}'s living standard has been set to ${rule.livingRules}.`;
-						if (slave.relationship >= 4)
+						if (slave.relationship >= 4) {
 							V.roomsPopulation += 0.5;
-						else
+						} else {
 							V.roomsPopulation += 1;
+						}
 					} else {
 						slave.livingRules = "normal";
 						r += `<br>${slave.slaveName}'s living standard has been set to normal, since there is no room for ${him} to occupy.`;
@@ -1875,7 +1952,7 @@ window.DefaultRules = (function() {
 		if ((slave.fetish !== "mindbroken")) {
 			if ((rule.relationshipRules !== undefined) && (rule.relationshipRules !== "no default setting")) {
 				if ((slave.relationshipRules !== rule.relationshipRules )) {
-					slave.relationshipRules = rule.relationshipRules ;
+					slave.relationshipRules = rule.relationshipRules;
 					r += `<br>${slave.slaveName}'s relationship rules have been set to ${rule.relationshipRules}.`;
 				}
 			}
@@ -1887,10 +1964,11 @@ window.DefaultRules = (function() {
 		if ((rule.releaseRules !== undefined) && (rule.releaseRules !== "no default setting")) {
 			let _release = 0;
 			if (rule.releaseRules === "restrictive" &&
-				!(["be a subordinate slave", "be confined in the arcade", "be your Head Girl", "get milked", "please you", "serve in the club", "serve in the master suite", "serve the public", "whore", "work a glory hole", "work as a farmhand", "work in the brothel", "work in the dairy"].contains(slave.assignment)))
+				!(["be a subordinate slave", "be confined in the arcade", "be your Head Girl", "get milked", "please you", "serve in the club", "serve in the master suite", "serve the public", "whore", "work a glory hole", "work as a farmhand", "work in the brothel", "work in the dairy"].contains(slave.assignment))) {
 				_release = 1;
-			else
+			} else {
 				_release = 1;
+			}
 			if ((slave.fetish === "mindbroken") && (slave.releaseRules !== "permissive")) {
 				slave.releaseRules = "permissive";
 				r += `<br>Since ${slave.slaveName} is mindbroken, ${his} masturbation rules have been set to permissive.`;
@@ -1908,7 +1986,7 @@ window.DefaultRules = (function() {
 	function ProcessPunishment(slave, rule) {
 		if ((rule.standardPunishment !== undefined) && (rule.standardPunishment !== "no default setting")) {
 			if ((slave.standardPunishment !== rule.standardPunishment)) {
-				slave.standardPunishment = rule.standardPunishment ;
+				slave.standardPunishment = rule.standardPunishment;
 				r += `<br>${slave.slaveName}'s typical punishment has been updated to ${rule.standardPunishment}.`;
 			}
 		}
@@ -1918,7 +1996,7 @@ window.DefaultRules = (function() {
 	function ProcessReward(slave, rule) {
 		if ((rule.standardReward !== undefined) && (rule.standardReward !== "no default setting")) {
 			if ((slave.standardReward !== rule.standardReward)) {
-				slave.standardReward = rule.standardReward ;
+				slave.standardReward = rule.standardReward;
 				r += `<br>${slave.slaveName}'s typical reward has been updated to ${rule.standardReward}.`;
 			}
 		}
@@ -1929,30 +2007,30 @@ window.DefaultRules = (function() {
 		if ((rule.toyHole !== undefined) && (rule.toyHole !== "no default setting")) {
 			if (rule.toyHole === "pussy") {
 				if (slave.vagina > 0 && canDoVaginal(slave)) {
-					slave.toyHole = rule.toyHole ;
+					slave.toyHole = rule.toyHole;
 					r += `<br>${slave.slaveName} has been instructed to use ${his} ${rule.toyHole} to please you.`;
 				} else if (slave.toyHole !== "all her holes") {
-					slave.toyHole = "all her holes" ;
+					slave.toyHole = "all her holes";
 					r += `<br>${slave.slaveName}'s hole preference has defaulted to all ${his} holes.`;
 				}
 			} else if (rule.toyHole === "ass") {
 				if (slave.anus > 0 && canDoAnal(slave)) {
-					slave.toyHole = rule.toyHole ;
+					slave.toyHole = rule.toyHole;
 					r += `<br>${slave.slaveName} has been instructed to use ${his} ${rule.toyHole} to please you.`;
 				} else if (slave.toyHole !== "all her holes") {
-					slave.toyHole = "all her holes" ;
+					slave.toyHole = "all her holes";
 					r += `<br>${slave.slaveName}'s hole preference has defaulted to all ${his} holes.`;
 				}
 			} else if (rule.toyHole === "dick") {
 				if (slave.dick > 0 && canPenetrate(slave)) {
-					slave.toyHole = rule.toyHole ;
+					slave.toyHole = rule.toyHole;
 					r += `<br>${slave.slaveName} has been instructed to use ${his} ${rule.toyHole} to please you.`;
 				} else if (slave.toyHole !== "all her holes") {
-					slave.toyHole = "all her holes" ;
+					slave.toyHole = "all her holes";
 					r += `<br>${slave.slaveName}'s hole preference has defaulted to all ${his} holes.`;
 				}
 			} else if ((slave.toyHole !== rule.toyHole)) {
-				slave.toyHole = rule.toyHole ;
+				slave.toyHole = rule.toyHole;
 				r += `<br>${slave.slaveName} has been instructed to use ${his} ${rule.toyHole} to please you.`;
 			}
 		}
@@ -1967,10 +2045,11 @@ window.DefaultRules = (function() {
 					r += `<br>${slave.slaveName} has been put on a diet based on cum.`;
 					slave.dietMilk = 0;
 				}
-				if (slave.dietCum === 1)
+				if (slave.dietCum === 1) {
 					r += `<br>${slave.slaveName} has had cum added to ${his} diet.`;
-				else
+				} else {
 					r += `<br>${slave.slaveName} has had cum removed from ${his} diet.`;
+				}
 			}
 		}
 	}
@@ -1984,10 +2063,11 @@ window.DefaultRules = (function() {
 					r += `<br>${slave.slaveName} has been put on a diet based on human milk.`;
 					slave.dietCum = 0;
 				}
-				if (slave.dietMilk === 1)
+				if (slave.dietMilk === 1) {
 					r += `<br>${slave.slaveName} has had human milk added to ${his} diet.`;
-				else
+				} else {
 					r += `<br>${slave.slaveName} has had human milk removed from ${his} diet.`;
+				}
 			}
 		}
 	}
@@ -1996,11 +2076,12 @@ window.DefaultRules = (function() {
 	function ProcessSolidFood(slave, rule) {
 		if ((rule.onDiet !== undefined) && (rule.onDiet !== "no default setting")) {
 			if ((slave.onDiet !== rule.onDiet)) {
-				slave.onDiet = rule.onDiet ;
-				if (slave.onDiet === 1)
+				slave.onDiet = rule.onDiet;
+				if (slave.onDiet === 1) {
 					r += `<br>${slave.slaveName} is not permitted to eat the solid slave food.`;
-				else
+				} else {
 					r += `<br>${slave.slaveName} is permitted to eat the solid slave food.`;
+				}
 			}
 		}
 	}
@@ -2093,8 +2174,9 @@ window.DefaultRules = (function() {
 					if ((rule.hStyle === "shaved")) {
 						slave.hLength = 0;
 						r += `<br>${slave.slaveName}'s hair has been shaved.`;
-					} else
+					} else {
 						r += `<br>${slave.slaveName}'s hair has been restyled.`;
+					}
 				}
 			}
 		}
@@ -2109,8 +2191,8 @@ window.DefaultRules = (function() {
 						cashX(forceNeg(V.modCost*Math.trunc((rule.hLength-slave.hLength)/10)), "slaveMod");
 						r += `<br>${slave.slaveName} has been given extensions; ${his} hair `;
 					}
-				r += `is now ${lengthToEitherUnit(rule.hLength)} long.`;
-				slave.hLength = rule.hLength;
+					r += `is now ${lengthToEitherUnit(rule.hLength)} long.`;
+					slave.hLength = rule.hLength;
 				}
 			}
 		}
@@ -2228,10 +2310,10 @@ window.DefaultRules = (function() {
 		}
 
 		if (rule.markings !== undefined && (rule.markings !== "no default setting")) {
-			if (slave.markings == "beauty mark" && (rule.markings == "remove beauty marks" || rule.markings == "remove both")) {
+			if (slave.markings === "beauty mark" && (rule.markings === "remove beauty marks" || rule.markings === "remove both")) {
 				r += `<br>${slave.slaveName}'s beauty mark has been removed.`;
 			}
-			if (slave.markings == "birthmark" && (rule.markings == "remove birthmarks" || rule.markings == "remove both")) {
+			if (slave.markings === "birthmark" && (rule.markings === "remove birthmarks" || rule.markings === "remove both")) {
 				r += `<br>${slave.slaveName}'s birthmark has been bleached away.`;
 			}
 			slave.markings = "none";
@@ -2247,8 +2329,6 @@ window.DefaultRules = (function() {
 				r += `<br>${slave.slaveName}'s skin color has been set to ${rule.skinColor}.`;
 			}
 		}
-
-
 	}
 
 	function ProcessPiercings(slave, rule) {
@@ -2284,22 +2364,24 @@ window.DefaultRules = (function() {
 			if ((slave.clitPiercing !== rule.clitPiercing)) {
 				if ((rule.clitPiercing === 0)) {
 					slave.clitPiercing = 0;
-					if (slave.dick > 0)
+					if (slave.dick > 0) {
 						r += `<br>${slave.slaveName}'s frenulum piercing has been removed.`;
-					else
+					} else {
 						r += `<br>${slave.slaveName}'s clit piercing has been removed.`;
-
+					}
 				} else if ((slave.vagina !== -1) || (slave.dick !== 0)) {
 					slave.clitPiercing = rule.clitPiercing;
-					if (slave.dick > 0)
+					if (slave.dick > 0) {
 						r += `<br>${slave.slaveName}'s frenulum has been pierced.`;
-					else
+					} else {
 						r += `<br>${slave.slaveName}'s clit has been pierced.`;
+					}
 
-					if (rule.clitPiercing === 3)
+					if (rule.clitPiercing === 3) {
 						cashX(-1000, "slaveMod");
-					else
+					} else {
 						cashX(forceNeg(V.modCost), "slaveMod", slave);
+					}
 				}
 			}
 		}
@@ -2602,11 +2684,12 @@ window.DefaultRules = (function() {
 				if ((slave.health > -20)) {
 					slave.brand = V.brandDesign;
 					slave.brandLocation = V.brandTarget;
-					if ((slave.devotion < 18))
+					if ((slave.devotion < 18)) {
 						slave.devotion -= 5;
+					}
 					slave.trust -= 5;
 					slave.health -= 10;
-					r += `<br>${slave.slaveName} has been branded, with <span class="gold">fear</span>${slave.devotion < 18? `, <span class="mediumorchid">regard,</span>`:``} and <span class="red">health</span> consequences.`;
+					r += `<br>${slave.slaveName} has been branded, with <span class="gold">fear</span>${slave.devotion < 18? ", <span class=\"mediumorchid\">regard,</span>":""} and <span class="red">health</span> consequences.`;
 				}
 			}
 		}
@@ -2622,7 +2705,9 @@ window.DefaultRules = (function() {
 		}
 		slave.pornFeed = rule.pornFeed;
 		let yesno = slave.pornFeed ? "are now" : "are no longer";
-		if (slave.pornFeed === 0) { slave.pornFameSpending = 0;}
+		if (slave.pornFeed === 0) {
+			slave.pornFameSpending = 0;
+		}
 		r += `<br>Highlights of ${slave.slaveName}'s sex life ${yesno} being released.`;
 	}
 
@@ -2639,13 +2724,13 @@ window.DefaultRules = (function() {
 
 	/** @param {App.Entity.SlaveState} slave */
 	function ProcessLabel(slave, rule) {
-		if (rule.label !== "no default setting" && !slave.customLabel.includes("["+rule.label+"]")) {
-			slave.customLabel = slave.customLabel + "[" + rule.label + "]";
+		if (rule.label !== "no default setting" && !slave.customLabel.includes(`[${rule.label}]`)) {
+			slave.customLabel = `${slave.customLabel }[${ rule.label }]`;
 			r += `<br>${slave.slaveName} has been tagged as ${rule.label}`;
 		}
 
-		if (rule.removeLabel !== "no default setting" && slave.customLabel.includes("["+rule.removeLabel+"]")) {
-			slave.customLabel = slave.customLabel.replace("["+rule.removeLabel+"]", "");
+		if (rule.removeLabel !== "no default setting" && slave.customLabel.includes(`[${rule.removeLabel}]`)) {
+			slave.customLabel = slave.customLabel.replace(`[${rule.removeLabel}]`, "");
 			r += `<br>${slave.slaveName}'s tag [${rule.removeLabel}] is removed.`;
 		}
 	}
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 5dc8c25d9551a4110ed785c4d8267d2df3ee0171..66d695a22bbd505e09c8c27c816e6cbbdc1f3b68 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -333,6 +333,12 @@ App.Entity.SlaveState = class SlaveState {
 		/**kemonomimi ear color
 		* "hairless" */
 		this.earTColor = "hairless";
+		/** sense of smell
+		0 - yes, -1 - no */
+		this.smells = 0;
+		/** sense of taste
+		0 - yes, -1 - no */
+		this.tastes = 0;
 		/**horn type if any
 		 * "none", "curved succubus horns", "backswept horns", "cow horns", "one long oni horn", "two long oni horns", "small horns" */
 		this.horn = "none";
@@ -1818,9 +1824,8 @@ App.Entity.SlaveState = class SlaveState {
 		/**
 		 * holds the custom slave image file name (used	if images are enabled)
 		 *
-		 * 0: no custom image
-		 * @type {string|number} */
-		this.customImage = 0;
+		 * @type {string} */
+		this.customImage = "";
 		/** @type {number[]} */
 		this.currentRules = [];
 		/**
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index bd1d51ccd56fb21a11cc072d5745e2bafb1dfb28..12ac7c19a225dc6b08daa5ef6080187776e19189 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -224,6 +224,10 @@ window.inferiorRaceP = /** @param {App.Entity.SlaveState} slave */ function infe
 	return State.variables.arcologies[0].FSSubjugationistRace === slave.race;
 };
 
+window.hasVisibleHeterochromia = /** @param {App.Entity.SlaveState} slave */ function hasVisibleHeterochromia(slave) {
+	return slave.geneticQuirks.heterochromia !== 0 && slave.geneticQuirks.heterochromia !== 1 && slave.geneticQuirks.albinism !== 2 && slave.geneticQuirks.heterochromia !== slave.eyeColor && slave.eyeColor === slave.origEye;
+}
+
 window.isLeaderP = /** @param {App.Entity.SlaveState} slave */ function isLeaderP(slave) {
 	const V = State.variables;
 	/** @type {App.Entity.SlaveState[]}*/
@@ -386,6 +390,88 @@ window.newSlave = /** @param {App.Entity.SlaveState} slave */ function newSlave(
 	}
 };
 
+window.newChild = /** @param {App.Entity.SlaveState} slave */ function newChild(child) {
+	const V = State.variables;
+
+	child.age = 0; /* not sure if this is the correct way to do this or if more is required */
+	child.birthWeek = 0; /* Child comes out at 0,0. That's all that's needed. The specifics are defined later.*/
+
+	if (child.override_Eye_Color !== 1) {
+		switch (child.eyeColor) {
+			case "blind blue":
+				child.origEye = "deep blue";
+				break;
+			case "milky white":
+			case "implant":
+				child.origEye = jsEither(["blue", "brown", "dark blue", "dark green", "green", "hazel", "light blue", "light green"]);
+				break;
+			default:
+				child.origEye = child.eyeColor;
+				break;
+		}
+	}
+
+	if (child.override_Race !== 1) {
+		child.origRace = child.race;
+	}
+	if (child.override_H_Color !== 1) {
+		child.origHColor = child.hColor;
+	}
+	if (child.override_Arm_H_Color !== 1) {
+		child.underArmHColor = child.hColor;
+	}
+	if (child.override_Pubic_H_Color !== 1) {
+		child.pubicHColor = child.hColor;
+	}
+	if (child.override_Brow_H_Color !== 1) {
+		child.eyebrowHColor = child.hColor;
+	}
+	if (child.override_Skin !== 1) {
+		child.origSkin = child.skin;
+	}
+
+	child.override_Race = 0;
+	child.override_H_Color = 0;
+	child.override_Arm_H_Color = 0;
+	child.override_Pubic_H_Color = 0;
+	child.override_Brow_H_Color = 0;
+	child.override_Skin = 0;
+	child.override_Eye_Color = 0;
+
+	if (V.surnamesForbidden === 1) {
+		child.childSurname = 0;
+	}
+
+	if (child.clone !== 0) {
+		child.canRecruit = 0;
+	}
+
+	if (child.fuckdoll > 0) {
+		child.pronoun = "it";
+		child.possessivePronoun = "its";
+		child.possessive = "its";
+		child.object = "it";
+		child.objectReflexive = "itself";
+		child.noun = "toy";
+	} else if (child.dick > 0 && child.vagina === -1 && V.diversePronouns === 1) {
+		child.pronoun = "he";
+		child.possessivePronoun = "his";
+		child.possessive = "his";
+		child.object = "him";
+		child.objectReflexive = "himself";
+		child.noun = "boy";
+	} else {
+		child.pronoun = "she";
+		child.possessivePronoun = "hers";
+		child.possessive = "her";
+		child.object = "her";
+		child.objectReflexive = "herself";
+		child.noun = "girl";
+	}
+	State.variables.cribs.push(child);
+	State.variables.nurseryBabies++;
+};
+
 window.addSlave = /** @param {App.Entity.SlaveState} slave */ function addSlave(slave) {
 	State.variables.slaves.push(slave);
 	State.variables.slaveIndices[slave.ID] = State.variables.slaves.length - 1;
@@ -599,7 +685,7 @@ window.fetishChangeChance = /** @param {App.Entity.SlaveState} slave */ function
 window.SlaveFullName = /** @param {App.Entity.SlaveState} slave */ function SlaveFullName(slave) {
 	const V = State.variables;
 	const pair = slave.slaveSurname ? [slave.slaveName, slave.slaveSurname] : [slave.slaveName];
-	if (V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(slave.nationality))
+	if ((V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(slave.nationality)) || (V.surnameOrder === 2))
 		pair.reverse();
 	return pair.join(" ");
 };
@@ -607,24 +693,15 @@ window.SlaveFullName = /** @param {App.Entity.SlaveState} slave */ function Slav
 window.SlaveFullBirthName = /** @param {App.Entity.SlaveState} slave */ function SlaveFullBirthName(slave) {
 	const V = State.variables;
 	const pair = slave.birthSurname ? [slave.birthName, slave.birthSurname] : [slave.birthName];
-	if (V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(slave.nationality))
+	if ((V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(slave.nationality)) || (V.surnameOrder === 2))
 		pair.reverse();
 	return pair.join(" ");
 };
 
 window.PlayerName = function PlayerName() {
 	const V = State.variables;
-	const surnamesFirstCountries = [
-		"Cambodian",
-		"Chinese",
-		"Hungarian",
-		"Japanese",
-		"Korean",
-		"Mongolian",
-		"Taiwanese",
-		"Vietnamese"];
 	let names = V.PC.surname ? [V.PC.name, V.PC.surname] : [V.PC.name];
-	if ((V.surnameOrder !== 1) && (surnamesFirstCountries.includes(V.PC.nationality)))
+	if ((V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(V.PC.nationality)) || (V.surnameOrder === 2))
 		names.reverse();
 	return names.join(" ");
 };
@@ -1898,10 +1975,10 @@ window.DegradingName = /** @param {App.Entity.SlaveState} slave */ function Degr
 				slave.slaveName = jsEither(["Bath", "Spa"]);
 				break;
 			case "be the Matron":
-				slave.slaveName = jsEither(["Nursery", "Matron"]);
+				slave.slaveName = jsEither(["Matron", "Nursery"]);
 				break;
 			case "be the Stewardess":
-				slave.slaveName = jsEither(["Servant", "Maid"]);
+				slave.slaveName = jsEither(["Maid", "Servant"]);
 				break;
 			case "be the Milkmaid":
 				if (V.cumSlaves > 3) {
@@ -1911,7 +1988,7 @@ window.DegradingName = /** @param {App.Entity.SlaveState} slave */ function Degr
 				}
 				break;
 			case "be the Farmer":
-				slave.slaveName = jsEither(["Farmhand", "Farmer"]);
+				slave.slaveName = jsEither(["Farmer", "Farmhand"]);
 				break;
 			case "be the DJ":
 				slave.slaveName = jsEither(["Bass", "Booth"]);
@@ -2209,7 +2286,7 @@ window.Deadliness = /** @param {App.Entity.SlaveState} slave */ function Deadlin
 
 	if (!canSee(slave)) {
 		deadliness -= 8;
-	} else if ((slave.eyes === -1 && !["corrective glasses", "corrective contacts"].includes(slave.eyewear)) || (slave.eyes === 1 && ["blurring glasses", "blurring contacts"].includes(slave.eyewear))) {
+	} else if ((slave.eyes === -1 && !["corrective contacts", "corrective glasses"].includes(slave.eyewear)) || (slave.eyes === 1 && ["blurring contacts", "blurring glasses"].includes(slave.eyewear))) {
 		deadliness -= 1;
 	}
 
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index 28e29af6d747d17c13245c9e5ba9cc86c0467994..923ec88aa2a87acdc08af7d20bd44502975c4f77 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -199,8 +199,8 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.analArea = Math.max(+slave.analArea, 0) || 0;
 	}
 
-		/** @param {App.Entity.SlaveState} slave */
-			function slaveNekoDatatypeCleanup(slave) {
+	/** @param {App.Entity.SlaveState} slave */
+	function slaveNekoDatatypeCleanup(slave) {
 		if (typeof slave.earShape !== "string") {
 			slave.earShape = "normal";
 		}
@@ -601,8 +601,8 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		if (typeof slave.customTitleLisp !== "string") {
 			slave.customTitleLisp = "";
 		}
-		if (typeof slave.customImage !== "string" || slave.customImage === "") {
-			slave.customImage = 0;
+		if (typeof slave.customImage !== "string") {
+			slave.customImage = "";
 		}
 	}
 
@@ -631,6 +631,8 @@ window.SlaveDatatypeCleanup = (function SlaveDatatypeCleanup() {
 		slave.indentureRestrictions = Math.clamp(+slave.indentureRestriction, 0, 2) || 0;
 		slave.tired = Math.clamp(+slave.tired, 0, 1) || 0;
 		slave.hears = Math.clamp(+slave.hears, -2, 0) || 0;
+		slave.smells = Math.clamp(+slave.smells, -1, 0) || 0;
+		slave.tastes = Math.clamp(+slave.tastes, -1, 0) || 0;
 		if (typeof slave.earwear !== "string") {
 			slave.earwear = "none";
 		}
@@ -1154,7 +1156,7 @@ window.childCustomStatsDatatypeCleanup = function childCustomStatsDatatypeCleanu
 		child.customTitleLisp = "";
 	}
 	if (typeof child.customImage !== "string") {
-		child.customImage = 0;
+		child.customImage = "";
 	}
 };
 
@@ -1173,6 +1175,8 @@ window.childMiscellaneousDatatypeCleanup = function childMiscellaneousDatatypeCl
 	child.training = Math.clamp(+child.training, 0, 150) || 0;
 	child.tired = Math.clamp(+child.tired, 0, 1) || 0;
 	child.hears = Math.clamp(+child.hears, -2, 0) || 0;
+	child.smells = Math.clamp(+child.smells, -1, 0) || 0;
+	child.tastes = Math.clamp(+child.tastes, -1, 0) || 0;
 	if (typeof child.earwear !== "string") {
 		child.earwear = "none";
 	}
@@ -1438,10 +1442,13 @@ window.FacilityDatatypeCleanup = (function() {
 
 	function FacilityIDArrayCleanup() {
 		function helperFunction(facilityIDArray) {
-			if (!Array.isArray(facilityIDArray))
+			if (!Array.isArray(facilityIDArray)) {
 				facilityIDArray = [];
-			else if (typeof facilityIDArray[0] === "object")
-				facilityIDArray = facilityIDArray.map(function(a) { return a.ID; });
+			} else if (typeof facilityIDArray[0] === "object") {
+				facilityIDArray = facilityIDArray.map(function(a) {
+					return a.ID;
+				});
+			}
 		}
 		helperFunction(V.BrothiIDs);
 		helperFunction(V.DairyiIDs);
@@ -1505,7 +1512,9 @@ window.FacilityDatatypeCleanup = (function() {
 		V.brothel = Math.max(+V.brothel, 0) || 0;
 		V.brothelUpgradeDrugs = Math.clamp(+V.brothelUpgradeDrugs, 0, 2) || 0;
 		/* madam */
-		V.Madam = V.slaves.find(function(s) { return s.assignment === "be the Madam"; }) || 0;
+		V.Madam = V.slaves.find(function(s) {
+			return s.assignment === "be the Madam";
+		}) || 0;
 		V.MadamIgnoresFlaws = Math.clamp(+V.MadamIgnoresFlaws, 0, 1) || 0;
 	}
 
@@ -1535,7 +1544,9 @@ window.FacilityDatatypeCleanup = (function() {
 		V.bioreactorsXY = Math.max(+V.bioreactorsXY, 0) || 0;
 		V.bioreactorsBarren = Math.max(+V.bioreactorsBarren, 0) || 0;
 		/* milkmaid */
-		V.Milkmaid = V.slaves.find(function(s) { return s.assignment === "be the Milkmaid"; }) || 0;
+		V.Milkmaid = V.slaves.find(function(s) {
+			return s.assignment === "be the Milkmaid";
+		}) || 0;
 		V.milkmaidImpregnates = Math.clamp(+V.milkmaidImpregnates, 0, 1) || 0;
 	}
 
@@ -1552,7 +1563,9 @@ window.FacilityDatatypeCleanup = (function() {
 		V.club = Math.max(+V.club, 0) || 0;
 		V.clubUpgradePDAs = Math.clamp(+V.clubUpgradePDAs, 0, 1) || 0;
 		/* madam */
-		V.DJ = V.slaves.find(function(s) { return s.assignment === "be the DJ"; }) || 0;
+		V.DJ = V.slaves.find(function(s) {
+			return s.assignment === "be the DJ";
+		}) || 0;
 		V.DJignoresFlaws = Math.clamp(+V.DJignoresFlaws, 0, 1) || 0;
 	}
 
@@ -1561,7 +1574,9 @@ window.FacilityDatatypeCleanup = (function() {
 		V.servantsQuarters = Math.max(+V.servantsQuarters, 0) || 0;
 		V.servantsQuartersUpgradeMonitoring = Math.clamp(+V.servantsQuartersUpgradeMonitoring, 0, 1) || 0;
 		/* stewardess */
-		V.Stewardess = V.slaves.find(function(s) { return s.assignment === "be the Stewardess"; }) || 0;
+		V.Stewardess = V.slaves.find(function(s) {
+			return s.assignment === "be the Stewardess";
+		}) || 0;
 		V.stewardessImpregnates = Math.clamp(+V.stewardessImpregnates, 0, 1) || 0;
 	}
 
@@ -1572,7 +1587,9 @@ window.FacilityDatatypeCleanup = (function() {
 		V.schoolroomUpgradeLanguage = Math.clamp(+V.schoolroomUpgradeLanguage, 0, 1) || 0;
 		V.schoolroomUpgradeRemedial = Math.clamp(+V.schoolroomUpgradeRemedial, 0, 1) || 0;
 		/* schoolteacher */
-		V.Schoolteacher = V.slaves.find(function(s) { return s.assignment === "be the Schoolteacher"; }) || 0;
+		V.Schoolteacher = V.slaves.find(function(s) {
+			return s.assignment === "be the Schoolteacher";
+		}) || 0;
 	}
 
 	function SpaDatatypeCleanup() {
@@ -1580,7 +1597,9 @@ window.FacilityDatatypeCleanup = (function() {
 		V.spa = Math.max(+V.spa, 0) || 0;
 		V.spaUpgrade = Math.clamp(+V.spaUpgrade, 0, 1) || 0;
 		/* attendant */
-		V.Attendant = V.slaves.find(function(s) { return s.assignment === "be the Attendant"; }) || 0;
+		V.Attendant = V.slaves.find(function(s) {
+			return s.assignment === "be the Attendant";
+		}) || 0;
 		V.spaFix = Math.clamp(+V.spaFix, 0, 2) || 0;
 	}
 
@@ -1593,7 +1612,9 @@ window.FacilityDatatypeCleanup = (function() {
 		V.clinicInflateBelly = Math.clamp(+V.clinicInflateBelly, 0, 1) || 0;
 		V.clinicSpeedGestation = Math.clamp(+V.clinicSpeedGestation, 0, 1) || 0;
 		/* nurse */
-		V.Nurse = V.slaves.find(function(s) { return s.assignment === "be the Nurse"; }) || 0;
+		V.Nurse = V.slaves.find(function(s) {
+			return s.assignment === "be the Nurse";
+		}) || 0;
 	}
 
 	function ArcadeDatatypeCleanup() {
@@ -1610,7 +1631,9 @@ window.FacilityDatatypeCleanup = (function() {
 		V.cellblock = Math.max(+V.cellblock, 0) || 0;
 		V.cellblockUpgrade = Math.clamp(+V.cellblockUpgrade, 0, 1) || 0;
 		/* wardeness */
-		V.Wardeness = V.slaves.find(function(s) { return s.assignment === "be the Wardeness"; }) || 0;
+		V.Wardeness = V.slaves.find(function(s) {
+			return s.assignment === "be the Wardeness";
+		}) || 0;
 		V.cellblockWardenCumsInside = Math.clamp(+V.cellblockWardenCumsInside, 0, 1) || 0;
 	}
 
@@ -1624,18 +1647,25 @@ window.FacilityDatatypeCleanup = (function() {
 		V.masterSuitePregnancyFertilityDrugs = Math.clamp(+V.masterSuitePregnancyFertilityDrugs, 0, 1) || 0;
 		V.masterSuiteHyperPregnancy = Math.clamp(+V.masterSuiteHyperPregnancy, 0, 1) || 0;
 		/* concubine */
-		V.Concubine = V.slaves.find(function(s) { return s.assignment === "be your Concubine"; }) || 0;
+		V.Concubine = V.slaves.find(function(s) {
+			return s.assignment === "be your Concubine";
+		}) || 0;
 	}
 
-	function HeadGirlSuiteDatatypeCleanup(){
+	function HeadGirlSuiteDatatypeCleanup() {
 		/* headgirl */
-		V.HeadGirl = V.slaves.find(function(s) { return s.assignment === "be your Head Girl"; }) || 0;
+		V.HeadGirl = V.slaves.find(function(s) {
+			return s.assignment === "be your Head Girl";
+		}) || 0;
 		V.HGSuiteEquality = Math.clamp(+V.HGSuiteEquality, 0, 1) || 0;
-		if (V.HGSuiteSurgery !== 0)
+		if (V.HGSuiteSurgery !== 0) {
 			V.HGSuiteSurgery = 1;
-		if (V.HGSuiteDrugs !== 0)
+		}
+		if (V.HGSuiteDrugs !== 0) {
 			V.HGSuiteDrugs = 1;
-		if (V.HGSuiteHormones !== 0)
+		}
+		if (V.HGSuiteHormones !== 0) {
 			V.HGSuiteHormones = 1;
+		}
 	}
 })();
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index 265b4d9cd0496baad14bee734be7bd717e57c9bb..1c54d146f835e9493ef6988269a7809f4fa5bd67 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -1,11 +1,9 @@
-window.generateRandomEventPoolStandard = function (eventSlave) {
-
+window.generateRandomEventPoolStandard = function(eventSlave) {
 	/* STANDARD EVENTS */
 
 	if (eventSlave.fetish !== "mindbroken") {
 		if (canWalk(eventSlave)) {
 			if (canTalk(eventSlave)) {
-
 				if (State.variables.RECockmilkInterceptionIDs.length > 1 || (State.variables.RECockmilkInterceptionIDs.length === 1 && eventSlave.ID !== State.variables.RECockmilkInterceptionIDs[0])) {
 					if (eventSlave.devotion > 20) {
 						if (eventSlave.dietCum > 0 || (eventSlave.fetishKnown && eventSlave.fetish === "cumslut")) {
@@ -180,7 +178,9 @@ window.generateRandomEventPoolStandard = function (eventSlave) {
 					if (eventSlave.livingRules === "luxurious") {
 						if (eventSlave.devotion > 20) {
 							if (eventSlave.energy > 80) {
-								State.variables.RETSevent.push("taste test");
+								if (canTaste(eventSlave)) {
+									State.variables.RETSevent.push("taste test");
+								}
 							}
 						}
 					}
@@ -225,7 +225,9 @@ window.generateRandomEventPoolStandard = function (eventSlave) {
 				}
 
 				if (eventSlave.relationship > 3) {
-					var relationshipSlave = State.variables.slaves.find(function (s) { return s.ID === eventSlave.relationshipTarget; });
+					let relationshipSlave = State.variables.slaves.find(function(s) {
+						return s.ID === eventSlave.relationshipTarget;
+					});
 					if (relationshipSlave.devotion > 20) {
 						if (canWalk(relationshipSlave)) {
 							if (canTalk(relationshipSlave)) {
@@ -288,7 +290,7 @@ window.generateRandomEventPoolStandard = function (eventSlave) {
 
 				if (eventSlave.devotion > 50) {
 					if (eventSlave.trust > 50) {
-						var giver = 0;
+						let giver = 0;
 						if (State.variables.HeadGirl === 0) {
 							giver = 1;
 						} else if (State.variables.HeadGirl.ID !== eventSlave.ID) {
@@ -811,7 +813,6 @@ window.generateRandomEventPoolStandard = function (eventSlave) {
 						}
 					}
 				}
-
 			} /* closes mute exempt */
 
 			if (eventSlave.devotion > 20) {
@@ -1333,11 +1334,9 @@ window.generateRandomEventPoolStandard = function (eventSlave) {
 					}
 				}
 			}
-
 		} /* closes amp/crawling exempt */
 
 		if (canTalk(eventSlave)) {
-
 			if (eventSlave.speechRules !== "restrictive") {
 				if (eventSlave.boobsImplant > 400) {
 					if (eventSlave.lipsImplant >= 30) {
@@ -1476,7 +1475,6 @@ window.generateRandomEventPoolStandard = function (eventSlave) {
 					}
 				}
 			}
-
 		} /* closes mute exempt */
 
 		if (State.variables.cockFeeder === 0) {
@@ -1773,7 +1771,6 @@ window.generateRandomEventPoolStandard = function (eventSlave) {
 		if (eventSlave.prestige === 0) {
 			if (eventSlave.devotion > 50) {
 				if (eventSlave.trust > 50) {
-
 					if (eventSlave.entertainSkill >= 100) {
 						if (eventSlave.assignment === "serve the public") {
 							State.variables.events.push("RE legendary entertainer");
@@ -1819,7 +1816,6 @@ window.generateRandomEventPoolStandard = function (eventSlave) {
 							State.variables.events.push("RE former abolitionist");
 						}
 					}
-
 				}
 			}
 		}
@@ -1827,7 +1823,7 @@ window.generateRandomEventPoolStandard = function (eventSlave) {
 		/* NICKNAME EVENTS */
 
 		if (State.variables.nicknamesAllowed === 1) {
-			var toSearch = eventSlave.slaveName.toLowerCase();
+			let toSearch = eventSlave.slaveName.toLowerCase();
 			if (toSearch.indexOf("'") === -1) {
 				if (State.variables.week - eventSlave.weekAcquired >= 4) {
 					State.variables.events.push("RE nickname");
@@ -1835,7 +1831,6 @@ window.generateRandomEventPoolStandard = function (eventSlave) {
 				}
 			} /* closes nickname check */
 		} /* closes no nicknames option */
-
 	} /* closes mindbreak exempt */
 
 	if (eventSlave.fetish === "mindbroken") {
@@ -1863,18 +1858,15 @@ window.generateRandomEventPoolStandard = function (eventSlave) {
 			}
 		}
 	}
-
 };
 
 /* servants spend a lot of time in the penthouse, so should be eligible for a number (but not all) random events */
-window.generateRandomEventPoolServant = function (eventSlave) {
-
+window.generateRandomEventPoolServant = function(eventSlave) {
 	/* STANDARD EVENTS */
 
 	if (eventSlave.fetish !== "mindbroken") {
 		if (canWalk(eventSlave)) {
 			if (canTalk(eventSlave)) {
-
 				if (State.variables.RECockmilkInterceptionIDs.length > 1 || (State.variables.RECockmilkInterceptionIDs.length === 1 && eventSlave.ID !== State.variables.RECockmilkInterceptionIDs[0])) {
 					if (eventSlave.devotion > 20) {
 						if (eventSlave.dietCum > 0 || (eventSlave.fetishKnown && eventSlave.fetish === "cumslut")) {
@@ -1951,14 +1943,18 @@ window.generateRandomEventPoolServant = function (eventSlave) {
 					if (eventSlave.livingRules === "luxurious") {
 						if (eventSlave.devotion > 20) {
 							if (eventSlave.energy > 80) {
-								State.variables.RETSevent.push("taste test");
+								if (canTaste(eventSlave)) {
+									State.variables.RETSevent.push("taste test");
+								}
 							}
 						}
 					}
 				}
 
 				if (eventSlave.relationship > 3) {
-					var relationshipSlave = State.variables.slaves.find(function (s) { return s.ID === eventSlave.relationshipTarget; });
+					let relationshipSlave = State.variables.slaves.find(function(s) {
+						return s.ID === eventSlave.relationshipTarget;
+					});
 					if (relationshipSlave.devotion > 20) {
 						if (canWalk(relationshipSlave)) {
 							if (canTalk(relationshipSlave)) {
@@ -1994,7 +1990,7 @@ window.generateRandomEventPoolServant = function (eventSlave) {
 
 				if (eventSlave.devotion > 50) {
 					if (eventSlave.trust > 50) {
-						var giver = 0;
+						let giver = 0;
 						if (State.variables.HeadGirl === 0) {
 							giver = 1;
 						} else if (State.variables.HeadGirl.ID !== eventSlave.ID) {
@@ -2303,7 +2299,6 @@ window.generateRandomEventPoolServant = function (eventSlave) {
 						}
 					}
 				}
-
 			} /* closes mute exempt */
 
 			if (eventSlave.devotion > 20) {
@@ -2671,11 +2666,9 @@ window.generateRandomEventPoolServant = function (eventSlave) {
 					}
 				}
 			}
-
 		} /* closes amp/crawling exempt */
 
 		if (canTalk(eventSlave)) {
-
 			if (eventSlave.speechRules !== "restrictive") {
 				if (eventSlave.boobsImplant > 400) {
 					if (eventSlave.lipsImplant >= 30) {
@@ -2727,7 +2720,6 @@ window.generateRandomEventPoolServant = function (eventSlave) {
 					}
 				}
 			}
-
 		} /* closes mute exempt */
 
 		if (State.variables.cockFeeder === 0) {
@@ -2942,7 +2934,7 @@ window.generateRandomEventPoolServant = function (eventSlave) {
 		/* NICKNAME EVENTS */
 
 		if (State.variables.nicknamesAllowed === 1) {
-			var toSearch = eventSlave.slaveName.toLowerCase();
+			let toSearch = eventSlave.slaveName.toLowerCase();
 			if (toSearch.indexOf("'") === -1) {
 				if (State.variables.week - eventSlave.weekAcquired >= 4) {
 					State.variables.events.push("RE nickname");
@@ -2950,7 +2942,6 @@ window.generateRandomEventPoolServant = function (eventSlave) {
 				}
 			} /* closes nickname check */
 		} /* closes no nicknames option */
-
 	} /* closes mindbreak exempt */
 
 	if (eventSlave.fetish === "mindbroken") {
@@ -2967,14 +2958,12 @@ window.generateRandomEventPoolServant = function (eventSlave) {
 			}
 		}
 	}
-
 };
 
-window.populateEventArray = function (RESS = State.variables.RESSevent.length, RESSTR = State.variables.RESSTRevent.length, RETS = State.variables.RETSevent.length, RECI = State.variables.RECIevent.length) {
-
+window.populateEventArray = function(RESS = State.variables.RESSevent.length, RESSTR = State.variables.RESSTRevent.length, RETS = State.variables.RETSevent.length, RECI = State.variables.RECIevent.length) {
 	/* EVENT RANDOMIZATION */
-	var events = State.variables.events;
-	var i = 0;
+	let events = State.variables.events;
+	let i = 0;
 
 	for (i = 0; i < RESS; i++) {
 		events.push("RESS");
diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js
index a43f5bd1305574dc74e1549c03afe6c70eef12f8..66952ac4da99c224635f506ab23ceb3e3928ec7e 100644
--- a/src/js/generateGenetics.js
+++ b/src/js/generateGenetics.js
@@ -69,6 +69,9 @@ window.generateGenetics = (function() {
 		genes.face = setFace(father, mother, activeMother, actor2, genes.geneticQuirks);
 		genes.faceShape = setFaceShape(father, mother);
 		genes.eyeColor = setEyeColor(father, mother, actor2);
+		if (genes.geneticQuirks.heterochromia === 2) {
+			genes.geneticQuirks.heterochromia = setHeterochromaticEyeColor(father, mother, actor2);
+		}
 		genes.hColor = setHColor(father, mother, actor2);
 		genes.underArmHStyle = setUnderArmHStyle(father, mother);
 		genes.pubicHStyle = setPubicHStyle(father, mother);
@@ -277,6 +280,42 @@ window.generateGenetics = (function() {
 		return eyeColor;
 	}
 
+	function setHeterochromaticEyeColor(father, mother, actor2) {
+		let hEyeColor;
+		let eyeColorArray = [];
+		if (father !== 0) {
+			eyeColorArray.push(mother.origEye);
+			eyeColorArray.push(father.origEye);
+			if (father.geneticQuirks.heterochromia !== 0 && father.geneticQuirks.heterochromia !== 1) {
+				eyeColorArray.push(father.geneticQuirks.heterochromia);
+			}
+		} else if (actor2 === -2 || actor2 === 0 || actor2 === -5) {
+			eyeColorArray.push(mother.origEye);
+			eyeColorArray.push("brown");
+			eyeColorArray.push("brown");
+			eyeColorArray.push("blue");
+			eyeColorArray.push("green");
+			eyeColorArray.push("green");
+			eyeColorArray.push("hazel");
+		} else {
+			eyeColorArray.push(mother.origEye);
+		}
+		if (mother.geneticQuirks.heterochromia !== 0 && mother.geneticQuirks.heterochromia !== 1) {
+			eyeColorArray.push(mother.geneticQuirks.heterochromia);
+		}
+		//just in case something wrong gets through
+		switch (hEyeColor) {
+			case "blind blue":
+				hEyeColor = ["deep blue"];
+				break;
+			case "milky white":
+			case "implant":
+				hEyeColor = jsEither(["blue", "green", "brown", "hazel", "light blue", "light green", "dark green", "dark blue"]);
+				break;
+		}
+		return jsEither(hEyeColor);
+	}
+
 	// hColor
 	function setHColor(father, mother, actor2) {
 		let hairColor;
@@ -681,6 +720,37 @@ window.generateGenetics = (function() {
 				}
 			}
 		}
+		
+		//heterochromia
+		if (father !== 0) {
+			if (mother.geneticQuirks.heterochromia === 2 && father.geneticQuirks.heterochromia === 2) {
+				if (jsRandom(1, 4) === 1) {
+					quirks.heterochromia = 2;
+				} else {
+					quirks.heterochromia = 1;
+				}
+			} else if (mother.geneticQuirks.heterochromia === 1 + father.geneticQuirks.heterochromia >= 3) {
+				chance = jsRandom(1, 4);
+				if (chance === 1) {
+					quirks.heterochromia = 2;
+				} else if (chance !== 4) {
+					quirks.heterochromia = 1;
+				}
+			} else if (mother.geneticQuirks.heterochromia === 1 && father.geneticQuirks.heterochromia === 1) {
+				if (jsRandom(1, 4) === 1) {
+					quirks.heterochromia = 2;
+				}
+			}
+		} else if (mother.geneticQuirks.heterochromia >= 1) {
+			if (jsRandom(0, 40000) >= 39500) {
+				chance = jsRandom(1, 4);
+				if (chance === 1) {
+					quirks.heterochromia = 2;
+				} else if (chance !== 4) {
+					quirks.heterochromia = 1;
+				}
+			}
+		}
 
 		return clone(quirks);
 	}
diff --git a/src/js/generateNewSlaveJS.js b/src/js/generateNewSlaveJS.js
index 91d08e69e6833dc74ef4c293239e4eeacf211e1d..f51d123a66b9eb6f27ef2731eb633b9e522f0008 100644
--- a/src/js/generateNewSlaveJS.js
+++ b/src/js/generateNewSlaveJS.js
@@ -1092,6 +1092,12 @@ window.GenerateNewSlave = (function(){
 		} else if (chance >= 19500) {
 			slave.geneticQuirks.albinism = 1;
 		}
+		chance = jsRandom(1,20000);
+		if (chance == 10001) {
+			slave.geneticQuirks.heterochromia = 2;
+		} else if (chance >= 19750) {
+			slave.geneticQuirks.heterochromia = 1;
+		}
 	}
 
 	function generateXYGeneticQuirks() {
@@ -1114,6 +1120,12 @@ window.GenerateNewSlave = (function(){
 		} else if (chance >= 19500) {
 			slave.geneticQuirks.albinism = 1;
 		}
+		chance = jsRandom(1,20000);
+		if (chance == 10001) {
+			slave.geneticQuirks.heterochromia = 2;
+		} else if (chance >= 19750) {
+			slave.geneticQuirks.heterochromia = 1;
+		}
 	}
 
 	function generateAge() {
@@ -1240,28 +1252,46 @@ window.GenerateNewSlave = (function(){
 				slave.skin = jsEither(["black", "brown", "dark brown"]);
 				slave.hColor = jsEither(["black", "black", "black", "brown"]);
 				slave.hStyle = jsEither(["crinkled", "neat"]);
+				if (slave.geneticQuirks.heterochromia == 2) {
+					slave.geneticQuirks.heterochromia = "brown";
+				}
 				break;
 			case "white":
 				slave.lips = jsRandom(5,25);
 				if (slave.nationality === "German") {
 					slave.skin = jsEither(["fair", "light", "pale"]);
 					slave.eyeColor = jsEither(["blue", "blue", "blue", "brown", "green"]);
+					if (slave.geneticQuirks.heterochromia == 2) {
+						slave.geneticQuirks.heterochromia = jsEither(["blue", "blue", "blue", "brown", "green"]);
+					}
 					slave.hColor = jsEither(["black", "blonde", "blonde", "blonde", "brown", "red"]);
 				} else if (slave.nationality === "Icelandic") {
 					slave.skin = jsEither(["fair", "light", "pale", "pale"]);
 					slave.eyeColor = jsEither(["blue", "blue", "blue", "brown", "green"]);
+					if (slave.geneticQuirks.heterochromia == 2) {
+						slave.geneticQuirks.heterochromia = jsEither(["blue", "blue", "blue", "brown", "green"]);
+					}
 					slave.hColor = jsEither(["black", "blonde", "blonde", "blonde", "brown", "red"]);
 				} else if (slave.nationality === "Irish") {
 					slave.skin = jsEither(["fair", "light", "pale", "pale"]);
 					slave.eyeColor = jsEither(["blue", "brown", "green", "green", "green"]);
+					if (slave.geneticQuirks.heterochromia == 2) {
+						slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green", "green", "green"]);
+					}
 					slave.hColor = jsEither(["black", "blonde", "brown", "red", "red", "red"]);
 				} else if (slave.nationality === "Scottish") {
 					slave.skin = jsEither(["fair", "fair", "light", "pale"]);
 					slave.eyeColor = jsEither(["blue", "brown", "brown", "green", "green", "green"]);
+					if (slave.geneticQuirks.heterochromia == 2) {
+						slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "brown", "green", "green", "green"]);
+					}
 					slave.hColor = jsEither(["black", "black", "blonde", "red", "red", "red", "brown"]);
 				} else {
 					slave.skin = jsEither(["fair", "light", "pale"]);
 					slave.eyeColor = jsEither(["blue", "brown", "green"]);
+					if (slave.geneticQuirks.heterochromia == 2) {
+						slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]);
+					}
 					slave.hColor = jsEither(["black", "blonde", "brown", "red"]);
 				}
 				slave.hStyle = "neat";
@@ -1270,6 +1300,9 @@ window.GenerateNewSlave = (function(){
 				slave.lips = jsRandom(5,25);
 				slave.skin = jsEither(["brown", "dark brown", "dark olive", "light olive", "tanned"]);
 				slave.hColor = jsEither(["black", "brown"]);
+				if (slave.geneticQuirks.heterochromia == 2) {
+					slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]);
+				}
 				slave.hStyle = "neat";
 				break;
 			case "indo-aryan":
@@ -1280,12 +1313,18 @@ window.GenerateNewSlave = (function(){
 				slave.skin = jsEither(["dark", "light"]);
 				slave.hColor = "black";
 				slave.hStyle = "neat";
+				if (slave.geneticQuirks.heterochromia == 2) {
+					slave.geneticQuirks.heterochromia = "brown";
+				}
 				break;
 			case "asian":
 				slave.lips = jsRandom(5,25);
 				slave.skin = jsEither(["dark olive", "light olive", "light"]);
 				slave.hColor = "black";
 				slave.hStyle = "neat";
+				if (slave.geneticQuirks.heterochromia == 2) {
+					slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]);
+				}
 				break;
 			case "middle eastern":
 			case "semitic":
@@ -1294,12 +1333,18 @@ window.GenerateNewSlave = (function(){
 				slave.skin = jsEither(["fair", "light olive", "light", "tanned"]);
 				slave.hColor = "black";
 				slave.hStyle = "neat";
+				if (slave.geneticQuirks.heterochromia == 2) {
+					slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]);
+				}
 				break;
 			default:
 				slave.lips = jsRandom(5,25);
 				slave.skin = jsEither(["dark", "light", "pale"]);
 				slave.hColor = jsEither(["black", "black", "black", "black", "blonde", "brown", "brown", "red"]);
 				slave.hStyle = "neat";
+				if (slave.geneticQuirks.heterochromia == 2) {
+					slave.geneticQuirks.heterochromia = jsEither(["blue", "brown", "green"]);
+				}
 		}
 		if (slave.skin === "pale" || slave.skin === "fair") {
 			if (jsRandom(1,4) === 1) {
@@ -1380,6 +1425,8 @@ window.GenerateNewSlave = (function(){
 			disList.push("hearNot");
 			disList.push("seeNot");
 			disList.push("speakNot");
+			disList.push("smellNot");
+			disList.push("tasteNot");
 			let disableCount = 0;
 			if (V.oneTimeDisableDisability === 0) {
 				while (disList.length > 0) {
@@ -1406,6 +1453,20 @@ window.GenerateNewSlave = (function(){
 						disList.delete("speakNot");
 						disableCount++;
 						break;
+					case "smellNot":
+						if ((jsRandom(1,100)-(disableCount*2)) > 90) {
+							slave.smells = -1;
+						}
+						disList.delete("smellNot");
+						disableCount++;
+						break;
+					case "tasteNot":
+						if ((jsRandom(1,100)-(disableCount*2)) > 90) {
+							slave.tastes = -1;
+						}
+						disList.delete("tasteNot");
+						disableCount++;
+						break;
 					}
 				}
 			}
diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js
index 9566b01f61a7b23d2869694cfeed7a72ddcc295f..6d2db438933c0bcf567979507844c53591478516 100644
--- a/src/js/rulesAssistant.js
+++ b/src/js/rulesAssistant.js
@@ -217,6 +217,9 @@ window.emptyDefaultRule = function emptyDefaultRule() {
 			collar: "no default setting",
 			shoes: "no default setting",
 			legAccessory: "no default setting",
+			chastityVagina: "no default setting",
+			chastityAnus: "no default setting",
+			chastityPenis: "no default setting",
 			virginAccessory: "no default setting",
 			aVirginAccessory: "no default setting",
 			vaginalAccessory: "no default setting",
@@ -297,6 +300,8 @@ window.emptyDefaultRule = function emptyDefaultRule() {
 			removalAssignment: "rest",
 			surgery_eyes: "no default setting",
 			surgery_hears: "no default setting",
+			surgery_smells: "no default setting",
+			surgery_tastes: "no default setting",
 			surgery_lactation: "no default setting",
 			surgery_prostate: "no default setting",
 			surgery_cosmetic: "no default setting",
diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index 56c6c9526f84e7fdf489add8944026b07aa92551..b27b8649b8a329ac7e4d4f2b32fb3e7c43066ebe 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -914,13 +914,16 @@ window.rulesAssistantOptions = (function() {
 			this.appendChild(new ShoeList());
 			this.appendChild(new CorsetList());
 			this.appendChild(new LeggingsList());
+			this.appendChild(new VagChastityList());
 			this.appendChild(new VagAccVirginsList());
 			this.appendChild(new VagAccAVirginsList());
 			this.appendChild(new VagAccOtherList());
 			if (V.seeDicks !== 0 || V.makeDicks !== 0) {
+				this.appendChild(new DickChastityList());
 				this.appendChild(new DickAccVirginsList());
 				this.appendChild(new DickAccOtherList());
 			}
+			this.appendChild(new AnalChastityList());
 			this.appendChild(new ButtplugsVirginsList());
 			this.appendChild(new ButtplugsOtherList());
 			this.appendChild(new ButtplugAttachmentsList());
@@ -1055,6 +1058,8 @@ window.rulesAssistantOptions = (function() {
 			this.appendChild(new AutosurgerySwitch());
 			this.appendChild(new VisionSurgeryList());
 			this.appendChild(new HearingSurgeryList());
+			this.appendChild(new SmellSurgeryList());
+			this.appendChild(new TasteSurgeryList());
 			this.appendChild(new LactationSurgeryList());
 			if (V.seeDicks || V.makeDicks) {
 				this.appendChild(new SemenSurgeryList());
@@ -1281,10 +1286,10 @@ window.rulesAssistantOptions = (function() {
 	class LeggingsList extends List {
 		constructor() {
 			const items = [
-				["no default setting"],
-				["none"],
-				["short stockings"],
-				["long stockings"],
+				["No default setting"],
+				["None"],
+				["Short stockings"],
+				["Long stockings"],
 			];
 			super("Leg accessory", items);
 			this.setValue(current_rule.set.legAccessory);
@@ -1292,6 +1297,19 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
+	class VagChastityList extends List {
+		constructor() {
+			const chaste = [
+				["No default setting", "no default setting"],
+				["None", 0],
+				["Chastity", 1],
+			];
+			super("Vaginal chastity", chaste);
+			this.setValue(current_rule.set.chastityVagina);
+			this.onchange = (value) => current_rule.set.chastityVagina = value;
+		}
+	}	
+
 	class VagAccVirginsList extends List {
 		constructor() {
 			const accs = [];
@@ -1337,6 +1355,19 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
+	class DickChastityList extends List {
+		constructor() {
+			const items = [
+				["No default setting", "no default setting"],
+				["None", 0],
+				["Chastity cage", 1],
+			];
+			super("Penile chastity", items);
+			this.setValue(current_rule.set.chastityPenis);
+			this.onchange = (value) => current_rule.set.chastityPenis = value;
+		}
+	}	
+
 	class DickAccVirginsList extends List {
 		constructor() {
 			super("Dick accessories for anal virgins", setup.dickAccessories.map(i => [i.name, i.value]));
@@ -1353,6 +1384,19 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
+	class AnalChastityList extends List {
+		constructor() {
+			const items = [
+				["No default setting", "no default setting"],
+				["None", 0],
+				["Chastity", 1],
+			];
+			super("Anal chastity", items);
+			this.setValue(current_rule.set.chastityAnus);
+			this.onchange = (value) => current_rule.set.chastityAnus = value;
+		}
+	}	
+
 	class ButtplugsVirginsList extends List {
 		constructor() {
 			const accs = [];
@@ -3297,6 +3341,32 @@ window.rulesAssistantOptions = (function() {
 			this.onchange = (value) => current_rule.set.surgery_hears = value;
 		}
 	}
+	
+	class SmellSurgeryList extends List {
+		constructor() {
+			const items = [
+				["no default setting"],
+				["fixed", 0],
+				["disabled", -1],
+			];
+			super("Olfactory correction", items);
+			this.setValue(current_rule.set.surgery_smells);
+			this.onchange = (value) => current_rule.set.surgery_smells = value;
+		}
+	}
+	
+	class TasteSurgeryList extends List {
+		constructor() {
+			const items = [
+				["no default setting"],
+				["fixed", 0],
+				["disabled", -1],
+			];
+			super("Gustatory correction", items);
+			this.setValue(current_rule.set.surgery_tastes);
+			this.onchange = (value) => current_rule.set.surgery_tastes = value;
+		}
+	}
 
 	class LactationSurgeryList extends List {
 		constructor() {
diff --git a/src/js/rulesAutosurgery.js b/src/js/rulesAutosurgery.js
index 5ea93996ffc11ed0593907c1e12353dea69817d1..309ea9c71009f801f24c4b35e48bb569fe47fc08 100644
--- a/src/js/rulesAutosurgery.js
+++ b/src/js/rulesAutosurgery.js
@@ -142,7 +142,7 @@ window.rulesAutosurgery = (function() {
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
 
-		} else if ((slave.hears === -1) && (thisSurgery.surgery_hears === 1)) {
+		} else if ((slave.hears === -1) && (thisSurgery.surgery_hears === 0)) {
 			surgeries.push("surgery to correct her hearing");
 			slave.hears = 0;
 			cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave);
@@ -155,6 +155,34 @@ window.rulesAutosurgery = (function() {
 			cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave);
 			if (V.PC.medicine >= 100) slave.health -= 5;
 			else slave.health -= 10;
+			
+		} else if ((slave.hears === -1) && (thisSurgery.surgery_smells === 0)) {
+			surgeries.push("surgery to correct her sense of smell");
+			slave.smells = 0;
+			cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave);
+			if (V.PC.medicine >= 100) slave.health -= 5;
+			else slave.health -= 10;
+
+		} else if ((slave.hears === 0) && (thisSurgery.surgery_smells === -1)) {
+			surgeries.push("surgery to muffle her sense of smell");
+			slave.smells = -1;
+			cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave);
+			if (V.PC.medicine >= 100) slave.health -= 5;
+			else slave.health -= 10;
+
+		} else if ((slave.hears === -1) && (thisSurgery.surgery_tastes === 0)) {
+			surgeries.push("surgery to correct her sense of taste");
+			slave.tastes = 0;
+			cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave);
+			if (V.PC.medicine >= 100) slave.health -= 5;
+			else slave.health -= 10;
+
+		} else if ((slave.hears === 0) && (thisSurgery.surgery_tastes === -1)) {
+			surgeries.push("surgery to muffle her sense of taste");
+			slave.tastes = -1;
+			cashX(forceNeg(V.surgeryCost), "slaveSurgery", slave);
+			if (V.PC.medicine >= 100) slave.health -= 5;
+			else slave.health -= 10;
 
 		} else if ((slave.lactation === 2) && (thisSurgery.surgery_lactation === 0)) {
 			surgeries.push("surgery to remove her lactation implants");
diff --git a/src/js/storyJS.js b/src/js/storyJS.js
index 71cf2dc29e353c7a90ec16acccefe723d0e3f152..fcc99af35f0efccb5909c061dd470f64aa9e5d01 100644
--- a/src/js/storyJS.js
+++ b/src/js/storyJS.js
@@ -291,6 +291,26 @@ window.canHear = /** @param {App.Entity.SlaveState} slave */ function (slave) {
 	}
 };
 
+window.canSmell = /** @param {App.Entity.SlaveState} slave */ function (slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.smells > -1) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
+window.canTaste = /** @param {App.Entity.SlaveState} slave */ function (slave) {
+	if (!slave) {
+		return null;
+	} else if (slave.tastes > -1) {
+		return true;
+	} else {
+		return false;
+	}
+};
+
 window.canWalk = /** @param {App.Entity.SlaveState} slave */ function (slave) {
 	if (!slave) {
 		return null;
diff --git a/src/js/utilJS.js b/src/js/utilJS.js
index e570569b0abe687a70ec3b07dea55e515a1d94fa..d1512eda8cef64a953cd31cac80f711bd01af5b6 100644
--- a/src/js/utilJS.js
+++ b/src/js/utilJS.js
@@ -51,30 +51,34 @@
  *
  * There's also limitHeight which you're not using. It's basically limitMult in different units.
  */
-window.Height = (function(){
+window.Height = (function() {
 	'use strict';
 
 	// Global configuration (for different game modes/options/types)
-	var minMult = -3.0;
-	var maxMult = 3.0;
-	var skew = 0.0;
-	var spread = 0.05;
-	var minHeight = 0;
-	var maxHeight = 999;
+	let minMult = -3.0;
+	let maxMult = 3.0;
+	let skew = 0.0;
+	let spread = 0.05;
+	let minHeight = 0;
+	let maxHeight = 999;
 
 	// Configuration method for the above values
 	const _config = function(conf) {
-		if(_.isUndefined(conf)) {
+		if (_.isUndefined(conf)) {
 			return {limitMult: [minMult, maxMult], limitHeight: [minHeight, maxHeight], skew: skew, spread: spread};
 		}
-		if(_.isFinite(conf.skew)) { skew = Math.clamp(conf.skew, -1000, 1000); }
-		if(_.isFinite(conf.spread)) { spread = Math.clamp(conf.spread, 0.001, 0.5); }
-		if(_.isArray(conf.limitMult) && conf.limitMult.length === 2 && conf.limitMult[0] !== conf.limitMult[1] &&
+		if (_.isFinite(conf.skew)) {
+			skew = Math.clamp(conf.skew, -1000, 1000);
+		}
+		if (_.isFinite(conf.spread)) {
+			spread = Math.clamp(conf.spread, 0.001, 0.5);
+		}
+		if (_.isArray(conf.limitMult) && conf.limitMult.length === 2 && conf.limitMult[0] !== conf.limitMult[1] &&
 			_.isFinite(conf.limitMult[0]) && _.isFinite(conf.limitMult[1])) {
 			minMult = Math.min(conf.limitMult[0], conf.limitMult[1]);
 			maxMult = Math.max(conf.limitMult[0], conf.limitMult[1]);
 		}
-		if(_.isArray(conf.limitHeight) && conf.limitHeight.length === 2 && conf.limitHeight[0] !== conf.limitHeight[1] &&
+		if (_.isArray(conf.limitHeight) && conf.limitHeight.length === 2 && conf.limitHeight[0] !== conf.limitHeight[1] &&
 			_.isFinite(conf.limitHeight[0]) && _.isFinite(conf.limitHeight[1])) {
 			minHeight = Math.min(conf.limitHeight[0], conf.limitHeight[1]);
 			maxHeight = Math.max(conf.limitHeight[0], conf.limitHeight[1]);
@@ -84,69 +88,69 @@ window.Height = (function(){
 
 	/* if you can find an average for an undefined, add it in! */
 	const xxMeanHeight = {
-		"Afghan": 155.08, "Albanian": 161.77, "Algerian": 159.09, "American.asian": 158.4, "American.black": 163.6, "American.latina": 158.9, "American.white": 165, "American": 163.54,
-		"Andorran": 162.90, "Angolan": 157.31, "Antiguan": 160.65, "Argentinian": 159.18, "Armenian": 158.09, "Aruban": 158, "Australian": 165.86, "Austrian": 164.62, "Azerbaijani": 158.25,
-		"Bahamian": 160.68, "Bahraini": 156.69, "Bangladeshi": 150.79, "Barbadian": 165.28, "Belarusian": 166.35, "Belgian": 165.49, "Belizean": 156.88, "Beninese": 156.16, "Bermudian": 160.69,
-		"Bhutanese": 153.63, "Bissau-Guinean": 158.24, "Bolivian": 153.89, "Bosnian": 165.85, "Brazilian": 160.86, "British": 164.40, "Bruneian": 153.98, "Bulgarian": 164.80,
-		"Burkinabé": 160.19, "Burmese": 154.37, "Burundian": 154.02, "Cambodian": 152.91, "Cameroonian": 158.82, "Canadian": 163.91, "Cape Verdean": 161.65, "Catalan": 163.4,
-		"Central African": 158.04, "Chadian": 160.17, "Chilean": 159.36, "Chinese": 159.71, "Colombian": 156.85, "Comorian": 155.58, "Congolese": 157.57, "a Cook Islander": 163.19, "Costa Rican": 156.37,
-		"Croatian": 165.63, "Cuban": 157.98, "Curaçaoan": 158, "Cypriot": 162.27, "Czech": 168.46, "Danish": 167.21, "Djiboutian": 156.11, "Dominican": 159.03, "Dominiquais": 164.34, "Dutch": 168.72, "East Timorese": 151.15,
-		"Ecuadorian": 154.23, "Egyptian": 157.33, "Emirati": 158.68, "Equatoguinean": 157.33, "Eritrean": 156.39, "Estonian": 168.67, "Ethiopian": 155.71, "Fijian": 161.69, "Filipina": 149.60,
-		"Finnish": 165.90, "French Guianan": 157, "French Polynesian": 164.52, "French": 164.88, "Gabonese": 158.84, "Gambian": 160.93, "Georgian": 162.98, "German": 165.86, "Ghanan": 157.91,
-		"Greek": 164.87, "Greenlandic": 161.55, "Grenadian": 164.51, "Guamanian": 153.7, "Guatemalan": 149.39, "Guinean": 157.80, "Guyanese": 157.92, "Haitian": 158.72, "Honduran": 153.84, "Hungarian": 163.66,
-		"I-Kiribati": 157.00, "Icelandic": 165.95, "Indian": 152.59, "Indonesian": 152.80, "Iranian": 159.67, "Iraqi": 158.67, "Irish": 165.11, "Israeli": 161.80, "Italian": 164.61, "Ivorian": 158.07,
-		"Jamaican": 163.12, "Japanese": 158.31, "Jordanian": 158.83, "Kazakh": 158.58, "Kenyan": 158.16, "Kittitian": 159.20, "Korean": 160.65, "Kosovan": 165.7, "Kurdish": 165, "Kuwaiti": 159.43,
-		"Kyrgyz": 159.35, "Laotian": 151.28, "Latvian": 169.80, "Lebanese": 162.43, "Liberian": 157.3, "Libyan": 162.08, "a Liechtensteiner": 164.3, "Lithuanian": 166.61, "Luxembourgian": 164.43,
-		"Macedonian": 159.75, "Malagasy": 151.18, "Malawian": 154.40, "Malaysian": 156.30, "Maldivian": 155.02, "Malian": 160.47, "Maltese": 160.85, "Marshallese": 151.31, "Mauritanian": 157.72,
-		"Mauritian": 157.24, "Mexican": 156.85, "Micronesian": 156.09, "Moldovan": 163.24, "Monégasque": 164.61, "Mongolian": 158.22, "Montenegrin": 164.86, "Moroccan": 157.82, "Mosotho": 155.71,
-		"Motswana": 161.38, "Mozambican": 153.96, "Namibian": 158.78, "Nauruan": 153.98, "Nepalese": 150.86, "New Caledonian": 158.0, "a New Zealander": 164.94, "Ni-Vanuatu": 158.17, "Nicaraguan": 154.39, "Nigerian": 156.32,
-		"Nigerien": 158.25, "Niuean": 164.80, "Norwegian": 165.56, "Omani": 157.19, "Pakistani": 153.84, "Palauan": 156.22, "Palestinian": 158.75, "Panamanian": 155.47, "Papua New Guinean": 154.87,
-		"Paraguayan": 159.86, "Peruvian": 152.93, "Polish": 164.59, "Portuguese": 163.04, "Puerto Rican": 159.20, "Qatari": 159.38, "Romanian": 162.73, "Russian": 165.27, "Rwandan": 154.79, "Sahrawi": 157.82,
-		"Saint Lucian": 162.31, "Salvadoran": 154.55, "Sammarinese": 164.61, "Samoan": 161.97, "São Toméan": 158.91, "Saudi": 155.88, "Scottish": 163, "Senegalese": 162.52, "Serbian": 167.69,
-		"Seychellois": 162.08, "Sierra Leonean": 156.60, "Singaporean": 160.32, "Slovak": 167.47, "Slovene": 166.05, "a Solomon Islander": 154.42, "Somali": 156.06, "South African": 158.03,
-		"South Sudanese": 169.0, "Spanish": 163.40, "Sri Lankan": 154.56, "Sudanese": 156.04, "Surinamese": 160.66, "Swazi": 158.64, "Swedish": 165.70, "Swiss": 163.45, "Syrian": 158.65, "Taiwanese": 161.45,
-		"Tajik": 157.33, "Tanzanian": 156.6, "Thai": 157.87, "Tibetan": 158.75, "Togolese": 158.30, "Tongan": 165.52, "Trinidadian": 160.64, "Tunisian": 160.35, "Turkish": 160.50, "Turkmen": 161.73,
-		"Tuvaluan": 158.10, "Ugandan": 156.72, "Ukrainian": 166.34, "Uruguayan": 162.13, "Uzbek": 157.82, "Vatican": 162.5, "Venezuelan": 157.44, "Vietnamese": 153.59, "Vincentian": 160.70, "Yemeni": 153.97,
-		"Zairian": 155.25, "Zambian": 155.82, "Zimbabwean": 158.22,
-		"": 159.65 // default
+		'Afghan': 155.08, 'Albanian': 161.77, 'Algerian': 159.09, 'American.asian': 158.4, 'American.black': 163.6, 'American.latina': 158.9, 'American.white': 165, 'American': 163.54,
+		'Andorran': 162.90, 'Angolan': 157.31, 'Antiguan': 160.65, 'Argentinian': 159.18, 'Armenian': 158.09, 'Aruban': 158, 'Australian': 165.86, 'Austrian': 164.62, 'Azerbaijani': 158.25,
+		'Bahamian': 160.68, 'Bahraini': 156.69, 'Bangladeshi': 150.79, 'Barbadian': 165.28, 'Belarusian': 166.35, 'Belgian': 165.49, 'Belizean': 156.88, 'Beninese': 156.16, 'Bermudian': 160.69,
+		'Bhutanese': 153.63, 'Bissau-Guinean': 158.24, 'Bolivian': 153.89, 'Bosnian': 165.85, 'Brazilian': 160.86, 'British': 164.40, 'Bruneian': 153.98, 'Bulgarian': 164.80,
+		'Burkinabé': 160.19, 'Burmese': 154.37, 'Burundian': 154.02, 'Cambodian': 152.91, 'Cameroonian': 158.82, 'Canadian': 163.91, 'Cape Verdean': 161.65, 'Catalan': 163.4,
+		'Central African': 158.04, 'Chadian': 160.17, 'Chilean': 159.36, 'Chinese': 159.71, 'Colombian': 156.85, 'Comorian': 155.58, 'Congolese': 157.57, 'a Cook Islander': 163.19, 'Costa Rican': 156.37,
+		'Croatian': 165.63, 'Cuban': 157.98, 'Curaçaoan': 158, 'Cypriot': 162.27, 'Czech': 168.46, 'Danish': 167.21, 'Djiboutian': 156.11, 'Dominican': 159.03, 'Dominiquais': 164.34, 'Dutch': 168.72, 'East Timorese': 151.15,
+		'Ecuadorian': 154.23, 'Egyptian': 157.33, 'Emirati': 158.68, 'Equatoguinean': 157.33, 'Eritrean': 156.39, 'Estonian': 168.67, 'Ethiopian': 155.71, 'Fijian': 161.69, 'Filipina': 149.60,
+		'Finnish': 165.90, 'French Guianan': 157, 'French Polynesian': 164.52, 'French': 164.88, 'Gabonese': 158.84, 'Gambian': 160.93, 'Georgian': 162.98, 'German': 165.86, 'Ghanan': 157.91,
+		'Greek': 164.87, 'Greenlandic': 161.55, 'Grenadian': 164.51, 'Guamanian': 153.7, 'Guatemalan': 149.39, 'Guinean': 157.80, 'Guyanese': 157.92, 'Haitian': 158.72, 'Honduran': 153.84, 'Hungarian': 163.66,
+		'I-Kiribati': 157.00, 'Icelandic': 165.95, 'Indian': 152.59, 'Indonesian': 152.80, 'Iranian': 159.67, 'Iraqi': 158.67, 'Irish': 165.11, 'Israeli': 161.80, 'Italian': 164.61, 'Ivorian': 158.07,
+		'Jamaican': 163.12, 'Japanese': 158.31, 'Jordanian': 158.83, 'Kazakh': 158.58, 'Kenyan': 158.16, 'Kittitian': 159.20, 'Korean': 160.65, 'Kosovan': 165.7, 'Kurdish': 165, 'Kuwaiti': 159.43,
+		'Kyrgyz': 159.35, 'Laotian': 151.28, 'Latvian': 169.80, 'Lebanese': 162.43, 'Liberian': 157.3, 'Libyan': 162.08, 'a Liechtensteiner': 164.3, 'Lithuanian': 166.61, 'Luxembourgian': 164.43,
+		'Macedonian': 159.75, 'Malagasy': 151.18, 'Malawian': 154.40, 'Malaysian': 156.30, 'Maldivian': 155.02, 'Malian': 160.47, 'Maltese': 160.85, 'Marshallese': 151.31, 'Mauritanian': 157.72,
+		'Mauritian': 157.24, 'Mexican': 156.85, 'Micronesian': 156.09, 'Moldovan': 163.24, 'Monégasque': 164.61, 'Mongolian': 158.22, 'Montenegrin': 164.86, 'Moroccan': 157.82, 'Mosotho': 155.71,
+		'Motswana': 161.38, 'Mozambican': 153.96, 'Namibian': 158.78, 'Nauruan': 153.98, 'Nepalese': 150.86, 'New Caledonian': 158.0, 'a New Zealander': 164.94, 'Ni-Vanuatu': 158.17, 'Nicaraguan': 154.39, 'Nigerian': 156.32,
+		'Nigerien': 158.25, 'Niuean': 164.80, 'Norwegian': 165.56, 'Omani': 157.19, 'Pakistani': 153.84, 'Palauan': 156.22, 'Palestinian': 158.75, 'Panamanian': 155.47, 'Papua New Guinean': 154.87,
+		'Paraguayan': 159.86, 'Peruvian': 152.93, 'Polish': 164.59, 'Portuguese': 163.04, 'Puerto Rican': 159.20, 'Qatari': 159.38, 'Romanian': 162.73, 'Russian': 165.27, 'Rwandan': 154.79, 'Sahrawi': 157.82,
+		'Saint Lucian': 162.31, 'Salvadoran': 154.55, 'Sammarinese': 164.61, 'Samoan': 161.97, 'São Toméan': 158.91, 'Saudi': 155.88, 'Scottish': 163, 'Senegalese': 162.52, 'Serbian': 167.69,
+		'Seychellois': 162.08, 'Sierra Leonean': 156.60, 'Singaporean': 160.32, 'Slovak': 167.47, 'Slovene': 166.05, 'a Solomon Islander': 154.42, 'Somali': 156.06, 'South African': 158.03,
+		'South Sudanese': 169.0, 'Spanish': 163.40, 'Sri Lankan': 154.56, 'Sudanese': 156.04, 'Surinamese': 160.66, 'Swazi': 158.64, 'Swedish': 165.70, 'Swiss': 163.45, 'Syrian': 158.65, 'Taiwanese': 161.45,
+		'Tajik': 157.33, 'Tanzanian': 156.6, 'Thai': 157.87, 'Tibetan': 158.75, 'Togolese': 158.30, 'Tongan': 165.52, 'Trinidadian': 160.64, 'Tunisian': 160.35, 'Turkish': 160.50, 'Turkmen': 161.73,
+		'Tuvaluan': 158.10, 'Ugandan': 156.72, 'Ukrainian': 166.34, 'Uruguayan': 162.13, 'Uzbek': 157.82, 'Vatican': 162.5, 'Venezuelan': 157.44, 'Vietnamese': 153.59, 'Vincentian': 160.70, 'Yemeni': 153.97,
+		'Zairian': 155.25, 'Zambian': 155.82, 'Zimbabwean': 158.22,
+		'': 159.65, // default
 	};
 	const xyMeanHeight = {
-		"Afghan": 165.26, "Albanian": 173.39, "Algerian": 170.07, "American.asian": 172.5, "American.black": 177.4, "American.latina": 172.5, "American.white": 178.2, "American": 177.13,
-		"Andorran": 176.06, "Angolan": 167.31, "Antiguan": 164.8, "Argentinian": 174.62, "Armenian": 172.00, "Aruban": 165.1, "Australian": 179.20, "Austrian": 177.41, "Azerbaijani": 169.75,
-		"Bahamian": 172.75, "Bahraini": 167.74, "Bangladeshi": 163.81, "Barbadian": 175.92, "Belarusian": 178.44, "Belgian": 181.70, "Belizean": 168.73, "Beninese": 167.06, "Bermudian": 172.69,
-		"Bhutanese": 165.31, "Bissau-Guinean": 167.90, "Bolivian": 166.85, "Bosnian": 180.87, "Brazilian": 173.55, "British": 177.49, "Bruneian": 165.01, "Bulgarian": 178.24, "Burkinabé": 169.33,
-		"Burmese": 164.67, "Burundian": 166.64, "Cambodian": 163.33, "Cameroonian": 167.82, "Canadian": 178.09, "Cape Verdean": 173.22, "Catalan": 175.8, "Central African": 166.67,
-		"Chadian": 170.44, "Chilean": 171.81, "Chinese": 171.83, "Colombian": 169.50, "Comorian": 166.19, "Congolese": 167.45, "a Cook Islander": 174.77, "Costa Rican": 168.93, "Croatian": 180.78,
-		"Cuban": 172.00, "Curaçaoan": 165.1, "Cypriot": 174.99, "Czech": 180.10, "Danish": 181.39, "Djiboutian": 166.57, "Dominican": 172.75, "Dominiquais": 176.31, "Dutch": 182.54, "East Timorese": 159.79, "Ecuadorian": 167.08,
-		"Egyptian": 166.68, "Emirati": 170.46, "Equatoguinean": 167.36, "Eritrean": 168.36, "Estonian": 181.59, "Ethiopian": 166.23, "Fijian": 173.90, "Filipina": 163.23, "Finnish": 179.59,
-		"French Guianan": 168, "French Polynesian": 177.41, "French": 179.74, "Gabonese": 167.94, "Gambian": 165.40, "Georgian": 174.34, "German": 179.88, "Ghanan": 168.85, "Greek": 177.32, "Greenlandic": 174.87,
-		"Grenadian": 176.97, "Guamanian": 169.8, "Guatemalan": 163.41, "Guinean": 167.54, "Guyanese": 170.21, "Haitian": 172.64, "Honduran": 166.39, "Hungarian": 177.26, "I-Kiribati": 169.20, "Icelandic": 180.49,
-		"Indian": 164.95, "Indonesian": 163.55, "Iranian": 170.3, "Iraqi": 170.43, "Irish": 178.93, "Israeli": 176.86, "Italian": 177.77, "Ivorian": 166.53, "Jamaican": 174.53, "Japanese": 170.82, "Jordanian": 171.03,
-		"Kazakh": 171.14, "Kenyan": 169.64, "Kittitian": 169.62, "Korean": 173.46, "Kosovan": 179.5, "Kurdish": 175, "Kuwaiti": 172.07, "Kyrgyz": 171.24, "Laotian": 160.52, "Latvian": 181.42, "Lebanese": 174.39,
-		"Liberian": 163.66, "Libyan": 173.53, "a Liechtensteiner": 175.4, "Lithuanian": 179.03, "Luxembourgian": 177.86, "Macedonian": 178.33, "Malagasy": 161.55, "Malawian": 166, "Malaysian": 167.89,
-		"Maldivian": 167.68, "Malian": 171.3, "Maltese": 173.32, "Marshallese": 162.81, "Mauritanian": 163.28, "Mauritian": 170.50, "Mexican": 169.01, "Micronesian": 168.51, "Moldovan": 175.49,
-		"Monégasque": 177.77, "Mongolian": 169.07, "Montenegrin": 178.28, "Moroccan": 170.40, "Mosotho": 165.59, "Motswana": 171.63, "Mozambican": 164.80, "Namibian": 166.96, "Nauruan": 167.83,
-		"Nepalese": 162.32, "New Caledonian": 171.0, "a New Zealander": 177.74, "Ni-Vanuatu": 168.09, "Nicaraguan": 166.71, "Nigerian": 165.91, "Nigerien": 167.68, "Niuean": 175.83, "Norwegian": 179.75, "Omani": 169.16, "Pakistani": 166.95,
-		"Palauan": 167.69, "Palestinian": 172.09, "Panamanian": 168.49, "Papua New Guinean": 163.57, "Paraguayan": 172.83, "Peruvian": 165.23, "Polish": 177.33, "Portuguese": 172.93, "Puerto Rican": 172.08, "Qatari": 170.48,
-		"Romanian": 174.74, "Russian": 176.46, "Rwandan": 162.68, "Sahrawi": 170.40, "Saint Lucian": 171.95, "Salvadoran": 169.77, "Sammarinese": 177.77, "Samoan": 174.38, "São Toméan": 167.38,
-		"Saudi": 167.67, "Scottish": 177.6, "Senegalese": 173.14, "Serbian": 180.57, "Seychellois": 174.21, "Sierra Leonean": 164.41, "Singaporean": 172.57, "Slovak": 179.50, "Slovene": 179.80,
-		"a Solomon Islander": 164.14, "Somali": 166.60, "South African": 166.68, "South Sudanese": 175.9, "Spanish": 176.59, "Sri Lankan": 165.69, "Sudanese": 166.63, "Surinamese": 172.72, "Swazi": 168.13,
-		"Swedish": 179.74, "Swiss": 178.42, "Syrian": 170.43, "Taiwanese": 174.52, "Tajik": 171.26, "Tanzanian": 164.80, "Thai": 169.16, "Tibetan": 168.91, "Togolese": 168.33, "Tongan": 176.76,
-		"Trinidadian": 173.74, "Tunisian": 173.95, "Turkish": 174.21, "Turkmen": 171.97, "Tuvaluan": 169.64, "Ugandan": 165.62, "Ukrainian": 178.46, "Uruguayan": 173.43, "Uzbek": 169.38, "Vatican": 176.5,
-		"Venezuelan": 171.59, "Vietnamese": 164.45, "Vincentian": 172.78, "Yemeni": 159.89, "Zairian": 166.80, "Zambian": 166.52, "Zimbabwean": 168.59,
-		"": 171.42 // defaults
+		'Afghan': 165.26, 'Albanian': 173.39, 'Algerian': 170.07, 'American.asian': 172.5, 'American.black': 177.4, 'American.latina': 172.5, 'American.white': 178.2, 'American': 177.13,
+		'Andorran': 176.06, 'Angolan': 167.31, 'Antiguan': 164.8, 'Argentinian': 174.62, 'Armenian': 172.00, 'Aruban': 165.1, 'Australian': 179.20, 'Austrian': 177.41, 'Azerbaijani': 169.75,
+		'Bahamian': 172.75, 'Bahraini': 167.74, 'Bangladeshi': 163.81, 'Barbadian': 175.92, 'Belarusian': 178.44, 'Belgian': 181.70, 'Belizean': 168.73, 'Beninese': 167.06, 'Bermudian': 172.69,
+		'Bhutanese': 165.31, 'Bissau-Guinean': 167.90, 'Bolivian': 166.85, 'Bosnian': 180.87, 'Brazilian': 173.55, 'British': 177.49, 'Bruneian': 165.01, 'Bulgarian': 178.24, 'Burkinabé': 169.33,
+		'Burmese': 164.67, 'Burundian': 166.64, 'Cambodian': 163.33, 'Cameroonian': 167.82, 'Canadian': 178.09, 'Cape Verdean': 173.22, 'Catalan': 175.8, 'Central African': 166.67,
+		'Chadian': 170.44, 'Chilean': 171.81, 'Chinese': 171.83, 'Colombian': 169.50, 'Comorian': 166.19, 'Congolese': 167.45, 'a Cook Islander': 174.77, 'Costa Rican': 168.93, 'Croatian': 180.78,
+		'Cuban': 172.00, 'Curaçaoan': 165.1, 'Cypriot': 174.99, 'Czech': 180.10, 'Danish': 181.39, 'Djiboutian': 166.57, 'Dominican': 172.75, 'Dominiquais': 176.31, 'Dutch': 182.54, 'East Timorese': 159.79, 'Ecuadorian': 167.08,
+		'Egyptian': 166.68, 'Emirati': 170.46, 'Equatoguinean': 167.36, 'Eritrean': 168.36, 'Estonian': 181.59, 'Ethiopian': 166.23, 'Fijian': 173.90, 'Filipina': 163.23, 'Finnish': 179.59,
+		'French Guianan': 168, 'French Polynesian': 177.41, 'French': 179.74, 'Gabonese': 167.94, 'Gambian': 165.40, 'Georgian': 174.34, 'German': 179.88, 'Ghanan': 168.85, 'Greek': 177.32, 'Greenlandic': 174.87,
+		'Grenadian': 176.97, 'Guamanian': 169.8, 'Guatemalan': 163.41, 'Guinean': 167.54, 'Guyanese': 170.21, 'Haitian': 172.64, 'Honduran': 166.39, 'Hungarian': 177.26, 'I-Kiribati': 169.20, 'Icelandic': 180.49,
+		'Indian': 164.95, 'Indonesian': 163.55, 'Iranian': 170.3, 'Iraqi': 170.43, 'Irish': 178.93, 'Israeli': 176.86, 'Italian': 177.77, 'Ivorian': 166.53, 'Jamaican': 174.53, 'Japanese': 170.82, 'Jordanian': 171.03,
+		'Kazakh': 171.14, 'Kenyan': 169.64, 'Kittitian': 169.62, 'Korean': 173.46, 'Kosovan': 179.5, 'Kurdish': 175, 'Kuwaiti': 172.07, 'Kyrgyz': 171.24, 'Laotian': 160.52, 'Latvian': 181.42, 'Lebanese': 174.39,
+		'Liberian': 163.66, 'Libyan': 173.53, 'a Liechtensteiner': 175.4, 'Lithuanian': 179.03, 'Luxembourgian': 177.86, 'Macedonian': 178.33, 'Malagasy': 161.55, 'Malawian': 166, 'Malaysian': 167.89,
+		'Maldivian': 167.68, 'Malian': 171.3, 'Maltese': 173.32, 'Marshallese': 162.81, 'Mauritanian': 163.28, 'Mauritian': 170.50, 'Mexican': 169.01, 'Micronesian': 168.51, 'Moldovan': 175.49,
+		'Monégasque': 177.77, 'Mongolian': 169.07, 'Montenegrin': 178.28, 'Moroccan': 170.40, 'Mosotho': 165.59, 'Motswana': 171.63, 'Mozambican': 164.80, 'Namibian': 166.96, 'Nauruan': 167.83,
+		'Nepalese': 162.32, 'New Caledonian': 171.0, 'a New Zealander': 177.74, 'Ni-Vanuatu': 168.09, 'Nicaraguan': 166.71, 'Nigerian': 165.91, 'Nigerien': 167.68, 'Niuean': 175.83, 'Norwegian': 179.75, 'Omani': 169.16, 'Pakistani': 166.95,
+		'Palauan': 167.69, 'Palestinian': 172.09, 'Panamanian': 168.49, 'Papua New Guinean': 163.57, 'Paraguayan': 172.83, 'Peruvian': 165.23, 'Polish': 177.33, 'Portuguese': 172.93, 'Puerto Rican': 172.08, 'Qatari': 170.48,
+		'Romanian': 174.74, 'Russian': 176.46, 'Rwandan': 162.68, 'Sahrawi': 170.40, 'Saint Lucian': 171.95, 'Salvadoran': 169.77, 'Sammarinese': 177.77, 'Samoan': 174.38, 'São Toméan': 167.38,
+		'Saudi': 167.67, 'Scottish': 177.6, 'Senegalese': 173.14, 'Serbian': 180.57, 'Seychellois': 174.21, 'Sierra Leonean': 164.41, 'Singaporean': 172.57, 'Slovak': 179.50, 'Slovene': 179.80,
+		'a Solomon Islander': 164.14, 'Somali': 166.60, 'South African': 166.68, 'South Sudanese': 175.9, 'Spanish': 176.59, 'Sri Lankan': 165.69, 'Sudanese': 166.63, 'Surinamese': 172.72, 'Swazi': 168.13,
+		'Swedish': 179.74, 'Swiss': 178.42, 'Syrian': 170.43, 'Taiwanese': 174.52, 'Tajik': 171.26, 'Tanzanian': 164.80, 'Thai': 169.16, 'Tibetan': 168.91, 'Togolese': 168.33, 'Tongan': 176.76,
+		'Trinidadian': 173.74, 'Tunisian': 173.95, 'Turkish': 174.21, 'Turkmen': 171.97, 'Tuvaluan': 169.64, 'Ugandan': 165.62, 'Ukrainian': 178.46, 'Uruguayan': 173.43, 'Uzbek': 169.38, 'Vatican': 176.5,
+		'Venezuelan': 171.59, 'Vietnamese': 164.45, 'Vincentian': 172.78, 'Yemeni': 159.89, 'Zairian': 166.80, 'Zambian': 166.52, 'Zimbabwean': 168.59,
+		'': 171.42, // defaults
 	};
 
 	// Helper method - table lookup for nationality/race combinations
 	const nationalityMeanHeight = function(table, nationality, race, def) {
-		return table[nationality + "." + race] || table[nationality] || table["." + race] || table[""] || def;
+		return table[`${nationality }.${ race}`] || table[nationality] || table[`.${ race}`] || table[''] || def;
 	};
 
 	// Helper method: Generate a skewed normal random variable with the skew s
 	// Reference: http://azzalini.stat.unipd.it/SN/faq-r.html
 	const skewedGaussian = function(s) {
 		let randoms = gaussianPair();
-		if(s === 0) {
+		if (s === 0) {
 			// Don't bother, return an unskewed normal distribution
 			return randoms[0];
 		}
@@ -158,7 +162,7 @@ window.Height = (function(){
 	// Height multiplier generator; skewed gaussian according to global parameters
 	const multGenerator = function() {
 		let result = skewedGaussian(skew);
-		while(result < minMult || result > maxMult) {
+		while (result < minMult || result > maxMult) {
 			result = skewedGaussian(skew);
 		}
 		return result;
@@ -167,7 +171,7 @@ window.Height = (function(){
 	// Helper method: Generate a height based on the mean one and limited according to config.
 	const heightGenerator = function(mean) {
 		let result = mean * (1 + multGenerator() * spread);
-		while(result < minHeight || result > maxHeight) {
+		while (result < minHeight || result > maxHeight) {
 			result = mean * (1 + multGenerator() * spread);
 		}
 		return result;
@@ -175,11 +179,11 @@ window.Height = (function(){
 
 	// Helper method - apply age and genes to the adult height
 	const applyAge = function(height, age, genes) {
-		if(!_.isFinite(age) || age < 2 || age >= 20) {
+		if (!_.isFinite(age) || age < 2 || age >= 20) {
 			return height;
 		}
-		let minHeight = 0, midHeight = 0, midAge = 15;
-		switch(genes) {
+		let minHeight = 0; let midHeight = 0; let midAge = 15;
+		switch (genes) {
 			case 'XX': // female
 			case 'XXX': // Triple X syndrome female
 				minHeight = 85;
@@ -204,7 +208,7 @@ window.Height = (function(){
 				midAge = 14;
 				break;
 		}
-		if(age > midAge) {
+		if (age > midAge) {
 			// end of puberty to 20
 			return interpolate(midAge, midHeight, 20, height, age);
 		} else {
@@ -214,12 +218,12 @@ window.Height = (function(){
 	};
 
 	const _meanHeight = function(nationality, race, genes, age) {
-		if(_.isObject(nationality)) {
+		if (_.isObject(nationality)) {
 			// We got called with a single slave as the argument
 			return _meanHeight(nationality.nationality, nationality.race, nationality.genes, nationality.physicalAge + nationality.birthWeek / 52.0);
 		}
 		let result = 0;
-		switch(genes) {
+		switch (genes) {
 			case 'XX': // female
 				result = nationalityMeanHeight(xxMeanHeight, nationality, race);
 				break;
@@ -240,10 +244,10 @@ window.Height = (function(){
 				result = nationalityMeanHeight(xyMeanHeight, nationality, race) * 1.04;
 				break;
 			case 'Y': case 'Y0': case 'YY': case 'YYY':
-				console.log("Height.mean(): non-viable genes " + genes);
+				console.log(`Height.mean(): non-viable genes ${ genes}`);
 				break;
 			default:
-				console.log("Height.mean(): unknown genes " + genes + ", returning mean between XX and XY");
+				console.log(`Height.mean(): unknown genes ${ genes }, returning mean between XX and XY`);
 				result = nationalityMeanHeight(xxMeanHeight, nationality, race) * 0.5 + nationalityMeanHeight(xyMeanHeight, nationality, race) * 0.5;
 				break;
 		}
@@ -254,7 +258,7 @@ window.Height = (function(){
 		const mean = _meanHeight(nationality, race, genes, age);
 		// If we got called with a slave object and options, temporarily modify
 		// our configuration.
-		if(_.isObject(nationality) && _.isObject(race)) {
+		if (_.isObject(nationality) && _.isObject(race)) {
 			const currentConfig = _config();
 			_config(race);
 			const result = heightGenerator(mean);
@@ -265,7 +269,7 @@ window.Height = (function(){
 	};
 
 	const _forAge = function(height, age, genes) {
-		if(_.isObject(age)) {
+		if (_.isObject(age)) {
 			// We got called with a slave as a second argument
 			return applyAge(height, age.physicalAge + age.birthWeek / 52.0, age.genes);
 		} else {
@@ -312,35 +316,41 @@ window.Height = (function(){
  *
  *  This was modeled using the Height generator above. For some more information, see the comments for that.
  */
-window.Intelligence = (function(){
+window.Intelligence = (function() {
 	'use strict';
 
 	// Global configuration (for different game modes/options/types)
-	var mean = 0;
-	var minMult = -3.0;
-	var maxMult = 3.0;
-	var skew = 0.0;
-	var spread = 45;
-	var minIntelligence = -101;
-	var maxIntelligence = 100;
+	let mean = 0;
+	let minMult = -3.0;
+	let maxMult = 3.0;
+	let skew = 0.0;
+	let spread = 45;
+	let minIntelligence = -101;
+	let maxIntelligence = 100;
 
 	// Configuration method for the above values
 	const _config = function(conf) {
-		if(_.isUndefined(conf)) {
+		if (_.isUndefined(conf)) {
 			return {mean: mean, limitMult: [minMult, maxMult], limitIntelligence: [minIntelligence, maxIntelligence], skew: skew, spread: spread};
 		}
-		if(_.isFinite(conf.mean)) { mean = Math.clamp(conf.mean, -100, 100); }
-		if(_.isFinite(conf.skew)) { skew = Math.clamp(conf.skew, -1000, 1000); }
-		if(_.isFinite(conf.spread)) { spread = Math.clamp(conf.spread, 0.1, 100); }
-		if(_.isArray(conf.limitMult) && conf.limitMult.length === 2 && conf.limitMult[0] !== conf.limitMult[1] &&
+		if (_.isFinite(conf.mean)) {
+			mean = Math.clamp(conf.mean, -100, 100);
+		}
+		if (_.isFinite(conf.skew)) {
+			skew = Math.clamp(conf.skew, -1000, 1000);
+		}
+		if (_.isFinite(conf.spread)) {
+			spread = Math.clamp(conf.spread, 0.1, 100);
+		}
+		if (_.isArray(conf.limitMult) && conf.limitMult.length === 2 && conf.limitMult[0] !== conf.limitMult[1] &&
 			_.isFinite(conf.limitMult[0]) && _.isFinite(conf.limitMult[1])) {
 			minMult = Math.min(conf.limitMult[0], conf.limitMult[1]);
 			maxMult = Math.max(conf.limitMult[0], conf.limitMult[1]);
 		}
-		if(_.isArray(conf.limitIntelligence) && conf.limitIntelligence.length === 2 && conf.limitIntelligence[0] !== conf.limitIntelligence[1] &&
+		if (_.isArray(conf.limitIntelligence) && conf.limitIntelligence.length === 2 && conf.limitIntelligence[0] !== conf.limitIntelligence[1] &&
 			_.isFinite(conf.limitIntelligence[0]) && _.isFinite(conf.limitIntelligence[1])) {
-			minIntelligence = Math.clamp(Math.min(conf.limitIntelligence[0], conf.limitIntelligence[1]),-101,100);
-			maxIntelligence = Math.clamp(Math.max(conf.limitIntelligence[0], conf.limitIntelligence[1]),-101,100);
+			minIntelligence = Math.clamp(Math.min(conf.limitIntelligence[0], conf.limitIntelligence[1]), -101, 100);
+			maxIntelligence = Math.clamp(Math.max(conf.limitIntelligence[0], conf.limitIntelligence[1]), -101, 100);
 		}
 		return {limitMult: [minMult, maxMult], limitIntelligence: [minIntelligence, maxIntelligence], skew: skew, spread: spread};
 	};
@@ -349,7 +359,7 @@ window.Intelligence = (function(){
 	// Reference: http://azzalini.stat.unipd.it/SN/faq-r.html
 	const skewedGaussian = function(s) {
 		let randoms = gaussianPair();
-		if(s === 0) {
+		if (s === 0) {
 			// Don't bother, return an unskewed normal distribution
 			return randoms[0];
 		}
@@ -361,7 +371,7 @@ window.Intelligence = (function(){
 	// Intelligence multiplier generator; skewed gaussian according to global parameters
 	const multGenerator = function() {
 		let result = skewedGaussian(skew);
-		while(result < minMult || result > maxMult) {
+		while (result < minMult || result > maxMult) {
 			result = skewedGaussian(skew);
 		}
 		return result;
@@ -370,21 +380,21 @@ window.Intelligence = (function(){
 	// Helper method: Transform the values from multGenerator to have the appropriate mean and standard deviation.
 	const intelligenceGenerator = function() {
 		let result = multGenerator() * spread + mean;
-		while(result < minIntelligence || result > maxIntelligence) {
+		while (result < minIntelligence || result > maxIntelligence) {
 			result = multGenerator() * spread + mean;
 		}
 		return Math.ceil(result);
 	};
 
 	const _randomIntelligence = function(settings) {
-	if (settings) {
-		const currentConfig = _config();
-		_config(settings);
-		const result = intelligenceGenerator();
-		_config(currentConfig);
-		return result;
-	}
-	return intelligenceGenerator();
+		if (settings) {
+			const currentConfig = _config();
+			_config(settings);
+			const result = intelligenceGenerator();
+			_config(currentConfig);
+			return result;
+		}
+		return intelligenceGenerator();
 	};
 
 	return {
@@ -400,7 +410,7 @@ window.gaussianPair = function() {
 	return [r * Math.cos(sigma), r * Math.sin(sigma)];
 };
 
-if(!Array.prototype.findIndex) {
+if (!Array.prototype.findIndex) {
 	Array.prototype.findIndex = function(predicate) {
 		if (this == null) {
 			throw new TypeError('Array.prototype.find called on null or undefined');
@@ -408,12 +418,12 @@ if(!Array.prototype.findIndex) {
 		if (typeof predicate !== 'function') {
 			throw new TypeError('predicate must be a function');
 		}
-		var list = Object(this);
-		var length = list.length >>> 0;
-		var thisArg = arguments[1];
-		var value;
+		let list = Object(this);
+		let length = list.length >>> 0;
+		let thisArg = arguments[1];
+		let value;
 
-		for (var i = 0; i < length; i++) {
+		for (let i = 0; i < length; i++) {
 			value = list[i];
 			if (predicate.call(thisArg, value, i, list)) {
 				return i;
@@ -459,99 +469,112 @@ window.Categorizer = function() {
 	this.cats = Array.prototype.slice.call(arguments)
 		.filter(function(e, i, a) {
 			return e instanceof Array && e.length === 2 && typeof e[0] === 'number' && !isNaN(e[0]) &&
-				a.findIndex(function(val) { return e[0] === val[0]; }) === i; /* uniqueness test */ })
-		.sort(function(a, b) { return b[0] - a[0]; /* reverse sort */ });
+				a.findIndex(function(val) {
+					return e[0] === val[0];
+				}) === i; /* uniqueness test */
+		})
+		.sort(function(a, b) {
+			return b[0] - a[0]; /* reverse sort */
+		});
 };
 window.Categorizer.prototype.cat = function(val, def) {
-	var result = def;
-	if(typeof val === 'number' && !isNaN(val)) {
-		var foundCat = this.cats.find(function(e) { return val >= e[0]; });
-		if(foundCat) {
+	let result = def;
+	if (typeof val === 'number' && !isNaN(val)) {
+		let foundCat = this.cats.find(function(e) {
+			return val >= e[0];
+		});
+		if (foundCat) {
 			result = foundCat[1];
 		}
 	}
 	// Record the value for the result's getter, if it is an object
 	// and doesn't have the property yet
-	if(result === Object(result)) {
+	if (result === Object(result)) {
 		result.value = val;
 	}
 	return result;
 };
 
 window.commaNum = function(s) {
-	if(!s) { return 0; }
-	if(State.variables.formatNumbers !== 1) { return s; }
-	return s.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+	if (!s) {
+		return 0;
+	}
+	if (State.variables.formatNumbers !== 1) {
+		return s;
+	}
+	return s.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
 };
 
 window.cashFormat = function(s) {
-	if (!s) { s = 0; }
-	return "¤" + commaNum(s);
+	if (!s) {
+		s = 0;
+	}
+	return `¤${ commaNum(s)}`;
 };
 
 window.repFormat = function(s) {
 	const V = State.variables;
-	/*if (!s) { s = 0; }*/
-	if (V.cheatMode == 1 || V.debugMode == 1) {
+	/* if (!s) { s = 0; }*/
+	if (V.cheatMode === 1 || V.debugMode === 1) {
 		if (s > 0) {
-			return "@@.green;" + commaNum(Math.round(s * 100) / 100) + " rep@@";
+			return `@@.green;${ commaNum(Math.round(s * 100) / 100) } rep@@`;
 		} else if (s < 0) {
-			return "@@.red;" + commaNum(Math.round(s * 100) / 100) + " rep@@";
+			return `@@.red;${ commaNum(Math.round(s * 100) / 100) } rep@@`;
 		} else {
-			return commaNum(Math.round(s * 100) / 100) + " rep";
+			return `${commaNum(Math.round(s * 100) / 100) } rep`;
 		}
 	} else {
 		/* In order to calculate just how much any one category matters so we can show a "fuzzy" symbolic value to the player, we need to know how "busy" reputation was this week. To calculate this, I ADD income to expenses. Why? 100 - 100 and 10000 - 10000 BOTH are 0, but a +50 event matters a lot more in the first case than the second. I exclude overflow from the calculation because it's not a "real" expense for our purposes, and divide by half just to make percentages a bit easier. */
-		var weight = s/(((V.lastWeeksRepIncome.Total - V.lastWeeksRepExpenses.Total) + V.lastWeeksRepExpenses.overflow)/2);
+		let weight = s/(((V.lastWeeksRepIncome.Total - V.lastWeeksRepExpenses.Total) + V.lastWeeksRepExpenses.overflow)/2);
 		if (weight > 0.60) {
-			return `@@.green;+++++ rep@@`;
+			return '@@.green;+++++ rep@@';
 		} else if (weight > 0.45) {
-			return `@@.green;++++ rep@@`;
+			return '@@.green;++++ rep@@';
 		} else if (weight > 0.30) {
-			return `@@.green;+++ rep@@`;
+			return '@@.green;+++ rep@@';
 		} else if (weight > 0.15) {
-			return `@@.green;++ rep@@`;
+			return '@@.green;++ rep@@';
 		} else if (weight > 0.0) {
-			return `@@.green;+ rep@@`;
-		} else if (weight == 0) {
-			return `0 rep`;
+			return '@@.green;+ rep@@';
+		} else if (weight === 0) {
+			return '0 rep';
 		} else if (weight < -0.60) {
-			return `@@.red;----- rep@@`;
+			return '@@.red;----- rep@@';
 		} else if (weight < -0.45) {
-			return `@@.red;---- rep@@`;
+			return '@@.red;---- rep@@';
 		} else if (weight < -0.30) {
-			return `@@.red;--- rep@@`;
+			return '@@.red;--- rep@@';
 		} else if (weight < -0.15) {
-			return `@@.red;-- rep@@`;
+			return '@@.red;-- rep@@';
 		} else if (weight < 0) {
-			return `@@.red;- rep@@`;
+			return '@@.red;- rep@@';
 		}
-		/*return weight;*/
+		/* return weight;*/
 	}
 };
 
 window.budgetLine = function(category, title) {
-	var income;
-	var expenses;
-	var profits;
-	if (passage() === "Rep Budget") {
-		income = "$lastWeeksRepIncome";
-		expenses = "$lastWeeksRepExpenses";
-		profits = "$lastWeeksRepProfits";
-
-		return`<<if ${income}.${category} || ${expenses}.${category}>><tr>\
+	let income;
+	let expenses;
+	let profits;
+	if (passage() === 'Rep Budget') {
+		income = '$lastWeeksRepIncome';
+		expenses = '$lastWeeksRepExpenses';
+		profits = '$lastWeeksRepProfits';
+
+		return `<<if ${income}.${category} || ${expenses}.${category}>><tr>\
 		<td>${title}</td>\
 		<td><<print repFormat(${income}.${category})>></td>\
 		<td><<print repFormat(${expenses}.${category})>></td>\
 		<<set ${profits}.${category} = (${income}.${category} + ${expenses}.${category})>>\
 		<td><<print repFormat(${profits}.${category})>></td>\
 		</tr><</if>>`;
-	} else if (passage() === "Costs Budget") {
-		income = "$lastWeeksCashIncome";
-		expenses = "$lastWeeksCashExpenses";
-		profits = "$lastWeeksCashProfits";
+	} else if (passage() === 'Costs Budget') {
+		income = '$lastWeeksCashIncome';
+		expenses = '$lastWeeksCashExpenses';
+		profits = '$lastWeeksCashProfits';
 
-		return`<<if ${income}.${category} || ${expenses}.${category}>><tr>\
+		return `<<if ${income}.${category} || ${expenses}.${category}>><tr>\
 		<td>${title}</td>\
 		<td>\
 			<<if (${income}.${category}) > 0>>\
@@ -579,24 +602,25 @@ window.budgetLine = function(category, title) {
 		</td>\
 		</tr><</if>>`;
 	}
-
 };
 
 window.massFormat = function(s) {
-	if(!s) { s = 0; }
-	if(s >= 1000) {
+	if (!s) {
+		s = 0;
+	}
+	if (s >= 1000) {
 		s = commaNum(Math.trunc(s / 1000));
-		if(s !== 1) {
-			return s+" tons";
+		if (s !== 1) {
+			return `${s} tons`;
 		} else {
-			return s+" ton";
+			return `${s} ton`;
 		}
 	} else {
-	return commaNum(s)+" kg";
+		return `${commaNum(s)} kg`;
 	}
 };
 
-window.isFloat = function(n){
+window.isFloat = function(n) {
 	return n === +n && n !== (n|0);
 };
 
@@ -605,31 +629,31 @@ window.isInt = function(n) {
 };
 
 window.numberWithCommas = function(x) {
-	return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
+	return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
 };
 
-window.numberToWords = function (x) {
+window.numberToWords = function(x) {
 	const V = State.variables;
 	let max = V.showNumbersMax;
 
 	if (V.showNumbers !== 2) {
 		if (x === 0) {
-			return "zero";
+			return 'zero';
 		}
 
-		var ONE_TO_NINETEEN = [
-			"one", "two", "three", "four", "five",
-			"six", "seven", "eight", "nine", "ten",
-			"eleven", "twelve", "thirteen", "fourteen", "fifteen",
-			"sixteen", "seventeen", "eighteen", "nineteen"
+		let ONE_TO_NINETEEN = [
+			'one', 'two', 'three', 'four', 'five',
+			'six', 'seven', 'eight', 'nine', 'ten',
+			'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen',
+			'sixteen', 'seventeen', 'eighteen', 'nineteen',
 		];
 
-		var TENS = [
-			"ten", "twenty", "thirty", "forty", "fifty",
-			"sixty", "seventy", "eighty", "ninety"
+		let TENS = [
+			'ten', 'twenty', 'thirty', 'forty', 'fifty',
+			'sixty', 'seventy', 'eighty', 'ninety',
 		];
 
-		var SCALES = ["thousand", "million", "billion", "trillion"];
+		let SCALES = ['thousand', 'million', 'billion', 'trillion'];
 
 		// helper function for use with Array.filter
 		function isTruthy(item) {
@@ -638,7 +662,7 @@ window.numberToWords = function (x) {
 
 		// convert a number into "chunks" of 0-999
 		function chunk(number) {
-			var thousands = [];
+			let thousands = [];
 
 			while (number > 0) {
 				thousands.push(number % 1000);
@@ -650,7 +674,7 @@ window.numberToWords = function (x) {
 
 		// translate a number from 1-999 into English
 		function inEnglish(number) {
-			var thousands, hundreds, tens, ones, words = [];
+			let hundreds; let tens; let ones; let words = [];
 
 			if (number < 20) {
 				return ONE_TO_NINETEEN[number - 1]; // may be undefined
@@ -663,40 +687,40 @@ window.numberToWords = function (x) {
 				words.push(TENS[tens - 1]);
 				words.push(inEnglish(ones));
 
-				return words.filter(isTruthy).join("-");
+				return words.filter(isTruthy).join('-');
 			}
 
 			hundreds = number / 100 | 0;
 			words.push(inEnglish(hundreds));
-			words.push("hundred");
+			words.push('hundred');
 			words.push(inEnglish(number % 100));
 
-			return words.filter(isTruthy).join(" ");
+			return words.filter(isTruthy).join(' ');
 		}
 
 		// append the word for a scale. Made for use with Array.map
 		function appendScale(chunk, exp) {
-			var scale;
+			let scale;
 			if (!chunk) {
 				return null;
 			}
 			scale = SCALES[exp - 1];
-			return [chunk, scale].filter(isTruthy).join(" ");
+			return [chunk, scale].filter(isTruthy).join(' ');
 		}
 
-		var string = chunk(x)
+		let string = chunk(x)
 			.map(inEnglish)
 			.map(appendScale)
 			.filter(isTruthy)
 			.reverse()
-			.join(" ");
+			.join(' ');
 
 		if (V.showNumbers === 1) {
 			if (x <= max) {
 				if (x > 0) {
 					return string;
 				} else {
-					return "negative " + string;
+					return `negative ${ string}`;
 				}
 			} else {
 				return commaNum(x);
@@ -705,7 +729,7 @@ window.numberToWords = function (x) {
 			if (x > 0) {
 				return string;
 			} else {
-				return "negative " + string;
+				return `negative ${ string}`;
 			}
 		}
 	} else {
@@ -713,23 +737,23 @@ window.numberToWords = function (x) {
 	}
 };
 
-window.jsRandom = function(min,max) {
+window.jsRandom = function(min, max) {
 	return Math.floor(Math.random()*(max-min+1)+min);
 };
 
-window.jsRandomMany = function (arr, count) {
-	var result = [];
-	var _tmp = arr.slice();
-	for (var i = 0; i < count; i++) {
-		var index = Math.ceil(Math.random() * 10) % _tmp.length;
+window.jsRandomMany = function(arr, count) {
+	let result = [];
+	let _tmp = arr.slice();
+	for (let i = 0; i < count; i++) {
+		let index = Math.ceil(Math.random() * 10) % _tmp.length;
 		result.push(_tmp.splice(index, 1)[0]);
 	}
 	return result;
 };
 
-//This function wants an array - which explains why it works like array.random(). Give it one or you'll face a NaN
+// This function wants an array - which explains why it works like array.random(). Give it one or you'll face a NaN
 window.jsEither = function(choices) {
-	var index = Math.floor(Math.random() * choices.length);
+	let index = Math.floor(Math.random() * choices.length);
 	return choices[index];
 };
 
@@ -750,7 +774,7 @@ jQuery(document).trigger('categorizer.ready');
 window.hashChoice = function hashChoice(obj) {
 	let randint = Math.floor(Math.random()*hashSum(obj));
 	let ret;
-	Object.keys(obj).some(key => {
+	Object.keys(obj).some((key) => {
 		if (randint < obj[key]) {
 			ret = key;
 			return true;
@@ -764,18 +788,22 @@ window.hashChoice = function hashChoice(obj) {
 
 window.hashSum = function hashSum(obj) {
 	let sum = 0;
-	Object.keys(obj).forEach(key => { sum += obj[key]; });
+	Object.keys(obj).forEach((key) => {
+		sum += obj[key];
+	});
 	return sum;
 };
 
 window.arr2obj = function arr2obj(arr) {
 	const obj = {};
-	arr.forEach(item => { obj[item] = 1; });
+	arr.forEach((item) => {
+		obj[item] = 1;
+	});
 	return obj;
 };
 
 window.hashPush = function hashPush(obj, ...rest) {
-	rest.forEach(item => {
+	rest.forEach((item) => {
 		if (obj[item] === undefined) obj[item] = 1;
 		else obj[item] += 1;
 	});
@@ -783,7 +811,7 @@ window.hashPush = function hashPush(obj, ...rest) {
 
 window.weightedArray2HashMap = function weightedArray2HashMap(arr) {
 	const obj = {};
-	arr.forEach(item => {
+	arr.forEach((item) => {
 		if (obj[item] === undefined) obj[item] = 1;
 		else obj[item] += 1;
 	});
@@ -799,7 +827,7 @@ window.between = function between(a, low, high) {
 
 // generate a random, almost unique ID that is compliant (possibly) with RFC 4122
 window.generateNewID = function generateNewID() {
-	let date = Date.now(); //high-precision timer
+	let date = Date.now(); // high-precision timer
 	let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
 		let r = (date + Math.random()*16)%16 | 0;
 		date = Math.floor(date/16);
@@ -815,65 +843,71 @@ window.arraySwap = function arraySwap(array, a, b) {
 };
 
 // circumvents sugarcube, allowing a plain HTML5 UI within it
-window.html5passage = function html5passage(passage_function) {
-	$(document).one(':passagedisplay', ev => {
-		const element = document.createElement("div");
-		element.classList.add("passage");
-		document.getElementById("passages").appendChild(element);
-		passage_function(element);
+window.html5passage = function html5passage(passageFunction) {
+	$(document).one(':passagedisplay', (ev) => {
+		const element = document.createElement('div');
+		element.classList.add('passage');
+		document.getElementById('passages').appendChild(element);
+		passageFunction(element);
 		$(document).off(':passagedisplay');
 	});
 };
 
-//If you want to include a SugarCube passage in a JS function use this. The result must be printed using the <<print>> macro. passageTitle must be a string.
+// If you want to include a SugarCube passage in a JS function use this. The result must be printed using the <<print>> macro. passageTitle must be a string.
 window.jsInclude = function(passageTitle) {
-	if (Story.has(passageTitle))
+	if (Story.has(passageTitle)) {
 		return Story.get(passageTitle).processText();
-	else
+	} else {
 		return `<span class="red">Error: Passage ${passageTitle} does not exist.</span>`;
+	}
 };
 
 window.capFirstChar = function capFirstChar(string) {
 	return string.charAt(0).toUpperCase() + string.substr(1);
 };
 
-window.getSlaveDevotionClass = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if ((!slave) || (!State))
+window.getSlaveDevotionClass = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if ((!slave) || (!State)) {
 		return undefined;
-	if ('mindbroken' === slave.fetish)
+	}
+	if ('mindbroken' === slave.fetish) {
 		return 'mindbroken';
-	if (slave.devotion < -95)
+	}
+	if (slave.devotion < -95) {
 		return 'very-hateful';
-	else if (slave.devotion < -50)
+	} else if (slave.devotion < -50) {
 		return 'hateful';
-	else if (slave.devotion < -20)
+	} else if (slave.devotion < -20) {
 		return 'resistant';
-	else if (slave.devotion <= 20)
+	} else if (slave.devotion <= 20) {
 		return 'ambivalent';
-	else if (slave.devotion <= 50)
+	} else if (slave.devotion <= 50) {
 		return 'accepting';
-	else if (slave.devotion <= 95)
+	} else if (slave.devotion <= 95) {
 		return 'devoted';
-	else
+	} else {
 		return 'worshipful';
+	}
 };
 
-window.getSlaveTrustClass = /** @param {App.Entity.SlaveState} slave */ function (slave) {
-	if ((!slave) || (!State))
+window.getSlaveTrustClass = /** @param {App.Entity.SlaveState} slave */ function(slave) {
+	if ((!slave) || (!State)) {
 		return undefined;
+	}
 
-	if ('mindbroken' === slave.fetish)
+	if ('mindbroken' === slave.fetish) {
 		return '';
+	}
 
-	if (slave.trust < -95)
+	if (slave.trust < -95) {
 		return 'extremely-terrified';
-	else if (slave.trust < -50)
+	} else if (slave.trust < -50) {
 		return 'terrified';
-	else if (slave.trust < -20)
+	} else if (slave.trust < -20) {
 		return 'frightened';
-	else if (slave.trust <= 20)
+	} else if (slave.trust <= 20) {
 		return 'fearful';
-	else if (slave.trust <= 50) {
+	} else if (slave.trust <= 50) {
 		if (slave.devotion < -20) return 'hate-careful';
 		else return 'careful';
 	} else if (slave.trust <= 95) {
@@ -885,451 +919,461 @@ window.getSlaveTrustClass = /** @param {App.Entity.SlaveState} slave */ function
 	}
 };
 
-//takes an integer e.g. $activeSlave.hLength, returns a string in the format 10 inches
+// takes an integer e.g. $activeSlave.hLength, returns a string in the format 10 inches
 window.cmToInchString = function(s) {
-	return Math.round(s/2.54) + (Math.round(s/2.54) === 1?" inch":" inches");
+	return Math.round(s/2.54) + (Math.round(s/2.54) === 1?' inch':' inches');
 };
 
-//takes an integer e.g. $activeSlave.height, returns a string in the format 6'5"
+// takes an integer e.g. $activeSlave.height, returns a string in the format 6'5"
 window.cmToFootInchString = function(s) {
-	if (Math.round(s/2.54) < 12)
+	if (Math.round(s/2.54) < 12) {
 		return cmToInchString(s);
-	return Math.trunc(Math.round(s/2.54)/12) + `'` + Math.round(s/2.54)%12 + `"`;
+	}
+	return `${Math.trunc(Math.round(s/2.54)/12) }'${ Math.round(s/2.54)%12 }"`;
 };
 
-//takes a dick value e.g. $activeSlave.dick, returns a string in the format 6 inches
+// takes a dick value e.g. $activeSlave.dick, returns a string in the format 6 inches
 window.dickToInchString = function(s) {
 	return cmToInchString(dickToCM(s));
 };
 
-//takes a dick value e.g. $activeSlave.dick, returns an int of the dick length in cm
+// takes a dick value e.g. $activeSlave.dick, returns an int of the dick length in cm
 window.dickToCM = function(s) {
 	return (s<9?s*5:(s===9?50:s*6));
 };
 
-//takes a ball value e.g. $activeSlave.balls, returns a string in the format 3 inches
+// takes a ball value e.g. $activeSlave.balls, returns a string in the format 3 inches
 window.ballsToInchString = function(s) {
 	return cmToInchString(ballsToCM(s));
 };
 
-//takes a ball value e.g. $activeSlave.balls, returns an int of the ball size in cm
+// takes a ball value e.g. $activeSlave.balls, returns an int of the ball size in cm
 window.ballsToCM = function(s) {
-	if (s < 2)
+	if (s < 2) {
 		return 0;
+	}
 	return (s<10?(s-1)*2:s*2);
 };
 
-//takes a dick value e.g. $activeSlave.dick, returns a string in the format of either `20cm (8 inches)`, `8 inches`, or `20cm`
+// takes a dick value e.g. $activeSlave.dick, returns a string in the format of either `20cm (8 inches)`, `8 inches`, or `20cm`
 window.dickToEitherUnit = function(s) {
-	if (State.variables.showInches === 1)
-		return dickToCM(s) + "cm (" + dickToInchString(s) + ")";
-	if (State.variables.showInches === 2)
+	if (State.variables.showInches === 1) {
+		return `${dickToCM(s) }cm (${ dickToInchString(s) })`;
+	}
+	if (State.variables.showInches === 2) {
 		return dickToInchString(s);
-	return dickToCM(s) + "cm";
+	}
+	return `${dickToCM(s) }cm`;
 };
 
-//takes a ball value e.g. $activeSlave.balls, returns a string in the format of either `20cm (8 inches)`, `8 inches`, or `20cm`
+// takes a ball value e.g. $activeSlave.balls, returns a string in the format of either `20cm (8 inches)`, `8 inches`, or `20cm`
 window.ballsToEitherUnit = function(s) {
-	if (State.variables.showInches === 1)
-		return ballsToCM(s) + "cm (" + ballsToInchString(s) + ")";
-	if (State.variables.showInches === 2)
+	if (State.variables.showInches === 1) {
+		return `${ballsToCM(s) }cm (${ ballsToInchString(s) })`;
+	}
+	if (State.variables.showInches === 2) {
 		return ballsToInchString(s);
-	return ballsToCM(s) + "cm";
+	}
+	return `${ballsToCM(s) }cm`;
 };
 
-//takes an int in centimeters e.g. $activeSlave.height, returns a string in the format of either `200cm (6'7")`, `6'7"`, or `200cm`
+// takes an int in centimeters e.g. $activeSlave.height, returns a string in the format of either `200cm (6'7")`, `6'7"`, or `200cm`
 window.heightToEitherUnit = function(s) {
-	if (State.variables.showInches === 1)
-		return s + "cm (" + cmToFootInchString(s) + ")";
-	if (State.variables.showInches === 2)
+	if (State.variables.showInches === 1) {
+		return `${s }cm (${ cmToFootInchString(s) })`;
+	}
+	if (State.variables.showInches === 2) {
 		return cmToFootInchString(s);
-	return s + "cm";
+	}
+	return `${s }cm`;
 };
 
-//takes an int in centimeters e.g. $activeSlave.hLength, returns a string in the format of either `30cm (12 inches)`, `12 inches`, or `30cm`
+// takes an int in centimeters e.g. $activeSlave.hLength, returns a string in the format of either `30cm (12 inches)`, `12 inches`, or `30cm`
 window.lengthToEitherUnit = function(s) {
-	if (State.variables.showInches === 1)
-		return s + "cm (" + cmToInchString(s) + ")";
-	if (State.variables.showInches === 2)
+	if (State.variables.showInches === 1) {
+		return `${s }cm (${ cmToInchString(s) })`;
+	}
+	if (State.variables.showInches === 2) {
 		return cmToInchString(s);
-	return s + "cm";
+	}
+	return `${s }cm`;
 };
 
 /* decoration should be passed as "facilityDecoration" in quotes. For example, ValidateFacilityDecoration("brothelDecoration"). The quotes are important, do not pass it as a story variable. */
 window.ValidateFacilityDecoration = function ValidateFacilityDecoration(decoration) {
 	const V = State.variables;
 	switch (V[decoration]) {
-		case "standard":
-			/*nothing to do */
+		case 'standard':
+			/* nothing to do */
 			break;
-		case "Supremacist":
+		case 'Supremacist':
 			if (!Number.isFinite(V.arcologies[0].FSSupremacist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Subjugationist":
+		case 'Subjugationist':
 			if (!Number.isFinite(V.arcologies[0].FSSubjugationist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Gender Radicalist":
+		case 'Gender Radicalist':
 			if (!Number.isFinite(V.arcologies[0].FSGenderRadicalist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Gender Fundamentalist":
+		case 'Gender Fundamentalist':
 			if (!Number.isFinite(V.arcologies[0].FSGenderFundamentalist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Paternalist":
+		case 'Paternalist':
 			if (!Number.isFinite(V.arcologies[0].FSPaternalist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Body Purist":
+		case 'Body Purist':
 			if (!Number.isFinite(V.arcologies[0].FSBodyPurist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Transformation Fetishist":
+		case 'Transformation Fetishist':
 			if (!Number.isFinite(V.arcologies[0].FSTransformationFetishist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Youth Preferentialist":
+		case 'Youth Preferentialist':
 			if (!Number.isFinite(V.arcologies[0].FSYouthPreferentialist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Maturity Preferentialist":
+		case 'Maturity Preferentialist':
 			if (!Number.isFinite(V.arcologies[0].FSMaturityPreferentialist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Slimness Enthusiast":
+		case 'Slimness Enthusiast':
 			if (!Number.isFinite(V.arcologies[0].FSSlimnessEnthusiast)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Asset Expansionist":
+		case 'Asset Expansionist':
 			if (!Number.isFinite(V.arcologies[0].FSAssetExpansionist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Pastoralist":
+		case 'Pastoralist':
 			if (!Number.isFinite(V.arcologies[0].FSPastoralist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Physical Idealist":
+		case 'Physical Idealist':
 			if (!Number.isFinite(V.arcologies[0].FSPhysicalIdealist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Chattel Religionist":
+		case 'Chattel Religionist':
 			if (!Number.isFinite(V.arcologies[0].FSChattelReligionist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Degradationist":
+		case 'Degradationist':
 			if (!Number.isFinite(V.arcologies[0].FSDegradationist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Roman Revivalist":
+		case 'Roman Revivalist':
 			if (!Number.isFinite(V.arcologies[0].FSRomanRevivalist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Egyptian Revivalist":
+		case 'Egyptian Revivalist':
 			if (!Number.isFinite(V.arcologies[0].FSEgyptianRevivalist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Edo Revivalist":
+		case 'Edo Revivalist':
 			if (!Number.isFinite(V.arcologies[0].FSEdoRevivalist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Arabian Revivalist":
+		case 'Arabian Revivalist':
 			if (!Number.isFinite(V.arcologies[0].FSArabianRevivalist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Chinese Revivalist":
+		case 'Chinese Revivalist':
 			if (!Number.isFinite(V.arcologies[0].FSChineseRevivalist)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Repopulation Focus":
+		case 'Repopulation Focus':
 			if (!Number.isFinite(V.arcologies[0].FSRepopulationFocus)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Eugenics":
+		case 'Eugenics':
 			if (!Number.isFinite(V.arcologies[0].FSRestart)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
-		case "Hedonistic":
+		case 'Hedonistic':
 			if (!Number.isFinite(V.arcologies[0].FSHedonisticDecadence)) {
-				V[decoration] = "standard";
+				V[decoration] = 'standard';
 			}
 			break;
 		default:
-			V[decoration] = "standard";
+			V[decoration] = 'standard';
 	}
 };
 
-window.FSChange = function FSChange(FS, magnitude, bonus_multiplier) {
-	"use strict";
+window.FSChange = function FSChange(FS, magnitude, bonusMultiplier) {
+	'use strict';
 	const V = State.variables;
-	let errorMessage = "";
+	let errorMessage = '';
 
 	switch (FS) {
-		case "Supremacist":
+		case 'Supremacist':
 			if (Number.isFinite(V.arcologies[0].FSSupremacist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSupremacist / V.FSLockinLevel) / 3, "futureSocieties"); //Reducing the reputation impact of slaves that are not adhering to societal ideals properly
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSupremacist / V.FSLockinLevel) / 3, 'futureSocieties'); // Reducing the reputation impact of slaves that are not adhering to societal ideals properly
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSupremacist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSupremacist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSSupremacist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSSupremacist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "Subjugationist":
+		case 'Subjugationist':
 			if (Number.isFinite(V.arcologies[0].FSSubjugationist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSubjugationist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSubjugationist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSubjugationist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSubjugationist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSSubjugationist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSSubjugationist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "GenderRadicalist":
+		case 'GenderRadicalist':
 			if (Number.isFinite(V.arcologies[0].FSGenderRadicalist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderRadicalist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderRadicalist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderRadicalist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderRadicalist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSGenderRadicalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSGenderRadicalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "GenderFundamentalist":
+		case 'GenderFundamentalist':
 			if (Number.isFinite(V.arcologies[0].FSGenderFundamentalist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderFundamentalist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderFundamentalist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderFundamentalist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSGenderFundamentalist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSGenderFundamentalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSGenderFundamentalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "Paternalist":
+		case 'Paternalist':
 			if (Number.isFinite(V.arcologies[0].FSPaternalist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPaternalist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPaternalist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPaternalist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPaternalist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSPaternalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSPaternalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "Degradationist":
+		case 'Degradationist':
 			if (Number.isFinite(V.arcologies[0].FSDegradationist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSDegradationist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSDegradationist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSDegradationist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSDegradationist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSDegradationist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSDegradationist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "AssetExpansionist":
+		case 'AssetExpansionist':
 			if (Number.isFinite(V.arcologies[0].FSAssetExpansionist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAssetExpansionist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAssetExpansionist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAssetExpansionist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAssetExpansionist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSAssetExpansionist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSAssetExpansionist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "SlimnessEnthusiast":
+		case 'SlimnessEnthusiast':
 			if (Number.isFinite(V.arcologies[0].FSSlimnessEnthusiast)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSlimnessEnthusiast / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSlimnessEnthusiast / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSlimnessEnthusiast / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSSlimnessEnthusiast / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSSlimnessEnthusiast += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSSlimnessEnthusiast += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "TransformationFetishist":
+		case 'TransformationFetishist':
 			if (Number.isFinite(V.arcologies[0].FSTransformationFetishist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSTransformationFetishist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSTransformationFetishist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSTransformationFetishist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSTransformationFetishist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSTransformationFetishist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSTransformationFetishist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "BodyPurist":
+		case 'BodyPurist':
 			if (Number.isFinite(V.arcologies[0].FSBodyPurist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSBodyPurist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSBodyPurist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSBodyPurist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSBodyPurist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSBodyPurist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSBodyPurist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "MaturityPreferentialist":
+		case 'MaturityPreferentialist':
 			if (Number.isFinite(V.arcologies[0].FSMaturityPreferentialist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSMaturityPreferentialist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSMaturityPreferentialist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSMaturityPreferentialist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSMaturityPreferentialist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSMaturityPreferentialist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSMaturityPreferentialist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "YouthPreferentialist":
+		case 'YouthPreferentialist':
 			if (Number.isFinite(V.arcologies[0].FSYouthPreferentialist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSYouthPreferentialist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSYouthPreferentialist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSYouthPreferentialist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSYouthPreferentialist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSYouthPreferentialist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSYouthPreferentialist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "Pastoralist":
+		case 'Pastoralist':
 			if (Number.isFinite(V.arcologies[0].FSPastoralist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPastoralist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPastoralist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPastoralist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPastoralist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSPastoralist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSPastoralist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "PhysicalIdealist":
+		case 'PhysicalIdealist':
 			if (Number.isFinite(V.arcologies[0].FSPhysicalIdealist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPhysicalIdealist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPhysicalIdealist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPhysicalIdealist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSPhysicalIdealist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSPhysicalIdealist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSPhysicalIdealist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "ChattelReligionist":
+		case 'ChattelReligionist':
 			if (Number.isFinite(V.arcologies[0].FSChattelReligionist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChattelReligionist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChattelReligionist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChattelReligionist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChattelReligionist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSChattelReligionist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSChattelReligionist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "RomanRevivalist":
+		case 'RomanRevivalist':
 			if (Number.isFinite(V.arcologies[0].FSRomanRevivalist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRomanRevivalist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRomanRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRomanRevivalist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRomanRevivalist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSRomanRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSRomanRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "AztecRevivalist":
+		case 'AztecRevivalist':
 			if (Number.isFinite(V.activeArcology.FSAztecRevivalist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAztecRevivalist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAztecRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAztecRevivalist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSAztecRevivalist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSAztecRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSAztecRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "EgyptianRevivalist":
+		case 'EgyptianRevivalist':
 			if (Number.isFinite(V.arcologies[0].FSEgyptianRevivalist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEgyptianRevivalist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSEgyptianRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSEgyptianRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "EdoRevivalist":
+		case 'EdoRevivalist':
 			if (Number.isFinite(V.arcologies[0].FSEdoRevivalist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEdoRevivalist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEdoRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEdoRevivalist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSEdoRevivalist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSEdoRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSEdoRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "ArabianRevivalist":
+		case 'ArabianRevivalist':
 			if (Number.isFinite(V.arcologies[0].FSArabianRevivalist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSArabianRevivalist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSArabianRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSArabianRevivalist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSArabianRevivalist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSArabianRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSArabianRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "ChineseRevivalist":
+		case 'ChineseRevivalist':
 			if (Number.isFinite(V.arcologies[0].FSChineseRevivalist)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChineseRevivalist / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChineseRevivalist / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChineseRevivalist / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSChineseRevivalist / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSChineseRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSChineseRevivalist += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "Repopulationist":
+		case 'Repopulationist':
 			if (Number.isFinite(V.arcologies[0].FSRepopulationFocus)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRepopulationFocus / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRepopulationFocus / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRepopulationFocus / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRepopulationFocus / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSRepopulationFocus += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSRepopulationFocus += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "Eugenics":
+		case 'Eugenics':
 			if (Number.isFinite(V.arcologies[0].FSRestart)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRestart / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRestart / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRestart / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSRestart / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSRestart += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSRestart += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
-		case "Hedonism":
+		case 'Hedonism':
 			if (Number.isFinite(V.arcologies[0].FSHedonisticDecadence)) {
 				if (magnitude < 0) {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSHedonisticDecadence / V.FSLockinLevel) / 3, "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSHedonisticDecadence / V.FSLockinLevel) / 3, 'futureSocieties');
 				} else {
-					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSHedonisticDecadence / V.FSLockinLevel), "futureSocieties");
+					repX(magnitude * V.FSSingleSlaveRep * (V.arcologies[0].FSHedonisticDecadence / V.FSLockinLevel), 'futureSocieties');
 				}
-				V.arcologies[0].FSHedonisticDecadence += 0.05 * magnitude * V.FSSingleSlaveRep * (bonus_multiplier || 1);
+				V.arcologies[0].FSHedonisticDecadence += 0.05 * magnitude * V.FSSingleSlaveRep * (bonusMultiplier || 1);
 			}
 			break;
 		default:
-			errorMessage += "<span class='red'>ERROR: bad FS reference</span>";
+			errorMessage += '<span class=\'red\'>ERROR: bad FS reference</span>';
 	}
 	return errorMessage;
 };
@@ -1339,18 +1383,18 @@ window.FSChangePorn = function FSChangePorn(FS, magnitude) {
 };
 
 window.ordinalSuffix = function ordinalSuffix(i) {
-	var j = i % 10,
-		k = i % 100;
+	let j = i % 10;
+	let k = i % 100;
 	if (j === 1 && k !== 11) {
-		return i + "st";
+		return `${i }st`;
 	}
 	if (j === 2 && k !== 12) {
-		return i + "nd";
+		return `${i }nd`;
 	}
 	if (j === 3 && k !== 13) {
-		return i + "rd";
+		return `${i }rd`;
 	}
-	return i + "th";
+	return `${i }th`;
 };
 
 window.removeDuplicates = function removeDuplicates(array) {
@@ -1360,9 +1404,9 @@ window.removeDuplicates = function removeDuplicates(array) {
 window.induceLactation = /** @param {App.Entity.SlaveState} slave */ function induceLactation(slave) {
 	let pronouns = getPronouns(slave);
 	let His = capFirstChar(pronouns.possessive);
-	let r = ``;
+	let r = '';
 	if (slave.induceLactation >= 10) {
-		if (jsRandom(1,100) < slave.induceLactation) {
+		if (jsRandom(1, 100) < slave.induceLactation) {
 			r += `${His} breasts have been stimulated often enough to @@.lime;induce lactation.@@`;
 			slave.induceLactation = 0;
 			slave.lactationDuration = 2;
@@ -1391,65 +1435,65 @@ window.ResearchLabStockPile = function() {
 	Electrolarynx: $stockpile.electrolarynx`;
 };
 
-window.originPronounReplace = /** @param {App.Entity.SlaveState} slave */ function (slave) {
+window.originPronounReplace = /** @param {App.Entity.SlaveState} slave */ function(slave) {
 	let r = slave.origin;
 	switch (r) {
-		case "She was the result of unprotected sex with a client. Her mother tracked you down years after her birth to force her upon you.":
+		case 'She was the result of unprotected sex with a client. Her mother tracked you down years after her birth to force her upon you.':
 			return `${capFirstChar(slave.pronoun)} was the result of unprotected sex with a client. ${capFirstChar(slave.possessive)} mother tracked you down years after ${slave.possessive} birth to force ${slave.object} upon you.`;
-		case "You kept her after her owner failed to pay your bill for performing surgery on her.":
+		case 'You kept her after her owner failed to pay your bill for performing surgery on her.':
 			return `You kept ${slave.object} after ${slave.possessive} owner failed to pay your bill for performing surgery on ${slave.object}.`;
-		case "She comes from old money and sold herself into slavery to satisfy her obsession with the practice, believing her family would buy her back out of slavery later.":
+		case 'She comes from old money and sold herself into slavery to satisfy her obsession with the practice, believing her family would buy her back out of slavery later.':
 			return `${capFirstChar(slave.pronoun)} comes from old money and sold herself into slavery to satisfy ${slave.possessive} obsession with the practice, believing ${slave.possessive} family would buy ${slave.object} back out of slavery later.`;
-		case "When you took her from her previous owner, she was locked into a beautiful rosewood box lined with red velvet, crying.":
+		case 'When you took her from her previous owner, she was locked into a beautiful rosewood box lined with red velvet, crying.':
 			return `When you took ${slave.object} from ${slave.possessive} previous owner, ${slave.pronoun} was locked into a beautiful rosewood box lined with red velvet, crying.`;
-		case "Her husband sold her into slavery to escape his debts.":
+		case 'Her husband sold her into slavery to escape his debts.':
 			return `${capFirstChar(slave.possessive)} husband sold ${slave.object} into slavery to escape his debts.`;
-		case "She was voluntarily enslaved after she decided that your arcology was the best place for her to get the steroids that she'd allowed to define her life.":
+		case 'She was voluntarily enslaved after she decided that your arcology was the best place for her to get the steroids that she\'d allowed to define her life.':
 			return `${capFirstChar(slave.pronoun)} was voluntarily enslaved after ${slave.pronoun} decided that your arcology was the best place for ${slave.object} to get the steroids that ${slave.pronoun}'d allowed to define ${slave.possessive} life.`;
-		case "She came to you to escape being sold to a cruel master after her producer informed her of her debt.":
+		case 'She came to you to escape being sold to a cruel master after her producer informed her of her debt.':
 			return `${capFirstChar(slave.pronoun)} came to you to escape being sold to a cruel master after ${slave.possessive} producer informed ${slave.object} of ${slave.possessive} debt.`;
-		case "You tricked her into enslavement, manipulating her based on her surgical addiction.":
+		case 'You tricked her into enslavement, manipulating her based on her surgical addiction.':
 			return `You tricked ${slave.object} into enslavement, manipulating ${slave.object} based on ${slave.possessive} surgical addiction.`;
-		case "You helped free her from a POW camp after being abandoned by her country, leaving her deeply indebted to you.":
+		case 'You helped free her from a POW camp after being abandoned by her country, leaving her deeply indebted to you.':
 			return `You helped free ${slave.object} from a POW camp after being abandoned by ${slave.possessive} country, leaving ${slave.object} deeply indebted to you.`;
-		case "You purchased her in order to pave the way for her brother to take the throne.":
+		case 'You purchased her in order to pave the way for her brother to take the throne.':
 			return `You purchased ${slave.object} in order to pave the way for ${slave.possessive} brother to take the throne.`;
-		case "You purchased her as a favor to her father.":
+		case 'You purchased her as a favor to her father.':
 			return `You purchased ${slave.object} as a favor to ${slave.possessive} father.`;
-		case "You purchased her from a King after his son put an illegitimate heir in her womb.":
+		case 'You purchased her from a King after his son put an illegitimate heir in her womb.':
 			return `You purchased ${slave.object} from a King after his son put an illegitimate heir in ${slave.possessive} womb.`;
-		case "You acquired her in the last stages of your career as a successful venture capitalist.":
-		case "Drugs and alcohol can be a potent mix; the night that followed it can sometimes be hard to remember. Needless to say, once your belly began swelling with her, you had to temporarily switch to a desk job for your mercenary group.":
-		case "You acquired her in the last stages of your career as a noted private military contractor.":
-		case "You never thought you would be capable of impregnating yourself, but years of pleasuring yourself with yourself after missions managed to create her.":
-		case "A fresh capture once overpowered you and had his way with you. You kept her as a painful reminder to never lower your guard again.":
-		case "Your slaving troop kept several girls as fucktoys; you sired her in your favorite.":
-		case "You enslaved her personally during the last stages of your slaving career.":
-		case "You sired her in yourself after an arcology owner, impressed by your work, rewarded you with a night you'll never forget.":
-		case "You conceived her after a male arcology owner, impressed by your work, rewarded you with a night you'll never forget.":
-		case "You sired her after a female arcology owner, impressed by your work, rewarded you with a night you'll never forget.":
-		case "You received her as a gift from an arcology owner impressed by your work.":
-		case "You captured her during your transition to the arcology":
-		case "You won her at cards, a memento from your life as one of the idle rich before you became an arcology owner.":
-		case "You brought her into the arcology mindbroken, little more than a walking collection of fuckable holes.":
-		case "You brought her into the arcology mindbroken, little more than a human onahole.":
-		case "She grew up sheltered and submissive, making her an easy target for enslavement.":
-		case "She was fresh from the slave markets when you acquired her.":
-		case "She chose to be a slave because the romanticized view of it she had turns her on.":
-		case "She was previously owned by a creative sadist, who has left a variety of mental scars on her.":
-		case "She was taken as a slave by a Sultan, who presented her as a gift to a surveyor.":
-		case "She is the winner of a martial arts slave tournament. You won her in a bet.":
-		case "She was homeless and willing to do anything for food, which in the end resulted in her becoming a slave.":
-		case "She was sold to you by an anonymous person who wanted her to suffer.":
-		case "You received her from a surgeon who botched an implant operation on her and needed to get her out of sight.":
-		case "She offered herself to you for enslavement to escape having plastic surgery foisted on her.":
-		case "You turned her into a slave girl after she fell into debt to you.":
-		case "She was raised in a radical slave school that treated her with drugs and surgery from a very young age.":
-		case "She was raised in a radical slave school that treated her from a very young age, up to the point that she never experienced male puberty.":
-		case "She was a runaway slave captured by a gang outside your arcology. You bought her cheap after she was harshly used by them.":
-		case "She was the private slave of a con artist cult leader before he had to abandon her and flee.":
-		case "You helped her give birth, leaving her deeply indebted to you.":
-		case "You purchased her from a King after she expressed knowledge of the prince's affair with another servant.":
+		case 'You acquired her in the last stages of your career as a successful venture capitalist.':
+		case 'Drugs and alcohol can be a potent mix; the night that followed it can sometimes be hard to remember. Needless to say, once your belly began swelling with her, you had to temporarily switch to a desk job for your mercenary group.':
+		case 'You acquired her in the last stages of your career as a noted private military contractor.':
+		case 'You never thought you would be capable of impregnating yourself, but years of pleasuring yourself with yourself after missions managed to create her.':
+		case 'A fresh capture once overpowered you and had his way with you. You kept her as a painful reminder to never lower your guard again.':
+		case 'Your slaving troop kept several girls as fucktoys; you sired her in your favorite.':
+		case 'You enslaved her personally during the last stages of your slaving career.':
+		case 'You sired her in yourself after an arcology owner, impressed by your work, rewarded you with a night you\'ll never forget.':
+		case 'You conceived her after a male arcology owner, impressed by your work, rewarded you with a night you\'ll never forget.':
+		case 'You sired her after a female arcology owner, impressed by your work, rewarded you with a night you\'ll never forget.':
+		case 'You received her as a gift from an arcology owner impressed by your work.':
+		case 'You captured her during your transition to the arcology':
+		case 'You won her at cards, a memento from your life as one of the idle rich before you became an arcology owner.':
+		case 'You brought her into the arcology mindbroken, little more than a walking collection of fuckable holes.':
+		case 'You brought her into the arcology mindbroken, little more than a human onahole.':
+		case 'She grew up sheltered and submissive, making her an easy target for enslavement.':
+		case 'She was fresh from the slave markets when you acquired her.':
+		case 'She chose to be a slave because the romanticized view of it she had turns her on.':
+		case 'She was previously owned by a creative sadist, who has left a variety of mental scars on her.':
+		case 'She was taken as a slave by a Sultan, who presented her as a gift to a surveyor.':
+		case 'She is the winner of a martial arts slave tournament. You won her in a bet.':
+		case 'She was homeless and willing to do anything for food, which in the end resulted in her becoming a slave.':
+		case 'She was sold to you by an anonymous person who wanted her to suffer.':
+		case 'You received her from a surgeon who botched an implant operation on her and needed to get her out of sight.':
+		case 'She offered herself to you for enslavement to escape having plastic surgery foisted on her.':
+		case 'You turned her into a slave girl after she fell into debt to you.':
+		case 'She was raised in a radical slave school that treated her with drugs and surgery from a very young age.':
+		case 'She was raised in a radical slave school that treated her from a very young age, up to the point that she never experienced male puberty.':
+		case 'She was a runaway slave captured by a gang outside your arcology. You bought her cheap after she was harshly used by them.':
+		case 'She was the private slave of a con artist cult leader before he had to abandon her and flee.':
+		case 'You helped her give birth, leaving her deeply indebted to you.':
+		case 'You purchased her from a King after she expressed knowledge of the prince\'s affair with another servant.':
 			r = r.replace(/\bherself\b/g, slave.objectReflexive);
 			r = r.replace(/\bHerself\b/g, capFirstChar(slave.objectReflexive));
 			r = r.replace(/\bshe\b/g, slave.pronoun);
@@ -1470,35 +1514,48 @@ window.originPronounReplace = /** @param {App.Entity.SlaveState} slave */ functi
 
 window.HSM = function() {
 	const V = State.variables;
-	if (V.PC.hacking <= -100) {return 1.5;}
-	else if (V.PC.hacking <= -75) {return 1.35;}
-	else if (V.PC.hacking <= -50) {return 1.25;}
-	else if (V.PC.hacking <= -25) {return 1.15;}
-	else if (V.PC.hacking < 0) {return 1.10;}
-	else if (V.PC.hacking === 0) {return 1;}
-	else if (V.PC.hacking <= 10) {return 0.97;}
-	else if (V.PC.hacking <= 25) {return 0.95;}
-	else if (V.PC.hacking <= 50) {return 0.90;}
-	else if (V.PC.hacking <= 75) {return 0.85;}
-	else if (V.PC.hacking <= 100) {return 0.80;}
-	else {return 0.75;}
+	if (V.PC.hacking <= -100) {
+		return 1.5;
+	} else if (V.PC.hacking <= -75) {
+		return 1.35;
+	} else if (V.PC.hacking <= -50) {
+		return 1.25;
+	} else if (V.PC.hacking <= -25) {
+		return 1.15;
+	} else if (V.PC.hacking < 0) {
+		return 1.10;
+	} else if (V.PC.hacking === 0) {
+		return 1;
+	} else if (V.PC.hacking <= 10) {
+		return 0.97;
+	} else if (V.PC.hacking <= 25) {
+		return 0.95;
+	} else if (V.PC.hacking <= 50) {
+		return 0.90;
+	} else if (V.PC.hacking <= 75) {
+		return 0.85;
+	} else if (V.PC.hacking <= 100) {
+		return 0.80;
+	} else {
+		return 0.75;
+	}
 };
 
 window.opentab = function(evt, tabName) {
-	var i, tabcontent, tablinks;
+	let i; let tabcontent; let tablinks;
 	const V = State.variables;
-	/*var passage = passage().trim().replace(/ /g,"+");*/
-	tabcontent = document.getElementsByClassName("tabcontent");
+	/* var passage = passage().trim().replace(/ /g,"+");*/
+	tabcontent = document.getElementsByClassName('tabcontent');
 	for (i = 0; i < tabcontent.length; i++) {
-		tabcontent[i].style.display = "none";
+		tabcontent[i].style.display = 'none';
 	}
-	tablinks = document.getElementsByClassName("tablinks");
+	tablinks = document.getElementsByClassName('tablinks');
 	for (i = 0; i < tablinks.length; i++) {
-		tablinks[i].className = tablinks[i].className.replace(" active", "");
+		tablinks[i].className = tablinks[i].className.replace(' active', '');
 	}
-	V.tabChoice[passage().trim().replace(/ |'/g,"")] = tabName; /*The regex strips spaces and " ' " from passage names, making "Servants' Quarters" into "ServantsQuarters" and allowing it to be used as a label in this object. */
-	document.getElementById(tabName).style.display = "block";
-	evt.currentTarget.className += " active";
+	V.tabChoice[passage().trim().replace(/ |'/g, '')] = tabName; /* The regex strips spaces and " ' " from passage names, making "Servants' Quarters" into "ServantsQuarters" and allowing it to be used as a label in this object. */
+	document.getElementById(tabName).style.display = 'block';
+	evt.currentTarget.className += ' active';
 };
 
 /**
@@ -1517,7 +1574,7 @@ window.opentab = function(evt, tabName) {
  * // equal to [[Go to town|Town]]
  * App.UI.passageLink("Go to town", "Town")
  */
-App.UI.passageLink = function (linkText, passage, setter, elementType) {
+App.UI.passageLink = function(linkText, passage, setter, elementType) {
 	if (!elementType) elementType = 'a';
 
 	let res = `<${elementType} data-passage="${passage}"`;
@@ -1527,3 +1584,148 @@ App.UI.passageLink = function (linkText, passage, setter, elementType) {
 	res += `>${linkText}</${elementType}>`;
 	return res;
 };
+
+window.SkillIncrease = (function() {
+	/** @param {App.Entity.SlaveState} slave */
+	function OralSkillIncrease(slave, skillIncrease) {
+		const He = capFirstChar(slave.pronoun);
+		let r;
+		skillIncrease = skillIncrease || State.variables.skillIncrease || 1;
+
+		if (slave.oralSkill <= 10) {
+			if (slave.oralSkill + skillIncrease > 10) {
+				r = `<span class="green">${He} now has basic knowledge about oral sex,</span> and can at least suck a dick without constant gagging.`;
+			}
+		} else if (slave.oralSkill <= 30) {
+			if (slave.oralSkill + skillIncrease > 30) {
+				r = `<span class="green">${He} now has some oral skills,</span> and can reliably bring dicks and pussies to climax with $his mouth.`;
+			}
+		} else if (slave.oralSkill <= 60) {
+			if (slave.oralSkill + skillIncrease > 60) {
+				r = `<span class="green">${He} is now an oral expert,</span> and has a delightfully experienced tongue.`;
+			}
+		} else if (slave.oralSkill < 100) {
+			if (slave.oralSkill + skillIncrease >= 100) {
+				r = `<span class="green">${He} has mastered oral sex,</span> and can learn nothing more about sucking dick or eating pussy.`;
+			}
+		}
+		slave.oralSkill += skillIncrease;
+		return r;
+	}
+
+	/** @param {App.Entity.SlaveState} slave */
+	function VaginalSkillIncrease(slave, skillIncrease) {
+		const He = capFirstChar(slave.pronoun);
+		let r;
+		skillIncrease = skillIncrease || State.variables.skillIncrease || 1;
+
+		if (slave.vaginalSkill <= 10) {
+			if (slave.vaginalSkill + skillIncrease > 10) {
+				r = `<span class="green">${He} now has basic knowledge about vaginal sex,</span> and can avoid some of the common pitfalls and turnoffs.`;
+			}
+		} else if (slave.vaginalSkill <= 30) {
+			if (slave.vaginalSkill + skillIncrease > 30) {
+				r = `<span class="green">${He} now has some vaginal sex skills,</span> and can do more than just lie there and take it.`;
+			}
+		} else if (slave.vaginalSkill <= 60) {
+			if (slave.vaginalSkill + skillIncrease > 60) {
+				r = `<span class="green">${He} is now a vaginal sex expert,</span> and has the muscular control to massage anything that's inside $him.`;
+			}
+		} else if (slave.vaginalSkill < 100) {
+			if (slave.vaginalSkill + skillIncrease >= 100) {
+				r = `<span class="green">${He} has mastered vaginal sex,</span> and can learn nothing more about tribbing or taking dick.`;
+			}
+		}
+		slave.vaginalSkill += skillIncrease;
+		return r;
+	}
+
+	/** @param {App.Entity.SlaveState} slave */
+	function AnalSkillIncrease(slave, skillIncrease) {
+		const He = capFirstChar(slave.pronoun);
+		let r;
+		skillIncrease = skillIncrease || State.variables.skillIncrease || 1;
+
+		if (slave.analSkill <= 10) {
+			if (slave.analSkill + skillIncrease > 10) {
+				r = `<span class="green">${He} now has basic knowledge about anal sex,</span> and can accept penetration of $his anus without danger.`;
+			}
+		} else if (slave.analSkill <= 30) {
+			if (slave.analSkill + skillIncrease > 30) {
+				r = `<span class="green">${He} now has some anal sex skills,</span> and needs less preparation before taking rough penetration.`;
+			}
+		} else if (slave.analSkill <= 60) {
+			if (slave.analSkill + skillIncrease > 60) {
+				r = `<span class="green">${He} is now an anal sex expert,</span> and knows how to use $his sphincter to please.`;
+			}
+		} else if (slave.analSkill < 100) {
+			if (slave.analSkill + skillIncrease >= 100) {
+				r = `<span class="green">${He} has mastered anal sex,</span> and can learn nothing more about taking it up the ass.`;
+			}
+		}
+		slave.analSkill += skillIncrease;
+		return r;
+	}
+
+	/** @param {App.Entity.SlaveState} slave */
+	function WhoreSkillIncrease(slave, skillIncrease) {
+		const He = capFirstChar(slave.pronoun);
+		let r;
+		skillIncrease = skillIncrease || State.variables.skillIncrease || 1;
+
+		if (slave.whoreSkill <= 10) {
+			if (slave.whoreSkill + skillIncrease > 10) {
+				r = `<span class="green">${He} now has basic knowledge about how to whore,</span> and can avoid some potentially dangerous situations.`;
+			}
+		} else if (slave.whoreSkill <= 30) {
+			if (slave.whoreSkill + skillIncrease > 30) {
+				r = `<span class="green">${He} now has some skill as a whore,</span> and knows how to sell $his body at a good price.`;
+			}
+		} else if (slave.whoreSkill <= 60) {
+			if (slave.whoreSkill + skillIncrease > 60) {
+				r = `<span class="green">${He} is now an expert whore,</span> and can often make clients forget that $he's a prostitute they're paying for.`;
+			}
+		} else if (slave.whoreSkill < 100) {
+			if (slave.whoreSkill + skillIncrease >= 100) {
+				r = `<span class="green">${He} is now a masterful whore,</span> and can learn nothing more about prostitution.`;
+			}
+		}
+		slave.whoreSkill += skillIncrease;
+		return r;
+	}
+
+	/** @param {App.Entity.SlaveState} slave */
+	function EntertainSkillIncrease(slave, skillIncrease) {
+		const He = capFirstChar(slave.pronoun);
+		let r;
+		skillIncrease = skillIncrease || State.variables.skillIncrease || 1;
+
+		if (slave.entertainSkill <= 10) {
+			if (slave.entertainSkill + skillIncrease > 10) {
+				r = `<span class="green">${He} now has basic knowledge about how to be entertaining,</span> and can usually avoid serious faux pas.`;
+			}
+		} else if (slave.entertainSkill <= 30) {
+			if (slave.entertainSkill + skillIncrease > 30) {
+				r = `<span class="green">${He} now has some skill as an entertainer,</span> and can flirt, dance, and strip acceptably.`;
+			}
+		} else if (slave.entertainSkill <= 60) {
+			if (slave.entertainSkill + skillIncrease > 60) {
+				r = `<span class="green">${He} is now an expert entertainer,</span> and can flirt engagingly, dance alluringly, and strip arousingly.`;
+			}
+		} else if (slave.entertainSkill < 100) {
+			if (slave.entertainSkill + skillIncrease >= 100) {
+				r = `<span class="green">${He} is now a masterful entertainer,</span> and can learn nothing more about flirting, dancing, or stripping.`;
+			}
+		}
+		slave.entertainSkill += skillIncrease;
+		return r;
+	}
+
+	return {
+		Oral: OralSkillIncrease,
+		Vaginal: VaginalSkillIncrease,
+		Anal: AnalSkillIncrease,
+		Whore: WhoreSkillIncrease,
+		Entertain: EntertainSkillIncrease
+	};
+})();
diff --git a/src/npc/descriptions/fLips.tw b/src/npc/descriptions/fLips.tw
index 7a1d8948f933acc71ea0cdea6f1bf7cc52649294..cc147ebc4e224abec364cdd0a6a496e2b9b53e46 100644
--- a/src/npc/descriptions/fLips.tw
+++ b/src/npc/descriptions/fLips.tw
@@ -92,9 +92,9 @@ You tell $activeSlave.slaveName to
 		<<if $PC.vagina == 1>>If $he thought that was it, $he's soon corrected: you hike yourself up further, and grind your pussy against $his face.<</if>>
 	<<else>>
 		<<if $activeSlave.bellyImplant >= 1500>>
-			$He has absolutely no control over how hard you grind your cunt against $his face, so you are careful not to suffocate $him. Even so, you take $him to the edge, enjoying the sight of the spasms running through $his stomach as $he struggles to breathe. Eventually you climax, giving $him a good taste of your femcum.
+			$He has absolutely no control over how hard you grind your cunt against $his face, so you are careful not to suffocate $him. Even so, you take $him to the edge, enjoying the sight of the spasms running through $his stomach as $he struggles to breathe. Eventually you climax, giving $him a good <<if canTaste($activeSlave)>>taste<<else>>dose<</if>> of your femcum.
 		<<else>>
-			$He has absolutely no control over how hard you grind your cunt against $his face, so you are careful not to suffocate $him. Even so, you take $him to the edge, enjoying the sight of the movement within $his overstuffed womb as $he struggles to breathe. Eventually you climax, giving $him a good taste of your femcum.
+			$He has absolutely no control over how hard you grind your cunt against $his face, so you are careful not to suffocate $him. Even so, you take $him to the edge, enjoying the sight of the movement within $his overstuffed womb as $he struggles to breathe. Eventually you climax, giving $him a good <<if canTaste($activeSlave)>>taste<<else>>dose<</if>> of your femcum.
 		<</if>>
 	<</if>>
 <<elseif tooBigBreasts($activeSlave)>>
@@ -104,7 +104,7 @@ You tell $activeSlave.slaveName to
 		the depth or quickness of oral sex, so you are careful not to hurt $him. Even so, you take $him to the edge of gagging, enjoying the sight of $his $activeSlave.skin throat bulging and $his absurd boobs jiggling as $he struggles to breathe. Eventually you shoot your load directly down $his gullet.
 		<<if $PC.vagina == 1>>If $he thought that was it, $he's soon corrected: you hike yourself up further, and grind your pussy against $his face.<</if>>
 	<<else>>
-		how hard you grind your cunt against $his face, so you are careful not to suffocate $him. Even so, you take $him to the edge, enjoying the sight of $his absurd boobs jiggling as $he struggles to breathe. Eventually you climax, giving $him a good taste of your femcum.
+		how hard you grind your cunt against $his face, so you are careful not to suffocate $him. Even so, you take $him to the edge, enjoying the sight of $his absurd boobs jiggling as $he struggles to breathe. Eventually you climax, giving $him a good <<if canTaste($activeSlave)>>taste<<else>>dose<</if>> of your femcum.
 	<</if>>
 <<elseif tooBigButt($activeSlave)>>
 	You get $him situated on the edge of your desk, on $his back. This anchors $him, the massive weight of $his ass stopping $him from going anywhere at all. $His head dangles off the edge of the desk, leaving $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth at the perfect angle for use.
@@ -112,7 +112,7 @@ You tell $activeSlave.slaveName to
 		$He has absolutely no control over the depth or quickness of oral sex, so you are careful not to hurt $him. Even so, you take $him to the edge of gagging, enjoying the sight of $his $activeSlave.skin throat bulging and $his absurd rear jiggling as $he struggles to breathe. Eventually you shoot your load directly down $his gullet.
 		<<if $PC.vagina == 1>>If $he thought that was it, $he's soon corrected: you hike yourself up further, and grind your pussy against $his face.<</if>>
 	<<else>>
-		$He has absolutely no control over how hard you grind your cunt against $his face, so you are careful not to suffocate $him. Even so, you take $him to the edge, enjoying the sight of $his absurd rear jiggling as $he struggles to breathe. Eventually you climax, giving $him a good taste of your femcum.
+		$He has absolutely no control over how hard you grind your cunt against $his face, so you are careful not to suffocate $him. Even so, you take $him to the edge, enjoying the sight of $his absurd rear jiggling as $he struggles to breathe. Eventually you climax, giving $him a good <<if canTaste($activeSlave)>>taste<<else>>dose<</if>> of your femcum.
 	<</if>>
 <<elseif ($activeSlave.fetish == "cumslut") && ($activeSlave.fetishStrength > 60) && ($activeSlave.fetishKnown == 1) && ($activeSlave.dick != 0) && ($PC.dick != 0)>>
 	$He comes over eagerly, with hunger <<if canSee($activeSlave)>>in $his eyes<<else>>on $his face<</if>>. $He gets to $his knees, hurriedly takes you into $his <<if $seeRace == 1>>$activeSlave.race <</if>>mouth, and gives the blowjob $his all. As a cumslut $he's almost desperate to get your cum into $his mouth and <<if ($activeSlave.chastityPenis == 1)>>(since $his cock is off limits) frantically rubs $his nipples and asspussy<<elseif canAchieveErection($activeSlave)>>jacks $himself off<<else>>rubs $his sadly limp member<</if>> in anticipation.<<if $PC.vagina == 1>> You have more than one variety of deliciousness for $him, and $he's careful not to neglect your wet cunt.<</if>> When you finish, $he sits back with an ecstatic look on $his face and lets your cum rest in $his mouth as $he climaxes into $his $activeSlave.skin hand. $He pours $his own cum from $his hand into $his mouth so it can mingle with yours.
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index 0d98ea8cb6c91d8f0f1084b46d40ca2241683c87..2e66f7acd1fd0b86b939aa6b47ef40de48048837 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -819,8 +819,8 @@ Her nationality is $activeSlave.nationality.
 	<<else>>Normal.
 	<</if>>
 <<else>>
-<<if $activeSlave.hears == -1>>Hard of hearing.
-<<else>>Normal.
+	<<if $activeSlave.hears == -1>>Hard of hearing.
+	<<else>>Normal.
 	<</if>>
 <</if>>
 </span>
@@ -831,6 +831,26 @@ Her nationality is $activeSlave.nationality.
 <<link "Deaf">><<set $activeSlave.hears = -2>><<replace "#hearing">>Deaf.<</replace>><<StartingGirlsCost>><</link>>
 <</if>>
 
+<<if $seeExtreme == 1>>
+<br>''Smell:''
+<span id="smell">
+	<<if $activeSlave.smells == -1>>None.
+	<<else>>Normal.
+	<</if>>
+</span>
+<<link "Normal">><<set $activeSlave.smells = 0>><<replace "#smell">>Normal.<</replace>><<StartingGirlsCost>><</link>> |
+<<link "None">><<set $activeSlave.smells = -1>><<replace "#smell">>None.<</replace>><<StartingGirlsCost>><</link>>
+
+<br>''Taste:''
+<span id="taste">
+	<<if $activeSlave.tastes == -1>>None.
+	<<else>>Normal.
+	<</if>>
+</span>
+<<link "Normal">><<set $activeSlave.tastes = 0>><<replace "#taste">>Normal.<</replace>><<StartingGirlsCost>><</link>> |
+<<link "None">><<set $activeSlave.tastes = -1>><<replace "#taste">>None.<</replace>><<StartingGirlsCost>><</link>>
+<</if>>
+
 <br><br>''Breasts:''
 <span id="boobs">
 <<if $activeSlave.boobs <= 200>>Flat.
diff --git a/src/npc/uploadSlave.tw b/src/npc/uploadSlave.tw
index 555337eaf32de66f2f7d2512151405b311cb89ed..dca3eb0fceb0736ad624170818ea0edc7ccfae16 100644
--- a/src/npc/uploadSlave.tw
+++ b/src/npc/uploadSlave.tw
@@ -203,5 +203,5 @@ pitKills: 0,
 customTat: "$activeSlave.customTat",
 customLabel: "",
 customDesc: "$activeSlave.customDesc",
-customImage: 0,
+customImage: "",
 currentRules: $activeSlave.currentRules
diff --git a/src/pregmod/FSuckle.tw b/src/pregmod/FSuckle.tw
index 518f090fd5516cbb27d229f7f9388d5733af6889..49259f83f042c76f556b705e84e5d3514a40172d 100644
--- a/src/pregmod/FSuckle.tw
+++ b/src/pregmod/FSuckle.tw
@@ -153,7 +153,7 @@ You <<if _mood == 2>>demand<<else>>beckon<</if>> $activeSlave.slaveName to
 			<<if $activeSlave.fetish == "mindbroken">>
 				$He obeys without question and mechanically begins to <<if $PC.dick == 1>>jerk you off<<else>>finger you<</if>>.
 			<<elseif $activeSlave.devotion >= -20>>
-				This proves unnecessary as, before you finish speaking, $he <<if $PC.dick == 1>>wraps $his fingers around your needy cock<<else>>smells your arousal<</if>> and begins to apply $his ministrations to take care of you<<if $activeSlave.nipples == "inverted" || $activeSlave.nipples == "partially inverted">>, as the sensations to $his nipple add so much more to the already surrounding breastflesh<</if>>. You buck to $his touch, forcing $him to try and steady $his breasts as your baby bump jumps with life.
+				This proves unnecessary as, before you finish speaking, $he <<if $PC.dick == 1>>wraps $his fingers around your needy cock<<else>><<if canSmell($activeSlave)>>smells<<else>>recognizes<</if>> your arousal<</if>> and begins to apply $his ministrations to take care of you<<if $activeSlave.nipples == "inverted" || $activeSlave.nipples == "partially inverted">>, as the sensations to $his nipple add so much more to the already surrounding breastflesh<</if>>. You buck to $his touch, forcing $him to try and steady $his breasts as your baby bump jumps with life.
 			<<elseif $activeSlave.trust < -20>>
 				$He begins to question your order, but quickly realizes that was a mistake as you grab $his hand and force it yo your crotch. Hastily, $he begins to stroke <<if $PC.dick == 1>>your dick<<else>>your pussy<</if>> until reassured that $he is pleasing you from your lusty moans and thrusting. $He does $his best, hoping to not anger you further as $he presses <<if $PC.dick == 1>>the head<<else>>your lower lips<</if>> against $his nearby nipple.
 			<<else>>
@@ -164,7 +164,7 @@ You <<if _mood == 2>>demand<<else>>beckon<</if>> $activeSlave.slaveName to
 			<<if $activeSlave.fetish == "mindbroken">>
 				$He obeys without question and mechanically begins to <<if $PC.dick == 1>>jerk you off<<else>>finger you<</if>>.
 			<<elseif $activeSlave.devotion >= -20>>
-				This proves unnecessary as, before you finish speaking, $he <<if $PC.dick == 1>>notices your hardening penis<<else>>smells your arousal<</if>> and begins to apply $his ministrations to take care of you<<if $activeSlave.nipples == "inverted" || $activeSlave.nipples == "partially inverted">>, as the sensations to $his nipple add so much more to the already surrounding breastflesh<</if>>. You respond further with a positive "Mmmhmm~", which calms $his worries as $he works on pleasuring you as much as $he can with one hand.
+				This proves unnecessary as, before you finish speaking, $he <<if $PC.dick == 1>>notices your hardening penis<<else>><<if canSmell($activeSlave)>>smells<<else>>recognizes<</if>> your arousal<</if>> and begins to apply $his ministrations to take care of you<<if $activeSlave.nipples == "inverted" || $activeSlave.nipples == "partially inverted">>, as the sensations to $his nipple add so much more to the already surrounding breastflesh<</if>>. You respond further with a positive "Mmmhmm~", which calms $his worries as $he works on pleasuring you as much as $he can with one hand.
 			<<elseif $activeSlave.trust < -20>>
 				$He begins to question your order, but quickly realizes <<if $PC.dick == 1>>your penis is at full mast and prodding $his breastflesh<<else>>you're soaking wet and quivering with desire<</if>>. Cautiously, $he begins to stroke <<if $PC.dick == 1>>it<<else>>your pussy<</if>> until reassured that $he is pleasing you with a positive "Mmmhmm~". $He does $his best, hoping to not anger you in any way or make a mistake as $he presses <<if $PC.dick == 1>>the head<<else>>your lower lips<</if>> against $his nearby nipple.
 			<<else>>
diff --git a/src/pregmod/fFeet.tw b/src/pregmod/fFeet.tw
index 1dce3855d4c85b5292409f46b01604c26b649cf1..431c7c68fe81a2406915bd6eb5b1ccbb19a89488 100644
--- a/src/pregmod/fFeet.tw
+++ b/src/pregmod/fFeet.tw
@@ -402,7 +402,7 @@ You call $activeSlave.slaveName to your office, telling $him to use $his feet to
 		<<else>>
 			cups $his _boobs breasts with $his hands,
 		<</if>>
-		then sticks out $his tongue, posing like a free cities whore who wants a cumshot.
+		then sticks out $his tongue, posing like a Free Cities whore who wants a cumshot.
 	<<elseif _footSeed < 70 && !($activeSlave.chastityPenis) && !($activeSlave.chastityVagina) && ($activeSlave.dick > 0 || $activeSlave.vagina >= 0 )>>
 		spreads $his _legs legs
 		<<if $activeSlave.dick > 0>>
@@ -526,9 +526,9 @@ You call $activeSlave.slaveName to your office, telling $him to use $his feet to
 				<</if>>
 			<<else>>
 				<<if cumAmount($activeSlave) > 20>>
-					$he strokes $his _dick penis, swollen _balls testicles bulging between $his thighs, asshole clenching as $he's massive cumshot splashes noisily onto the floor.
+					$he strokes $his _dick penis, swollen _balls testicles bulging between $his thighs, asshole clenching as $his massive cumshot splashes noisily onto the floor.
 				<<else>>
-					$he strokes $his _dick penis, asshole clenching as $he's cum spurts onto the floor.
+					$he strokes $his _dick penis, asshole clenching as $his cum spurts onto the floor.
 				<</if>>
 			<</if>>
 		<<elseif $activeSlave.vagina >= 0>>
@@ -559,16 +559,16 @@ You call $activeSlave.slaveName to your office, telling $him to use $his feet to
 	<<if $PC.balls > 1>>
 		<<if $activeSlave.dick > 0>>
 			<<if cumAmount($activeSlave) > 20>>
-				$His _balls balls visibly throb as _dick dick unloads a massive amount of cum, adding $his own semen to $his body, resulting in a slave utterly plastered in spunk. $His eyes are held shut with a thick layer of cum, and judging by how <<if ($activeSlave.chastityPenis == 1)>>$he's dick is still shooting cum even in a cage with no stimulation,<<else>>furiously $he is masturbating,<</if>> $he couldn't be happier.
+				$His _balls balls visibly throb as _dick dick unloads a massive amount of cum, adding $his own semen to $his body, resulting in a slave utterly plastered in spunk. $His eyes are held shut with a thick layer of cum, and judging by how <<if ($activeSlave.chastityPenis == 1)>>$his dick is still shooting cum even in a cage with no stimulation,<<else>>furiously $he is masturbating,<</if>> $he couldn't be happier.
 			<<else>>
-				$His _dick dick unloads onto $his belly and $boobs chest, and $his giggles and gasps as it rains down with audible splats. $He is splattered in semen, face coated in your cum, and judging by $his nostrils desperately taking in the heady smell and how <<if ($activeSlave.chastityPenis == 1)>>$he's dick is still throbbing in orgasm even in a cage with no stimulation,<<else>>$he can't stop masturbating,<</if>> $he couldn't be happier.
+				$His _dick dick unloads onto $his belly and $boobs chest, and $his giggles and gasps as it rains down with audible splats. $He is splattered in semen, face coated in your cum, and judging by <<if canSmell($activeSlave)>>$his nostrils desperately taking in the heady smell and <</if>>how <<if ($activeSlave.chastityPenis == 1)>>$his dick is still throbbing in orgasm even in a cage with no stimulation,<<else>>$he can't stop masturbating,<</if>> $he couldn't be happier.
 			<</if>>
 		<<elseif $activeSlave.vagina >= 0>>
-			$He leans back and moans in pleasure, $his <<if $activeSlave.vaginaLube == 1>>wet <<elseif $activeSlave.vaginaLube == 2>>dripping wet <</if>>pussy and asshole clenching. $He is splattered in semen, face coated in your cum, and judging by $his nostrils desperately taking in your scent and how $he can't stop masturbating, $he couldn't be happier.
+			$He leans back and moans in pleasure, $his <<if $activeSlave.vaginaLube == 1>>wet <<elseif $activeSlave.vaginaLube == 2>>dripping wet <</if>>pussy and asshole clenching. $He is splattered in semen, face coated in your cum, and judging by <<if canSmell($activeSlave)>>$his nostrils desperately taking in your scent and <</if>>how $he can't stop masturbating, $he couldn't be happier.
 		<<else>>
-			$He leans back and moans in pleasure, asshole pulsating. $He is splattered in semen, face coated in your cum, and judging by $his nostrils desperately taking in your scent and how $he can't stop masturbating, $he couldn't be happier.
+			$He leans back and moans in pleasure, asshole pulsating. $He is splattered in semen, face coated in your cum, and judging by <<if canSmell($activeSlave)>>$his nostrils desperately taking in your scent and <</if>>how $he can't stop masturbating, $he couldn't be happier.
 		<</if>>
 	<<else>>
-		$activeSlave.slaveName leans down to wipe semen off $his feet, quickly bringing it into $his mouth with a blissful look as $he tastes your cum and sighs in pleasure.
+		$activeSlave.slaveName leans down to wipe semen off $his feet, quickly bringing it into $his mouth with a blissful look as $he <<if canTaste($activeSlave)>>tastes<<else>>feels<</if>> your cum and sighs in pleasure.
 	<</if>>
 <</if>>
diff --git a/src/pregmod/fSlaveFeed.tw b/src/pregmod/fSlaveFeed.tw
index 305e12bd54d0ab13624d4b2c1f00f2d7831f65a1..8d82729c5ab62d6fe3d6c0266b281e7f16f54458 100644
--- a/src/pregmod/fSlaveFeed.tw
+++ b/src/pregmod/fSlaveFeed.tw
@@ -56,7 +56,7 @@ The first necessary step is to prepare the milk cow and _his2 udders.
 
 <<elseif $milkTap.relationTarget == $activeSlave.ID>>
 	<<if $milkTap.relation == "twin">>
-		This is easy enough, as $milkTap.slaveName wants _his2 twin to try _his2 milk, but only if $he can taste _his2's too. <<if $milkTap.lactation > 1>>_he2 is practically gushing milk with excitement<<else>>It takes minimal effort to get _his2 milk flowing<</if>>.
+		This is easy enough, as $milkTap.slaveName wants _his2 twin to try _his2 milk, but only if $he can taste _hers2 too. <<if $milkTap.lactation > 1>>_he2 is practically gushing milk with excitement<<else>>It takes minimal effort to get _his2 milk flowing<</if>>.
 	<<elseif $milkTap.relation == "sister">>
 		This is moderately tough, as $milkTap.slaveName is uncomfortable getting so intimate with _his2 sister. <<if $milkTap.lactation > 1>>_His2 excessive milk production quickly leaves _his2 eager for release<<else>>It takes some coaxing and kneading to get _his2 milk flowing and _his2 eager for relief<</if>>.
 	<<elseif $milkTap.relation == "mother">>
@@ -105,7 +105,7 @@ Next, you see to $activeSlave.slaveName.
 	<<elseif $activeSlave.relationship == 2>>
 		eagerly licks $his lips as $he approaches $his best friend's breasts.
 	<<elseif $activeSlave.relationship == 3>>
-		licks $his lips and smiles as $he approaches $his friend with benefits breasts, knowing well how _his2 milk tastes.
+		licks $his lips and smiles as $he approaches $his friend with benefits' breasts, knowing well how _his2 <<if canTaste($activeSlave)>>milk tastes<<else>>body feels<</if>>.
 	<<elseif $activeSlave.relationship == 4>>
 		licks $his lips and smiles as $he approaches $his lover's breasts. This won't be the first time $he's suckled from _him2 like this.
 	<<elseif $activeSlave.relationship == 5>>
@@ -121,7 +121,7 @@ Next, you see to $activeSlave.slaveName.
 <<elseif $milkTap.father == $activeSlave.ID>>
 	$He awkwardly brings $his lips to $his daughter's nipple<<if $activeSlave.dick > 0 && canAchieveErection($activeSlave)>>, $his cock steadily hardening at the perversion of suckling from $his child<</if>>.
 <<elseif areSisters($activeSlave, $milkTap) == 1>>
-	$He readily gets in position to taste $his twin<<if $activeSlave.lactation > 0>> while coaxing $his own milk to flow<</if>>.
+	$He readily gets in position to <<if canTaste($activeSlave)>>taste<<else>>suckle from<</if>> $his twin<<if $activeSlave.lactation > 0>> while coaxing $his own milk to flow<</if>>.
 <<elseif areSisters($activeSlave, $milkTap) == 2>>
 	$He hesitatingly lowers $himself to $his sister's nipple.
 <<elseif areSisters($activeSlave, $milkTap) == 3>>
@@ -129,7 +129,7 @@ Next, you see to $activeSlave.slaveName.
 
 <<elseif $activeSlave.relationTarget == $milkTap.ID>>
 	<<if $activeSlave.relation == "twin">>
-		$He readily gets in position to taste $his twin<<if $activeSlave.lactation > 0>> while coaxing $his own milk to flow<</if>>.
+		$He readily gets in position to <<if canTaste($activeSlave)>>taste<<else>>suckle from<</if>> $his twin<<if $activeSlave.lactation > 0>> while coaxing $his own milk to flow<</if>>.
 	<<elseif $activeSlave.relation == "sister">>
 		$He hesitatingly lowers $himself to $his sister's nipple.
 	<<elseif $activeSlave.relation == "mother">>
@@ -481,11 +481,11 @@ Next, you see to $activeSlave.slaveName.
 	<<elseif $activeSlave.relationship == 2>>
 		eagerly licks $his lips as $he approaches $his best friend's cock.
 	<<elseif $activeSlave.relationship == 3>>
-		licks $his lips and smiles as $he approaches $his friend with benefits' cock, knowing well how $his cum tastes.
+		licks $his lips and smiles as $he approaches $his friend with benefits' cock, knowing well how _his2 <<if canTaste($activeSlave)>>cum tastes<<else>>body feels<</if>>.
 	<<elseif $activeSlave.relationship == 4>>
-		licks $his lips and smiles as $he approaches $his lover's cock. This won't be the first time $he's sucked $his dick and swallowed $his huge loads.
+		licks $his lips and smiles as $he approaches $his lover's cock. This won't be the first time $he's sucked _his2 dick and swallowed _his2 huge loads.
 	<<elseif $activeSlave.relationship == 5>>
-		licks $his lips and smiles as $he approaches $his wife's cock. This won't be the first time $he's sucked $his dick and swallowed $his huge loads.
+		licks $his lips and smiles as $he approaches $his wife's cock. This won't be the first time $he's sucked _his2 dick and swallowed _his2 huge loads.
 	<</if>>
 
 <<elseif $activeSlave.mother == $milkTap.ID>>
@@ -530,7 +530,7 @@ Next, you see to $activeSlave.slaveName.
 	$He obeys your orders, drawing near $milkTap.slaveName's cock despite $his slight hesitation at the idea of being filled with cum.
 
 <<else>>
-	$He happily obeys your orders, eagerly tasting $milkTap.slaveName's beading precum before wrapping $his lips around $milkTap.slaveName's cock and sucking enthusiastically.
+	$He happily obeys your orders, eagerly <<if canTaste($activeSlave)>>tasting<<else>>licking up<</if>> $milkTap.slaveName's beading precum before wrapping $his lips around $milkTap.slaveName's cock and sucking enthusiastically.
 <</if>>
 
 <br><br>
diff --git a/src/pregmod/forceFeeding.tw b/src/pregmod/forceFeeding.tw
index 97a9be36b5ef36018763b52d5671b038b53cf3b1..80f0d8749f7587972277cb33c4e9e1b90b051d7e 100644
--- a/src/pregmod/forceFeeding.tw
+++ b/src/pregmod/forceFeeding.tw
@@ -23,15 +23,15 @@ buckets overflowing with slave food.
 $He is going to eat it all and you're going to enjoy $him as $he does it.
 
 <<if $activeSlave.inflation > 1 && $activeSlave.preg > 1>>
-	$He looks nauseated by the <<if canSee($activeSlave)>>sight<<else>>smell<</if>> of the food.
+	$He looks nauseated by the <<if canSee($activeSlave)>>sight<<elseif canSmell($activeSlave)>>smell<<else>>very existence<</if>> of the food.
 <<elseif $activeSlave.fetish == "submissive" && $activeSlave.devotion >= -20>>
 	$He blushes at the thought of being forced to eat for another's amusement.
 <<elseif $activeSlave.behavioralFlaw == "gluttonous" && $activeSlave.devotion >= -20>>
 	$He's awestruck that you approve of $his gluttony enough to present $him a feast.
 <<elseif $activeSlave.behavioralFlaw == "gluttonous">>
-	$He's hesitant about your intent, but $he gives in as $his belly begins to growl at the <<if canSee($activeSlave)>>sight<<else>>smell<</if>> of $his waiting meal.
+	$He's hesitant about your intent, but $he gives in as $his belly begins to growl at the <<if canSee($activeSlave)>>sight<<elseif canSmell($activeSlave)>>smell<<else>>anticipation<</if>> of $his waiting meal.
 <<elseif $activeSlave.behavioralFlaw == "anorexic">>
-	$He grimaces at the <<if canSee($activeSlave)>>sight<<else>>smell<</if>> of the food that will soon be going into $him. $He knows you won't let it come back up later.
+	$He grimaces at the <<if canSee($activeSlave)>>sight<<elseif canSmell($activeSlave)>>smell<<else>>thought<</if>> of the food that will soon be going into $him. $He knows you won't let it come back up later.
 <</if>>
 
 <<if canWalk($activeSlave)>>
diff --git a/src/pregmod/pcAppearanceIntro.tw b/src/pregmod/pcAppearanceIntro.tw
index 9dfc92bae768dcab9214cf552ed44e58c9b7dc7e..d7a0618c5d046761af878b92585647ae751f5d57 100644
--- a/src/pregmod/pcAppearanceIntro.tw
+++ b/src/pregmod/pcAppearanceIntro.tw
@@ -1,6 +1,6 @@
 :: PC Appearance Intro [nobr]
 
-Race and appearance are largely irrelevant in the free cities; there are only the free and the enslaved.
+Race and appearance are largely irrelevant in the Free Cities; there are only the free and the enslaved.
 <br>//Appearance only, no effect on gameplay (unless you make a big deal out of it).//
 
 <br><br>
diff --git a/src/pregmod/seFCTVinstall.tw b/src/pregmod/seFCTVinstall.tw
index ebad2ad9e951b1022e1902a14d4fd0fba28d8e40..e7f515028c1bbf89ad999d04e6b1a8b7c904d16d 100644
--- a/src/pregmod/seFCTVinstall.tw
+++ b/src/pregmod/seFCTVinstall.tw
@@ -6,6 +6,6 @@
 You've been sitting in your office into the early afternoon going over bothersome lease documents that need your approval. When you take a break to look out the window, $assistantName speaks up. "<<= properTitle()>>, you have received an approval welcome packet from 8HGG Inc in regards to Free Cities TV. It seems that they've determined that $arcologies[0].name is now sufficiently developed enough to warrant a FCTV-Citizen connection. All the details and contracts necessary are included in the packet. From there, a receiver will need to be built onto $arcologies[0].name in order to access FCTV."
 <br><br>
 
-You browse the guide: Home shopping networks, random dramas, how-to shows and a myriad of other things. Of more interest are some of the programs showing glimpses into foreign arcologies and how they are using the service to help mold society.
+You browse the guide: home shopping networks, random dramas, how-to shows and a myriad of other things. Of more interest are some of the programs showing glimpses into foreign arcologies and how they are using the service to help mold society.
 
 <br><br><i>While FCTV attempts to exclude any dick-based, pregnancy, hyperpregnancy, and extreme content based on your settings, it may still hint at that content, especially the more mundane of it. If you wish to be absolutely sure, don't watch FCTV or do not install the receiver.</i>
diff --git a/src/pregmod/seFCTVshows.tw b/src/pregmod/seFCTVshows.tw
index 6e015ddf2049f0d969bddc42e80b88204a4af9e1..676eeb938ee251a9d77822882d493227e9637b82 100644
--- a/src/pregmod/seFCTVshows.tw
+++ b/src/pregmod/seFCTVshows.tw
@@ -61,7 +61,7 @@ Tired after a long day, you tell <<if $Concubine != 0>>@@.pink;$Concubine.slaveN
 	<<if $randShow == 1 && $showOne > 3 || $showOne == 1>>
 		The segment is being anchored by the middle aged Kirk McMahon, and he's joined by the ever-popular "Anchor Slave", Jules. She's got a nice figure, and the only thing she's wearing to cover her perky breasts is a pair of FCNN pasties. She has on a fine leather collar; the large gold charm hanging from the front seems to be a stylized emblem of a ship's anchor merged with a microphone. The pair seems to be discussing the recent actions and punishment of the reality show slave Slooty.
 		<br><br>Jules seems to be quite passionate about the subject, the animated way she talks is causing her sizable tits to bounce all over the place. "It doesn't matter how famous or valuable that slut thinks she is, her behavior was just wrong on SO many levels. It makes all of us good slaves look bad. If you ask me, her master's choice of punishment fits the attention whore perfectly!"
-		<br><br>Kirk's face looks more than a little surprised, but you can't quite tell if it's an act or not. "You won't get any argument from me that she deserves to be punished... but getting chained up with an obedience collar and feeder system in the middle of Times Square, free for public use? A slum like Manhattan, she'll never <<if $seeExtreme == 0>><i>like</i><<else>>survive<</if>> the 10 day sentence!"
+		<br><br>Kirk's face looks more than a little surprised, but you can't quite tell if it's an act or not. "You won't get any argument from me that she deserves to be punished... but getting chained up with an obedience collar and feeder system in the middle of Times Square, free for public use? A slum like Manhattan, she'll never <<if $seeExtreme == 0>><i>enjoy</i><<else>>survive<</if>> the 10 day sentence!"
 		<br><br>Jules smiles. "That's exactly right Master McMahon, she's going to be <<if $seeExtreme == 0>><i>hugged until she smiles</i><<else>>fucked to death<</if>>. Her precious popularity in the old world will have the locals lined up all the way to New New Jersey waiting for their turn. I'd never question her master's decision, but if it were me, I'd pump her full of curatives and stimulants during the sentence. That way, she doesn't <<if $seeExtreme == 0>><i>smile</i><<else>>die or pass out<</if>> too soon. I think her master is being lenient after the way she badmouthed him in a live broadcast."
 		<br><br>...
 	<<elseif $randShow == 2 && $showOne > 3 || $showOne == 2>>
@@ -479,7 +479,7 @@ The offered price is <<print cashFormat($slaveCost)>>.
 		<br><br>
 		Anabell taps out a practiced rhythm on the cow's ass cheeks, <i>"we wouldn't wanna startle our cow here, so we have signals."</i> The cow shifts her weight slightly to open her thighs more and tilt her hips slightly upward. With a practiced hand, the milk maid reaches in and pulls on the cup. Her arm obstructs the view, but you hear a slight hissing noise. It's only a moment before Anabell is showing the business side of the cup to the camera, revealing the cow's surprisingly wet cunt and gaped vagina along with a loose pink asshole. <i>"So I suppose I'll start with the top here... So this butt plug here is pretty much a butt plug, though it's not meant to stretch a cow out. It helps hold everything in place, so the cup can stay in place without much suction, too much suction for too long is pretty bad for a cow and her unborn calves. At the tip you can see it looks a bit different than a normal butt plug; there's an opening that can feed in meds and liquids to keep 'em hydrated and healthy. There's also a gas diff.. diss... sorry, a gas diffusion membrane that lets out any pressure for practical reasons. The cup here also collects it though, something about methane and not wasting anything. This yellow tube here is where the gas goes."</i>
 		<br><br>
-		Anabell points at the large and vaguely mechanical looking dildo. <i>"Below the butt plug is the pussy plug. It does a whole bunch of things. Of course it helps stimulate the cow to improve production, but it also collects the cow's lubricant. As a cow gets closer to birth it stretches her out real good, and gets her hips ready to open nice and wide, so that the calves come out real easy. After eight months, we swap it out for one with a cervix massager."</i> Pointing to the nubby bottom area of the cup, she continues. <i>"Down here there are all these mechanical nubs that move around and vibrate, they keep a cow nice and stimulated. You can't really see it, but this is also where it collects the cow's pee for recycling. It wastes too much time for cows to be comin' and goin' to the toilet, but it'd a stinky mess if the cows just peed on the floor. With this, it's real easy for a cow to stay here all day. Maybe <i>too</i> easy, sometimes we hafta kick 'em out for breaks and exercise!"</i>
+		Anabell points at the large and vaguely mechanical looking dildo. <i>"Below the butt plug is the pussy plug. It does a whole bunch of things. Of course it helps stimulate the cow to improve production, but it also collects the cow's lubricant. As a cow gets closer to birth it stretches her out real good, and gets her hips ready to open nice and wide, so that the calves come out real easy. After eight months, we swap it out for one with a cervix massager."</i> Pointing to the nubby bottom area of the cup, she continues. <i>"Down here there are all these mechanical nubs that move around and vibrate, they keep a cow nice and stimulated. You can't really see it, but this is also where it collects the cow's <<if $seePee == 0>><i>paper and plastic refuse</i><<else>>pee<</if>> for recycling. It wastes too much time for cows to be comin' and goin' to the toilet, but it'd a stinky mess if the cows just <<if $seePee == 0>><i>threw their trash</i><<else>>peed<</if>> on the floor. With this, it's real easy for a cow to stay here all day. Maybe <i>too</i> easy, sometimes we hafta kick 'em out for breaks and exercise!"</i>
 		<br><br>
 		Next Anabell points out how the table is split in two from the feet all the way up to the groin hole. <i>"That probably looks strange, right? Easiest way to explain it would be to show you."</i> She does something to the table out of view, and stands back. The two sections of table, each one holding a leg, start moving apart to spread the cow's legs. They stop when her legs are spread at a 45 degree angle, incidentally giving the camera a great view of the cow's pussy. <i>"So it's real useful sometimes to have a cow's legs open like this, and it's also good to help stretch her hips. Next is the real magic though!"</i> He reaches forward and touches the table again. This time though, the table's movements are a lot more complex. It bends her knees and waist, while tilting her ass upward and spreading her legs further. By the time it's done her body looks like it's ready for doggy style, with her thighs spread too wide to be practical for a bed, and the cow's hips and legs angled in such a way that her large ass is completely out of the way of her spread cunt. <i>"ah, Ma'am, if it's okay, it'd be really mean to put the table back without finishing first..."</i>
 		<br><br>
diff --git a/src/pregmod/widgets/bodySwapReaction.tw b/src/pregmod/widgets/bodySwapReaction.tw
index c5342397e8c648fced3d50ee461f345108c29155..63599409aaa1e309aec94236437839e6ddc40334 100644
--- a/src/pregmod/widgets/bodySwapReaction.tw
+++ b/src/pregmod/widgets/bodySwapReaction.tw
@@ -196,7 +196,7 @@ Now you only have to wait for $him to wake up.
 			nothing particularly noteworthy.
 		<</if>>
 
-		<<if $args[0].sexualFlaw == "cum addiction" && $args[0].lips > $args[1].lips+10>> /* (bigger lip+oral fixation) */
+		<<if $args[0].sexualFlaw == "cum addict" && $args[0].lips > $args[1].lips+10>> /* (bigger lip+oral fixation) */
 			$He slowly runs $his fingertips over the @@.lime;plush pillows.@@ A blush blossoms over $his face and the beeping of $his heart monitor speeds up slightly. You know that $he'll put them to good use.
 			<<if $args[0].devotion <= 20>>
 				$He pauses, and begins to @@.hotpink;hesitantly smile@@ as $he feels the softness of $his lovely new lips.
@@ -204,7 +204,7 @@ Now you only have to wait for $him to wake up.
 			<</if>>
 		<<elseif $args[0].lips > $args[1].lips+10>>
 			$His fingers brush $his lips and $he pauses for a moment,<<if $args[0].fetish == "mindbroken">> as if<</if>> noticing that @@.lime;they are larger now@@ than they once were.
-		<<elseif $args[0].sexualFlaw == "cum addiction" && $args[0].lips < $args[1].lips-10>> /* (smaller lip+oral fixation) */
+		<<elseif $args[0].sexualFlaw == "cum addict" && $args[0].lips < $args[1].lips-10>> /* (smaller lip+oral fixation) */
 			<<if $args[0].devotion > 20>>
 				$His fingers pause and almost flinch away once they reach $his lips. A second later, they return to confirm $his fear. $His pride and joy are @@.orange;gone.@@ $He lets out a sniff and @@.mediumorchid;tears begin to roll down $his cheeks.@@
 				<<set $args[0].devotion -= 10>>
@@ -229,6 +229,24 @@ Now you only have to wait for $him to wake up.
 		<<elseif $args[0].teeth != "removable" && $args[0].tonguePiercing > 0 && $args[1].tonguePiercing == 0>> /* (if tongue pierced+has teeth) */
 			You can vaguely hear $him rattling $his tongue piercing against $his teeth.
 		<</if>>
+		<<if ($args[0].tastes != 0 && $args[1].tastes == 0) || ($args[0].tastes == 0 && $args[1].tastes != 0)>>
+			$He can't sense the changes to $his taste buds, so $he's likely to be
+			<<if $args[1].tastes == 0>>
+				shocked by $his new disability
+			<<elseif $args[0].tastes == 0>>
+				pleasantly surprised at $his expanded senses
+			<</if>>
+			come $his next mealtime.
+		<</if>>
+		<<if ($args[0].smells != 0 && $args[1].smells == 0) || ($args[0].smells == 0 && $args[1].smells != 0)>>
+			$He won't realize it until some time after $he leaves the excessively sanitized operating room, but $he's likely to
+			<<if $args[1].smells == 0>>
+				find the loss of $his sense of smell very distressing
+			<<elseif $args[0].smells == 0>>
+				appreciate the restoration of $his sense of smell
+			<</if>>
+			when $he does.
+		<</if>>
 		<<if $args[0].physicalAge < 40 && $args[1].physicalAge > 50 && $args[0].fetish != "mindbroken">>
 			<<if $args[0].devotion > 20>>
 				$He can feel the @@.green;lack of wrinkles@@ on $his face and @@.hotpink;smiles broadly.@@
@@ -2253,14 +2271,14 @@ Now you only have to wait for $him to wake up.
 			<</if>>
 		<</if>>
 
-		<<if $args[0].sexualFlaw == "cum addiction" && $args[0].lips > $args[1].lips+10>> /* (bigger lip+oral fixation) */
+		<<if $args[0].sexualFlaw == "cum addict" && $args[0].lips > $args[1].lips+10>> /* (bigger lip+oral fixation) */
 			$He slowly puckers $his @@.lime;plush pillows.@@ A blush blossoms over $his face and the beeping of $his heart monitor speeds up slightly. You know that $he'll put them to good use.
 			<<if $args[0].devotion <= 20>>
 				$He pauses, and begins to @@.hotpink;hesitantly smile@@ as $he runs $his tongue across $his lovely new lips.
 			<</if>>
 		<<elseif $args[0].lips > $args[1].lips+10>>
 			$His eyes lock on $his lips and $he pauses for a moment,<<if $args[0].fetish == "mindbroken">> as if<</if>> noticing that @@.lime;they are larger now@@ than they once were.
-		<<elseif $args[0].sexualFlaw == "cum addiction" && $args[0].lips < $args[1].lips-10>> /* (smaller lip+oral fixation) */
+		<<elseif $args[0].sexualFlaw == "cum addict" && $args[0].lips < $args[1].lips-10>> /* (smaller lip+oral fixation) */
 			<<if $args[0].devotion > 20>>
 				$His eyes lock on $his lips and $he recoils. A second later, $he runs $his tongue across them to confirm $his fear. $His pride and joy are @@.orange;gone.@@ $He lets out a sniff and @@.mediumorchid;tears begin to roll down $his cheeks.@@
 				<<set $args[0].devotion -= 10>>
@@ -2285,6 +2303,24 @@ Now you only have to wait for $him to wake up.
 		<<elseif $args[0].teeth != "removable" && $args[0].tonguePiercing > 0 && $args[1].tonguePiercing == 0>> /* (if tongue pierced+has teeth) */
 			You can vaguely hear $him rattling $his tongue piercing against $his teeth as $he takes in $his appearance.
 		<</if>>
+		<<if ($args[0].tastes != 0 && $args[1].tastes == 0) || ($args[0].tastes == 0 && $args[1].tastes != 0)>>
+			$He can't sense the changes to $his taste buds, so $he's likely to be
+			<<if $args[0].tastes == 0>>
+				shocked by $his new disability
+			<<elseif $args[1].tastes == 0>>
+				pleasantly surprised at $his expanded senses
+			<</if>>
+			come $his next mealtime.
+		<</if>>
+		<<if ($args[0].smells != 0 && $args[1].smells == 0) || ($args[0].smells == 0 && $args[1].smells != 0)>>
+			$He won't realize it until some time after $he leaves the excessively sanitized operating room, but $he's likely to
+			<<if $args[0].smells == 0>>
+				find the loss of $his sense of smell very distressing
+			<<elseif $args[1].smells == 0>>
+				appreciate the restoration of $his sense of smell
+			<</if>>
+			when $he does.
+		<</if>>
 		<<if $args[0].physicalAge < 40 && $args[1].physicalAge > 50 && $args[0].fetish != "mindbroken">>
 			<<if $args[0].devotion > 20>>
 				$He notices the @@.green;lack of wrinkles@@ on $his face and @@.hotpink;smiles broadly.@@
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
index 8131801c5b9a590feacb88635b1a55cec4a94ee0..f6a079911ca684ef2106a0133ebba31690fc62e7 100644
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ b/src/pregmod/widgets/bodyswapWidgets.tw
@@ -74,6 +74,8 @@
 <<set $args[0].earShape = $args[1].earShape>>
 <<set $args[0].earT = $args[1].earT>>
 <<set $args[0].earTColor = $args[1].earTColor>>
+<<set $args[0].smells = $args[1].smells>>
+<<set $args[0].tastes = $args[1].tastes>>
 <<set $args[0].horn = $args[1].horn>>
 <<set $args[0].hornColor = $args[1].hornColor>>
 <<set $args[0].PTail = $args[1].PTail>>
@@ -245,37 +247,15 @@
 
 <<if $args[1].bodySwap == 0>>
 	<<if $args[1].birthSurname>>
-		<<if $surnameOrder != 1>>
-			<<switch $args[1].nationality>>
-				<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-					<<if $args[1].birthName !== "">>
-						<<set $args[0].origBodyOwner = $args[1].birthSurname + " " + $args[1].birthName>>
-					<<else>>
-						<<set $args[0].origBodyOwner = $args[1].birthSurname + " " + $args[1].slaveName>>
-					<</if>>
-				<<default>>
-					<<if $args[1].birthName !== "">>
-						<<set $args[0].origBodyOwner = $args[1].birthName + " " + $args[1].birthSurname>>
-					<<else>>
-						<<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].birthSurname>>
-					<</if>>
-			<</switch>>
+		<<if $args[1].birthName !== "">>
+			<<set $args[0].origBodyOwner = SlaveFullBirthName($args[1])>>
 		<<else>>
-			<<if $args[1].birthName !== "">>
-				<<set $args[0].origBodyOwner = $args[1].birthName + " " + $args[1].birthSurname>>
-			<<else>>
-				<<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].birthSurname>>
-			<</if>>
+			<<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].birthSurname>>
 		<</if>>
 	<<elseif $args[1].birthName>>
 		<<if $args[1].slaveSurname>>
-			<<if $surnameOrder != 1>>
-				<<switch $args[1].nationality>>
-					<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-						<<set $args[0].origBodyOwner = $args[1].slaveSurname + " " + $args[1].birthName>>
-					<<default>>
-						<<set $args[0].origBodyOwner = $args[1].birthName + " " + $args[1].slaveSurname>>
-				<</switch>>
+			<<if (($surnameOrder != 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes($args[1].nationality)) || ($surnameOrder == 2)>>
+				<<set $args[0].origBodyOwner = $args[1].slaveSurname + " " + $args[1].birthName>>
 			<<else>>
 				<<set $args[0].origBodyOwner = $args[1].birthName + " " + $args[1].slaveSurname>>
 			<</if>>
@@ -283,16 +263,7 @@
 			<<set $args[0].origBodyOwner = $args[1].birthName>>
 		<</if>>
 	<<elseif $args[1].slaveSurname>>
-		<<if $surnameOrder != 1>>
-			<<switch $args[1].nationality>>
-				<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-					<<set $args[0].origBodyOwner = $args[1].slaveSurname + " " + $args[1].slaveName>>
-				<<default>>
-					<<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].slaveSurname>>
-			<</switch>>
-		<<else>>
-			<<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].slaveSurname>>
-		<</if>>
+		<<set $args[0].origBodyOwner = SlaveFullName($args[1])>>
 	<<else>>
 		<<set $args[0].origBodyOwner = $args[1].slaveName>>
 	<</if>>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index 95757eb36b3780e77dbccc71f62fa00a05c880e6..66bd1b9b288c50e3e68b325eef9dddd268a7a5be 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -72,10 +72,10 @@
 <</if>>
 
 <<if ndef $PC.name>>
-<<if def $PCName>>
-	<<set $PC.name = $PCName>>
-	<<unset $PCName>>
-<</if>>
+	<<if def $PCName>>
+		<<set $PC.name = $PCName>>
+		<<unset $PCName>>
+	<</if>>
 <</if>>
 <<if ndef $PC.surname>>
 	<<set $PC.surname = 0>>
@@ -581,6 +581,9 @@
 <<if ndef $seeBestiality>>
 	<<set $seeBestiality = 0>>
 <</if>>
+<<if ndef $seePee>>
+	<<set $seePee = 0>>
+<</if>>
 <<if ndef $extremeUnderage>>
 	<<set $extremeUnderage = 0>>
 <</if>>
@@ -1072,6 +1075,9 @@
 <<if ndef $showNumbersMax>>
 	<<set $showNumbersMax = 20>>
 <</if>>
+<<if ndef $surnameOrder>>
+	<<set $surnameOrder = 0>>
+<</if>>
 <<if ndef $prisonCircuit>>
 	<<set $prisonCircuit = ["low tier criminals", "gangs and smugglers", "white collar", "military prison"]>>
 	<<set $prisonCircuitIndex = random(0,$prisonCircuit.length-1)>>
@@ -3268,8 +3274,12 @@ Setting missing slave variables:
 	<<set _Slave.eyeColor = _Slave.origEye>>
 <</if>>
 
-<<if ndef _Slave.birthSurname>><<set _Slave.birthSurname = 0>><</if>>
-<<if ndef _Slave.slaveSurname>><<set _Slave.slaveSurname = 0>><</if>>
+<<if ndef _Slave.birthSurname>>
+	<<set _Slave.birthSurname = 0>>
+<</if>>
+<<if ndef _Slave.slaveSurname>>
+	<<set _Slave.slaveSurname = 0>>
+<</if>>
 
 <<if _Slave.faceImplant == 1>>
 	<<set _Slave.faceImplant = 15>>
@@ -3502,6 +3512,12 @@ Done!
 	<<if ndef _rule.surgery_hears>>
 		<<set _rule.surgery_hears = "no default setting">>
 	<</if>>
+	<<if ndef _rule.surgery_smells>>
+		<<set _rule.surgery_smells = "no default setting">>
+	<</if>>
+	<<if ndef _rule.surgery_tastes>>
+		<<set _rule.surgery_tastes = "no default setting">>
+	<</if>>
 	<<if ndef _rule.surgery_vasectomy>>
 		<<set _rule.surgery_vasectomy = "no default setting">>
 	<</if>>
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index ab433596ec7312a3ebf58de5d0ce30d061e18f58..92b18aba5fcdae516528f000adf674a03b035a69 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -3173,7 +3173,7 @@ and flirting with passersby. Or $he would be, if $he weren't surrounded by a hos
 <<elseif $activeSlave.lips > 40>>
 	"Those lips make $him look like a cartoon,"
 <<elseif $activeSlave.belly >= 1500>>
-	"Look at that belly, bet $he doesn't even know who's it is,"
+	"Look at that belly, bet $he doesn't even know whose it is,"
 <<elseif $activeSlave.dick > 3>>
 	"I bet $he never gets to stick that thing in anyone,"
 <<elseif $activeSlave.anus > 2>>
@@ -5177,7 +5177,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 	<<replace "#result">>
 		$He is far stronger than you expected and has you trapped in a compromising position. You've seen $activeSlave.slaveName fuck before; $he's a quick shot, only in it to get $his mate pregnant. You question what you are thinking as $his gigantic dick pokes at your crotch, eager to find the egg at the end of the tunnel. $He lacks even the basic understanding of foreplay, you realize, as $he drives $his cock deep into your pussy. You groan with pain at the sheer size of the rod stretching out your poor hole and struggle to hold back the tears once $he starts thrusting. There is no pleasure for you here as $he batters your cervix; you barely stop yourself from screaming out as $he slams through your final defense and cums directly into your exposed womb.
 		<br><br>
-		You immediately realize you've made a mistake; you feel full already and $he's still cumming. You watch in horror as your belly steadily swells with seed, unable to flow out thanks to your obstructed cunt. $activeSlave.slaveName grunts as $he pushes out the last of $his load before pulling out and releasing you. You try to get up, but the experience has left you drained, so you are left hoping that $his instincts tell $him $he's done $his job. $He lowers $his nose to your violated pussy and sniffs; unsatisfied, $he moves back into position to properly seed you this time. You black out as $his second load joins the first, only to awaken sometime later
+		You immediately realize you've made a mistake; you feel full already and $he's still cumming. You watch in horror as your belly steadily swells with seed, unable to flow out thanks to your obstructed cunt. $activeSlave.slaveName grunts as $he pushes out the last of $his load before pulling out and releasing you. You try to get up, but the experience has left you drained, so you are left hoping that $his instincts tell $him $he's done $his job. $He lowers $his <<if canSmell($activeSlave)>>nose to your violated pussy and sniffs<<else>>face to your violated pussy to feel the heat emanating from it<</if>>; unsatisfied, $he moves back into position to properly seed you this time. You black out as $his second load joins the first, only to awaken sometime later
 		<<if $Concubine != 0>>
 			<<setLocalPronouns $Concubine 2>>
 			with $Concubine.slaveName trying _his2 best to drain your swollen belly.
@@ -5217,7 +5217,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 			<<else>>
 				$He smiles before explaining $he knows you want $him plumper and that $he accepts it, but is surprised by your honesty to such a question.
 			<</if>>
-			$He leaves your office @@.mediumaquamarine;slightly more trusting@@ for someone who's life is now entirely out of their hands.
+			$He leaves your office @@.mediumaquamarine;slightly more trusting@@ for someone whose life is now entirely out of their hands.
 			<<set $activeSlave.trust++>>
 		<<elseif $activeSlave.behavioralFlaw == "gluttonous">>
 			<<if canTalk($activeSlave)>>
@@ -5766,7 +5766,7 @@ brought in to you. This time <<EventNameLink>> has been sent to deliver it. $He
 	<<elseif _meetingBonus < 1000>>
 		<<set _meetingBonus = 1000>>
 	<</if>>
-	You finish the motion and get on with your day. $He burrows into the warm place on the bed where your body lay, which is actually an excellent sign of $his mental state. It suggests that $his dreaming mind is quite comfortable with your presence and even smell. You make the meeting, consoling yourself with the thought that you're hardly lacking for opportunities to <<if $PC.dick == 1>>stick your dick in<<else>>have sex with<</if>> $activeSlave.slaveName. The business opportunity turns out to be @@.yellowgreen;quite profitable;@@ you're glad you didn't pass it up.
+	You finish the motion and get on with your day. $He burrows into the warm place on the bed where your body lay, which is actually an excellent sign of $his mental state. It suggests that $his dreaming mind is quite comfortable with your presence<<if canSmell($activeSlave)>> and even smell<</if>>. You make the meeting, consoling yourself with the thought that you're hardly lacking for opportunities to <<if $PC.dick == 1>>stick your dick in<<else>>have sex with<</if>> $activeSlave.slaveName. The business opportunity turns out to be @@.yellowgreen;quite profitable;@@ you're glad you didn't pass it up.
 	<<run cashX(_meetingBonus, "event", $activeSlave)>>
 	<</replace>>
 <</link>>
@@ -7428,7 +7428,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<set $activeSlave.trust -= 5>>
 	<<run repX(-100, "event", $activeSlave)>>
 	<</replace>>
-<</link>><<if ($activeSlave.anus == 0 && canDoAnal($activeSlave)) || ($activeSlave.vagina == 0 && canDoVaginal($activeSlave))>> //This option will take virginity//<</if>>
+<</link>><<if (($activeSlave.anus == 0 && canDoAnal($activeSlave)) || ($activeSlave.vagina == 0 && canDoVaginal($activeSlave))) && $seePee == 1>> //This option will take virginity//<</if>>
 <br><<link "Let $him stay in bed, but move it to a public restroom">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
@@ -8012,13 +8012,13 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 		<</if>>
 		$he <<say>>s<<if $activeSlave.lips > 70>> past $his enormous lips<<elseif $activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2>> past $his mouthful of piercings<</if>>.
 	<</if>>
-	$He comes eagerly over and sucks you off with enthusiasm. As you cum, $he orgasms quickly at the taste of the stuff hitting $his mouth<<if $PC.balls > 2>>, even as your load keeps flowing into $his gullet<<if $PC.balls > 3>> steadily bloated the poor $girl<</if>><</if>>.
+	$He comes eagerly over and sucks you off with enthusiasm. As you cum, $he orgasms quickly at the <<if canTaste($activeSlave)>>taste<<else>>feeling<</if>> of the stuff hitting $his mouth<<if $PC.balls > 2>>, even as your load keeps flowing into $his gullet<<if $PC.balls > 3>> steadily bloated the poor $girl<</if>><</if>>.
 	<<if !canTalk($activeSlave)>>
-		$He signs that you taste great.
+		$He <<if !canTaste($activeSlave)>>(rather ironically) <</if>>signs that you taste great.
 	<<else>>
-		"<<Master>>, you ta<<s>>te great," $he purrs.
+		"<<Master>>, you ta<<s>>te great," $he <<if !canTaste($activeSlave)>>(rather ironically) <</if>>purrs.
 	<</if>>
-		@@.mediumaquamarine;$He has become more trusting@@ in your willingness to give $him what $he wants.
+	@@.mediumaquamarine;$He has become more trusting@@ in your willingness to give $him what $he wants.
 	<<set $activeSlave.trust += 4, $activeSlave.oralCount++, $oralTotal++>>
 	<</replace>>
 <</link>>
@@ -8481,11 +8481,11 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
 	<<if $activeSlave.belly >= 600000>>
-		You struggle to heft $his overfilled body up, eliciting whimpers of joy at the impending relief and the pressure removed from $his body, and carefully secure $him with a few straps so $he can serve as your living cocksleeve. $He's attached to the front of your torso<<if $activeSlave.belly >= 5000>>, $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>stomach<</if>> forcing you to experience what it is like to carry $activeSlave.pregType children,<</if>> with your cock up inside $him, and the gentle motion of your member as you waddle outside brings $him to climax within a few steps. You carefully stroll around the nicer levels of the arcology, admiring the views and <<if canSee($activeSlave)>>showing $activeSlave.slaveName the sights $he now requires assistance to see<<else>>explaining the sights as $activeSlave.slaveName soaks in the sounds and smells $he now requires assistance to experience<</if>> and leaving a large wake as people make room for your gravid mass. @@.hotpink;$He has become more devoted to you.@@ The sight of you waddling around with a living fucktoy on your cock @@.green;certainly cements your reputation as an arcology owner who has everything,@@ once they figure out that the belly attached to you is, in fact, owned by a barely visible slavegirl.
+		You struggle to heft $his overfilled body up, eliciting whimpers of joy at the impending relief and the pressure removed from $his body, and carefully secure $him with a few straps so $he can serve as your living cocksleeve. $He's attached to the front of your torso<<if $activeSlave.belly >= 5000>>, $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>stomach<</if>> forcing you to experience what it is like to carry $activeSlave.pregType children,<</if>> with your cock up inside $him, and the gentle motion of your member as you waddle outside brings $him to climax within a few steps. You carefully stroll around the nicer levels of the arcology, admiring the views and <<if canSee($activeSlave)>>showing $activeSlave.slaveName the sights $he now requires assistance to see<<elseif canHear($activeSlave)>>explaining the sights as $activeSlave.slaveName soaks in the sounds <<if canSmell($activeSlave)>>and smells <</if>>$he now requires assistance to experience<<else>>explaining everything around $him as $he basks in the feeling of the fresh air on $his $activeSlave.skin skin<</if>> and leaving a large wake as people make room for your gravid mass. @@.hotpink;$He has become more devoted to you.@@ The sight of you waddling around with a living fucktoy on your cock @@.green;certainly cements your reputation as an arcology owner who has everything,@@ once they figure out that the belly attached to you is, in fact, owned by a barely visible slavegirl.
 	<<elseif $activeSlave.belly >= 300000>>
-		You heft $his heavy body $him up, eliciting whimpers of joy at the impending relief, and carefully secure $him with a few straps so $he can serve as your living cocksleeve. $He's attached to the front of your torso<<if $activeSlave.belly >= 5000>>, $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>stomach<</if>> massively jutting out in front of you,<</if>> with your cock up inside $him, and the gentle motion of your member as you waddle outside brings $him to climax within a few steps. You carefully stroll around the nicer levels of the arcology, admiring the views and <<if canSee($activeSlave)>>showing $activeSlave.slaveName the sights $he now requires assistance to see<<else>>explaining the sights as $activeSlave.slaveName soaks in the sounds and smells $he now requires assistance to experience<</if>>. @@.hotpink;$He has become more devoted to you.@@ The sight of you waddling around with a living fucktoy on your cock @@.green;certainly cements your reputation as an arcology owner who has everything.@@
+		You heft $his heavy body $him up, eliciting whimpers of joy at the impending relief, and carefully secure $him with a few straps so $he can serve as your living cocksleeve. $He's attached to the front of your torso<<if $activeSlave.belly >= 5000>>, $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>stomach<</if>> massively jutting out in front of you,<</if>> with your cock up inside $him, and the gentle motion of your member as you waddle outside brings $him to climax within a few steps. You carefully stroll around the nicer levels of the arcology, admiring the views and <<if canSee($activeSlave)>>showing $activeSlave.slaveName the sights $he now requires assistance to see<<elseif canHear($activeSlave)>>explaining the sights as $activeSlave.slaveName soaks in the sounds <<if canSmell($activeSlave)>>and smells <</if>>$he now requires assistance to experience<<else>>explaining everything around $him as $he basks in the feeling of the fresh air on $his $activeSlave.skin skin<</if>>. @@.hotpink;$He has become more devoted to you.@@ The sight of you waddling around with a living fucktoy on your cock @@.green;certainly cements your reputation as an arcology owner who has everything.@@
 	<<else>>
-		You scoop $him up, eliciting whimpers of joy at the impending relief, and carefully secure $him with a few straps so $he can serve as your living cocksleeve. $He's attached to the front of your torso<<if $activeSlave.belly >= 5000>>, $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>stomach<</if>> jutting out in front of you,<</if>> with your cock up inside $him, and the gentle motion of your member as you walk outside brings $him to climax within a few steps. You take your time and stroll around the nicer levels of the arcology, admiring the views and <<if canSee($activeSlave)>>showing $activeSlave.slaveName the sights $he now requires assistance to see<<else>>explaining the sights as $activeSlave.slaveName soaks in the sounds and smells $he now requires assistance to experience<</if>>. @@.hotpink;$He has become more devoted to you.@@ The sight of you walking around with a living fucktoy on your cock @@.green;certainly cements your reputation as an arcology owner who has everything.@@
+		You scoop $him up, eliciting whimpers of joy at the impending relief, and carefully secure $him with a few straps so $he can serve as your living cocksleeve. $He's attached to the front of your torso<<if $activeSlave.belly >= 5000>>, $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>stomach<</if>> jutting out in front of you,<</if>> with your cock up inside $him, and the gentle motion of your member as you walk outside brings $him to climax within a few steps. You take your time and stroll around the nicer levels of the arcology, admiring the views and <<if canSee($activeSlave)>>showing $activeSlave.slaveName the sights $he now requires assistance to see<<elseif canHear($activeSlave)>>explaining the sights as $activeSlave.slaveName soaks in the sounds <<if canSmell($activeSlave)>>and smells <</if>>$he now requires assistance to experience<<else>>explaining everything around $him as $he basks in the feeling of the fresh air on $his $activeSlave.skin skin<</if>>. @@.hotpink;$He has become more devoted to you.@@ The sight of you walking around with a living fucktoy on your cock @@.green;certainly cements your reputation as an arcology owner who has everything.@@
 	<</if>>
 	<<set $activeSlave.devotion += 4>>
 	<<run repX(500, "event", $activeSlave)>>
@@ -8749,7 +8749,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<if ($activeSlave.belly >= 120000) && ($activeSlave.dick > 0)>>
 		climaxes, $he makes sure they can see the way $his enormously distended body spasms with orgasm.
 	<<elseif ($activeSlave.belly >= 10000) && ($activeSlave.dick > 0)>>
-		finally orgasms, $he attempts to hike $his hips over $his head and direct the cum into $his mouth. However, $his <<if $activeSlave.bellyPreg >= 5000>>advanced pregnancy<<else>>_belly belly<</if>> thwarts $his efforts and $he ends up cumming on $his stomach's underside. $He brushes some cum off with $his fingers and brings it to $his mouth, smiling at the taste.
+		finally orgasms, $he attempts to hike $his hips over $his head and direct the cum into $his mouth. However, $his <<if $activeSlave.bellyPreg >= 5000>>advanced pregnancy<<else>>_belly belly<</if>> thwarts $his efforts and $he ends up cumming on $his stomach's underside. $He brushes some cum off with $his fingers and brings it to $his mouth, smiling at the <<if canTaste($activeSlave)>>taste<<else>>sensation<</if>>.
 	<<elseif ($activeSlave.dick > 0) && ($activeSlave.dick < 5) && ($activeSlave.belly >= 5000)>>
 		finally orgasms, $he attempts to hike $his hips over $his head and direct the cum into $his mouth. However, $he ends up just coating $his <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>_belly belly<</if>> in $his own cum.
 	<<elseif ($activeSlave.dick > 4) && ($activeSlave.belly >= 5000)>>
@@ -8761,7 +8761,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<elseif $activeSlave.vagina == -1>>
 		climaxes, $he makes sure they can see the way $his asspussy spasms with orgasm.
 	<<else>>
-		finally climaxes, $he carefully licks $his hands clean, showing off $his enjoyment of $his own taste.
+		finally climaxes, $he carefully licks $his hands clean, showing off $his enjoyment of $his own <<if canTaste($activeSlave)>>taste<<else>>fluids<</if>>.
 	<</if>>
 	Authenticity is hard to fake, and the many citizens who saw the broadcast don't doubt @@.green;your ability to train@@ a shameless slut.
 	<<run repX(1250, "event", $activeSlave)>>
@@ -9264,7 +9264,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<</if>>
 	and have gentle vaginal sex in the missionary position <<if $PC.vagina == 1>><<if $PC.dick == 1>>, your own pussy moving back and forth gently at the base of your dick as you fuck $him<</if>><</if>>. $He gasps at the first penetration, but you take it slowly and lavish attention on $his lips, breasts, and nipples. Soon $he's shamelessly enjoying $himself. $His first vaginal sex is crowned with an abdominal-clenching orgasm. $He @@.hotpink;adores $his kind <<= WrittenMaster()>>.@@
 	<<set $activeSlave.devotion += 10, $activeSlave.vaginalCount++, $activeSlave.vagina = 1, $vaginalTotal++>>
-	<<if ($activeSlave.chastityVagina == 1>><<set $activeSlave.chastityVagina = 0>><</if>>
+	<<if $activeSlave.chastityVagina == 1>><<set $activeSlave.chastityVagina = 0>><</if>>
 	<<if canImpreg($activeSlave, $PC)>>
 		<<= knockMeUp($activeSlave, 25, 0, -1)>>
 	<</if>>
@@ -10180,9 +10180,9 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	But it'll do no harm, just this once, and you tell $him so. $He nods, not wanting to spoil the moment by speaking.
 	<br><br>
 	<<if $PC.refreshmentType == 0>>
-		After you light $his $PC.refreshment for $him, $he holds the first taste of its smoke in $his mouth for a long, sensual moment before letting it trickle back out through $his lips.
+		After you light $his $PC.refreshment for $him, $he holds the <<if canTaste($activeSlave)>>first taste<<else>>feeling<</if>> of its smoke in $his mouth for a long, sensual moment before letting it trickle back out through $his lips.
 	<<elseif $PC.refreshmentType == 1 || $PC.refreshmentType == 2>>
-		$He holds the first taste of it in $his mouth for a long, sensual moment before swallowing reverently.
+		$He holds the <<if canTaste($activeSlave)>>first taste<<else>>feeling<</if>> of it in $his mouth for a long, sensual moment before swallowing reverently.
 	<<else>>
 		$He savors the thrill of using $PC.refreshment for a moment, before turning to you, an almost desperate need on $his face.
 	<</if>>
@@ -10192,7 +10192,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<else>>
 		with plenty of tongue,
 	<</if>>
-	and then goes back to work, @@.mediumaquamarine;smiling unconsciously@@ as $he savors the lingering <<if $PC.refreshmentType == 3 || $PC.refreshmentType == 4 || $PC.refreshmentType == 5 || $PC.refreshmentType == 6>>rush<<else>>flavor<</if>>.
+	and then goes back to work, @@.mediumaquamarine;smiling unconsciously@@ as $he savors the lingering <<if $PC.refreshmentType == 3 || $PC.refreshmentType == 4 || $PC.refreshmentType == 5 || $PC.refreshmentType == 6>>rush<<else>><<if canTaste($activeSlave)>>flavor<<else>>sensation<</if>><</if>>.
 	<<set $activeSlave.trust += 4>>
 	<</replace>>
 <</link>>
@@ -10577,7 +10577,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<else>>
 		$He manages to beg, "Plea<<s>>e no, <<Master>> —"
 	<</if>>
-	before you give $him a hard warning slap on the ass to shut $his up. $He's quiet, but starts to sob a little when $he feels <<if $PC.dick == 0>>the head of a strap-on<<else>>your cock<</if>> against $his
+	before you give $him a hard warning slap on the ass to shut $him up. $He's quiet, but starts to sob a little when $he feels <<if $PC.dick == 0>>the head of a strap-on<<else>>your cock<</if>> against $his
 	<<if canDoAnal($activeSlave)>>
 		anus.
 		<<if ($activeSlave.anus > 2)>>
@@ -13018,7 +13018,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 <<link "Require $him to self-flagellate">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-	You tell $him that you will offer $him a method of expiating $his deep and troubling sin. $He looks almost hopeful at this, until you lead $him out onto a balcony and order $him to strip before handing $him a simple length of hempen rope. $He already knows what's coming next, but $he breaks down as $he obeys your orders to kneel. $He sobs abjectly, but you don't even have to give the next order: $he's already flogging the rope against $his own back in the hope of earning a reprieve by obedience. You count the strokes aloud, stopping at one in disapproval of how light $he's hitting $himself. $He flogs $himself harder and harder, screaming a little and crying in pain and fear as you obstinately refuse to say "two." When $he strikes so hard that $he draws a little blood, you finally say the terrible word. When you're finally satisfied with $his self-torture, $he's so exhausted that you carry $his limp, bloody, vaguely urine-scented <<if $activeSlave.bellyPreg >= 1500>>gravid <</if>>form into the shower, wash $him, and apply curatives, @@.red;though $he's still quite injured.@@ $He wakes to find $himself curled up in your lap, and $he stiffens for a brief moment before @@.hotpink;relaxing against your chest,@@ weeping softly.
+	You tell $him that you will offer $him a method of expiating $his deep and troubling sin. $He looks almost hopeful at this, until you lead $him out onto a balcony and order $him to strip before handing $him a simple length of hempen rope. $He already knows what's coming next, but $he breaks down as $he obeys your orders to kneel. $He sobs abjectly, but you don't even have to give the next order: $he's already flogging the rope against $his own back in the hope of earning a reprieve by obedience. You count the strokes aloud, stopping at one in disapproval of how light $he's hitting $himself. $He flogs $himself harder and harder, screaming a little and crying in pain and fear as you obstinately refuse to say "two." When $he strikes so hard that $he draws a little blood, you finally say the terrible word. When you're finally satisfied with $his self-torture, $he's so exhausted that you carry $his limp, bloody<<if $seePee == 1>>, vaguely urine-scented<</if>><<if $activeSlave.bellyPreg >= 1500>> gravid<</if>> form into the shower, wash $him, and apply curatives, @@.red;though $he's still quite injured.@@ $He wakes to find $himself curled up in your lap, and $he stiffens for a brief moment before @@.hotpink;relaxing against your chest,@@ weeping softly.
 	<<if ($activeSlave.fetish != "submissive") && (random(1,100) > 50)>>
 		<<set $activeSlave.fetish = "submissive",set $activeSlave.fetishKnown = 1, $activeSlave.fetishStrength = 10>>
 		$He has come to associate @@.lightcoral;submission@@ with sexual fulfillment.
@@ -14456,7 +14456,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<setNonlocalPronouns $seeDicks>>
 	<<replace "#result">>
 	<<set $activeSlave.devotion += 4, $activeSlave.trust += 4>>
-	<<set _targetJobs = ["rest", "be a servant", "be a subordinate slave", "whore", "serve the public", "work a glory hole", "get milked", "please you", "work as a servant", "serve in the club", "rest in the spa", "learn in the schoolroom", "take classes", "work in the brothel"]>>
+	<<set _targetJobs = ["be a servant", "be a subordinate slave", "get milked", "learn in the schoolroom", "please you", "rest in the spa", "rest", "serve in the club", "serve the public", "take classes", "whore", "work a glory hole", "work as a servant", "work in the brothel"]>>
 	You leave for the moment, but appear at the next mealtime before even $he does. You shut off all the phallic feeders but one, and make an announcement. You decree that just for this one meal, $activeSlave.slaveName is to lie in front of the one functional feeder,
 	<<if canPenetrate($activeSlave)>>as
 		$his cock in the air;
@@ -14566,7 +14566,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 <br><<link "The rule about consent works both ways">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-	<<set _targetJobs = ["rest", "be a servant", "be a subordinate slave", "whore", "serve the public", "work a glory hole", "get milked", "please you", "work as a servant", "serve in the club", "rest in the spa", "learn in the schoolroom", "take classes", "work in the brothel"]>>
+	<<set _targetJobs = ["be a servant", "be a subordinate slave", "get milked", "learn in the schoolroom", "please you", "rest in the spa", "rest", "serve in the club", "serve the public", "take classes", "whore", "work a glory hole", "work as a servant", "work in the brothel"]>>
 	You tell $activeSlave.slaveName to get up on the kitchen counter and spread $his legs. $He catches something in the tone of your voice and looks frightened, but obeys. You then make several conversational observations, as though for no particular reason, to the rest of the slaves. First, you point out, the consent rule works for everyone: they, hypothetically, would not need to ask $activeSlave.slaveName $his permission to fuck $his ass, just like $he doesn't have to ask their permission to molest them during meals. (At this $activeSlave.slaveName's fear deepens into obvious @@.gold;terror.@@) Second, you have decided $activeSlave.slaveName will not be getting down off the counter until everyone's done with their meals — and anything else they wish to do in the kitchen. And third, you conclude, any number of large strap-ons and dildos can be found in the kitchen cabinets. There is a general rush for these; you tell $activeSlave.slaveName, whose
 	<<if $activeSlave.lips > 40>>
 		bimbo
@@ -14666,7 +14666,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 		<</if>>
 	<<else>>
 		<<if $activeSlave.belly >= 300000>>
-			tip $his over $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>middle<</if>> and grope $him thoroughly, bringing $him to the painful edge of orgasm. Just when $he's about to tip over the edge, the stimulation stops and you haul $him up into your lap, $his stomach spreading your legs, and start playing with $his nipples.
+			tip $him over $his _belly <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>middle<</if>> and grope $him thoroughly, bringing $him to the painful edge of orgasm. Just when $he's about to tip over the edge, the stimulation stops and you haul $him up into your lap, $his stomach spreading your legs, and start playing with $his nipples.
 		<<elseif $activeSlave.belly >= 5000>>
 			spread your legs to give $his <<if $activeSlave.bellyPreg >= 3000>>pregnancy<<else>>bloated middle<</if>> room as you pull $him onto your lap and grope $him thoroughly, bringing $him to the painful edge of orgasm. Just when $he's about to tip over the edge, the stimulation stops and you haul $him up into your lap and start playing with $his nipples.
 		<<else>>
@@ -14901,8 +14901,8 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
 	Simple problems require simple solutions — $he'll get fucked in the mouth until $he either gets over $his hang-ups about oral or learns to hide them. You drag the protesting $activeSlave.slaveName out in public, chain $him low so that $his mouth is available, and tell $him that $he'll suck dicks until $he gets through five in a row without grimacing, gagging, or resisting. You have a comfortable chair brought out to you and settle in to watch the show.
-	$activeSlave.slaveName tries, $he really does. But when word gets out as to the conditions of $his enslavement, $his users take a perverse enjoyment in being rougher than usual to evoke the exact reactions $he's trying to avoid. By the third failed streak, you've started to grow bored of the spectacle, but luckily you find entertainment in conversation with those who have already been entertained by poor $activeSlave.slaveName. Before long more chairs have been brought up and an impromptu salon has been set up alongside the blowbang line. By the sixth failed streak, an enterprising citizen has set up a small bar and is serving drinks. By the ninth, you've delegated watching $activeSlave.slaveName to your assistant. You personally break the 11th streak after $he reached four, to general acclaim from your newfound friends and a toast to your virility.
-	When the 14th streak is finally successful, there are serious talks about making these blowbang salons a regular occurrence and some backslapping directed towards you for your innovation in genteel hedonism. While you seriously doubt $activeSlave.slaveName enjoys oral sex any more than $he did at the start of the day, $he's certainly @@.green;learned to keep $his feelings on the matter to $himself.@@ $He did, however, @@.red;have quite a rough time@@ of it<<if $activeSlave.oralSkill <= 30>>, though $he did learn a thing or two about sucking dick.<<set $skillIncrease = 10>><<OralSkillIncrease $activeSlave>><<else>>.<</if>> And last of all, you and $activeSlave.slaveName did make @@.green;quite a good impression@@ today, though for widely differing reasons.
+	$activeSlave.slaveName tries, $he really does. But when word gets out as to the conditions of $his enslavement, $his users take a perverse enjoyment in being rougher than usual to evoke the exact reactions $he's trying to avoid. By the third failed streak, you've started to grow bored of the spectacle, but luckily you find entertainment in conversation with those who have already been entertained by poor $activeSlave.slaveName. Before long more chairs have been brought up and an impromptu salon has been set up alongside the blowbang line. By the sixth failed streak, an enterprising citizen has set up a small bar and is serving drinks. By the ninth, you've delegated watching $activeSlave.slaveName to your assistant. You personally break the eleventh streak after $he reached four, to general acclaim from your newfound friends and a toast to your virility.
+	When the fourteenth streak is finally successful, there are serious talks about making these blowbang salons a regular occurrence and some backslapping directed towards you for your innovation in genteel hedonism. While you seriously doubt $activeSlave.slaveName enjoys oral sex any more than $he did at the start of the day, $he's certainly @@.green;learned to keep $his feelings on the matter to $himself.@@ $He did, however, @@.red;have quite a rough time@@ of it<<if $activeSlave.oralSkill <= 30>>, though $he did learn a thing or two about sucking dick.<<set $skillIncrease = 10>><<OralSkillIncrease $activeSlave>><<else>>.<</if>> And last of all, you and $activeSlave.slaveName did make @@.green;quite a good impression@@ today, though for widely differing reasons.
 	<<set $activeSlave.health -= 10, $activeSlave.sexualFlaw = "none">>
 	<<set _oralSeed = random(65,80)>>
 	<<set $activeSlave.oralCount += _oralSeed, $activeSlave.publicCount += _oralSeed, $oralTotal += _oralSeed>>
@@ -15283,7 +15283,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<<else>>
 		You're massaging and squeezing $his flat chest.
 	<</if>>
-	$His face contorts with surprise and then outrage, but then $he <<if !canSee($activeSlave)>>recognizes your familiar smell and <</if>>realizes whose hand it is that's taking liberties with $him.
+	$His face contorts with surprise and then outrage, but then $he <<if !canSee($activeSlave)>>recognizes your familiar <<if canSmell($activeSlave)>>smell<<else>>touch<</if>> and <</if>>realizes whose hand it is that's taking liberties with $him.
 	<<if $activeSlave.intelligence+$activeSlave.intelligenceImplant > 50>>
 		Though $he's smart,
 	<<elseif $activeSlave.intelligence+$activeSlave.intelligenceImplant >= -15>>
@@ -15325,7 +15325,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 		<<else>>
 			You're massaging and teasing $his taut belly.
 		<</if>>
-		$His face contorts with surprise and then outrage, but then $he <<if !canSee($activeSlave)>>recognizes your familiar smell and <</if>>realizes whose hand it is that's taking liberties with $him.
+		$His face contorts with surprise and then outrage, but then $he <<if !canSee($activeSlave)>>recognizes your familiar <<if canSmell($activeSlave)>>smell<<else>>touch<</if>> and <</if>>realizes whose hand it is that's taking liberties with $him.
 		<<if $activeSlave.intelligence+$activeSlave.intelligenceImplant > 50>>
 			Though $he's smart,
 		<<elseif $activeSlave.intelligence+$activeSlave.intelligenceImplant >= -15>>
@@ -15356,7 +15356,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 		<<else>>
 			You're massaging and teasing $his taut belly.
 		<</if>>
-		$His face contorts with surprise and then outrage, but then $he <<if !canSee($activeSlave)>>recognizes your familiar smell and <</if>>realizes whose hand it is that's taking liberties with $him.
+		$His face contorts with surprise and then outrage, but then $he <<if !canSee($activeSlave)>>recognizes your familiar <<if canSmell($activeSlave)>>smell<<else>>touch<</if>> and <</if>>realizes whose hand it is that's taking liberties with $him.
 		<<if $activeSlave.intelligence+$activeSlave.intelligenceImplant > 50>>
 			Though $he's smart,
 		<<elseif $activeSlave.intelligence+$activeSlave.intelligenceImplant >= -15>>
@@ -15387,7 +15387,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 		<<else>>
 			You're massaging and jiggling $his taut belly, enjoying the sounds it makes as you move it.
 		<</if>>
-		$His face contorts with surprise and then outrage, but then $he <<if !canSee($activeSlave)>>recognizes your familiar smell and <</if>>realizes whose hand it is that's taking liberties with $him.
+		$His face contorts with surprise and then outrage, but then $he <<if !canSee($activeSlave)>>recognizes your familiar <<if canSmell($activeSlave)>>smell<<else>>touch<</if>> and <</if>>realizes whose hand it is that's taking liberties with $him.
 		<<if $activeSlave.intelligence+$activeSlave.intelligenceImplant > 50>>
 			Though $he's smart,
 		<<elseif $activeSlave.intelligence+$activeSlave.intelligenceImplant >= -15>>
@@ -15415,7 +15415,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 		<<else>>
 			chubby middle. You're massaging and jiggling $his tiny gut.
 		<</if>>
-		$His face contorts with surprise and then outrage, but then $he <<if !canSee($activeSlave)>>recognizes your familiar smell and <</if>>realizes whose hand it is that's taking liberties with $him.
+		$His face contorts with surprise and then outrage, but then $he <<if !canSee($activeSlave)>>recognizes your familiar <<if canSmell($activeSlave)>>smell<<else>>touch<</if>> and <</if>>realizes whose hand it is that's taking liberties with $him.
 		<<if $activeSlave.intelligence+$activeSlave.intelligenceImplant > 50>>
 			Though $he's smart,
 		<<elseif $activeSlave.intelligence+$activeSlave.intelligenceImplant >= -15>>
@@ -15434,7 +15434,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 <br><<link "Cum on $his face">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-	You stand over $him, quietly masturbating while watching $him sleep. Several of $his fellow slaves come and go as you do so, but if they're surprised by the sight, they have the presence of mind not to show it. You fancy yourself a bit of a marks<<if $PC.title == 1>>man<<else>>woman<</if>>, and you don't feel the need to bend over $him to score good hits. Your load comes in three main jets: the first hits $him on the nipple, the second tracks up $his sternum and throat, and the third splashes full across $his face as $his eyes fly open<<if $PC.vagina == 1>>, each of these accompanied by some less directionally perfect girlcum<</if>>. $He sputters with surprise and then outrage, but <<if !canSee($activeSlave)>>once $he recognizes your taste and<<else>>then $he<</if>> realizes who it is standing over $his <<if canSee($activeSlave)>>and<<else>>does $he<</if>> @@.gold;freezes in terror.@@
+	You stand over $him, quietly masturbating while watching $him sleep. Several of $his fellow slaves come and go as you do so, but if they're surprised by the sight, they have the presence of mind not to show it. You fancy yourself a bit of a marks<<if $PC.title == 1>>man<<else>>woman<</if>>, and you don't feel the need to bend over $him to score good hits. Your load comes in three main jets: the first hits $him on the nipple, the second tracks up $his sternum and throat, and the third splashes full across $his face as $his eyes fly open<<if $PC.vagina == 1>>, each of these accompanied by some less directionally perfect girlcum<</if>>. $He sputters with surprise and then outrage, but <<if !canSee($activeSlave)>>once $he recognizes your <<if canTaste($activeSlave)>>taste<<else>>presence<</if>> and<<else>>then $he<</if>> realizes who it is standing over $him <<if canSee($activeSlave)>>and<<else>>does $he<</if>> @@.gold;freezes in terror.@@
 	<<if $activeSlave.intelligence+$activeSlave.intelligenceImplant > 50>>
 		$He's quick, and $he immediately realizes
 	<<elseif $activeSlave.intelligence+$activeSlave.intelligenceImplant >= -15>>
@@ -15450,7 +15450,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 <br><<link "Squirt on $his face">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-	You stand over $him, quietly masturbating while watching $him sleep. Several of $his fellow slaves come and go as you do so, but if they're surprised by the sight, they have the presence of mind not to show it. You're on excellent terms with your cunt, and you know just what it takes to make yourself squirt. When you feel the heat building just right, you quickly straddle $his face without touching $him, angling yourself carefully and increasing the pace of your schlicking. In no time at all, a jet of femcum splashes onto $his face and down across $his chest. $He sputters with surprise and then outrage, but then $he <<if canSee($activeSlave)>>realizes whose pussy $he's staring straight into<<else>>recognizes your flavor<</if>> and @@.gold;freezes in terror.@@
+	You stand over $him, quietly masturbating while watching $him sleep. Several of $his fellow slaves come and go as you do so, but if they're surprised by the sight, they have the presence of mind not to show it. You're on excellent terms with your cunt, and you know just what it takes to make yourself squirt. When you feel the heat building just right, you quickly straddle $his face without touching $him, angling yourself carefully and increasing the pace of your schlicking. In no time at all, a jet of femcum splashes onto $his face and down across $his chest. $He sputters with surprise and then outrage, but then $he <<if canSee($activeSlave)>>realizes whose pussy $he's staring straight into<<else>>recognizes your <<if canTaste($activeSlave)>>flavor<<else>>presence<</if>><</if>> and @@.gold;freezes in terror.@@
 	<<if $activeSlave.intelligence+$activeSlave.intelligenceImplant > 50>>
 		$He's quick, and $he immediately realizes
 	<<elseif $activeSlave.intelligence+$activeSlave.intelligenceImplant >= -15>>
@@ -15558,7 +15558,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 	<</if>>
 	channel.
 	<<= VaginalVCheck()>>
-	You're here to rut, not make love, and you give it to $his hard, forcing <<if $activeSlave.voice >= 3>>high squeals<<else>>animal grunts<</if>> out of $him. $He climaxes strongly, and the glorious feeling finishes you as well, bringing rope after rope of your cum jetting into $him. $He groans at the feeling, and as $he <<if $activeSlave.belly >= 5000 || $activeSlave.weight > 190>>slowly <</if>>gets to $his feet $he uses a hand to transfer a taste of the mixture of your seed and <<if $PC.vagina == 1>>both of your<<else>>$his<</if>> pussyjuice to $his mouth.
+	You're here to rut, not make love, and you give it to $his hard, forcing <<if $activeSlave.voice >= 3>>high squeals<<else>>animal grunts<</if>> out of $him. $He climaxes strongly, and the glorious feeling finishes you as well, bringing rope after rope of your cum jetting into $him. $He groans at the feeling, and as $he <<if $activeSlave.belly >= 5000 || $activeSlave.weight > 190>>slowly <</if>>gets to $his feet $he uses a hand to transfer a <<if canTaste($activeSlave)>>taste<<else>>bit<</if>> of the mixture of your seed and <<if $PC.vagina == 1>>both of your<<else>>$his<</if>> pussyjuice to $his mouth.
 	<<if $activeSlave.belly >= 750000>>
 		"Oh <<Master>>! I'm <<s>>welling <<s>>o fast with imp<<s>> for you! There'<<s>> <<s>>o many in me... Oh god, it feel<<s>> like I'm going to bur<<s>>t! <<S>>o many... <<Master>> <<s>>ure i<<s>> potent! I hope _heP can handle them all!" $He groans, cradling $his _belly belly and pretending to be forced to the ground by $his pregnancy growing ever larger. "<<Master>>! They won't <<s>>top! Oh... <<S>>o full... I can't <<s>>top con<<c>>eiving!" $He roles onto $his back and clutches $his absurd stomach. "<<S>>o tight! <<S>>o full! <<S>>o Good! I need more! Oh, <<Master>>..." $He may be getting a little too into the fantasy.
 		<<if $activeSlave.broodmother == 2 && $activeSlave.preg > 37>>
@@ -16489,17 +16489,17 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 		<<else>>
 			clit
 		<</if>>
-		making sure to cover yourself completely. You recline in your seat, beckoning to $activeSlave.slaveName to lick you clean. $He eagerly complies, eager to get a taste of $PC.refreshment after nothing but slave food for so long.
+		making sure to cover yourself completely. You recline in your seat, beckoning to $activeSlave.slaveName to lick you clean. $He eagerly complies, eager to get a <<if canTaste($activeSlave)>>taste<<else>>bit<</if>> of $PC.refreshment after nothing but slave food for so long.
 		<<if $activeSlave.oralSkill > 60>>
 			$He is extremely skilled with $his tongue; before long, not only are you completely cleaned, but you can barely feel your crotch from $his masterful sucking.
 		<<elseif $activeSlave.oralSkill > 30>>
 			$He is quite skilled with $his tongue; before long, you are both cleaned off and enjoying some $PC.refreshment after the powerful orgasm $he coaxed out of you.
 		<<elseif $activeSlave.oralSkill > 10>>
-			$He has basic skill with $his tongue; before long, you are nearly cleaned of all the $PC.refreshment. With one final lick, $he takes the last taste of it and brings you to climax at the same time.
+			$He has basic skill with $his tongue; before long, you are nearly cleaned of all the $PC.refreshment. With one final lick, $he takes the last <<if canTaste($activeSlave)>>taste<<else>>drop<</if>> of it and brings you to climax at the same time.
 		<<else>>
 			$He has no idea how to make this pleasurable; $he is merely greedily lapping up the $PC.refreshment off your body. As $he nears finishing your crotch, you grab $his head and hold $him to yourself until you are satisfied with $his licking.
 		<</if>>
-		You go back to work, letting the slave sits back on your desk, licking $his lips of the combined taste of you and $PC.refreshment. You reflect that it's probably some kind of milestone in wealth that you're willing to throw the good stuff around like this. When $he's had time to reflect on the strange incident, $he @@.mediumaquamarine;resolves to trust you more in the future,@@ since it can be fun and tasty.
+		You go back to work, letting the slave sits back on your desk, licking $his lips of the combined <<if canTaste($activeSlave)>>taste<<else>>feeling<</if>> of you and $PC.refreshment. You reflect that it's probably some kind of milestone in wealth that you're willing to throw the good stuff around like this. When $he's had time to reflect on the strange incident, $he @@.mediumaquamarine;resolves to trust you more in the future,@@ since it can be fun and tasty.
 		<<set $activeSlave.oralCount++, $oralTotal++>>
 	<</if>>
 	<<set $activeSlave.trust += 4>>
@@ -18617,7 +18617,7 @@ You tell $him kindly that you understand, and that $he'll be trained to address
 		<<else>>
 			disappointingly thin
 		<</if>>
-		lips before starting to suck dick. Dissatisfied with $his reluctance, you order $him to open $his eyes and look up at you; $he obeys, the <<eyeColor>> orbs glittering with a little moisture as $he concentrates on breathing past your penis. You ask if your cock tastes any different than usual. "Mmm hmm, M'," $he mumbles, producing a nice humming sensation against your cock. You tell $him that $he's tasting another slave's <<if $activeSlave.vagina > -1>>pussy<<else>>ass<</if>>. $He gags, but only slightly, and controls $himself immediately. Your dick is desensitized from vigorous use, and $he has to suck it a long time before you cup the back of $his head, ram yourself all the way in, and blow your load straight down $his gullet. You tell $him $he's a good $desc. "Thank you, <<Master>>," $he <<say>>s @@.hotpink;submissively,@@ going back to $his polishing.
+		lips before starting to suck dick. Dissatisfied with $his reluctance, you order $him to open $his eyes and look up at you; $he obeys, the <<eyeColor>> orbs glittering with a little moisture as $he concentrates on breathing past your penis. You ask if your cock <<if canTaste($activeSlave)>>tastes<<else>>feels<</if>> any different than usual. "Mmm hmm, M'," $he mumbles, producing a nice humming sensation against your cock. You tell $him that $he's <<if canTaste($activeSlave)>>tasting<<else>>feeling<</if>> another slave's <<if $activeSlave.vagina > -1>>pussy<<else>>ass<</if>>. $He gags, but only slightly, and controls $himself immediately. Your dick is desensitized from vigorous use, and $he has to suck it a long time before you cup the back of $his head, ram yourself all the way in, and blow your load straight down $his gullet. You tell $him $he's a good $desc. "Thank you, <<Master>>," $he <<say>>s @@.hotpink;submissively,@@ going back to $his polishing.
 		<<set $activeSlave.oralCount++, $oralTotal++>>
 		<<set $activeSlave.devotion += 5>>
 	<</replace>>
diff --git a/src/uncategorized/RETS.tw b/src/uncategorized/RETS.tw
index 25c990b0115b26bd4dfbec1b08a59bc799c470ab..cb3acdd5794c531f5808e7f7d86fffe41eba0ceb 100644
--- a/src/uncategorized/RETS.tw
+++ b/src/uncategorized/RETS.tw
@@ -166,8 +166,8 @@
 <<set _clothesTemp = $activeSlave.clothes>>
 <<set _clothesTemp2 = $subSlave.clothes>>
 <<switch $RETSevent>>
-	/*Some events start with the slave naked (any event that starts with the daily inspection, for example).  Here we switch their clothing just for the image to load, then switch it back quickly so the player's choice is not messed up.*/
-	<<case "taste test" "anal cowgirl" "boob collision" "if you enjoy it" "shower force" "repressed anal virgin" "top exhaustion" "cockmilk interception" "interslave begging" "incestuous nursing">>
+	/*Some events start with the slave naked (any event that starts with the daily inspection, for example). Here we switch their clothing just for the image to load, then switch it back quickly so the player's choice is not messed up.*/
+	<<case "anal cowgirl" "boob collision" "cockmilk interception" "if you enjoy it" "incestuous nursing" "interslave begging" "repressed anal virgin" "shower force" "taste test" "top exhaustion">>
 		<<set $activeSlave.clothes = "no clothing">>
 		<<set $subSlave.clothes = "no clothing">>
 	<<case "date please" "simple assault">>
@@ -1248,7 +1248,7 @@ $he adds impishly. <<if canHear($subSlave)>>Hearing this<<else>>Realizing your p
 <br><<link "Dominate the slave on top">>
 	<<EventNameDelink $activeSlave>>
 	<<replace "#result">>
-	You make no reply, but <<if $PC.dick == 1>>advance on the couch, stripping down to reveal a raging erection<<if $PC.vagina == 1>> and ready cunt<</if>>.<<else>>move to a side table, selecting a formidable strap-on.<</if>> <<if canSee($activeSlave)>>Seeing<<elseif canHear($activeSlave>>Hearing<<else>>Acknowledging<</if>> this, $activeSlave.slaveName @@.hotpink;giggles with anticipation,@@ and pulls $subSlave.slaveName's knees back farther. The slave whines at the stretch, and then gasps as the invading phallus pops free of _his2 asshole. _His2 anus <<if $subSlave.anus > 2>>gapes lewdly, its sphincter so well stretched that it stays invitingly open,<<elseif $subSlave.anus > 1>>gapes slightly, its sphincter remaining just barely open,<<else>>closes up again immediately once it's no longer being penetrated. Its rosebud is<</if>> glistening with lube<<if canPenetrate($activeSlave)>> and precum from $activeSlave.slaveName's cock<</if>>. But you decide to be more circumspect. Pressing your <<if $PC.dick == 1>>dickhead<<else>>phallus<</if>> into $subSlave.slaveName's mouth, you tell _him2 to be thorough with _his2 saliva<<if $PC.vagina == 1>> and not to worry about your pussy<</if>>. _His2 eyes widen at the implication, and _he2 starts to suck lushly.
+	You make no reply, but <<if $PC.dick == 1>>advance on the couch, stripping down to reveal a raging erection<<if $PC.vagina == 1>> and ready cunt<</if>>.<<else>>move to a side table, selecting a formidable strap-on.<</if>> <<if canSee($activeSlave)>>Seeing<<elseif canHear($activeSlave)>>Hearing<<else>>Acknowledging<</if>> this, $activeSlave.slaveName @@.hotpink;giggles with anticipation,@@ and pulls $subSlave.slaveName's knees back farther. The slave whines at the stretch, and then gasps as the invading phallus pops free of _his2 asshole. _His2 anus <<if $subSlave.anus > 2>>gapes lewdly, its sphincter so well stretched that it stays invitingly open,<<elseif $subSlave.anus > 1>>gapes slightly, its sphincter remaining just barely open,<<else>>closes up again immediately once it's no longer being penetrated. Its rosebud is<</if>> glistening with lube<<if canPenetrate($activeSlave)>> and precum from $activeSlave.slaveName's cock<</if>>. But you decide to be more circumspect. Pressing your <<if $PC.dick == 1>>dickhead<<else>>phallus<</if>> into $subSlave.slaveName's mouth, you tell _him2 to be thorough with _his2 saliva<<if $PC.vagina == 1>> and not to worry about your pussy<</if>>. _His2 eyes widen at the implication, and _he2 starts to suck lushly.
 	<br><br>
 	Suddenly, _he2 jerks and squeals into your <<if $PC.dick == 1>>dick<<else>>crotch<</if>>. With you standing there, $activeSlave.slaveName can't really see much, and $he can't drop $subSlave.slaveName's legs without throwing everything into confusion. So, $he's reduced to blind jabs to get $his <<if canPenetrate($activeSlave)>>cock<<else>>strap-on<</if>> back up the poor slave's butt. It takes $him quite a while to manage it, and when $he's finally seated, $subSlave.slaveName gives as huge a sigh as _he2 can manage with a phallus down _his2 throat. _His2 relief is short lived, however, because soon afterward, you withdraw, leaving a string of spit between _his2 wet lips and the <<if $PC.dick == 1>>head of your turgid cock<<else>>massive head of your strap-on<</if>>.
 	<br><br>
@@ -1922,7 +1922,7 @@ $he adds impishly. <<if canHear($subSlave)>>Hearing this<<else>>Realizing your p
 	<</if>>
 	can feel that _his2 breasts aren't nearly empty of milk yet, and of course the milkers are tugging at _his2 teats as industriously as ever, so _he2 relaxes luxuriantly as $activeSlave.slaveName starts to climb out from under _him2.
 	<br><br>
-	You announce your presence by ordering $activeSlave.slaveName to stay where $he is. Startled, $he sticks $his head out from under $subSlave.slaveName and chirps "Ye<<s>>, <<Master>>!" and scoots back under, waiting to see what you're planning. You straddle $subSlave.slaveName's face; as <<if canSee($subSlave)>>_his2 vision is filled by your <<if $PC.dick>>erect dick<<else>>wet pussy<</if>><<else>>_his2 nose samples the scent of <<if $PC.dick>>the precum budding at the tip of your erect dick<<else>>your wet pussy<</if>><</if>>, _he2 opens _his2 mouth compliantly and <<if $PC.dick>>receives _his2 owner's hot cock, pressed past _his2 lips and down _his2 throat. _He2 starts sucking<<else>>is rewarded with _his2 owner's hot womanhood, pressed against _his2 lips. _He2 starts eating you out<</if>> obediently, until you reach down to _his2 still-jiggling udders and tug one of the milkers loose. $subSlave.slaveName starts with discomfort, moaning uncomfortably into your <<if $PC.dick>>member<<else>>cunt<</if>> before getting back to work. _His2 <<if $subSlave.lactation > 1>>lactation is unnaturally copious<<else>>milk is really flowing<</if>>, and a thin stream of cream squirts out of _him2. It lands on $activeSlave.slaveName's face below, surprising $him. $He splutters comically, but obeys eagerly when you squeeze $subSlave.slaveName's freed boob and order $activeSlave.slaveName to start drinking. After all, you point out, a balanced diet is important. $activeSlave.slaveName @@.mediumaquamarine;giggles complaisantly@@ and reaches for the proffered tit. $subSlave.slaveName is still basking in the afterglow of _his2 orgasm and shudders silently with overstimulation as _he2 feels $activeSlave.slaveName's lips <<if $subSlave.nipples != "fuckable">>latch around<<else>>encircle<</if>> _his2 $subSlave.nipples nipple.
+	You announce your presence by ordering $activeSlave.slaveName to stay where $he is. Startled, $he sticks $his head out from under $subSlave.slaveName and chirps "Ye<<s>>, <<Master>>!" and scoots back under, waiting to see what you're planning. You straddle $subSlave.slaveName's face; as <<if canSee($subSlave)>>_his2 vision is filled by your <<if $PC.dick>>erect dick<<else>>wet pussy<</if>><<elseif canSmell($subSlave)>>_his2 nose samples the scent of <<if $PC.dick>>the precum budding at the tip of your erect dick<<else>>your wet pussy<</if>><<else>>_his2 face is warmed by the heat from your <<if $PC.dick>>hard cock<<else>>wet cunt<</if>><</if>>, _he2 opens _his2 mouth compliantly and <<if $PC.dick>>receives _his2 owner's hot cock, pressed past _his2 lips and down _his2 throat. _He2 starts sucking<<else>>is rewarded with _his2 owner's hot womanhood, pressed against _his2 lips. _He2 starts eating you out<</if>> obediently, until you reach down to _his2 still-jiggling udders and tug one of the milkers loose. $subSlave.slaveName starts with discomfort, moaning uncomfortably into your <<if $PC.dick>>member<<else>>cunt<</if>> before getting back to work. _His2 <<if $subSlave.lactation > 1>>lactation is unnaturally copious<<else>>milk is really flowing<</if>>, and a thin stream of cream squirts out of _him2. It lands on $activeSlave.slaveName's face below, surprising $him. $He splutters comically, but obeys eagerly when you squeeze $subSlave.slaveName's freed boob and order $activeSlave.slaveName to start drinking. After all, you point out, a balanced diet is important. $activeSlave.slaveName @@.mediumaquamarine;giggles complaisantly@@ and reaches for the proffered tit. $subSlave.slaveName is still basking in the afterglow of _his2 orgasm and shudders silently with overstimulation as _he2 feels $activeSlave.slaveName's lips <<if $subSlave.nipples != "fuckable">>latch around<<else>>encircle<</if>> _his2 $subSlave.nipples nipple.
 	<<set $subSlave.oralCount++, $oralTotal++, $subSlave.mammaryCount++, $mammaryTotal++>>
 	<<set $activeSlave.oralCount++, $oralTotal++>>
 	<<set $activeSlave.trust += 5>>
diff --git a/src/uncategorized/addCustomDescriptors.tw b/src/uncategorized/addCustomDescriptors.tw
index 350709a4dd7f51f2c874b8efe3890415e74b219c..4b6f31b5891321ac8925e00c9c1672d302510dd1 100644
--- a/src/uncategorized/addCustomDescriptors.tw
+++ b/src/uncategorized/addCustomDescriptors.tw
@@ -145,14 +145,8 @@ Change $his custom label: <<textbox "$activeSlave.customLabel" $activeSlave.cust
 <br>&nbsp;&nbsp;&nbsp;&nbsp;//For best results, use a short phrase; for example: 'Breeder.'//
 
 <br><br>
-<<if ndef $activeSlave.customImage>><<set $activeSlave.customImage = 0>><</if>>
-Assign $him a custom image:
-<<if $activeSlave.customImage != 0>>
-	<<textbox "$activeSlave.customImage" $activeSlave.customImage "Add custom descriptors">>
-<<else>>
-	<<textbox "$activeSlave.customImage" "" "Add custom descriptors">>
-<</if>>
-<<link "Reset" "Add custom descriptors">><<set $activeSlave.customImage = 0, $activeSlave.customImageFormat = "png">><</link>>
+Assign $him a custom image: <<textbox "$activeSlave.customImage" $activeSlave.customImage "Add custom descriptors">>
+<<link "Reset" "Add custom descriptors">><<set $activeSlave.customImage = "", delete $activeSlave.customImageFormat>><</link>>
 <br>&nbsp;&nbsp;&nbsp;&nbsp;//File must be in// <tt><select id="customImageFormatSelector" style="border: none;"><option value="png">PNG</option><option value="jpg">JPG</option><option value="gif">GIF</option><option value="webm">WEBM</option></select></tt> //format. Place file in the \resources folder. Enter the filename without the extension. For example, for a file with the path// <tt>\bin\resources\headgirl.<span id="customImageFormatValue">png</span></tt>, //enter //<tt>headgirl</tt>.
 <<script>>
 jQuery(function() {
diff --git a/src/uncategorized/arcmgmt.tw b/src/uncategorized/arcmgmt.tw
index 05113cef22bb2f74580c0fa5058347382d56a99b..807bd8fe6217a903557543553a87063360f2c19e 100644
--- a/src/uncategorized/arcmgmt.tw
+++ b/src/uncategorized/arcmgmt.tw
@@ -1221,10 +1221,10 @@ earning you @@.yellowgreen;<<print cashFormat(_menialEarnings + _bioreactorEarni
 		<<set _AWeekGrowth += 2>>
 	<</if>>
 	<<if $arcologies[0].FSChattelReligionistCreed == 1>>
-	<<if $nicaeaFocus == "owners">>
-		The focus on slaveowners' whims in the creed of $nicaeaName interests the rich and powerful, increasing prosperity.
-		<<set _AWeekGrowth += $nicaeaPower>>
-	<</if>>
+		<<if $nicaeaFocus == "owners">>
+			The focus on slaveowners' whims in the creed of $nicaeaName interests the rich and powerful, increasing prosperity.
+			<<set _AWeekGrowth += $nicaeaPower>>
+		<</if>>
 	<</if>>
 	<<if $arcologies[0].FSRomanRevivalist >= random(1,100)>>
 		This week, intense interest in your project to revive Roman values has driven prosperity.
diff --git a/src/uncategorized/clubAdvertisement.tw b/src/uncategorized/clubAdvertisement.tw
index 769010969f58fea5d568639ec192ab124382f0db..45aebff7ca2db54b035a094f1dffdc6e186eb1a3 100644
--- a/src/uncategorized/clubAdvertisement.tw
+++ b/src/uncategorized/clubAdvertisement.tw
@@ -121,7 +121,7 @@
 
 <br><br>
 
-You are spending <<print cashFormat($clubAdsSpending)>> each week to advertise $clubName.
+You are spending @@.red;<<print cashFormat($clubAdsSpending)>>@@ each week to advertise $clubName.
 
 <<if $clubAdsSpending > 900>>
 	<<link "Decrease">><<set $clubAdsSpending -= 1000>><<goto "Club Advertisement">><</link>> |
diff --git a/src/uncategorized/customSlave.tw b/src/uncategorized/customSlave.tw
index 657330778d9f57997ddc61fc78a239eef7ee3a47..ed2ac67c84c2c131058b4536485cfc1a95865d1b 100644
--- a/src/uncategorized/customSlave.tw
+++ b/src/uncategorized/customSlave.tw
@@ -1188,6 +1188,39 @@ Skin tone: <span id = "skin">
 <br>
 
 <<if $seeExtreme == 1>>
+<span id = "smelling">
+<<if $customSlave.smells == -1>>No sense of smell.
+<<else>>Normal sense of smell.
+<</if>>
+</span>
+<<link "No Sense of Smell">>
+	<<set $customSlave.smells = -1>>
+	<<CustomSlaveSmell>>
+<</link>>
+|
+<<link "Normal Sense of Smell">>
+	<<set $customSlave.smells = 0>>
+	<<CustomSlaveSmell>>
+<</link>>
+
+<br>
+<span id = "tasting">
+<<if $customSlave.tastes == -1>>No sense of taste.
+<<else>>Normal sense of taste.
+<</if>>
+</span>
+<<link "No Sense of Taste">>
+	<<set $customSlave.tastes = -1>>
+	<<CustomSlaveTaste>>
+<</link>>
+|
+<<link "Normal Sense of Taste">>
+	<<set $customSlave.tastes = 0>>
+	<<CustomSlaveTaste>>
+<</link>>
+
+<br>
+
 <span id = "amputation">
 <<if $customSlave.amp == 1>>Limbless.
 <<else>>Limbed.
diff --git a/src/uncategorized/descriptionOptions.tw b/src/uncategorized/descriptionOptions.tw
index ada97bef7bc32325bbae8c64cd57c6343429cd08..f00dc4288fa6b17eab9cb3cd24e3a69f7b4e792d 100644
--- a/src/uncategorized/descriptionOptions.tw
+++ b/src/uncategorized/descriptionOptions.tw
@@ -108,8 +108,10 @@ Attractiveness and Sexual scores are
 <br>
 
 Names will
-<<if $surnameOrder != 1>>
-	adhere to a slave's country of origin. //[[Force name surname|Description Options][$surnameOrder = 1]]//
-<<else>>
-	always be name surname. //[[Allow nationality name order|Description Options][$surnameOrder = 0]]//
-<</if>>
\ No newline at end of file
+<<if $surnameOrder == 0>>
+	adhere to a slave's country of origin. //[[Force name surname|Intro Summary][$surnameOrder = 1]]// | //[[Force surname name|Intro Summary][$surnameOrder = 2]]//
+<<elseif $surnameOrder == 1>>
+	always be name surname. //[[Allow nationality name order|Description Options][$surnameOrder = 0]]// | //[[Force surname name|Intro Summary][$surnameOrder = 2]]//
+<<elseif $surnameOrder == 2>>
+	always be name surname. //[[Allow nationality name order|Intro Summary][$surnameOrder = 0]]// | //[[Force name surname|Intro Summary][$surnameOrder = 1]]//
+<</if>>
diff --git a/src/uncategorized/genericPlotEvents.tw b/src/uncategorized/genericPlotEvents.tw
index e5c2000132da07399491b9d70c30e5bc9b5a3bd5..1236d5653112f40e2db748a0d85d74c8e5870a17 100644
--- a/src/uncategorized/genericPlotEvents.tw
+++ b/src/uncategorized/genericPlotEvents.tw
@@ -456,8 +456,8 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u
 		<<set $activeSlave.whoreSkill = 0>>
 		<<set $activeSlave.entertainSkill = 0>>
 		<<set $activeSlave.fetish = "buttslut">>
-		<<set $activeSlave.behavioralFlaw = either("bitchy", "odd", "anorexic", "devout")>>
-		<<set $activeSlave.sexualFlaw = either("shamefast", "repressed", "apathetic")>>
+		<<set $activeSlave.behavioralFlaw = either("anorexic", "bitchy", "devout", "odd")>>
+		<<set $activeSlave.sexualFlaw = either("apathetic", "repressed", "shamefast")>>
 		<<set _newSlaves.push($activeSlave)>>
 	<</for>>
 <<elseif $PAidTarget == "volleyballTeam">>
@@ -527,7 +527,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u
 	<<set $activeSlave.pregWeek = $activeSlave.preg>>
 	<<run SetBellySize($activeSlave)>>
 	<<run WombChangeGene($activeSlave, "race", "black")>>
-	<<set _skinTone = either("dark brown", "light brown", "brown")>>
+	<<set _skinTone = either("brown", "dark brown", "light brown")>>
 	<<run WombChangeGene($activeSlave, "skin", _skinTone)>>
 	<<run WombChangeGene($activeSlave, "hColor", "black")>>
 	<<run WombChangeGene($activeSlave, "eyeColor", "brown")>>
@@ -576,7 +576,7 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u
 	<<set $activeSlave.pregWeek = $activeSlave.preg>>
 	<<run SetBellySize($activeSlave)>>
 	<<run WombChangeGene($activeSlave, "race", "black")>>
-	<<set _skinTone = either("dark brown", "light brown", "brown")>>
+	<<set _skinTone = either("brown", "dark brown", "light brown")>>
 	<<run WombChangeGene($activeSlave, "skin", "black")>>
 	<<run WombChangeGene($activeSlave, "hColor", "black")>>
 	<<run WombChangeGene($activeSlave, "eyeColor", "brown")>>
@@ -719,8 +719,8 @@ When the aircraft lands at your penthouse pad, the would-be escapees are still u
 		<<set $activeSlave.analSkill = 0>>
 		<<set $activeSlave.whoreSkill = 0>>
 		<<set $activeSlave.entertainSkill = 15>>
-		<<set $activeSlave.behavioralFlaw = either("arrogant", "bitchy", "anorexic", "liberated")>>
-		<<set $activeSlave.sexualFlaw = either("shamefast", "idealistic", "hates anal", "hates oral", "apathetic")>>
+		<<set $activeSlave.behavioralFlaw = either("anorexic", "arrogant", "bitchy", "liberated")>>
+		<<set $activeSlave.sexualFlaw = either("apathetic", "hates anal", "hates oral", "idealistic", "shamefast")>>
 		<<set _newSlaves.push($activeSlave)>>
 	<</for>>
 <</if>>
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index 1b085286a926d13cf71cef1d09df80305a2e5143..3eba3043a131692f1ad09ab6115c3466402f0e7c 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -305,23 +305,23 @@ is
 		<<if $activeSlave.slaveName != $activeSlave.birthName && $activeSlave.slaveSurname != $activeSlave.birthSurname>>
 			<<= SlaveFullName($activeSlave)>> is not $his original full name;
 			<<if $activeSlave.birthName === "" || $activeSlave.birthSurname === "">>
-				whatever it was, however, has been lost forever.
+				whatever it was, however, has been lost forever. Regardless,
 			<</if>>
 		<<elseif $activeSlave.slaveName != $activeSlave.birthName>>
 			$activeSlave.slaveName is not $his original given name;
 			<<if $activeSlave.birthName === "">>
-				whatever it was, however, has been lost forever.
+				whatever it was, however, has been lost forever. Regardless,
 			<</if>>
 		<<elseif $activeSlave.slaveSurname != $activeSlave.birthSurname>>
 			<<if $activeSlave.slaveSurname === 0>>
 				$He once had a surname;
 				<<if $activeSlave.birthSurname === "">>
-					whatever it was, however, has been lost forever.
+					whatever it was, however, has been lost forever. Regardless,
 				<</if>>
 			<<else>>
 				$activeSlave.slaveSurname is not $his original surname;
 				<<if $activeSlave.birthSurname === "">>
-					whatever it was, however, has been lost forever.
+					whatever it was, however, has been lost forever. Regardless,
 				<</if>>
 			<</if>>
 		<</if>>
@@ -343,15 +343,8 @@ is
 				$activeSlave.birthSurname.
 			<<elseif $activeSlave.birthSurname === "">>
 				$activeSlave.birthName.
-			<<elseif $surnameOrder != 1>>
-				<<switch $activeSlave.nationality>>
-				<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-					<<if $activeSlave.birthSurname>>$activeSlave.birthSurname <</if>>$activeSlave.birthName.
-				<<default>>
-					$activeSlave.birthName<<if $activeSlave.birthSurname>> $activeSlave.birthSurname<</if>>.
-				<</switch>>
 			<<else>>
-				$activeSlave.birthName<<if $activeSlave.birthSurname>> $activeSlave.birthSurname<</if>>.
+				<<= SlaveFullBirthName($activeSlave)>>.
 			<</if>>
 		<</if>>
 		<<if $activeSlave.slaveSurname == 0>>
@@ -365,17 +358,7 @@ is
 			<</if>>
 		<</if>>
 	<<else>>
-		$activeSlave.slaveName<<if $activeSlave.slaveSurname>> $activeSlave.slaveSurname<</if>> is not $his original name: $he was once called
-		<<if $surnameOrder != 1>>
-			<<switch $activeSlave.nationality>>
-			<<case "Cambodian" "Chinese" "Hungarian" "Japanese" "Korean" "Mongolian" "Taiwanese" "Vietnamese">>
-				<<if $activeSlave.birthSurname>>$activeSlave.birthSurname <</if>>$activeSlave.birthName.
-			<<default>>
-				$activeSlave.birthName<<if $activeSlave.birthSurname>> $activeSlave.birthSurname<</if>>.
-			<</switch>>
-		<<else>>
-			$activeSlave.birthName<<if $activeSlave.birthSurname>> $activeSlave.birthSurname<</if>>.
-		<</if>>
+		<<= SlaveFullName($activeSlave)>> is not $his original name: $he was once called <<= SlaveFullBirthName($activeSlave)>>.
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/newSlaveIntro.tw b/src/uncategorized/newSlaveIntro.tw
index a757bcc626776198fc5bd2900935e21d61f267da..b1366d32524fbdfc68648007e614b4350a66a6b9 100644
--- a/src/uncategorized/newSlaveIntro.tw
+++ b/src/uncategorized/newSlaveIntro.tw
@@ -30,7 +30,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	staring at the ground in fear.
 <<elseif $activeSlave.devotion <= 50>>
 	waiting meekly for orders.
-<<elseif $activeSlave.career == "a breeding bull" && isPlayerFertile($PC)>>
+<<elseif canSmell($activeSlave) && $activeSlave.career == "a breeding bull" && isPlayerFertile($PC)>>
 	sniffing the air and staring intently at your crotch.
 <<elseif $activeSlave.origin == "She submitted to enslavement to escape the hard life of an Old World whore.">>
 	wondering what one of your working girls can expect.
@@ -883,7 +883,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
  <br>
 
 /*Written by DrPill, coded by Boney M*/
-<<case "She was recruited into your service by her big sis." "She was recruited into your service by her older sister.">>
+<<case "She was recruited into your service by her older sister.">>
 	//and since $he was recruited by $his older sister...//
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Use $his big sister as an example">>
@@ -895,7 +895,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<</link>>
  <br>
 
-<<case "She was recruited into your service by her little sis." "She was recruited into your service by her younger sister.">>
+<<case "She was recruited into your service by her younger sister.">>
 	//and since $he was recruited by $his younger sister...//
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Use $his little sister as an example">>
@@ -1070,7 +1070,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Threaten $his pregnancy">>
 		<<replace "#introResult">>
-			You place an innocuous-looking drug injector on your desk, and let $him stare at it for a long moment. Then, you roll the cylinder slowly across the smooth surface, rotating it until its label comes into $his view. It depicts the silhouette of a pregnant woman, with a red X over it. Abortifacients. After an instant of horrified comprehension, $he flings $himself at your feet, crying, begging, promising. $He pledges to @@.hotpink;submit to you,@@ <<if $PC.dick == 1>><<if $PC.vagina == 1>>eat you out, <</if>>suck your cock, take it in $his pussy, take it up $his ass<<else>>eat you out, worship you with $his pussy, serve you with $his ass<</if>>, anything, as long as @@.gold;you don't hurt $his baby.@@ You observe that $he'll do all of those things, regardless of what you decide to do about $his pregnancy, but for now, you'll keep $him as a pregnant slut. $He thanks you through $his tears.
+			You place an innocuous-looking drug injector on your desk, and let $him <<if !canSee($activeSlave)>>blindly <</if>>stare at it for a long moment. Then, you roll the cylinder slowly across the smooth surface, rotating it until its label comes into $his view. It depicts the silhouette of a pregnant woman, with a red X over it. Abortifacients. After an instant of horrified comprehension, $he flings $himself at your feet, crying, begging, promising. $He pledges to @@.hotpink;submit to you,@@ <<if $PC.dick == 1>><<if $PC.vagina == 1>>eat you out, <</if>>suck your cock, take it in $his pussy, take it up $his ass<<else>>eat you out, worship you with $his pussy, serve you with $his ass<</if>>, anything, as long as @@.gold;you don't hurt $his baby.@@ You observe that $he'll do all of those things, regardless of what you decide to do about $his pregnancy, but for now, you'll keep $him as a pregnant slut. $He thanks you through $his tears.
 		<</replace>>
 		<<set $activeSlave.devotion += 10>>
 		<<set $activeSlave.trust -= 10>>
@@ -1653,7 +1653,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 					Eagerly $he begins to suckle from your swollen breast. You gently brush $his head as you try to hold back your pleasure, a wasted effort as a hand sneaks its way to your neglected breast. $He massages it, careful not to encourage your lactation too much, as $he greedily sucks you dry. $He wastes no time in swapping to your other nipple, shifting $his ministrations to the one the just left. By the time your reserves are tapped out, both you and $he are quite content. You permit $him to rest against your chest for a little before you send $him on $his way. <<if $activeSlave.fetishKnown == 0>>Judging by $his enthusiasm, @@.green;$he savors getting $his mouth close to a pair of boobs.@@<<set $activeSlave.fetishKnown = 1>><<else>>You knew $he had a breast fetishist and $his eagerness to lighten a lactating woman proves that.<</if>> A kick from within startles you from your thoughts; you pat your gravid middle, reassuring your child that you'll make sure to save some milk for them. $He's already starting to @@.hotpink;show understanding of $his place@@ and even @@.mediumaquamarine;beginning to build trust@@ with you.
 					<<set $activeSlave.devotion += 15, $activeSlave.trust += 15>>
 				<<else>>
-					Reluctantly $he begins to suckle from your swollen breast. You gently brush $his head as you try to hold back your pleasure, but it is too much. As $he drinks deeper, you begin moaning with relief. At first $he tenses at <<if canHear($activeSlave)>>the sound<<else>>your body's shuddering<</if>>, fearing punishment, but soon realizes you have no intent on @@.mediumaquamarine;harming $him.@@ $He allows you to dote over $him as if $he were your child, carefully moving to your other breast once the first runs dry. As $he drinks, $he begins to massage your taut middle; $his touch soft and gentle. When you both finish, you push $him to $his feet and send $him on $his way. @@.hotpink;$He stays and offers a hand to help you to your feet.@@ You are surprised by this display; it might be obedience, but $he also may view you in your gravid state as someone weak. As $he helps you back to your desk, $he shoulders all of your weight. It would appear $he is putting you first, for now.
+					Reluctantly $he begins to suckle from your swollen breast. You gently brush $his head as you try to hold back your pleasure, but it is too much. As $he drinks deeper, you begin moaning with relief. At first $he tenses at <<if canHear($activeSlave)>>the sound<<else>>your body's shuddering<</if>>, fearing punishment, but soon realizes you have no intent on @@.mediumaquamarine;harming $him.@@ $He allows you to dote over $him as if $he were your child, carefully moving to your other breast once the first runs dry. As $he drinks, $he begins to massage your taut middle, $his touch soft and gentle. When you both finish, you push $him to $his feet and send $him on $his way. @@.hotpink;$He stays and offers a hand to help you to your feet.@@ You are surprised by this display; it might be obedience, but $he also may view you in your gravid state as someone weak. As $he helps you back to your desk, $he shoulders all of your weight. It would appear $he is putting you first, for now.
 					<<set $activeSlave.devotion += 5, $activeSlave.trust += 5>>
 				<</if>>
 				<<set $PC.lactationDuration = 2>>
@@ -1694,7 +1694,7 @@ The legalities completed, ''__@@.pink;<<= SlaveFullName($activeSlave)>>@@__'' <<
 	<</link>>
 <</if>>
 
-<<if $activeSlave.preg < 1 && $activeSlave.bellyImplant <= 0 && $activeSlave.inflation == 0 && $activeSlave.amp != 1 && $arcologies[0].FSHedonisticDecadenceResearch == 1>>
+<<if $activeSlave.preg < 1 && $activeSlave.bellyImplant <= 0 && $activeSlave.inflation == 0 && $activeSlave.amp != 1 && canTaste($activeSlave) && $arcologies[0].FSHedonisticDecadenceResearch == 1>>
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	<<link "Offer $him a slave-food cookie">>
 		<<replace "#introResult">>
diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw
index 97d7c37360dfb7c454aee983719e9f93a7b28d11..1c7c4fb5bbe624165e3cbd59ce83926c2c93674d 100644
--- a/src/uncategorized/options.tw
+++ b/src/uncategorized/options.tw
@@ -377,6 +377,13 @@ Assignment performance vignettes on the end week report are
 	Bestiality related content is currently @@.cyan;ENABLED.@@ [[Disable|Options][$seeBestiality = 0]] //Will not remove existing facilities, but will block content from appearing.//
 <</if>>
 
+<br>
+<<if ($seePee == 0)>>
+	Watersports related content is currently @@.red;DISABLED.@@ [[Enable|Options][$seePee = 1]]
+<<else>>
+	Watersports related content is currently @@.cyan;ENABLED.@@ [[Disable|Options][$seePee = 0]]
+<</if>>
+
 <br>
 <<if ($seePreg == 0)>>
 	Pregnancy related content is currently @@.red;DISABLED.@@ [[Enable|Options][$seePreg = 1]]
diff --git a/src/uncategorized/pRivalryActions.tw b/src/uncategorized/pRivalryActions.tw
index ac7d6d36c663ae832965067cefe12bd193c5448b..522622e381cb182236a6c8195856d4495de37ca3 100644
--- a/src/uncategorized/pRivalryActions.tw
+++ b/src/uncategorized/pRivalryActions.tw
@@ -1639,7 +1639,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 		<<set $hostage.vaginalCount += 50>>
 		<<set $hostage.analCount += 50>>
 		<<set $hostage.mammaryCount += 50>>
-		weeping on the floor as a crowd of citizens urinate on $him.
+		weeping on the floor as a crowd of citizens <<if $seePee == 1>>urinate on<<else>>masturbate onto<</if>> $him.
 	<<elseif $rivalryDuration <= 10>>
 		<<set $hostage.trust += 5>>
 		<<set $hostage.devotion += 5>>
@@ -1648,7 +1648,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 		<<set $hostage.vaginalCount += 50>>
 		<<set $hostage.analCount += 50>>
 		<<set $hostage.mammaryCount += 50>>
-		trying $his best not to break down as a crowd of citizens urinate on $him.
+		trying $his best not to break down as a crowd of citizens <<if $seePee == 1>>urinate on<<else>>jack off onto<</if>> $him.
 	<<elseif $rivalryDuration <= 15>>
 		<<set $hostage.trust += 5>>
 		<<set $hostage.devotion += 5>>
@@ -1657,7 +1657,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 		<<set $hostage.vaginalCount += 50>>
 		<<set $hostage.analCount += 50>>
 		<<set $hostage.mammaryCount += 50>>
-		meekly accepting $his golden shower.
+		meekly accepting $his <<if $seePee == 1>>golden shower<<else>>bukkake<</if>>.
 	<<elseif $rivalryDuration <= 20>>
 		<<set $hostage.trust += 5>>
 		<<set $hostage.devotion += 5>>
@@ -1665,7 +1665,7 @@ Your inter-arcology war with the arcology owner behind the Daughters of Liberty
 		<<set $hostage.vaginalCount += 50>>
 		<<set $hostage.analCount += 50>>
 		<<set $hostage.mammaryCount += 50>>
-		laying there, indifferent to the citizens urinating on $him.
+		laying there, indifferent to the citizens <<if $seePee == 1>>urinating<<else>>ejaculating<</if>> on $him.
 	<<else>>
 		<<set $hostage.trust -= 5>>
 		<<set $hostage.devotion -= 5>>
diff --git a/src/uncategorized/pePitFight.tw b/src/uncategorized/pePitFight.tw
index 5fafee9535e91b9f6addb6aafd44c04ddb37fe27..ea13ee2cd108930c09ab9752b78afa5fec9c5fea 100644
--- a/src/uncategorized/pePitFight.tw
+++ b/src/uncategorized/pePitFight.tw
@@ -173,7 +173,7 @@ Finally, $his opponent enters as well.
 	_HeU is a decent-looking slave, physically fit but obviously scared.
 	<<set _opponent = 2>>
 <<else>>
-	_HeU is an average looking slave, so frightened there's urine running down _hisU leg. _HeU must have really annoyed _hisU master to earn this.
+	_HeU is an average looking slave, so frightened <<if $seePee == 1>>there's urine running down _hisU leg<<else>>_hisU teeth are audibly chattering<</if>>. _HeU must have really annoyed _hisU master to earn this.
 	<<set _opponent = 1>>
 <</if>>
 
diff --git a/src/uncategorized/persBusiness.tw b/src/uncategorized/persBusiness.tw
index 16bafe50273e4b0ec10c5461ca6b5e5dd52bf3df..a9af9c69933df6dec24f10ab11f06ea1afcbfafa 100644
--- a/src/uncategorized/persBusiness.tw
+++ b/src/uncategorized/persBusiness.tw
@@ -27,14 +27,14 @@
 		<<= FSChange("RomanRevivalist", -10)>>
 	<</if>>
 	<<if $cash < 0 && $cash > -25000 && $arcologies[0].FSRestartDecoration == 100>>
-	<<if $eugenicsFullControl != 1>>
-		Money is quickly shifted to bring you out of debt, though @@.red;the Societal Elite are left doubting@@ your worth.
-		<<set $cash = 0>>
-		<<set $failedElite += 100>>
-	<<else>>
-		Money is quickly shifted to bring you out of debt, though the Societal Elite grumble all the while.
-		<<set $cash = 0>>
-	<</if>>
+		<<if $eugenicsFullControl != 1>>
+			Money is quickly shifted to bring you out of debt, though @@.red;the Societal Elite are left doubting@@ your worth.
+			<<set $cash = 0>>
+			<<set $failedElite += 100>>
+		<<else>>
+			Money is quickly shifted to bring you out of debt, though the Societal Elite grumble all the while.
+			<<set $cash = 0>>
+		<</if>>
 	<<elseif $cash < -9000>>
 		@@.red;WARNING: you are dangerously indebted.@@ Immediately acquire more liquid assets or you will be in danger of being enslaved yourself.
 		<<set $debtWarned += 1>>
diff --git a/src/uncategorized/ptWorkaround.tw b/src/uncategorized/ptWorkaround.tw
index 4629939dc7b03c86eb5588c319c6dd3e74ad08cb..92a2427673fef54c4baea82e5a0a6d6ddae5d971 100644
--- a/src/uncategorized/ptWorkaround.tw
+++ b/src/uncategorized/ptWorkaround.tw
@@ -357,13 +357,13 @@
 		Since $he's anally experienced, you work with $him on the finer points of penetrative sex. $He can already take it up $his ass, but $his muscular control could be improved. $He works $his Kegel muscles and anal sphincter all week, using fingers, dildos, and your <<if $PC.dick == 0>>strap-on<<else>>cock<</if>> as training tools. $He becomes expert enough that $he is able to make you cum without any thrusting at all by you or any riding by $him; $he just flexes $his muscles enough to <<if $PC.dick == 0>>squeeze the fake phallus<<else>>stimulate you<</if>>. @@.lime;$His anal skills have improved.@@
 		<<AnalSkillIncrease $activeSlave>>
 	<<elseif $activeSlave.oralSkill < 100>>
-		$He is already a skilled oral whore, but $his skills can be polished further. You train $him in the basics of urine play, massage, pet play, needle play, and many other niche skills. You also expand $his oral endurance, enabling $him to deepthroat for extended periods. @@.lime;$His oral skills have improved.@@
+		$He is already a skilled oral whore, but $his skills can be polished further. You train $him in the basics of <<if $seePee == 1>>urine play, <</if>>massage, pet play, needle play, and many other niche skills. You also expand $his oral endurance, enabling $him to deepthroat for extended periods. @@.lime;$His oral skills have improved.@@
 		<<OralSkillIncrease $activeSlave>>
 	<<elseif ($activeSlave.vaginalSkill < 100) && ($activeSlave.vagina > 0) && canDoVaginal($activeSlave)>>
-		$He is already a skilled pussy slut, but $his skills can be polished further. You train $him in the basics of urine play, massage, pet play, needle play, and many other niche skills. You also work with $him to develop a personal regimen of vaginal muscle exercises. This will enable $him to squeeze and massage dicks with $his practiced vaginal walls. @@.lime;$His vaginal skills have improved.@@
+		$He is already a skilled pussy slut, but $his skills can be polished further. You train $him in the basics of <<if $seePee == 1>>urine play, <</if>>massage, pet play, needle play, and many other niche skills. You also work with $him to develop a personal regimen of vaginal muscle exercises. This will enable $him to squeeze and massage dicks with $his practiced vaginal walls. @@.lime;$His vaginal skills have improved.@@
 		<<VaginalSkillIncrease $activeSlave>>
 	<<elseif ($activeSlave.analSkill < 100) && ($activeSlave.anus > 0) && canDoAnal($activeSlave)>>
-		$He is already a skilled anal bitch, but $his skills can be polished further. You train $him in the basics of urine play, massage, pet play, needle play, and many other niche skills. You also expand $his knowledge of sexual positions. $He learns to balance $himself on tiptoe for the challenge of standing anal sex without support. @@.lime;$His sexual skills have improved.@@
+		$He is already a skilled anal bitch, but $his skills can be polished further. You train $him in the basics of <<if $seePee == 1>>urine play, <</if>>massage, pet play, needle play, and many other niche skills. You also expand $his knowledge of sexual positions. $He learns to balance $himself on tiptoe for the challenge of standing anal sex without support. @@.lime;$His sexual skills have improved.@@
 		<<AnalSkillIncrease $activeSlave>>
 	<<elseif $activeSlave.whoreSkill <= 10>>
 		Since $he's dangerously naïve about selling sex, you teach $him the basics of self protection and business. @@.lime;$His prostitution skills have improved.@@
diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw
index e1b4fbf070c202e67806958f0d80eb0598590117..3060c064d3a0f9684307f9154b67c65d89e69d07 100644
--- a/src/uncategorized/randomIndividualEvent.tw
+++ b/src/uncategorized/randomIndividualEvent.tw
@@ -85,7 +85,9 @@
 						<<if $slaves[$i].livingRules == "luxurious">>
 							<<if $slaves[$i].devotion >= -20>>
 								<<if $slaves[$i].anus != 0>>
-									<<set $RETasteTestSubIDs.push($slaves[$i].ID)>>
+									<<if canTaste($slaves[$i])>>
+										<<set $RETasteTestSubIDs.push($slaves[$i].ID)>>
+									<</if>>
 								<</if>>
 							<</if>>
 						<</if>>
diff --git a/src/uncategorized/reFSAcquisition.tw b/src/uncategorized/reFSAcquisition.tw
index d34ab42cac1d7764cffa4edfb67a77e8225fdfff..e501e812241afed1b30000b5b21dd7b6cff9d764 100644
--- a/src/uncategorized/reFSAcquisition.tw
+++ b/src/uncategorized/reFSAcquisition.tw
@@ -1089,7 +1089,7 @@ In lieu of a face, a plain page of mostly text and a scant few pictures fills th
 
 You receive so many messages, as a noted titan of the new Free Cities world, that $assistantName has to be quite draconian in culling them. _HeA lets only the most important through to you. One category of message that always gets through regardless of content, though, is requests for voluntary enslavement. As the new world takes shape, they've become less rare than they once were.
 <br><br>
-This one is from another arcology, which is rather unusual. You are presented with a rather normal-looking, if obviously poor, free citizen. $He says dejectedly, "I'm on my la<<s>>t few ¤ here, <<if $PC.title != 0>><<s>>ir<<else>>ma'am<</if>>. The owner here, he'<<s>> planning to en<<s>>lave me later today. I just know it. He fill<<s>> hi<<s>> <<s>>lave<<s>> up with <<s>>ilicone until they look like fucking Barbie doll<<s>>." $He shivers fearfully. "You don't do that, right? If I have to be a fucktoy, I don't want to be cut up first."
+This one is from another arcology, which is rather unusual. You are presented with a rather normal-looking, if obviously poor, free citizen. $He says dejectedly, "I'm on my la<<s>>t few ¤ here, <<if $PC.title != 0>><<s>>ir<<else>>ma'am<</if>>. The owner here, he'<<s>> planning to en<<s>>lave me later today. I ju<<s>>t know it. He fill<<s>> hi<<s>> <<s>>lave<<s>> up with <<s>>ilicone until they look like fucking Barbie doll<<s>>." $He shivers fearfully. "You don't do that, right? If I have to be a fucktoy, I don't want to be cut up first."
 
 <<case "Body Purist Two">>
 
@@ -1119,7 +1119,7 @@ The call comes in from an unusually well-to-do area. It appears that the aristoc
 
 You receive so many messages, as a noted titan of the new Free Cities world, that $assistantName has to be quite draconian in culling them. _HeA lets only the most important through to you. One category of message that always gets through regardless of content, though, is requests for voluntary enslavement. As the new world takes shape, they've become less rare than they once were.
 <br><br>
-This call is coming from a public kiosk, which is usually an indication that the person on the other end is a transient individual who has decided to take slavery over homelessness. You are understandably surprised when this turns out to not be the case; the young $woman in the video call is reasonably well dressed, so $his newfound situation must be exceedingly recent. Without hesitation $he immediately asks to be enslaved. "My boyfriend want<<s>> to turn me into <<s>>ome <<s>>ort of bimbo," $he <<say>>s through $his tears. "I found all the <<s>>urgery bro<<ch>>ure<<s>> that he hid, <<if $PC.title != 0>><<s>>ir<<else>>ma'am<</if>>. But", and $he brings $his slender chest, though covered by $his top, into view, "I don't want to be cut up and filled with pla<<s>>tic. One of my friend<<s>> told me that you care about $woman with a good figure, <<if $PC.title != 0>><<s>>ir<<else>>ma'am<</if>>. I should have never <<s>>old my<<s>>elf to that ba<<s>>tard."
+This call is coming from a public kiosk, which is usually an indication that the person on the other end is a transient individual who has decided to take slavery over homelessness. You are understandably surprised when this turns out to not be the case; the young $woman in the video call is reasonably well dressed, so $his newfound situation must be exceedingly recent. Without hesitation $he immediately asks to be enslaved. "My boyfriend want<<s>> to turn me into <<s>>ome <<s>>ort of bimbo," $he <<say>>s through $his tears. "I found all the <<s>>urgery bro<<ch>>ure<<s>> that he hid, <<if $PC.title != 0>><<s>>ir<<else>>ma'am<</if>>. But", and $he brings $his slender chest, though covered by $his top, into view, "I don't want to be cut up and filled with pla<<s>>tic. One of my friend<<s>> told me that you care about a $woman with a good figure, <<if $PC.title != 0>><<s>>ir<<else>>ma'am<</if>>. I <<sh>>ould have never <<s>>old my<<s>>elf to that ba<<s>>tard."
 
 <<case "Asset Expansionist">>
 
diff --git a/src/uncategorized/reFSNonconformist.tw b/src/uncategorized/reFSNonconformist.tw
index 08000f68d255890f1fd93ab2aa2f6b6df79ec5b0..c6e6edc73128c2fce9c061c3119ecbccef5a4c04 100644
--- a/src/uncategorized/reFSNonconformist.tw
+++ b/src/uncategorized/reFSNonconformist.tw
@@ -7,9 +7,9 @@
 <<set $FSNonconformist = $FSNonconformistEvents.random()>>
 
 <<if $arcologies[0].FSRestart != "unset">>
-A group of the Societal Elite arrives at your penthouse and is quickly ushered into your office. They're among the best members of the society you're building, uniformly wealthy, influential, and deeply
+	A group of the Societal Elite arrives at your penthouse and is quickly ushered into your office. They're among the best members of the society you're building, uniformly wealthy, influential, and deeply
 <<else>>
-A deputation of your citizens arrives at your penthouse and asks to see you. They're among the best members of the society you're building, uniformly wealthy, influential, and deeply
+	A deputation of your citizens arrives at your penthouse and asks to see you. They're among the best members of the society you're building, uniformly wealthy, influential, and deeply
 <</if>>
 <<if $FSNonconformist == "Pastoralist">>
 	committed to making the future of the arcology a creamy one. They're looking quite grim, an unusual mood for a group of oligarchs more inclined to spend their time planning milk orgies,
@@ -61,9 +61,9 @@ A deputation of your citizens arrives at your penthouse and asks to see you. The
 	involved in your Revivalist vision. They're looking quite grim, an unusual mood for a group of oligarchs who partake of your serene confidence that your arcology is coming into a place as stable and long-lived as that of Ancient Egypt,
 <</if>>
 <<if $arcologies[0].FSRestart != "unset">>
-so you hear them out. Apparently, they're here about a peer, another member of the Elite, who has chosen to perform certain undesirable actions. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> helpfully supplies a biography, but you were previously aware of the situation.
+	so you hear them out. Apparently, they're here about a peer, another member of the Elite, who has chosen to perform certain undesirable actions. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> helpfully supplies a biography, but you were previously aware of the situation.
 <<else>>
-so you hear them out. Apparently, they're here about a peer, a fellow citizen with money and power who does not support your vision for the arcology's future. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> helpfully supplies a biography, but you were previously aware of the situation.
+	so you hear them out. Apparently, they're here about a peer, a fellow citizen with money and power who does not support your vision for the arcology's future. <<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> helpfully supplies a biography, but you were previously aware of the situation.
 <</if>>
 <br><br>
 The nonconformist
@@ -117,9 +117,9 @@ The nonconformist
 	has been a longtime skeptic of historical revivalism, publicly deploring it as a childish game of dress-up. This never got much traction, since the land of the Pharaohs has become quite fashionable here. Frustrated, they're rumored to be planning a change of approach. Despairing of getting the population to give up the Egyptian project, they're going to set up a competing Ancient Greek Revivalism. The quixotic effort is almost certainly doomed to fail, but the oligarchs fear it will be a distraction.
 <</if>>
 <<if $arcologies[0].FSRestart != "unset">>
-Faced with such a threat, the Elite naturally came to you. They ask you, as leader of the arcology, to both cover up the event and deal with the disgraced Elite.
+	Faced with such a threat, the Elite naturally came to you. They ask you, as leader of the arcology, to both cover up the event and deal with the disgraced Elite.
 <<else>>
-Faced with such a threat, the citizens naturally came to you. They ask you, as leader of the arcology, to both prevent the plan and get the nonconformist to move out.
+	Faced with such a threat, the citizens naturally came to you. They ask you, as leader of the arcology, to both prevent the plan and get the nonconformist to move out.
 <</if>>
 <br><br>
 The nonconformist is far too prominent and prosperous to make this an easy dilemma to resolve. Your societal goals are at stake, as is your reputation among some of your best citizens, but the nonconformist has significant sway in the arcology's economy. Merely forcing them out of the arcology would damage its prosperity, and more decisive action could have more serious consequences still.
@@ -146,9 +146,8 @@ The nonconformist is far too prominent and prosperous to make this an easy dilem
 		publishes his information, @@.red;greatly hindering@@ the adoption of mass reproduction.<<if $PC.belly >= 1000>> Your own fecundity is brought into question as well, @@.red;hurting your public opinion.@@<<run repX(forceNeg($PC.preg*10), "event")>><</if>>
 		<<set $arcologies[0].FSRepopulationFocus -= 10>>
 	<<elseif $FSNonconformist == "Eugenics">>
-		hosts a public wedding commemorating their love. This @@.red;sets back acceptance@@ of your class system and hinders Eugenics. The Societal Elite are @@.red;furious@@ at your inaction.
+		hosts a public wedding commemorating their love. This @@.red;sets back acceptance@@ of your class system and hinders Eugenics.<<if $eugenicsFullControl != 1>> The Societal Elite are @@.red;furious@@ at your inaction.<<set $failedElite += 100>><</if>>
 		<<set $arcologies[0].FSRestart -= 20>>
-		<<set $failedElite += 100>>
 	<<elseif $FSNonconformist == "Gender Fundamentalist">>
 		hosts a huge public party in a lower-class area of the arcology, staffing it with a large number of slaves with dicks. They're so filled with aphrodisiacs that they orgasm constantly when citizens use their asses. This @@.red;setts back acceptance@@ of gender traditionalism.
 		<<set $arcologies[0].FSGenderFundamentalist -= 10>>
diff --git a/src/uncategorized/reMalefactor.tw b/src/uncategorized/reMalefactor.tw
index 6e6139c1396b04fdb822b0b7b1952771bad78a08..efcb4bfcf694820df538408a4ee65e9d7aba5ffb 100644
--- a/src/uncategorized/reMalefactor.tw
+++ b/src/uncategorized/reMalefactor.tw
@@ -294,7 +294,7 @@
 
 <<case "addict">>
 
-<<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> alerts you that a criminal has been detected by your security systems and detained by the drones. Crime is extremely uncommon in your arcology, since nothing can escape the notice of the omnipresent monitoring systems. Criminals are usually either too angry, too ignorant, or too stupid to understand the impossibility of successful petty crime. This is the latter situation; a $girl suffering severe aphrodisiac withdrawal has attempted to break into a store that sells the stuff. $He's now lying in a pool of $his own urine with a taser round stuck in $his ass; the drone responsible is hovering helpfully nearby, hitting $him with another shock whenever $he does more than twitch.
+<<if $assistantName == "your personal assistant">>Your personal assistant<<else>>$assistantName<</if>> alerts you that a criminal has been detected by your security systems and detained by the drones. Crime is extremely uncommon in your arcology, since nothing can escape the notice of the omnipresent monitoring systems. Criminals are usually either too angry, too ignorant, or too stupid to understand the impossibility of successful petty crime. This is the latter situation; a $girl suffering severe aphrodisiac withdrawal has attempted to break into a store that sells the stuff. $He's now lying <<if $seePee == 1>>in a pool of $his own urine<<else>>face-down on the pavement<</if>> with a taser round stuck in $his ass; the drone responsible is hovering helpfully nearby, hitting $him with another shock whenever $he does more than twitch.
 
 <<case "escapee">>
 
diff --git a/src/uncategorized/reRelativeRecruiter.tw b/src/uncategorized/reRelativeRecruiter.tw
index 84d1910963e5079f04ec69c43edabe9fe1fd6f53..c81539fcf8e72e6a76bef5d1467d480f59a1990c 100644
--- a/src/uncategorized/reRelativeRecruiter.tw
+++ b/src/uncategorized/reRelativeRecruiter.tw
@@ -261,7 +261,7 @@
 	<<set $activeSlave.actualAge = random($activeSlaveOneTimeMinAge, $activeSlaveOneTimeMaxAge)>>
 
 <<case "older sister">>
-	<<set $activeSlave.origin = "She was recruited into your service by her little sis.">>
+	<<set $activeSlave.origin = "She was recruited into your service by her younger sister.">>
 	<<set $activeSlave.genes = "XX">>
 	<<set $activeSlave.vagina = 2>>
 	<<set $activeSlave.boobs += 200>>
@@ -277,7 +277,7 @@
 	<<set $activeSlave.whoreSkill += random(0,20)>>
 
 <<case "younger sister">>
-	<<set $activeSlave.origin = "She was recruited into your service by her big sis.">>
+	<<set $activeSlave.origin = "She was recruited into your service by her older sister.">>
 	<<set $activeSlave.genes = "XX">>
 	<<set $activeSlave.boobs = (random(1,4)*100)>>
 	<<set $activeSlave.butt = random(1,2)>>
@@ -291,7 +291,7 @@
 	<<set $activeSlave.vagina = 1>>
 
 <<case "older brother">>
-	<<set $activeSlave.origin = "She was recruited into your service by her little sis.">>
+	<<set $activeSlave.origin = "She was recruited into your service by her younger sister.">>
 	<<set $activeSlave.genes = "XY">>
 	<<set $activeSlave.dick = 5>>
 	<<set $activeSlave.boobs = 0>>
@@ -309,7 +309,7 @@
 	<<set $activeSlave.faceShape = "masculine">>
 
 <<case "younger brother">>
-	<<set $activeSlave.origin = "She was recruited into your service by her big sis.">>
+	<<set $activeSlave.origin = "She was recruited into your service by her older sister.">>
 	<<set $activeSlave.genes = "XY">>
 	<<set $activeSlave.boobs = (random(20,40)*100)>>
 	<<set $activeSlave.boobsImplant = $activeSlave.boobs - 100>>
diff --git a/src/uncategorized/reStandardPunishment.tw b/src/uncategorized/reStandardPunishment.tw
index 6e9f22bcafe0ae537f8a08d083de5a794fc6f155..b2912a3dd5f8b482beb45da85e7e795505ed0c32 100644
--- a/src/uncategorized/reStandardPunishment.tw
+++ b/src/uncategorized/reStandardPunishment.tw
@@ -158,11 +158,11 @@
 	<<if $activeSlave.energy > 60>>
 		$His healthy sex drive makes this torture for $him; $he watches everything that happens in the office with desperate longing. Before long,
 	<<elseif $activeSlave.devotion > 20>>
-		$He's used to the idea of sexual slavery, and inevitably sees people $he finds attractive doing things $he considers sexy in the office. Before long,
+		$He's used to the idea of sexual slavery, and inevitably <<if canSee($activeSlave)>>sees<<elseif canHear($activeSlave)>>hears<<else>>is surrounded by<</if>> people $he finds attractive doing things $he considers sexy in the office. Before long,
 	<<elseif $activeSlave.devotion >= -50>>
 		$He's not comfortable with sexual slavery, but the heavily sexual atmosphere of the office affects even $him. After a few hours,
 	<<else>>
-		The office being what it is, $he sees many naked, attractive people doing sexy things over the course of the day. Despite $his resistance, after a few hours,
+		The office being what it is, $he <<if canSee($activeSlave)>>sees<<elseif canHear($activeSlave)>>hears<<else>>is surrounded by<</if>> many naked, attractive people doing sexy things over the course of the day. Despite $his resistance, after a few hours,
 	<</if>>
 	$he's quite horny. Restrained as $he is, $he <<if $activeSlave.devotion > 20>>couldn't<<else>>can't<</if>> hide
 	<<if $activeSlave.dick > 0>>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 9ab15476d39a6502be639d9844225b35bd86b8d3..0c15667aadd183e369ab43753422deefc634ba78 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -213,7 +213,7 @@ $He has
 $He has
 <<if $activeSlave.earT == "none">>
 	<<if $activeSlave.earShape != "none">>only one set of ears<<else>>no secondary ears<</if>>.
-<<elseif  $activeSlave.earT == "human">>
+<<elseif  $activeSlave.earT == "normal">>
 	<<if $activeSlave.earShape != "none">>a second pair of ears grafted to $his head<<else>>a pair of ears grafted to the top of $his head<</if>>.
 <<elseif $activeSlave.earT == "neko">>
 	a pair of cat ears adorning $his head.
@@ -232,7 +232,7 @@ $He has
 	<<if $activeSlave.earT != "none" && $seeExtreme == 1 && $activeSlave.indentureRestrictions < 1>>
 		[[Remove them|Surgery Degradation][$activeSlave.earT = "none", $cash -= $surgeryCost, $activeSlave.health -= 20, $surgeryType = "earGone"]]
 	<</if>>
-	<<if $activeSlave.earT == "human">>
+	<<if $activeSlave.earT == "normal">>
 		<br>Reshape them:
 		<<if $activeSlave.earT != "neko">>
 			[[Cat Ears|Surgery Degradation][$activeSlave.earT = "neko", $cash -= $surgeryCost, $activeSlave.health -= 10, $surgeryType = "earMajor"]]
@@ -445,6 +445,30 @@ $He has
 	<</if>>
 <</if>>
 
+<br>&nbsp;&nbsp;&nbsp;&nbsp;
+<<if $activeSlave.smells == 0 && $activeSlave.tastes == 0>>
+	$He has a working chemosensory system.
+<<elseif $activeSlave.smells == 0>>
+	$He has a working olfactory system and an impaired gustatory system.
+<<elseif $activeSlave.tastes == 0>>
+	$He has a working gustatory system and an impaired olfactory system.
+<<else>>
+	$He has an impaired chemosensory system.
+<</if>>
+<<if $activeSlave.indentureRestrictions < 1>>
+	<<if ($activeSlave.smells == 0) && ($seeExtreme == 1)>>
+		| [[Remove sense of smell|Surgery Degradation][$activeSlave.smells = -1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "desmell"]]
+	<<elseif $activeSlave.smells == -1>>
+		| [[Repair sense of smell|Surgery Degradation][$activeSlave.smells = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "resmell"]]
+	<</if>>
+	<<if ($activeSlave.tastes == 0) && ($seeExtreme == 1)>>
+		| [[Remove sense of taste|Surgery Degradation][$activeSlave.tastes = -1, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "detaste"]]
+	<<elseif $activeSlave.tastes == -1>>
+		| [[Repair sense of taste|Surgery Degradation][$activeSlave.tastes = 0, cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 10, $surgeryType = "retaste"]]
+	<</if>>
+<</if>>
+
+
 <<if $activeSlave.scars > 0>>
 	<br>&nbsp;&nbsp;&nbsp;&nbsp;
 	$He has notable facial scarring.
@@ -854,10 +878,10 @@ Work on $his butt:
 <br>&nbsp;&nbsp;&nbsp;&nbsp;
 $He's got a
 <<if $activeSlave.butt <= 1>>flat and <<print either("skinny", "slim", "taut")>> ass.
-<<elseif $activeSlave.butt <= 2>><<print either("small, sleek", "small but rounded", "rounded, small")>> rear end.
+<<elseif $activeSlave.butt <= 2>><<print either("rounded, small", "small but rounded", "small, sleek")>> rear end.
 <<elseif $activeSlave.butt <= 3>><<print either("big and healthy", "curved and plump", "healthy and plump")>> derrière.
-<<elseif $activeSlave.butt <= 4>><<print either("juicy and large butt", "big bubble butt", "curvy and enticing butt")>>.
-<<elseif $activeSlave.butt <= 5>><<print either("juicy and huge", "a huge", "massive and undeniable")>> rear end.
+<<elseif $activeSlave.butt <= 4>><<print either("big bubble butt", "curvy and enticing butt", "juicy and large butt")>>.
+<<elseif $activeSlave.butt <= 5>><<print either("huge", "juicy and huge", "massive and undeniable")>> rear end.
 <<elseif ($activeSlave.amp == 1)>>ridiculous ass. It's so big it would jiggle as $he walked — if $he could walk.
 <<else>>ridiculous ass. It's so big it jiggles as $he walks.
 <</if>>
@@ -1384,19 +1408,19 @@ Alter $his race:
 <<if $activeSlave.indentureRestrictions < 1>>
 	$He is $activeSlave.race<<if $activeSlave.race != $activeSlave.origRace>>, but was originally $activeSlave.origRace<</if>>. Surgically alter $him to look more:
 	<<if $activeSlave.race != "white">>
-		[[White|Surgery Degradation][$activeSlave.race = "white",$activeSlave.skin = either("pale", "light", "fair"),$activeSlave.eyeColor = either("blue", "brown", "green"),$activeSlave.hColor = either("black", "blonde", "red", "brown"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
+		[[White|Surgery Degradation][$activeSlave.race = "white",$activeSlave.skin = either("fair", "light", "pale"),$activeSlave.eyeColor = either("blue", "brown", "green"),$activeSlave.hColor = either("black", "blonde", "brown", "red"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
 	<</if>>
 	<<if $activeSlave.race != "latina">>
-		[[Latina|Surgery Degradation][$activeSlave.race = "latina",$activeSlave.skin = either("light olive", "brown", "dark brown", "tanned", "dark olive"),$activeSlave.hColor = either("black", "black", "brown", "brown"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
+		[[Latina|Surgery Degradation][$activeSlave.race = "latina",$activeSlave.skin = either("brown", "dark brown", "dark olive", "light olive", "tanned"),$activeSlave.hColor = either("black", "black", "brown", "brown"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
 	<</if>>
 	<<if $activeSlave.race != "black">>
-		[[Black|Surgery Degradation][$activeSlave.race = "black",$activeSlave.skin = either("black", "dark brown", "brown"),$activeSlave.hColor = either("black", "black", "black", "brown"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
+		[[Black|Surgery Degradation][$activeSlave.race = "black",$activeSlave.skin = either("black", "brown", "dark brown"),$activeSlave.hColor = either("black", "black", "black", "brown"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
 	<</if>>
 	<<if $activeSlave.race != "asian">>
-		[[Asian|Surgery Degradation][$activeSlave.race = "asian",$activeSlave.skin = either("light olive", "dark olive", "light"),$activeSlave.hColor = either("black"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
+		[[Asian|Surgery Degradation][$activeSlave.race = "asian",$activeSlave.skin = either("dark olive", "light olive", "light"),$activeSlave.hColor = either("black"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
 	<</if>>
 	<<if $activeSlave.race != "middle eastern">>
-		[[Middle Eastern|Surgery Degradation][$activeSlave.race = "middle eastern",$activeSlave.skin = either("fair", "light olive", "tanned", "light"),$activeSlave.hColor = either("black"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
+		[[Middle Eastern|Surgery Degradation][$activeSlave.race = "middle eastern",$activeSlave.skin = either("fair", "light olive", "light", "tanned"),$activeSlave.hColor = either("black"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
 	<</if>>
 	<<if $activeSlave.race != "indo-aryan">>
 		[[Indo-Aryan|Surgery Degradation][$activeSlave.race = "indo-aryan",$activeSlave.skin = either("dark", "light"),$activeSlave.hColor = either("black"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
@@ -1411,13 +1435,13 @@ Alter $his race:
 		[[Amerindian|Surgery Degradation][$activeSlave.race = "amerindian",$activeSlave.skin = either("dark", "light"),$activeSlave.hColor = either("black"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
 	<</if>>
 	<<if $activeSlave.race != "southern european">>
-		[[Southern European|Surgery Degradation][$activeSlave.race = "southern european",$activeSlave.skin = either("fair", "light olive", "tanned", "light"),$activeSlave.hColor = either("black"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
+		[[Southern European|Surgery Degradation][$activeSlave.race = "southern european",$activeSlave.skin = either("fair", "light olive", "light", "tanned"),$activeSlave.hColor = either("black"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
 	<</if>>
 	<<if $activeSlave.race != "semitic">>
-		[[Semitic|Surgery Degradation][$activeSlave.race = "semitic",$activeSlave.skin = either("fair", "light olive", "tanned", "light"),$activeSlave.hColor = either("black"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
+		[[Semitic|Surgery Degradation][$activeSlave.race = "semitic",$activeSlave.skin = either("fair", "light olive", "light", "tanned"),$activeSlave.hColor = either("black"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]] |
 	<</if>>
 	<<if $activeSlave.race != "mixed race">>
-		[[Mixed Race|Surgery Degradation][$activeSlave.race = "mixed race",$activeSlave.skin = either("pale", "dark", "light"),$activeSlave.hColor = either("black", "black", "black", "black", "brown", "brown", "blonde", "red"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]]
+		[[Mixed Race|Surgery Degradation][$activeSlave.race = "mixed race",$activeSlave.skin = either("dark", "light", "pale"),$activeSlave.hColor = either("black", "black", "black", "black", "blonde", "brown", "brown", "red"),cashX(forceNeg($surgeryCost), "slaveSurgery", $activeSlave), $activeSlave.health -= 20,$surgeryType = "race"]]
 	<</if>>
 <<else>>
 	//$His indenture forbids elective surgery//
diff --git a/src/uncategorized/reputation.tw b/src/uncategorized/reputation.tw
index 609f582864cdb1074fceded446d6391f1d5c4323..77ddf0e06a5105615aedb97ac3fbb593f1d124f8 100644
--- a/src/uncategorized/reputation.tw
+++ b/src/uncategorized/reputation.tw
@@ -8,43 +8,43 @@
 On formal occasions, you are announced as $PCTitle.
 
 <<if $arcologies[0].FSChattelReligionist != "unset">>
-<<if $arcologies[0].FSChattelReligionistCreed == 1>>
-	$arcologies[0].name keeps the creed of the $nicaeaName. The faithful
-	<<if $nicaeaAchievement == "slaves">>
-		<<if $slaves.length > 50>>
-			@@.green;strongly approve@@ of the large
-			<<= FSChange("ChattelReligionist", 5)>>
-		<<elseif $slaves.length > 20>>
-			@@.green;approve@@ of the good
-			<<= FSChange("ChattelReligionist", 2)>>
-		<<else>>
-			are not impressed by the
-		<</if>>
-		number of people you're giving the honor of sexual servitude.
-	<<elseif $nicaeaAchievement == "devotion">>
-		<<if $averageDevotion > 80>>
-			@@.green;strongly approve@@ of the worshipfulness
-			<<= FSChange("ChattelReligionist", 5)>>
-		<<elseif $averageDevotion > 50>>
-			@@.green;approve@@ of the devotion
-			<<= FSChange("ChattelReligionist", 2)>>
-		<<else>>
-			are not impressed by the devotion
-		<</if>>
-		of your slaves.
-	<<else>>
-		<<if $averageTrust > 50>>
-			@@.green;strongly approve@@ of the great trust your slaves place in you.
-			<<= FSChange("ChattelReligionist", 5)>>
-		<<elseif $averageTrust > 20>>
-			@@.green;approve@@ of the trust your slaves place in you.
-			<<= FSChange("ChattelReligionist", 2)>>
+	<<if $arcologies[0].FSChattelReligionistCreed == 1>>
+		$arcologies[0].name keeps the creed of the $nicaeaName. The faithful
+		<<if $nicaeaAchievement == "slaves">>
+			<<if $slaves.length > 50>>
+				@@.green;strongly approve@@ of the large
+				<<= FSChange("ChattelReligionist", 5)>>
+			<<elseif $slaves.length > 20>>
+				@@.green;approve@@ of the good
+				<<= FSChange("ChattelReligionist", 2)>>
+			<<else>>
+				are not impressed by the
+			<</if>>
+			number of people you're giving the honor of sexual servitude.
+		<<elseif $nicaeaAchievement == "devotion">>
+			<<if $averageDevotion > 80>>
+				@@.green;strongly approve@@ of the worshipfulness
+				<<= FSChange("ChattelReligionist", 5)>>
+			<<elseif $averageDevotion > 50>>
+				@@.green;approve@@ of the devotion
+				<<= FSChange("ChattelReligionist", 2)>>
+			<<else>>
+				are not impressed by the devotion
+			<</if>>
+			of your slaves.
 		<<else>>
-			are not impressed by the fear many of your slaves feel towards you.
+			<<if $averageTrust > 50>>
+				@@.green;strongly approve@@ of the great trust your slaves place in you.
+				<<= FSChange("ChattelReligionist", 5)>>
+			<<elseif $averageTrust > 20>>
+				@@.green;approve@@ of the trust your slaves place in you.
+				<<= FSChange("ChattelReligionist", 2)>>
+			<<else>>
+				are not impressed by the fear many of your slaves feel towards you.
+			<</if>>
 		<</if>>
 	<</if>>
 <</if>>
-<</if>>
 
 <<set $repDecay = 0.05>>
 <<if $arcologies[0].FSChattelReligionistLaw == 1>>
@@ -55,53 +55,53 @@ On formal occasions, you are announced as $PCTitle.
 	Since you are an established member of the Societal Elite, your public reputation no longer decays.
 <<elseif $rep > $enduringRep>>
 	<<if $arcologies[0].FSMaturityPreferentialistLaw == 1>>
-	<<if $PC.actualAge >= 65>>
-		Since you're getting on in years and have an impressive list of accomplishments, and $arcologies[0].name's society respects age, your reputation degrades quite slowly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
-	<<elseif $PC.actualAge >= 50>>
-		Since you're well into middle age and have an impressive list of accomplishments, and $arcologies[0].name's society respects age, your reputation degrades quite slowly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
-	<<elseif $PC.actualAge < 35>>
-		Since you're unusually young for an arcology owner, and $arcologies[0].name's society respects age, your reputation degrades quite quickly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
-	<<else>>
-		Since you're only entering middle age, and $arcologies[0].name's society respects age, your reputation degrades fairly quickly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay))>>
-	<</if>>
+		<<if $PC.actualAge >= 65>>
+			Since you're getting on in years and have an impressive list of accomplishments, and $arcologies[0].name's society respects age, your reputation degrades quite slowly.
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
+		<<elseif $PC.actualAge >= 50>>
+			Since you're well into middle age and have an impressive list of accomplishments, and $arcologies[0].name's society respects age, your reputation degrades quite slowly.
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
+		<<elseif $PC.actualAge < 35>>
+			Since you're unusually young for an arcology owner, and $arcologies[0].name's society respects age, your reputation degrades quite quickly.
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
+		<<else>>
+			Since you're only entering middle age, and $arcologies[0].name's society respects age, your reputation degrades fairly quickly.
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay))>>
+		<</if>>
 	<<elseif $arcologies[0].FSYouthPreferentialistLaw == 1>>
-	<<if $PC.actualAge >= 65>>
-		Since you're getting on in years and have an impressive list of accomplishments, but $arcologies[0].name's society is coming to prefer youth to experience, so your reputation degrades fairly quickly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
-	<<elseif $PC.actualAge >= 50>>
-		You're well into middle age and have an impressive list of accomplishments, but $arcologies[0].name's society is coming to prefer youth to experience, so your reputation degrades fairly quickly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
-	<<elseif $PC.actualAge < 35>>
-		You're unusually young for an arcology owner, but $arcologies[0].name's society doesn't mind.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay))>>
-	<<else>>
-		Since you're entering middle age, and $arcologies[0].name's society respects youth, your reputation degrades fairly quickly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
-	<</if>>
-	<<else>>
-	<<if $PC.actualAge >= 65>>
-		Since you're getting on in years and have an impressive list of accomplishments, and $arcologies[0].name's society respects age, your reputation degrades quite slowly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
-	<<elseif $PC.actualAge >= 50>>
-		Since you're well into middle age and have an impressive list of accomplishments, your reputation degrades fairly slowly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
-	<<elseif $PC.actualAge < 35>>
-		Since you're unusually young for an arcology owner, your reputation degrades fairly quickly.
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
+		<<if $PC.actualAge >= 65>>
+			Since you're getting on in years and have an impressive list of accomplishments, but $arcologies[0].name's society is coming to prefer youth to experience, so your reputation degrades fairly quickly.
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
+		<<elseif $PC.actualAge >= 50>>
+			You're well into middle age and have an impressive list of accomplishments, but $arcologies[0].name's society is coming to prefer youth to experience, so your reputation degrades fairly quickly.
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
+		<<elseif $PC.actualAge < 35>>
+			You're unusually young for an arcology owner, but $arcologies[0].name's society doesn't mind.
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay))>>
+		<<else>>
+			Since you're entering middle age, and $arcologies[0].name's society respects youth, your reputation degrades fairly quickly.
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
+		<</if>>
 	<<else>>
-		<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay))>>
-	<</if>>
+		<<if $PC.actualAge >= 65>>
+			Since you're getting on in years and have an impressive list of accomplishments, and $arcologies[0].name's society respects age, your reputation degrades quite slowly.
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
+		<<elseif $PC.actualAge >= 50>>
+			Since you're well into middle age and have an impressive list of accomplishments, your reputation degrades fairly slowly.
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay-0.0125))>>
+		<<elseif $PC.actualAge < 35>>
+			Since you're unusually young for an arcology owner, your reputation degrades fairly quickly.
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay+0.0125))>>
+		<<else>>
+			<<set _repLoss = Math.trunc(($rep-$enduringRep)*($repDecay))>>
+		<</if>>
 	<</if>>
 	<<if $enduringRep > 8000>>
-	However, you have been a figure of renown for so long that much of your reputation has become permanent.
+		However, you have been a figure of renown for so long that much of your reputation has become permanent.
 	<<elseif $enduringRep > 5000>>
-	However, you have been a figure of repute for enough time that part of your reputation has become permanent.
+		However, you have been a figure of repute for enough time that part of your reputation has become permanent.
 	<<elseif $enduringRep > 2000>>
-	However, you have been a figure of regard for long enough that some of your reputation has become permanent.
+		However, you have been a figure of regard for long enough that some of your reputation has become permanent.
 	<</if>>
 	<<if _repLoss > 500>>
 		<<set _repLoss = 500>>
@@ -110,11 +110,11 @@ On formal occasions, you are announced as $PCTitle.
 <<else>>
 	<<set _repLoss = 0>>
 	<<if $enduringRep > 8000>>
-	You have been a figure of renown for so long that your reputation does not decay past its present level.
+		You have been a figure of renown for so long that your reputation does not decay past its present level.
 	<<elseif $enduringRep > 5000>>
-	You have been a figure of repute for enough time that your reputation does not decay past its present level.
+		You have been a figure of repute for enough time that your reputation does not decay past its present level.
 	<<elseif $enduringRep > 2000>>
-	You have been a figure of regard for long enough that your reputation does not decay past its present level.
+		You have been a figure of regard for long enough that your reputation does not decay past its present level.
 	<</if>>
 <</if>>
 
@@ -134,79 +134,79 @@ On formal occasions, you are announced as $PCTitle.
 <</if>>
 
 <<if $arcologies[0].FSRestartDecoration == 100>>
-	As a member of the societal elite, your appearance has no bearing on your reputation.
+	As a member of the Societal Elite, your appearance has no bearing on your reputation.
 <<else>>
-<<if ($PC.dick == 0) && ($PC.boobs == 1) && $PC.title == 0>>
-	<<if $rep > 18000>>
-		Your reputation is so well-established that society has accepted your notoriously feminine appearance despite how unusual it is for a prominent slaveowner to look like you do.
-		<<if $arcologies[0].FSGenderRadicalist > 30>>
-			Indeed, society sees you as entirely male, since you are powerful, and @@.green;strongly approves@@ of your nonconformity; this advances the redefinition of gender around power.
-			<<= FSChange("GenderRadicalist", 5)>>
-		<<elseif $arcologies[0].FSGenderFundamentalist > 30>>
-			Indeed, society has been reconciled to female leadership, preferring to see you as a mother figure.
-		<</if>>
-	<<elseif $arcologies[0].FSGenderRadicalist > 40>>
-		Society accepts you as an arcology owner, since it has become open-minded about power and gender.
-		<<if $arcologies[0].FSGenderRadicalist > 50>>
-			Indeed, society sees you as fundamentally male, since you are powerful, and @@.green;strongly approves@@ of your audacity; this advances the redefinition of gender around power.
-			<<= FSChange("GenderRadicalist", 5)>>
-		<</if>>
-	<<else>>
-		Most prominent slaveowners are male, and your obviously feminine appearance makes it @@.red;harder for you to maintain your reputation.@@
-		<<run repX(forceNeg(Math.min(($rep*0.05), 500)), "PCappearance")>>
-		<<if $arcologies[0].FSGenderFundamentalist > 10>>
-			Society @@.red;strongly resents@@ your being an arcology owner; this damages the idea that women should not be in positions of responsibility.
-			<<= FSChange("GenderFundamentalist", -5)>>
-		<</if>>
-	<</if>>
-<<elseif ($PC.boobs == 1) || $PC.title == 0>>
-	<<if $rep > 15000>>
-		Your reputation is so strong that society has accepted your feminine appearance despite how unusual it is for a prominent slaveowner to look like you do.
-		<<if $arcologies[0].FSGenderRadicalist > 30>>
-			Indeed, society sees you as entirely male, since you are powerful, and @@.green;strongly approves@@ of your nonconformity; this advances the redefinition of gender around power.
-			<<= FSChange("GenderRadicalist", 5)>>
-		<<elseif $arcologies[0].FSGenderFundamentalist > 30>>
-			Indeed, society has been reconciled to your feminine appearance, seeing you as a person apart.
-		<</if>>
-	<<elseif $arcologies[0].FSGenderRadicalist > 20>>
-		Society accepts you as an arcology owner, since it has become open-minded anyone who has a cock and fucks.
-		<<if $arcologies[0].FSGenderRadicalist > 30>>
-			Indeed, society sees you as dominant, since you fuck bitches, and @@.green;strongly approves@@ of your nonconformity; this advances the redefinition of gender around power.
-			<<= FSChange("GenderRadicalist", 5)>>
-		<</if>>
-	<<else>>
-		Most prominent slaveowners are very masculine, and your feminine appearance makes it @@.red;harder for you to maintain your reputation.@@
-		<<run repX(forceNeg(Math.min(($rep*0.025), 250)), "PCappearance")>>
-		<<if $arcologies[0].FSGenderFundamentalist > 30>>
-			Society @@.red;strongly resents@@ your being an arcology owner; this damages the idea that feminine people should not be in positions of responsibility.
-			<<= FSChange("GenderFundamentalist", -5)>>
-		<</if>>
-	<</if>>
-<<elseif ($PC.dick == 0) || ($PC.vagina == 1)>>
-	<<if $rep > 15000>>
-		Your reputation is so strong that society has accepted your unorthodox arrangement downstairs, for an arcology owner.
-		<<if $arcologies[0].FSGenderRadicalist > 30>>
-			Indeed, society sees you as entirely male, since you are powerful, and @@.green;strongly approves@@ of your nonconformity; this advances the redefinition of gender around power.
-			<<= FSChange("GenderRadicalist", 5)>>
-		<<elseif $arcologies[0].FSGenderFundamentalist > 30>>
-			Indeed, society has been reconciled to your strangeness, seeing you as a person apart.
+	<<if ($PC.dick == 0) && ($PC.boobs == 1) && $PC.title == 0>>
+		<<if $rep > 18000>>
+			Your reputation is so well-established that society has accepted your notoriously feminine appearance despite how unusual it is for a prominent slaveowner to look like you do.
+			<<if $arcologies[0].FSGenderRadicalist > 30>>
+				Indeed, society sees you as entirely male, since you are powerful, and @@.green;strongly approves@@ of your nonconformity; this advances the redefinition of gender around power.
+				<<= FSChange("GenderRadicalist", 5)>>
+			<<elseif $arcologies[0].FSGenderFundamentalist > 30>>
+				Indeed, society has been reconciled to female leadership, preferring to see you as a mother figure.
+			<</if>>
+		<<elseif $arcologies[0].FSGenderRadicalist > 40>>
+			Society accepts you as an arcology owner, since it has become open-minded about power and gender.
+			<<if $arcologies[0].FSGenderRadicalist > 50>>
+				Indeed, society sees you as fundamentally male, since you are powerful, and @@.green;strongly approves@@ of your audacity; this advances the redefinition of gender around power.
+				<<= FSChange("GenderRadicalist", 5)>>
+			<</if>>
+		<<else>>
+			Most prominent slaveowners are male, and your obviously feminine appearance makes it @@.red;harder for you to maintain your reputation.@@
+			<<run repX(forceNeg(Math.min(($rep*0.05), 500)), "PCappearance")>>
+			<<if $arcologies[0].FSGenderFundamentalist > 10>>
+				Society @@.red;strongly resents@@ your being an arcology owner; this damages the idea that women should not be in positions of responsibility.
+				<<= FSChange("GenderFundamentalist", -5)>>
+			<</if>>
 		<</if>>
-	<<elseif $arcologies[0].FSGenderRadicalist > 20>>
-		Society accepts you as an arcology owner, since it has become open-minded about the exact genital layout of powerful people.
-		<<if $arcologies[0].FSGenderRadicalist > 30>>
-			Indeed, society sees you as dominant, since you are powerful, and @@.green;strongly approves@@ of your nonconformity; this advances the redefinition of gender around power.
-			<<= FSChange("GenderRadicalist", 5)>>
+	<<elseif ($PC.boobs == 1) || $PC.title == 0>>
+		<<if $rep > 15000>>
+			Your reputation is so strong that society has accepted your feminine appearance despite how unusual it is for a prominent slaveowner to look like you do.
+			<<if $arcologies[0].FSGenderRadicalist > 30>>
+				Indeed, society sees you as entirely male, since you are powerful, and @@.green;strongly approves@@ of your nonconformity; this advances the redefinition of gender around power.
+				<<= FSChange("GenderRadicalist", 5)>>
+			<<elseif $arcologies[0].FSGenderFundamentalist > 30>>
+				Indeed, society has been reconciled to your feminine appearance, seeing you as a person apart.
+			<</if>>
+		<<elseif $arcologies[0].FSGenderRadicalist > 20>>
+			Society accepts you as an arcology owner, since it has become open-minded anyone who has a cock and fucks.
+			<<if $arcologies[0].FSGenderRadicalist > 30>>
+				Indeed, society sees you as dominant, since you fuck bitches, and @@.green;strongly approves@@ of your nonconformity; this advances the redefinition of gender around power.
+				<<= FSChange("GenderRadicalist", 5)>>
+			<</if>>
+		<<else>>
+			Most prominent slaveowners are very masculine, and your feminine appearance makes it @@.red;harder for you to maintain your reputation.@@
+			<<run repX(forceNeg(Math.min(($rep*0.025), 250)), "PCappearance")>>
+			<<if $arcologies[0].FSGenderFundamentalist > 30>>
+				Society @@.red;strongly resents@@ your being an arcology owner; this damages the idea that feminine people should not be in positions of responsibility.
+				<<= FSChange("GenderFundamentalist", -5)>>
+			<</if>>
 		<</if>>
-	<<else>>
-		Most prominent slaveowners are very masculine, and though your unorthodox arrangement downstairs isn't obvious when you're clothed, the rumors are unavoidable and it's @@.red;harder for you to maintain your reputation.@@
-		<<run repX(forceNeg(Math.min(($rep*0.025), 250)), "PCappearance")>>
-		<<if $arcologies[0].FSGenderFundamentalist > 30>>
-			Society @@.red;strongly resents@@ your being an arcology owner; this damages the idea that people who are not men should not be in positions of responsibility.
-			<<= FSChange("GenderFundamentalist", -5)>>
+	<<elseif ($PC.dick == 0) || ($PC.vagina == 1)>>
+		<<if $rep > 15000>>
+			Your reputation is so strong that society has accepted your unorthodox arrangement downstairs, for an arcology owner.
+			<<if $arcologies[0].FSGenderRadicalist > 30>>
+				Indeed, society sees you as entirely male, since you are powerful, and @@.green;strongly approves@@ of your nonconformity; this advances the redefinition of gender around power.
+				<<= FSChange("GenderRadicalist", 5)>>
+			<<elseif $arcologies[0].FSGenderFundamentalist > 30>>
+				Indeed, society has been reconciled to your strangeness, seeing you as a person apart.
+			<</if>>
+		<<elseif $arcologies[0].FSGenderRadicalist > 20>>
+			Society accepts you as an arcology owner, since it has become open-minded about the exact genital layout of powerful people.
+			<<if $arcologies[0].FSGenderRadicalist > 30>>
+				Indeed, society sees you as dominant, since you are powerful, and @@.green;strongly approves@@ of your nonconformity; this advances the redefinition of gender around power.
+				<<= FSChange("GenderRadicalist", 5)>>
+			<</if>>
+		<<else>>
+			Most prominent slaveowners are very masculine, and though your unorthodox arrangement downstairs isn't obvious when you're clothed, the rumors are unavoidable and it's @@.red;harder for you to maintain your reputation.@@
+			<<run repX(forceNeg(Math.min(($rep*0.025), 250)), "PCappearance")>>
+			<<if $arcologies[0].FSGenderFundamentalist > 30>>
+				Society @@.red;strongly resents@@ your being an arcology owner; this damages the idea that people who are not men should not be in positions of responsibility.
+				<<= FSChange("GenderFundamentalist", -5)>>
+			<</if>>
 		<</if>>
 	<</if>>
 <</if>>
-<</if>>
 
 <<if $sexualOpeness == 1>>
 	<<if $arcologies[0].FSChattelReligionistLaw == 1 || $arcologies[0].FSRestartDecoration == 100>>
@@ -355,7 +355,9 @@ On formal occasions, you are announced as $PCTitle.
 				<</if>>
 				breach of eugenics. Your citizens are @@.red;livid@@ over your actions and are calling for your removal.
 				<<run repX(-500, "PCactions")>>
-				<<set $failedElite += 100>>
+				<<if $eugenicsFullControl != 1>>
+					<<set $failedElite += 100>>
+				<</if>>
 			<<else>>
 				Since it is public knowledge that you are carrying a child in the name of eugenics; society views you as a bearer of the future and @@.green;celebrates@@ your contributions to society.
 				<<run repX(200, "PCappearance")>>
@@ -370,7 +372,9 @@ On formal occasions, you are announced as $PCTitle.
 			<</if>>
 			breach of the eugenics you are pushing for. Your citizens are @@.red;disgusted@@ by both your body and your lack of commitment.
 			<<run repX(-500, "PCactions")>>
-			<<set $failedElite += 50>>
+			<<if $eugenicsFullControl != 1>>
+				<<set $failedElite += 50>>
+			<</if>>
 		<</if>>
 	<<elseif $arcologies[0].FSRepopulationFocus >= 60>>
 		Most prominent female owners avoid being penetrated on principle, but your arcology values motherhood so much that it is more @@.green;pleased@@ with your dedication than it is disappointed in your
@@ -588,7 +592,7 @@ On formal occasions, you are announced as $PCTitle.
 		<<else>>
 			Society @@.red;strongly disapproves@@ of your creating an economic incentive for the lower classes to breed and sell infants, holding back acceptance of your new society.
 		<</if>>
-		<<set $failedElite += 5, $arcologies[0].FSRestart -= $FSSingleSlaveRep>>
+		<<set $arcologies[0].FSRestart -= $FSSingleSlaveRep>>
 		<<run repX(forceNeg((5*$FSSingleSlaveRep*($arcologies[0].FSRestart/$FSLockinLevel))+($rep/40)), "babyTransfer")>>
 		<<run repX(-50, "PCactions")>>
 	<<elseif $arcologies[0].FSPaternalist != "unset">>
@@ -775,28 +779,32 @@ On formal occasions, you are announced as $PCTitle.
 		The Societal Elite can think what they want, they know better than to try and cross you again.
 	<</if>>
 <<elseif $arcologies[0].FSRestart != "unset">>
-	<<if $failedElite > 300>>
-		The Societal Elite @@.red;have departed from your arcology in disgust@@.
-		<<run removeFS("FSRestart")>>
-		<<run repX(-10000, "event")>>
-		<<set $eliteFail = random(30,100),
-		$eliteFailTimer = 15>>
-		<<if $eliteFail > $topClass - 20>>
-			<<set $eliteFail = $topClass - 20>>
-		<</if>>
-		<<if $arcologies[0].prosperity > 50>>
-			<<set $arcologies[0].prosperity -= random(20,40)>>
+	<<if $eugenicsFullControl != 1>>
+		<<if $failedElite > 300>>
+			The Societal Elite @@.red;have departed from your arcology in disgust@@.
+			<<run removeFS("FSRestart")>>
+			<<run repX(-10000, "event")>>
+			<<set $eliteFail = random(30,100),
+			$eliteFailTimer = 15>>
+			<<if $eliteFail > $topClass - 20>>
+				<<set $eliteFail = $topClass - 20>>
+			<</if>>
+			<<if $arcologies[0].prosperity > 50>>
+				<<set $arcologies[0].prosperity -= random(20,40)>>
+			<</if>>
+		<<elseif $failedElite > 250>>
+			The Societal Elite @@.red;are openly discussing leaving.@@ It would be in your best interests to appease them.
+		<<elseif $failedElite > 200>>
+			The Societal Elite @@.red;are avoiding you.@@ Getting back on their good side is a good idea, lest you want to disappear.
+		<<elseif $failedElite > 150>>
+			The Societal Elite @@.red;stop their conversations around you.@@ You may want to consider your actions more.
+		<<elseif $failedElite > 100>>
+			The Societal Elite @@.red;seem to dislike you@@.
+		<<elseif $failedElite > 50>>
+			The Societal Elite @@.red;mutter about you@@.
 		<</if>>
-	<<elseif $failedElite > 250>>
-		The Societal Elite @@.red;are openly discussing leaving.@@ It would be in your best interests to appease them.
-	<<elseif $failedElite > 200>>
-		The Societal Elite @@.red;are avoiding you.@@ Getting back on their good side is a good idea, lest you want to disappear.
-	<<elseif $failedElite > 150>>
-		The Societal Elite @@.red;stop their conversations around you.@@ You may want to consider your actions more.
-	<<elseif $failedElite > 100>>
-		The Societal Elite @@.red;seem to dislike you@@.
-	<<elseif $failedElite > 50>>
-		The Societal Elite @@.red;mutter about you@@.
+	<<else>>
+		The Societal Elite can think what they want, they know better than to try and cross you again.
 	<</if>>
 <</if>>
 <br>
diff --git a/src/uncategorized/resFailure.tw b/src/uncategorized/resFailure.tw
index 91c627b7a4e80e6966e2f36ef1a012f1d0cd93aa..ee064bcae5f491adde3e182948885cb1905a1e96 100644
--- a/src/uncategorized/resFailure.tw
+++ b/src/uncategorized/resFailure.tw
@@ -182,7 +182,7 @@
 		<<else>>
 			<<set $activeSlave.boobs = 200*random(4,20)>>
 		<</if>>
-		<<set $activeSlave.nipples = either("inverted", "huge")>>
+		<<set $activeSlave.nipples = either("huge", "inverted")>>
 		<<set $activeSlave.areolae = either(0, 1, 2, 3)>>
 		<<set $activeSlave.clit = either(0, 1, 2, 3)>>
 		<<set $activeSlave.lips = random(5,85)>>
@@ -398,8 +398,8 @@
 		<<set $activeSlave.visualAge = $activeSlave.actualAge>>
 		<<set $activeSlave.physicalAge = $activeSlave.actualAge>>
 		<<set $activeSlave.ovaryAge = $activeSlave.actualAge>>
-		<<set $activeSlave.sexualFlaw = either("none", "apathetic")>>
-		<<set $activeSlave.behavioralFlaw = either("none", "arrogant", "odd")>>
+		<<set $activeSlave.sexualFlaw = either("apathetic", "none")>>
+		<<set $activeSlave.behavioralFlaw = either("arrogant", "none", "odd")>>
 		<<set $activeSlave.hStyle = "short">>
 		<<set $activeSlave.hLength = 2>>
 		<<set $activeSlave.customTat = "She has the baroque crest of the Gymnasium-Academy that trained her branded into her left cheek.">>
@@ -454,11 +454,11 @@
 		<<set $activeSlave.whoreSkill = 10>>
 		<<set $activeSlave.entertainSkill = either(10,10,30)>>
 		<<set $activeSlave.combatSkill = 1>>
-		<<set $activeSlave.sexualFlaw = either("none", "none", "apathetic", "judgemental")>>
-		<<set $activeSlave.behavioralFlaw = either("none", "arrogant")>>
+		<<set $activeSlave.sexualFlaw = either("apathetic", "judgemental", "none", "none")>>
+		<<set $activeSlave.behavioralFlaw = either("arrogant", "none")>>
 		<<set $activeSlave.pubicHStyle = "waxed">>
 		<<set $activeSlave.underArmHStyle = "waxed">>
-		<<set $activeSlave.hStyle = either("neat", "braided", "tails", "ponytail", "bun")>>
+		<<set $activeSlave.hStyle = either("braided", "bun", "neat", "ponytail", "tails")>>
 		<<set $activeSlave.hLength = random(5,50)>>
 		<<set $activeSlave.customTat = "She has the sword and eagle symbol of the Hippolyta Academy tattooed on her left shoulder.">>
 		<<run newSlave($activeSlave)>> /* skip New Slave Intro */
@@ -478,7 +478,7 @@
 		<</if>>
 		<<set $activeSlave.origin = "She was a Futanari Sister until you engineered her early enslavement.">>
 		<<set $activeSlave.career = "a Futanari Sister">>
-		<<set $activeSlave.faceShape = either("sensual", "exotic")>>
+		<<set $activeSlave.faceShape = either("exotic", "sensual")>>
 		<<if _slaveGenRange == 1>>
 			<<set $activeSlave.intelligence = random(-50,-20)>>
 			<<set $activeSlave.chem = 150>>
@@ -658,8 +658,8 @@
 		<<if $TFS.schoolUpgrade == 1>>
 			<<set $activeSlave.sexualQuirk = "caring">>
 		<</if>>
-		<<set $activeSlave.sexualFlaw = either("none", "hates women")>>
-		<<set $activeSlave.behavioralFlaw = either("none", "arrogant")>>
+		<<set $activeSlave.sexualFlaw = either("hates women", "none")>>
+		<<set $activeSlave.behavioralFlaw = either("arrogant", "none")>>
 		<<set $activeSlave.fetishStrength = 100>>
 		<<set $activeSlave.fetishKnown = 0>>
 		<<set $activeSlave.attrKnown = 0>>
@@ -742,8 +742,8 @@
 	<<if $TFS.schoolUpgrade == 1>>
 		<<set $activeSlave.sexualQuirk = "caring">>
 	<</if>>
-	<<set $activeSlave.sexualFlaw = either("none", "hates women")>>
-	<<set $activeSlave.behavioralFlaw = either("none", "arrogant")>>
+	<<set $activeSlave.sexualFlaw = either("hates women", "none")>>
+	<<set $activeSlave.behavioralFlaw = either("arrogant", "none")>>
 	<<set $activeSlave.fetishStrength = 100>>
 	<<set $activeSlave.fetishKnown = 0>>
 	<<set $activeSlave.attrKnown = 0>>
diff --git a/src/uncategorized/resSale.tw b/src/uncategorized/resSale.tw
index 9469671fd7a7c4118c4e5bffc52abf2bec1bd94e..52ea5c071b31887a5f1450da8666a9d160620e2f 100644
--- a/src/uncategorized/resSale.tw
+++ b/src/uncategorized/resSale.tw
@@ -217,7 +217,7 @@ You pause for a moment, and she plunges on: "<<if $PC.title != 0>>Sir<<else>>Ma'
 		<<case "fairy">>
 			give the dick a great big hug and suckle out all the precum!" the fairy exclaims, rubbing _hisA legs together.
 		<<case "pregnant fairy">>
-			play meet the baby! ...Well, maybe just with you, <<if ($PC.title == 0)>>Big Sis<<else>>Big Bro<</if>>." the fairy exclaims, rubbing _hisA legs together.
+			play meet the baby! ...Well, maybe just with you, <<if ($PC.title == 0)>>Big Sis<<else>>Big Bro<</if>>," the fairy exclaims, rubbing _hisA legs together.
 		<<case "goddess" "hypergoddess">>
 			see her put that dick to work," the goddess exclaims, one sultry finger at _hisA lips.
 		<<case "loli">>
@@ -225,7 +225,7 @@ You pause for a moment, and she plunges on: "<<if $PC.title != 0>>Sir<<else>>Ma'
 		<<case "preggololi">>
 			get that dick in me!" the little _girlA exclaims happily while caressing _hisA belly and licking _hisA lips.
 		<<case "angel">>
-			wrap that penis up in a nice bow for her wife to untie" the angel says, blushing and swaying side to side.
+			wrap that penis up in a nice bow for her wife to untie," the angel says, blushing and swaying side to side.
 		<<case "cherub">>
 			know how long she could go for," the cherub says. "She could probably fuck all night long!"
 		<<case "incubus">>
diff --git a/src/uncategorized/saDiet.tw b/src/uncategorized/saDiet.tw
index 90025b5c438f3cf3191cb7136580ed99f2b608b8..b753be11dff1a09c3aa6f9862d96ca669055b92e 100644
--- a/src/uncategorized/saDiet.tw
+++ b/src/uncategorized/saDiet.tw
@@ -192,7 +192,7 @@
 									<<set _weightGain = 0>>
 									<<set $slaves[$i].devotion -= 4>>
 								<<else>>
-									Despite $his food tasting strongly of cum, $he manages to choke down most of it this week, @@.mediumorchid;but $he resents being a cum-fed whore.@@
+									Despite $his food <<if canTaste($slaves[$i])>>tasting<<elseif canSmell($slaves[$i])>>smelling<<else>>reminding $him<</if>> strongly of cum, $he manages to choke down most of it this week, @@.mediumorchid;but $he resents being a cum-fed whore.@@
 									<<set _weightGain = 3>>
 									<<set _assetGain = 8>>
 									<<set $slaves[$i].devotion -= 2>>
@@ -240,7 +240,7 @@
 							<</if>>
 						<<elseif ($slaves[$i].dietMilk == 1)>>
 							<<if ($cockFeeder == 0)>>
-								Despite $his food tasting strongly of human breast milk, $he manages to choke down most of it this week, @@.mediumorchid;but $he resents being a milk-fed whore.@@
+								Despite $his food <<if canTaste($slaves[$i])>>tasting<<elseif canSmell($slaves[$i])>>smelling<<else>>reminding $him<</if>> strongly of human breast milk, $he manages to choke down most of it this week, @@.mediumorchid;but $he resents being a milk-fed whore.@@
 								<<set _weightGain = 3>>
 								<<set _assetGain = 8>>
 								<<set $slaves[$i].devotion -= 2>>
@@ -770,6 +770,12 @@
 		<<if $slaves[$i].chem > 2>>
 			<<set $slaves[$i].chem -= 2>>
 		<</if>>
+	<<elseif !canSmell($slaves[$i]) && !canTaste($slaves[$i])>>
+		$His diet tastes and smells awful, but $he is incapable of recognizing it, allowing $him to feel nothing but its @@.green;significant restorative effect.@@
+		<<set $slaves[$i].trust++, $slaves[$i].health += 2>>
+		<<if $slaves[$i].chem > 2>>
+			<<set $slaves[$i].chem -= 2>>
+		<</if>>
 	<<elseif $slaves[$i].sexualFlaw == "self hating">>
 		$His diet @@.hotpink;tastes and smells awful,@@ the perfect meal for such a wretched creature as $himself. $He knows you are @@.green;preserving $his health@@ but doesn't understand why you'd waste time and credits on $him.
 		<<set $slaves[$i].devotion += 2, $slaves[$i].health += 2>>
diff --git a/src/uncategorized/saGetMilked.tw b/src/uncategorized/saGetMilked.tw
index 60c4cd6914561845cc047674e05b5c9de5da5a11..4521a0b14d097c6966b08e968e770e5e8137ebe6 100644
--- a/src/uncategorized/saGetMilked.tw
+++ b/src/uncategorized/saGetMilked.tw
@@ -36,7 +36,7 @@ gets milked this week.
 
 	<<set $milk = milkAmount($slaves[$i])>>
 
-	$He produces from $his <<print either("tits", "breasts", "mammaries", "udders", "boobs")>>, which have a combined volume of <<print $slaves[$i].boobs*2>> CCs;
+	$He produces from $his <<print either("boobs", "breasts", "mammaries", "tits", "udders")>>, which have a combined volume of <<print $slaves[$i].boobs*2>> CCs;
 	<<if ($slaves[$i].lactation == 1)>>
 		$he is lactating naturally and produces a healthy stream of milk.
 	<<elseif ($slaves[$i].lactation == 2)>>
diff --git a/src/uncategorized/saHormoneEffects.tw b/src/uncategorized/saHormoneEffects.tw
index a255ffc1e2f2c578b8b4e2c6056b588c99222efc..9b25c096d1218ed56bcc0b54587a3c58a54768d4 100644
--- a/src/uncategorized/saHormoneEffects.tw
+++ b/src/uncategorized/saHormoneEffects.tw
@@ -963,33 +963,33 @@
 <</if>>
 
 <<if $slaves[$i].fetish != "mindbroken" && $slaves[$i].fuckdoll == 0>>
-<<if ($slaves[$i].hormoneBalance <= 20) && $slaves[$i].hormones < 1>>
-<<if ($slaves[$i].dick > 0)>>
-<<if ($slaves[$i].devotion > 20)>>
-<<if ($slaves[$i].boobs < 800 && $slaves[$i].butt < 3) || ($slaves[$i].faceShape == "masculine") || ($slaves[$i].shoulders > $slaves[$i].hips) || ($slaves[$i].balls > 4)>>
-<<if ($slaves[$i].career == "a Futanari Sister")>>
-	$He wishes $he were more feminine, but isn't unhappy to be off hormones, since $he likes being a stiff dicked futa.
-<<elseif ($slaves[$i].fetish == "buttslut") && ($slaves[$i].fetishStrength > 60) && ($slaves[$i].fetishKnown == 1)>>
-	$He wishes $he were more feminine, but $he loves getting fucked in the butt so much that it doesn't much bother $him.
-<<elseif ($slaves[$i].fetish == "sadist") && ($slaves[$i].fetishStrength > 60) && ($slaves[$i].fetishKnown == 1)>>
-	Life is easier for effeminate slaves, but $he loves abusing other slaves so much that $he likes being able to get hard.
-<<elseif ($slaves[$i].fetish == "dom") && ($slaves[$i].fetishStrength > 60) && ($slaves[$i].fetishKnown == 1)>>
-	Life is easier for effeminate slaves, but $he loves dominating other girls so much that $he likes being able to get hard.
-<<elseif ($slaves[$i].energy > 95)>>
-	$He wishes $he were more feminine, but $he loves getting fucked like a good little sex slave so much that $he doesn't think about it much.
-<<elseif ($slaves[$i].devotion <= 20)>>
-	Life is easier for effeminate slaves, so @@.mediumorchid;$he's a little unhappy@@ that $he isn't getting hormones to make $him more feminine.
-	<<set $slaves[$i].devotion -= 2>>
-<<elseif ($slaves[$i].devotion <= 50)>>
-	$He wants to be a good slave girl, so @@.mediumorchid;$he's a little unhappy@@ that $he isn't getting hormones to make $him look more feminine.
-	<<set $slaves[$i].devotion -= 2>>
-<<else>>
-	$He wishes $he were more feminine, but $he accepts your judgment in not giving $him hormones to make that happen.
-<</if>>
-<</if>>
-<</if>>
-<</if>>
-<</if>>
+	<<if ($slaves[$i].hormoneBalance <= 20) && $slaves[$i].hormones < 1>>
+		<<if ($slaves[$i].dick > 0)>>
+			<<if ($slaves[$i].devotion > 20)>>
+				<<if ($slaves[$i].boobs < 800 && $slaves[$i].butt < 3) || ($slaves[$i].faceShape == "masculine") || ($slaves[$i].shoulders > $slaves[$i].hips) || ($slaves[$i].balls > 4)>>
+					<<if ($slaves[$i].career == "a Futanari Sister")>>
+						$He wishes $he were more feminine, but isn't unhappy to be off hormones, since $he likes being a stiff dicked futa.
+					<<elseif ($slaves[$i].fetish == "buttslut") && ($slaves[$i].fetishStrength > 60) && ($slaves[$i].fetishKnown == 1)>>
+						$He wishes $he were more feminine, but $he loves getting fucked in the butt so much that it doesn't much bother $him.
+					<<elseif ($slaves[$i].fetish == "sadist") && ($slaves[$i].fetishStrength > 60) && ($slaves[$i].fetishKnown == 1)>>
+						Life is easier for effeminate slaves, but $he loves abusing other slaves so much that $he likes being able to get hard.
+					<<elseif ($slaves[$i].fetish == "dom") && ($slaves[$i].fetishStrength > 60) && ($slaves[$i].fetishKnown == 1)>>
+						Life is easier for effeminate slaves, but $he loves dominating other girls so much that $he likes being able to get hard.
+					<<elseif ($slaves[$i].energy > 95)>>
+						$He wishes $he were more feminine, but $he loves getting fucked like a good little sex slave so much that $he doesn't think about it much.
+					<<elseif ($slaves[$i].devotion <= 20)>>
+						Life is easier for effeminate slaves, so @@.mediumorchid;$he's a little unhappy@@ that $he isn't getting hormones to make $him more feminine.
+						<<set $slaves[$i].devotion -= 2>>
+					<<elseif ($slaves[$i].devotion <= 50)>>
+						$He wants to be a good slave girl, so @@.mediumorchid;$he's a little unhappy@@ that $he isn't getting hormones to make $him look more feminine.
+						<<set $slaves[$i].devotion -= 2>>
+					<<else>>
+						$He wishes $he were more feminine, but $he accepts your judgment in not giving $him hormones to make that happen.
+					<</if>>
+				<</if>>
+			<</if>>
+		<</if>>
+	<</if>>
 <</if>>
 
 <<if Math.abs($slaves[$i].hormones) > 1>>
diff --git a/src/uncategorized/saLiveWithHG.tw b/src/uncategorized/saLiveWithHG.tw
index 9c6febc1c3a018454fb414c177d4326b3f6e10bc..2977700968d34dcd2d430400f8cd23409dbc7553 100644
--- a/src/uncategorized/saLiveWithHG.tw
+++ b/src/uncategorized/saLiveWithHG.tw
@@ -602,41 +602,41 @@
 <</if>>
 
 <<if $slaves[$i].need>>
-<<if $slaves[$i].fetishKnown>>
-	<<switch $slaves[$i].fetish>>
-	<<case "submissive" "masochist">>
-		<<if _analUse+_vaginalUse > 0>>
-			Being someone's submissive toy really satisfies $slaves[$i].slaveName.
+	<<if $slaves[$i].fetishKnown>>
+		<<switch $slaves[$i].fetish>>
+		<<case "submissive" "masochist">>
+			<<if _analUse+_vaginalUse > 0>>
+				Being someone's submissive toy really satisfies $slaves[$i].slaveName.
+				<<set $slaves[$i].need = 0>>
+			<</if>>
+		<<case "dom" "sadist">>
+			<<if _penetrativeUse > 0>>
+				Getting to be on top is precious, and it really satisfies $slaves[$i].slaveName.
+				<<set $slaves[$i].need = 0>>
+			<</if>>
+		<<case "cumslut">>
+			<<if _oralUse > 0>>
+				Being someone's oral toy really satisfies $slaves[$i].slaveName.
+				<<set $slaves[$i].need = 0>>
+			<</if>>
+		<<case "buttslut">>
+			<<if _analUse > 0>>
+				Having $his butthole serve as someone's toy really satisfies $slaves[$i].slaveName.
+				<<set $slaves[$i].need = 0>>
+			<</if>>
+		<<case "pregnancy">>
+			<<if _vaginalUse > 0 && $slaves[$i].mpreg == 0>>
+				Having $his pussy serve as someone's toy really satisfies $slaves[$i].slaveName.
+				<<set $slaves[$i].need = 0>>
+			<<elseif _analUse > 0 && $slaves[$i].mpreg == 1>>
+				Having $his asspussy serve as someone's toy really satisfies $slaves[$i].slaveName.
+				<<set $slaves[$i].need = 0>>
+			<</if>>
+		<<case "humiliation">>
+			Having all the other slaves see $him in such a humiliating role really satisfies $slaves[$i].slaveName.
 			<<set $slaves[$i].need = 0>>
-		<</if>>
-	<<case "dom" "sadist">>
-		<<if _penetrativeUse > 0>>
-			Getting to be on top is precious, and it really satisfies $slaves[$i].slaveName.
-			<<set $slaves[$i].need = 0>>
-		<</if>>
-	<<case "cumslut">>
-		<<if _oralUse > 0>>
-			Being someone's oral toy really satisfies $slaves[$i].slaveName.
-			<<set $slaves[$i].need = 0>>
-		<</if>>
-	<<case "buttslut">>
-		<<if _analUse > 0>>
-			Having $his butthole serve as someone's toy really satisfies $slaves[$i].slaveName.
-			<<set $slaves[$i].need = 0>>
-		<</if>>
-	<<case "pregnancy">>
-		<<if _vaginalUse > 0 && $slaves[$i].mpreg == 0>>
-			Having $his pussy serve as someone's toy really satisfies $slaves[$i].slaveName.
-			<<set $slaves[$i].need = 0>>
-		<<elseif _analUse > 0 && $slaves[$i].mpreg == 1>>
-			Having $his asspussy serve as someone's toy really satisfies $slaves[$i].slaveName.
-			<<set $slaves[$i].need = 0>>
-		<</if>>
-	<<case "humiliation">>
-		Having all the other slaves see $him in such a humiliating role really satisfies $slaves[$i].slaveName.
-		<<set $slaves[$i].need = 0>>
-	<</switch>>
-<</if>>
+		<</switch>>
+	<</if>>
 <</if>>
 
 <<set $slaves[$i].need -= ((_vaginalUse+_penetrativeUse+_analUse)*5)>>
diff --git a/src/uncategorized/saLongTermEffects.tw b/src/uncategorized/saLongTermEffects.tw
index e39839293eb2cf3af6ed23f365ad8de2a995361c..6aa8d38e360fe531ecd7b9aa9194f121efcbe449 100644
--- a/src/uncategorized/saLongTermEffects.tw
+++ b/src/uncategorized/saLongTermEffects.tw
@@ -1292,7 +1292,7 @@
 				<<if ($slaves[$i].assignment == "work in the dairy") && ($dairyRestraintsSetting >= 2)>>
 					$His paraphilia is satisfied by $his horrible life as a producer of useful fluids and a receptacle for machine rape.
 					<<set _para = 1>>
-				<<elseif ["work a glory hole", "be confined in the arcade"].includes($slaves[$i].assignment)>>
+				<<elseif ["be confined in the arcade", "work a glory hole"].includes($slaves[$i].assignment)>>
 					$His paraphilia is satisfied by $his horrible life as a helpless hole for an infinite bag of dicks.
 					<<set _para = 1>>
 				<<elseif _abused>>
@@ -1456,7 +1456,7 @@
 		<</if>>
 		<<if $slaves[$i].fetishStrength <= 95>>
 			<<if ($slaves[$i].heels == 1)>>
-				<<if !["heels", "pumps", "boots", "extreme heels"].includes($slaves[$i].shoes)>>
+				<<if !["boots", "extreme heels", "heels", "pumps"].includes($slaves[$i].shoes)>>
 					<<if $slaves[$i].fetish != "submissive">>
 						<<if $slaves[$i].career == "a dairy cow" || $slaves[$i].career == "a breeding bull">>
 							Since $he sees $himself as an animal, $he is perfectly content walking on all fours.
@@ -1578,7 +1578,7 @@
 	<</if>> /* CLOSES FUCKDOLL CHECK FOR MENTAL DEVELOPMENT */
 <</if>> /* CLOSES MINDBROKEN CHECK FOR MENTAL DEVELOPMENT */
 
-<<if !["serve the public", "whore", "work a glory hole", "be confined in the arcade", "work in the brothel", "serve in the club"].includes($slaves[$i].assignment)>>
+<<if !["be confined in the arcade", "serve in the club", "serve the public", "whore", "work a glory hole", "work in the brothel"].includes($slaves[$i].assignment)>>
 	<<if ($slaves[$i].assignment != "serve in the master suite") || ($masterSuiteUpgradeLuxury < 2)>>
 		<<if ($slaves[$i].assignment != "work in the dairy") || ($dairyStimulatorsSetting == 0)>>
 			<<if $slaves[$i].geneMods.rapidCellGrowth != 1>>
@@ -1892,7 +1892,7 @@
 					<<case "cumslut">>
 						<<if $slaves[$i].sexualFlaw != "cum addict">>
 							<<if $slaves[$i].dietCum > 0>>
-								In addition to being an orally fixated cumslut, $he eats ejaculate in $his food, making the taste omnipresent for $him. @@.yellow;$He's become psychologically addicted to cum.@@
+								In addition to being an orally fixated cumslut, $he eats ejaculate in $his food, making the <<if canTaste($slaves[$i])>>taste<<else>>texture<</if>> omnipresent for $him. @@.yellow;$He's become psychologically addicted to cum.@@
 								<<set $slaves[$i].sexualFlaw = "cum addict">>
 								<<set $slaves[$i].fetishStrength = 100>>
 								<<if $arcologies[0].FSHedonisticDecadence != "unset">>
@@ -4954,10 +4954,10 @@
 			Society @@.green;approves@@ of $slaves[$i].slaveName's collar as an expression of the old ideal of mortification of the flesh, advancing the combination of religious originalism and modern slavery.
 			<<= FSChangePorn("ChattelReligionist", 1)>>
 		<</if>>
-		<<if ["a chattel habit", "a fallen nuns habit", "a penitent nuns habit", "a hijab and abaya", "a niqab and abaya", "a klan robe", "a burqa", "a succubus outfit"].includes($slaves[$i].clothes)>>
+		<<if ["a burqa", "a chattel habit", "a fallen nuns habit", "a hijab and abaya", "a klan robe", "a niqab and abaya", "a penitent nuns habit", "a succubus outfit"].includes($slaves[$i].clothes)>>
 			Society @@.green;approves@@ of $his religiously themed clothing, strengthening the connection between sexual servitude and faith.
 			<<= FSChangePorn("ChattelReligionist", 1)>>
-		<<elseif ["uncomfortable straps", "shibari ropes", "a nice maid outfit", "chains", "nice business attire", "a nice nurse outfit", "a kimono", "a military uniform", "conservative clothing", "a toga", "body oil", "no clothing"].includes($slaves[$i].clothes)>>
+		<<elseif ["a bunny outfit", "a hijab and blouse", "a huipil", "a kimono", "a military uniform", "a nice maid outfit", "a nice nurse outfit", "a slutty qipao", "a toga", "body oil", "chains", "conservative clothing", "nice business attire", "no clothing", "shibari ropes", "uncomfortable straps"].includes($slaves[$i].clothes)>>
 			Society accepts $his spartan clothing, seeing it as permissible under the new religious mores.
 		<<elseif ($slaves[$i].fuckdoll == 0)>>
 			Society @@.red;disapproves@@ of $his unnecessarily gaudy attire; this slows acceptance of a link between faith and sexual servitude.
@@ -5041,11 +5041,11 @@
 			<<elseif $slaves[$i].devotion > 20>>
 				Since $he's blind, deaf and on the cusp of devotion, $he becomes @@.hotpink;more reliant@@ on you, but also begins to be @@.mediumaquamarine;less fearful@@ of the world around $him.
 				<<set $slaves[$i].devotion += 5, $slaves[$i].trust += 3>>
-			<<elseif ["please you", "be your Concubine", "serve in the master suite"].includes($slaves[$i].assignment)>>
+			<<elseif ["be your Concubine", "please you", "serve in the master suite"].includes($slaves[$i].assignment)>>
 				$He may be blind and deaf, but $he knows nobody would dare harm $him under your watch, @@.mediumaquamarine;building $his trust@@ in you.
 				<<set $slaves[$i].trust += 2>>
 			<<elseif $slaves[$i].devotion >= -20>>
-				$His blindness and deafness forces $him to @@.hotpink;entirely rely@@ on your mercy. However, it only @@.gold;amplifies $his fear@@ as $he has only the smell of arousal to warn of an impending threat.
+				$His blindness and deafness forces $him to @@.hotpink;entirely rely@@ on your mercy. However, it only @@.gold;amplifies $his fear@@ as $he has only <<if canSmell($slaves[$i])>>the smell of arousal<<else>>a stumbling sense of touch<</if>> to warn of an impending threat.
 				<<set $slaves[$i].devotion += 10, $slaves[$i].trust -= 30>>
 			<<else>>
 				Being blind and deaf forces $him to @@.hotpink;completely rely@@ on your mercy. It does nothing to stem @@.gold;the horror@@ $he faces being unable to sense the world around $him.
@@ -5058,7 +5058,7 @@
 			<<elseif $slaves[$i].devotion > 20>>
 				Since $he's blind, hard of hearing and on the cusp of devotion, $he becomes @@.hotpink;more reliant@@ on you, but also begins to be @@.mediumaquamarine;less fearful@@ of the world around $him.
 				<<set $slaves[$i].devotion += 4, $slaves[$i].trust += 2>>
-			<<elseif ["please you", "be your Concubine", "serve in the master suite"].includes($slaves[$i].assignment)>>
+			<<elseif ["be your Concubine", "please you", "serve in the master suite"].includes($slaves[$i].assignment)>>
 				$He may be blind and hard of hearing, but $he knows nobody would dare harm $him under your watch, @@.mediumaquamarine;building $his trust@@ in you.
 				<<set $slaves[$i].trust += 2>>
 			<<elseif $slaves[$i].devotion >= -20>>
@@ -5075,7 +5075,7 @@
 			<<elseif $slaves[$i].devotion > 20>>
 				Since $he's blind and on the cusp of devotion, $he becomes slightly @@.hotpink;more reliant,@@ but also begins to be @@.mediumaquamarine;less fearful@@ of what $he can't see.
 				<<set $slaves[$i].devotion += 3, $slaves[$i].trust += 1>>
-			<<elseif ["please you", "be your Concubine", "serve in the master suite"].includes($slaves[$i].assignment)>>
+			<<elseif ["be your Concubine", "please you", "serve in the master suite"].includes($slaves[$i].assignment)>>
 				$He may be blind, but $he knows nobody would dare harm $him under your watch, @@.mediumaquamarine;building $his trust@@ in you.
 				<<set $slaves[$i].trust += 2>>
 			<<elseif $slaves[$i].devotion >= -20>>
@@ -5128,7 +5128,7 @@
 			<<elseif $slaves[$i].devotion > 20>>
 				Since $he is also deaf, $he becomes @@.hotpink;very reliant@@ on you, but also begins to @@.mediumaquamarine;trust@@ you to convery what $his body does not.
 				<<set $slaves[$i].devotion += 3, $slaves[$i].trust += 3>>
-			<<elseif ["please you", "be your Concubine", "serve in the master suite"].includes($slaves[$i].assignment)>>
+			<<elseif ["be your Concubine", "please you", "serve in the master suite"].includes($slaves[$i].assignment)>>
 				Since $he is also deaf, $he views you as $his @@.mediumaquamarine;blurry guardian.@@
 				<<set $slaves[$i].trust += 5>>
 			<<elseif $slaves[$i].devotion >= -20>>
@@ -5177,7 +5177,7 @@
 			<<elseif $slaves[$i].devotion > 20>>
 				Since $he's deaf and on the cusp of devotion, $he becomes slightly @@.hotpink;more reliant,@@ but also begins to be @@.mediumaquamarine;less fearful@@ of what is lurking out of sight.
 				<<set $slaves[$i].devotion += 1, $slaves[$i].trust += 1>>
-			<<elseif ["please you", "be your Concubine", "serve in the master suite"].includes($slaves[$i].assignment)>>
+			<<elseif ["be your Concubine", "please you", "serve in the master suite"].includes($slaves[$i].assignment)>>
 				$He may be deaf, but no one can sneak up on $him while $he is with you, @@.mediumaquamarine;developing the trust@@ that you have $his back.
 				<<set $slaves[$i].trust += 2>>
 			<<elseif $slaves[$i].devotion >= -20>>
@@ -5228,7 +5228,7 @@
 	<<elseif $slaves[$i].devotion > 20>>
 		Since $he's near helpless and on the cusp of devotion, $he becomes slightly @@.hotpink;more reliant,@@ but also begins to be @@.mediumaquamarine;less fearful@@ of what $he can't see.
 		<<set $slaves[$i].devotion += 3, $slaves[$i].trust += 1>>
-	<<elseif ["please you", "be your Concubine", "serve in the master suite"].includes($slaves[$i].assignment)>>
+	<<elseif ["be your Concubine", "please you", "serve in the master suite"].includes($slaves[$i].assignment)>>
 		$He may be physically frail and vulnerable, but $he knows nobody would dare harm $him under your watch, @@.mediumaquamarine;building $his trust@@ in you.
 		<<set $slaves[$i].trust += 2>>
 	<<elseif $slaves[$i].devotion >= -20>>
@@ -5918,13 +5918,13 @@
 			<</if>>
 			<<if ($slaves[$i].amp == 1)>>
 				<<if $anchors.length > 1>>but ultimately $his limblessness<<else>>or would be if $he had limbs<</if>>,
-			<<elseif $slaves[$i].heels == 1 && !["heels", "pumps", "boots", "extreme heels"].includes($slaves[$i].shoes)>>
+			<<elseif $slaves[$i].heels == 1 && !["boots", "extreme heels", "heels", "pumps"].includes($slaves[$i].shoes)>>
 				<<if $anchors.length > 1>>but ultimately $his heels having been clipped<<else>>or would be if $his heels weren't clipped<</if>>,
 			<</if>>
 		<<else>>
 			<<if ($slaves[$i].amp == 1)>>
 				limblessness,
-			<<elseif $slaves[$i].heels == 1 && !["heels", "pumps", "boots", "extreme heels"].includes($slaves[$i].shoes)>>
+			<<elseif $slaves[$i].heels == 1 && !["boots", "extreme heels", "heels", "pumps"].includes($slaves[$i].shoes)>>
 				heels having been clipped,
 			<</if>>
 		<</if>>
diff --git a/src/uncategorized/saRecruitGirls.tw b/src/uncategorized/saRecruitGirls.tw
index fbe35eb9c86e7b3cbf3f4e583279a713efaf6902..494bc425d68aed2b6ba286935066d518b66110a9 100644
--- a/src/uncategorized/saRecruitGirls.tw
+++ b/src/uncategorized/saRecruitGirls.tw
@@ -174,10 +174,10 @@
 			<</if>>
 		<<elseif $arcologies[0].FSHedonisticDecadence != "unset">>
 			<<if $arcologies[_j].FSHedonisticDecadence != "unset">>
-				$He advances Hedonistic Decadence there by stuffing $his face at all times, having one hand down $his pants, and inviting anyone near $him for a quick fuck whenever the mood strikes $him. <<if ["neglectful", "cum addict", "anal addict", "attention whore", "breast growth", "abusive", "malicious", "self hating", "breeder"].includes($slaves[$i].sexualFlaw)>>. $He wears $his sexual paraphilia proudly and make sure everyone knows what $he likes and how $he likes it.<<set $arcologies[_j].FSHedonisticDecadence++>><</if>>.
+				$He advances Hedonistic Decadence there by stuffing $his face at all times, having one hand down $his pants, and inviting anyone near $him for a quick fuck whenever the mood strikes $him. <<if ["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "self hating"].includes($slaves[$i].sexualFlaw)>>. $He wears $his sexual paraphilia proudly and make sure everyone knows what $he likes and how $he likes it.<<set $arcologies[_j].FSHedonisticDecadence++>><</if>>.
 				<<set $arcologies[_j].FSHedonisticDecadence += _influence>>
 			<<elseif $arcologies[_j].FSPhysicalIdealist != "unset">>
-				$He challenges Physical Idealism there by stuffing $his face at all times, having one hand down $his pants, and inviting anyone near $him for a quick fuck whenever the mood strikes $him. <<if ["neglectful", "cum addict", "anal addict", "attention whore", "breast growth", "abusive", "malicious", "self hating", "breeder"].includes($slaves[$i].sexualFlaw)>>. $He wears $his sexual paraphilia proudly and make sure everyone knows what $he likes and how $he likes it.<<set $arcologies[_j].FSPhysicalIdealist-->><</if>>.
+				$He challenges Physical Idealism there by stuffing $his face at all times, having one hand down $his pants, and inviting anyone near $him for a quick fuck whenever the mood strikes $him. <<if ["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "self hating"].includes($slaves[$i].sexualFlaw)>>. $He wears $his sexual paraphilia proudly and make sure everyone knows what $he likes and how $he likes it.<<set $arcologies[_j].FSPhysicalIdealist-->><</if>>.
 				<<set $arcologies[_j].FSPhysicalIdealist -= _influence>>
 			<</if>>
 		<</if>>
@@ -760,7 +760,7 @@
 			<<elseif $slaves[$i].bellyPreg < 100>>
 				<<if ($slaves[$i].dick > 0 && $slaves[$i].balls == 0)>>
 					$He makes sure to wear tight fitting clothes to show off the bulge of $his dick and, most notably, the lack of testicles under it in all $his photo shoots.
-				<<elseif ($slaves[$i].chastityVagina || $slaves[$i].chastityPenis>>
+				<<elseif $slaves[$i].chastityVagina || $slaves[$i].chastityPenis>>
 					In all $his public appearances, $his choice of clothing is always crotchless, leaving $his chastity gear as the only thing protecting $his modesty.
 				<<elseif (($slaves[$i].ovaries == 0 && $slaves[$i].mpreg == 0) || $slaves[$i].preg < -1)>>
 					$He frequently livestreams massive orgies involving $himself at the center, making sure to always follow up with $his negative pregnancy tests.
diff --git a/src/uncategorized/saServeThePublic.tw b/src/uncategorized/saServeThePublic.tw
index 14db2e410abd20362887d8987c589396b030244e..9971ea05ca7a95c44915499319d536294b6f0409 100644
--- a/src/uncategorized/saServeThePublic.tw
+++ b/src/uncategorized/saServeThePublic.tw
@@ -201,7 +201,7 @@ the public.
 				<</if>>
 			<</if>>
 			<<if $DJignoresFlaws != 1>>
-				<<if !["none", "neglectful", "cum addict", "anal addict", "attention whore", "breast growth", "abusive", "malicious", "self hating", "breeder"].includes($slaves[$i].sexualFlaw) && (random(1,100) > 90)>>
+				<<if !["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "none", "self hating"].includes($slaves[$i].sexualFlaw) && (random(1,100) > 90)>>
 					<<= SlaveFullName($DJ)>> manages to @@.green;break@@ $slaves[$i].slaveName of $his sexual flaws.
 					<<set $slaves[$i].sexualFlaw = "none">>
 				<<elseif ($slaves[$i].behavioralFlaw != "none") && (random(1,100) > 90)>>
diff --git a/src/uncategorized/saWhore.tw b/src/uncategorized/saWhore.tw
index a6e9e96d41cca91a9a877f25ed2ed8d6653557bf..75cc0e9771affd85c1521cf2cedf5ec325e000d8 100644
--- a/src/uncategorized/saWhore.tw
+++ b/src/uncategorized/saWhore.tw
@@ -199,7 +199,7 @@ $his body.
 			Unfortunately, $his inability to hear wastes most of $Madam.slaveName's advice.
 		<</if>>
 		<<if $MadamIgnoresFlaws != 1>>
-			<<if !["none", "neglectful", "cum addict", "anal addict", "attention whore", "breast growth", "abusive", "malicious", "self hating", "breeder"].includes($slaves[$i].sexualFlaw) && (random(1,100) > 90)>>
+			<<if !["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "none", "self hating"].includes($slaves[$i].sexualFlaw) && (random(1,100) > 90)>>
 				<<= SlaveFullName($Madam)>> manages to @@.green;break@@ $slaves[$i].slaveName of $his sexual flaws.
 				<<set $slaves[$i].sexualFlaw = "none">>
 			<<elseif ($slaves[$i].behavioralFlaw != "none") && (random(1,100) > 90)>>
diff --git a/src/uncategorized/seCoursingRace.tw b/src/uncategorized/seCoursingRace.tw
index dc6c92c77e5af20801da2a821b6d316af1967dfd..cd1044199b54cacfff0d246d1204991fd9808bf9 100644
--- a/src/uncategorized/seCoursingRace.tw
+++ b/src/uncategorized/seCoursingRace.tw
@@ -321,7 +321,7 @@ You place your hand on the leash's quick release and <<if canHear($Lurcher)>>whi
 			<<elseif $origin == "huge balled">>
 				To abuse defenseless testicles, and make their owner scream.
 			<<else>>
-				To rape a struggling victim, and taste _his2 tears of defeat.
+				To rape a struggling victim, and <<if canTaste($Lurcher)>>taste<<else>>drink<</if>> _his2 tears of defeat.
 			<</if>>
 			<<set $Lurcher.devotion += 5>>
 		<<elseif $Lurcher.fetish == "pregnancy" && $origin == "heavily pregnant">>
diff --git a/src/uncategorized/seCustomSlaveDelivery.tw b/src/uncategorized/seCustomSlaveDelivery.tw
index ba50a95ec45418196b506fd995742515e98b228f..19eed2188e35846d76c6b9b9408984a3447619ca 100644
--- a/src/uncategorized/seCustomSlaveDelivery.tw
+++ b/src/uncategorized/seCustomSlaveDelivery.tw
@@ -193,6 +193,8 @@
 <<set $activeSlave.combatSkill = $customSlave.combatSkills>>
 <<set $activeSlave.eyes = $customSlave.eyes>>
 <<set $activeSlave.hears = $customSlave.hears>>
+<<set $activeSlave.smells = $customSlave.smells>>
+<<set $activeSlave.tastes = $customSlave.tastes>>
 <<set $activeSlave.amp = $customSlave.amp>>
 <<set $activeSlave.weekAcquired = $week>>
 <<set $activeSlave.origin = "You purchased her by special order.">>
diff --git a/src/uncategorized/seRetirement.tw b/src/uncategorized/seRetirement.tw
index 7a2dba341b111a18d270c53a591ae1fe2c5bbce4..bb2a1d919d3cf97e18447ac2729621f9d31ce9a2 100644
--- a/src/uncategorized/seRetirement.tw
+++ b/src/uncategorized/seRetirement.tw
@@ -181,7 +181,16 @@ Your arcology has gained a well-off citizen.
 	<<if (_clonedSlave.fetish == "submissive") && (_clonedSlave.fetishKnown == 1)>>
 		Taking the lead as you know $he prefers, you lead $him to a private booth and make love to $him, holding $him down with the gentle but firm grip that never fails to bring $him through a long and gasping climax.
 	<<elseif (_clonedSlave.fetish == "cumslut") && (_clonedSlave.fetishKnown == 1)>>
-		$He <<if $PC.dick == 1>>sucks your dick<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>eats you out<</if>> right there, eagerly <<if _clonedSlave.vagina > -1>>jilling off<<else>>jacking off<</if>> as $he enjoys your infinitely familiar taste and scent.
+		$He <<if $PC.dick == 1>>sucks your dick<<if $PC.vagina == 1>> and <</if>><</if>><<if $PC.vagina == 1>>eats you out<</if>> right there, eagerly <<if _clonedSlave.vagina > -1>>jilling off<<else>>jacking off<</if>> as $he enjoys your infinitely familiar
+		<<if canTaste(_clonedSlave) && canSmell(_clonedSlave)>>
+			taste and scent.
+		<<elseif canTaste(_clonedSlave)>>
+			taste.
+		<<elseif canSmell(_clonedSlave)>>
+			scent.
+		<<else>>
+			body.
+		<</if>>
 	<<elseif (_clonedSlave.fetish == "humiliation") && (_clonedSlave.fetishKnown == 1)>>
 		You take $him right there, the humiliation slut getting what $he came to the club to get: an opportunity to orgasm in public with many eyes enjoying the sight of $his pleasure.
 	<<elseif (_clonedSlave.fetish == "buttslut") && (_clonedSlave.fetishKnown == 1)>>
diff --git a/src/uncategorized/seWeddingDouble.tw b/src/uncategorized/seWeddingDouble.tw
index 4666ee941f7e9fcbc505d465abad391e2b82f045..925a2609e4471d04c08b2e926048e05b9409ba8b 100644
--- a/src/uncategorized/seWeddingDouble.tw
+++ b/src/uncategorized/seWeddingDouble.tw
@@ -20,538 +20,542 @@
 /* 000-250-006 */
 
 <<if _slave1.slaveName == _slave2.slaveName>>
+/* To do? */
 <</if>>
 
 <<if _slave1.relationship != 0>>
 	<<if _slave1.relationship > 0>>
-		<<if _slave1.relationshipTarget == _slave2.ID>>
-			In the days leading up to your wedding, _slave1.slaveName and _slave2.slaveName spent their time
-			<<if _slave1.relationship <= 2>>
-				excitedly planning together, as <<if _slave1.relationship == 2>>best<</if>> friends do.
+		<<set _m = $slaveIndices[_slave1.relationshipTarget]>>
+		<<set _slave1.relationshipTarget = 0>>
+		<<set $slaves[_m].relationship = 0, $slaves[_m].relationshipTarget = 0>>
+	<</if>>
+<</if>>
+<<if _slave1.relationshipTarget == _slave2.ID>>
+	In the days leading up to your wedding, _slave1.slaveName and _slave2.slaveName spent their time
+	<<if _slave1.relationship <= 2>>
+		excitedly planning together, as <<if _slave1.relationship == 2>>best<</if>> friends do.
+	<<else>>
+		having less sex and spending more time preparing for the upcoming event.
+	<</if>>
+	<<set _slave1.relationship = 0, _slave2.relationship = 0>>
+<<else>>
+	In the days leading up to your wedding, _slave1.slaveName spent $his time
+	<<if _slave1.devotion+_slave1.trust >= 175>>
+		<<if _slave1.relationship != 0>>
+			<<if _slave1.relationship == -1>>
+				vowing that $he'll be less of a slut.
+			<<elseif _slave1.relationship == 4>>
+				breaking up with $his lover, $slaves[_m].slaveName, as painlessly as possible.
+			<<elseif _slave1.relationship == 3>>
+				breaking up with $his FWB, $slaves[_m].slaveName, as painlessly as possible.
+			<<elseif _slave1.relationship > 0>>
+				promising $slaves[_m].slaveName that they'll still be friends, even if they can't spend time together.
 			<<else>>
-				having less sex and spending more time preparing for the upcoming event.
+				as close to you as $he could.
 			<</if>>
-			<<set _slave1.relationship = 0, _slave2.relationship = 0>>
-		<<else>>
-			In the days leading up to your wedding, _slave1.slaveName spent $his time
-			<<set _m = $slaveIndices[_slave1.relationshipTarget]>>
-			<<set _slave1.relationshipTarget = 0>>
-			<<set $slaves[_m].relationship = 0, $slaves[_m].relationshipTarget = 0>>
-			<<if _slave1.devotion+_slave1.trust >= 175>>
-				<<if _slave1.relationship != 0>>
-					<<if _slave1.relationship == -1>>
-						vowing that $he'll be less of a slut.
-					<<elseif _slave1.relationship == 4>>
-						breaking up with $his lover, $slaves[_m].slaveName, as painlessly as possible.
-					<<elseif _slave1.relationship == 3>>
-						breaking up with $his FWB, $slaves[_m].slaveName, as painlessly as possible.
-					<<elseif _slave1.relationship > 0>>
-						promising $slaves[_m].slaveName that they'll still be friends, even if they can't spend time together.
-					<<else>>
-						as close to you as $he could.
+		<</if>>
+	<<elseif _slave1.devotion < -20 && _slave1.trust > 20>>
+		<<if _slave1.relationship == -1>>
+			sleeping with as many different people as $he could.
+			<<if !isSlaveAvailable(_slave1)>>
+				Or $he would have, if $he were able.
+			<<elseif canDoVaginal(_slave1) && canDoAnal(_slave1)>>
+				<<set _randomVag = random(30,60)>>
+				<<set _randomAnal = random(30,60)>>
+				<<set _randomOral = random(30,60)>>
+				<<set _slave1.vaginalCount += _randomVag, _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed holes.
+					<<if _slave1.vagina == 0 && _slave1.anus == 0>>
+						$His actions robbed you of @@.lime;both $his virginities.@@
 					<</if>>
+				<<if _slave1.vagina < 4>><<set _slave1.vagina = 4>><</if>><<set _slave1.anus = 4>>
+				<<if canGetPregnant(_slave1) && (random(1,100) > 70) && _slave1.eggType == "human">>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
 				<</if>>
-			<<elseif _slave1.devotion < -20 && _slave1.trust > 20>>
-				<<if _slave1.relationship == -1>>
-					sleeping with as many different people as $he could.
-					<<if !isSlaveAvailable(_slave1)>>
-						Or $he would have, if $he were able.
-					<<elseif canDoVaginal(_slave1) && canDoAnal(_slave1)>>
-						<<set _randomVag = random(30,60)>>
-						<<set _randomAnal = random(30,60)>>
-						<<set _randomOral = random(30,60)>>
-						<<set _slave1.vaginalCount += _randomVag, _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed holes.
-						<<if _slave1.vagina == 0 && _slave1.anus == 0>>
-							$His actions robbed you of @@.lime;both $his virginities.@@
-						<</if>>
-						<<if _slave1.vagina < 4>><<set _slave1.vagina = 4>><</if>><<set _slave1.anus = 4>>
-						<<if canGetPregnant(_slave1) && (random(1,100) > 70) && _slave1.eggType == "human">>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<elseif canDoVaginal(_slave1)>>
-						<<set _randomVag = random(30,60)>>
-						<<set _randomOral = random(30,60)>>
-						<<set _slave1.vaginalCount += _randomVag, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
-						By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed cunt.
-						<<if _slave1.vagina == 0>>
-							$His actions robbed you of @@.lime;$his virginity.@@
-						<</if>>
-						<<if _slave1.vagina < 4>><<set _slave1.vagina = 4>><</if>>
-						<<if canGetPregnant(_slave1) && (random(1,100) > 70) && _slave1.eggType == "human">>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<elseif canDoAnal(_slave1)>>
-						<<set _randomAnal = random(30,60)>>
-						<<set _randomOral = random(30,60)>>
-						<<set _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed anus.
-						<<if _slave1.anus == 0>>
-							$His actions robbed you of @@.lime;$his anal virginity.@@
-						<</if>>
-						<<set _slave1.anus = 4>>
-						<<if canGetPregnant(_slave1) && (random(1,100) > 70) && _slave1.eggType == "human">>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<else>>
-						<<set _randomOral = random(60,100)>>
-						<<set _slave1.oralCount += _randomOral, $oralTotal += _randomOral>>
-						By week's end, $he's managed to make $himself sick from sucking down so much sexual fluid. Luckily inducing vomiting will save your wedding from making the tabloids.
-					<</if>>
-				<<elseif _slave1.relationship == 4>>
-					fucking $his love, $slaves[_m].slaveName, as often as possible while ignoring you.
-					<<if !isSlaveAvailable(_slave1)>>
-						Or $he would have, if $he were able.
-					<<elseif !isSlaveAvailable($slaves[_m])>>
-						Or $he would have, if _he2 were around.
-					<<elseif canDoVaginal(_slave1) && canDoAnal(_slave1)>>
-						<<set _randomVag = random(3,7)>>
-						<<set _randomAnal = random(1,4)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave1.vaginalCount += _randomVag, _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						<<if _slave1.vagina == 0 && _slave1.anus == 0>>
-							$His actions robbed you of @@.lime;both $his virginities.@@
-							<<set _slave1.vagina = 1, _slave1.anus = 1>>
-						<</if>>
-						<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<elseif canDoVaginal(_slave1)>>
-						<<set _randomVag = random(3,7)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave1.vaginalCount += _randomVag, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
-						<<if _slave1.vagina == 0>>
-							$His actions robbed you of @@.lime;$his virginity.@@
-							<<set _slave1.vagina = 1>>
-						<</if>>
-						<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<elseif canDoAnal(_slave1)>>
-						<<set _randomAnal = random(1,4)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						<<if _slave1.anus == 0>>
-							$His actions robbed you of @@.lime;$his anal virginity.@@
-							<<set _slave1.anus = 1>>
-						<</if>>
-						<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<else>>
-						<<set _randomOral = random(15,20)>>
-						<<set _slave1.oralCount += _randomOral, $oralTotal += _randomOral>>
-						By week's end, $he's managed to make $himself sick from going down on $slaves[_m].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
-					<</if>>
-				<<elseif _slave1.relationship == 3>>
-					fucking $his lover, $slaves[_m].slaveName, as often as possible while ignoring you.
-					<<if !isAvailable(_slave1)>>
-						Or $he would have, if $he were able.
-					<<elseif !isSlaveAvailable($slaves[_m])>>
-						Or $he would have, if _he2 were around.
-					<<elseif canDoVaginal(_slave1) && canDoAnal(_slave1)>>
-						<<set _randomVag = random(3,7)>>
-						<<set _randomAnal = random(1,4)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave1.vaginalCount += _randomVag, _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						<<if _slave1.vagina == 0 && _slave1.anus == 0>>
-							$His actions robbed you of @@.lime;both $his virginities.@@
-							<<set _slave1.vagina = 1, _slave1.anus = 1>>
-						<</if>>
-						<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<elseif canDoVaginal(_slave1)>>
-						<<set _randomVag = random(3,7)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave1.vaginalCount += _randomVag, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
-						<<if _slave1.vagina == 0>>
-							$His actions robbed you of @@.lime;$his virginity.@@
-							<<set _slave1.vagina = 1>>
-						<</if>>
-						<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<elseif canDoAnal(_slave1)>>
-						<<set _randomAnal = random(1,4)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						<<if _slave1.anus == 0>>
-							$His actions robbed you of @@.lime;$his anal virginity.@@
-							<<set _slave1.anus = 1>>
-						<</if>>
-						<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<else>>
-						<<set _randomOral = random(15,20)>>
-						<<set _slave1.oralCount += _randomOral, $oralTotal += _randomOral>>
-						By week's end, $he's managed to make $himself sick from going down on $slaves[_m].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
-					<</if>>
-				<<elseif _slave1.relationship > 0>>
-					spending time away from you with $slaves[_m].slaveName.
-				<<else>>
-					inappropriately planning redecorations.
+			<<elseif canDoVaginal(_slave1)>>
+				<<set _randomVag = random(30,60)>>
+				<<set _randomOral = random(30,60)>>
+				<<set _slave1.vaginalCount += _randomVag, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
+				By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed cunt.
+				<<if _slave1.vagina == 0>>
+					$His actions robbed you of @@.lime;$his virginity.@@
 				<</if>>
-			<<elseif _slave1.devotion < -20>>
-				<<if _slave1.relationship == -1>>
-					desperately pleading with you to change your mind.
-				<<elseif _slave1.relationship == 4>>
-					with $his love, $slaves[_m].slaveName, weeping.
-				<<elseif _slave1.relationship == 3>>
-					with $his lover, $slaves[_m].slaveName, weeping.
-				<<elseif _slave1.relationship > 0>>
-					with $his friend, $slaves[_m].slaveName, weeping.
-				<<else>>
-					desperately pleading with you to change your mind.
+				<<if _slave1.vagina < 4>><<set _slave1.vagina = 4>><</if>>
+				<<if canGetPregnant(_slave1) && (random(1,100) > 70) && _slave1.eggType == "human">>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
+				<</if>>
+			<<elseif canDoAnal(_slave1)>>
+				<<set _randomAnal = random(30,60)>>
+				<<set _randomOral = random(30,60)>>
+				<<set _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed anus.
+				<<if _slave1.anus == 0>>
+					$His actions robbed you of @@.lime;$his anal virginity.@@
+				<</if>>
+				<<set _slave1.anus = 4>>
+				<<if canGetPregnant(_slave1) && (random(1,100) > 70) && _slave1.eggType == "human">>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
 				<</if>>
 			<<else>>
-				<<if _slave1.relationship == -1>>
-					trying $his hardest to not sleep with anyone else.
-				<<elseif _slave1.relationship == 4>>
-					alongside $his love, $slaves[_m].slaveName.
-					<<if canDoVaginal(_slave1) && _slave1.vagina != 0>>
-						<<set _slave1.vaginalCount += 1, $vaginalTotal += 1>>
-						$He later lets you know $he let $slaves[_m].slaveName enjoy $his pussy one last time.
-						<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 90)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals _slave1.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<elseif canDoAnal(_slave1)>>
-						<<set _slave1.analCount += 1, $analTotal += 1>>
-						$He later lets you know $he let $slaves[_m].slaveName enjoy $his butt one last time.
-						<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 90)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals _slave1.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<else>>
-						<<set _slave1.oralCount += 1, $oralTotal += 1>>
-						$He later tells you $he gave $slaves[_m].slaveName <<if $slaves[_m].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_m])>>cunnilingus one last time<<else>>oral one last time<</if>>.
-					<</if>>
-				<<elseif _slave1.relationship == 3>>
-					alongside $his lover, $slaves[_m].slaveName.
-					<<if canDoVaginal(_slave1) && _slave1.vagina != 0>>
-						<<set _slave1.vaginalCount += 1, $vaginalTotal += 1>>
-						$He later lets you know $he let $slaves[_m].slaveName enjoy $his pussy one last time.
-						<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 90)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals _slave1.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<elseif canDoAnal(_slave1)>>
-						<<set _slave1.analCount += 1, $analTotal += 1>>
-						$He later lets you know $he let $slaves[_m].slaveName enjoy $his butt one last time.
-						<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 90)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals _slave1.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-							<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
-							<<set _slave1.pregType = setPregType(_slave1)>>
-							<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
-						<</if>>
-					<<else>>
-						<<set _slave1.oralCount += 1, $oralTotal += 1>>
-						$He later tells you $he gave $slaves[_m].slaveName <<if $slaves[_m].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_m])>>cunnilingus one last time<<else>>oral one last time<</if>>.
-					<</if>>
-				<<elseif _slave1.relationship > 0>>
-					with $his friend, $slaves[_m].slaveName.
-				<<else>>
-					wearing a very conflicted expression.
+				<<set _randomOral = random(60,100)>>
+				<<set _slave1.oralCount += _randomOral, $oralTotal += _randomOral>>
+				By week's end, $he's managed to make $himself sick from sucking down so much sexual fluid. Luckily inducing vomiting will save your wedding from making the tabloids.
+			<</if>>
+		<<elseif _slave1.relationship == 4>>
+			fucking $his love, $slaves[_m].slaveName, as often as possible while ignoring you.
+			<<if !isSlaveAvailable(_slave1)>>
+				Or $he would have, if $he were able.
+			<<elseif !isSlaveAvailable($slaves[_m])>>
+				Or $he would have, if _he2 were around.
+			<<elseif canDoVaginal(_slave1) && canDoAnal(_slave1)>>
+				<<set _randomVag = random(3,7)>>
+				<<set _randomAnal = random(1,4)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave1.vaginalCount += _randomVag, _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				<<if _slave1.vagina == 0 && _slave1.anus == 0>>
+					$His actions robbed you of @@.lime;both $his virginities.@@
+					<<set _slave1.vagina = 1, _slave1.anus = 1>>
 				<</if>>
-
-			_slave2.slaveName, meanwhile, spent $his time
+				<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
+				<</if>>
+			<<elseif canDoVaginal(_slave1)>>
+				<<set _randomVag = random(3,7)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave1.vaginalCount += _randomVag, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
+				<<if _slave1.vagina == 0>>
+					$His actions robbed you of @@.lime;$his virginity.@@
+					<<set _slave1.vagina = 1>>
+				<</if>>
+				<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
+				<</if>>
+			<<elseif canDoAnal(_slave1)>>
+				<<set _randomAnal = random(1,4)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				<<if _slave1.anus == 0>>
+					$His actions robbed you of @@.lime;$his anal virginity.@@
+					<<set _slave1.anus = 1>>
+				<</if>>
+				<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
+				<</if>>
+			<<else>>
+				<<set _randomOral = random(15,20)>>
+				<<set _slave1.oralCount += _randomOral, $oralTotal += _randomOral>>
+				By week's end, $he's managed to make $himself sick from going down on $slaves[_m].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
+			<</if>>
+		<<elseif _slave1.relationship == 3>>
+			fucking $his lover, $slaves[_m].slaveName, as often as possible while ignoring you.
+			<<if !isAvailable(_slave1)>>
+				Or $he would have, if $he were able.
+			<<elseif !isSlaveAvailable($slaves[_m])>>
+				Or $he would have, if _he2 were around.
+			<<elseif canDoVaginal(_slave1) && canDoAnal(_slave1)>>
+				<<set _randomVag = random(3,7)>>
+				<<set _randomAnal = random(1,4)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave1.vaginalCount += _randomVag, _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				<<if _slave1.vagina == 0 && _slave1.anus == 0>>
+					$His actions robbed you of @@.lime;both $his virginities.@@
+					<<set _slave1.vagina = 1, _slave1.anus = 1>>
+				<</if>>
+				<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
+				<</if>>
+			<<elseif canDoVaginal(_slave1)>>
+				<<set _randomVag = random(3,7)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave1.vaginalCount += _randomVag, _slave1.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
+				<<if _slave1.vagina == 0>>
+					$His actions robbed you of @@.lime;$his virginity.@@
+					<<set _slave1.vagina = 1>>
+				<</if>>
+				<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
+				<</if>>
+			<<elseif canDoAnal(_slave1)>>
+				<<set _randomAnal = random(1,4)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave1.analCount += _randomAnal, _slave1.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				<<if _slave1.anus == 0>>
+					$His actions robbed you of @@.lime;$his anal virginity.@@
+					<<set _slave1.anus = 1>>
+				<</if>>
+				<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
+				<</if>>
+			<<else>>
+				<<set _randomOral = random(15,20)>>
+				<<set _slave1.oralCount += _randomOral, $oralTotal += _randomOral>>
+				By week's end, $he's managed to make $himself sick from going down on $slaves[_m].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
+			<</if>>
+		<<elseif _slave1.relationship > 0>>
+			spending time away from you with $slaves[_m].slaveName.
+		<<else>>
+			inappropriately planning redecorations.
+		<</if>>
+	<<elseif _slave1.devotion < -20>>
+		<<if _slave1.relationship == -1>>
+			desperately pleading with you to change your mind.
+		<<elseif _slave1.relationship == 4>>
+			with $his love, $slaves[_m].slaveName, weeping.
+		<<elseif _slave1.relationship == 3>>
+			with $his lover, $slaves[_m].slaveName, weeping.
+		<<elseif _slave1.relationship > 0>>
+			with $his friend, $slaves[_m].slaveName, weeping.
+		<<else>>
+			desperately pleading with you to change your mind.
+		<</if>>
+	<<else>>
+		<<if _slave1.relationship == -1>>
+			trying $his hardest to not sleep with anyone else.
+		<<elseif _slave1.relationship == 4>>
+			alongside $his love, $slaves[_m].slaveName.
+			<<if canDoVaginal(_slave1) && _slave1.vagina != 0>>
+				<<set _slave1.vaginalCount += 1, $vaginalTotal += 1>>
+				$He later lets you know $he let $slaves[_m].slaveName enjoy $his pussy one last time.
+				<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 90)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals _slave1.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
+				<</if>>
+			<<elseif canDoAnal(_slave1)>>
+				<<set _slave1.analCount += 1, $analTotal += 1>>
+				$He later lets you know $he let $slaves[_m].slaveName enjoy $his butt one last time.
+				<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 90)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals _slave1.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
+				<</if>>
+			<<else>>
+				<<set _slave1.oralCount += 1, $oralTotal += 1>>
+				$He later tells you $he gave $slaves[_m].slaveName <<if $slaves[_m].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_m])>>cunnilingus one last time<<else>>oral one last time<</if>>.
+			<</if>>
+		<<elseif _slave1.relationship == 3>>
+			alongside $his lover, $slaves[_m].slaveName.
+			<<if canDoVaginal(_slave1) && _slave1.vagina != 0>>
+				<<set _slave1.vaginalCount += 1, $vaginalTotal += 1>>
+				$He later lets you know $he let $slaves[_m].slaveName enjoy $his pussy one last time.
+				<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 90)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals _slave1.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
+				<</if>>
+			<<elseif canDoAnal(_slave1)>>
+				<<set _slave1.analCount += 1, $analTotal += 1>>
+				$He later lets you know $he let $slaves[_m].slaveName enjoy $his butt one last time.
+				<<if canImpreg(_slave1, $slaves[_m]) && (random(1,100) > 90)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals _slave1.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+					<<set _slave1.preg = 1, _slave1.pregKnown = 1, _slave1.pregWeek = 1, _slave1.pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
+					<<set _slave1.pregType = setPregType(_slave1)>>
+					<<set WombImpregnate(_slave1, _slave1.pregType, _slave1.pregSource, _slave1.preg)>>
+				<</if>>
+			<<else>>
+				<<set _slave1.oralCount += 1, $oralTotal += 1>>
+				$He later tells you $he gave $slaves[_m].slaveName <<if $slaves[_m].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_m])>>cunnilingus one last time<<else>>oral one last time<</if>>.
+			<</if>>
+		<<elseif _slave1.relationship > 0>>
+			with $his friend, $slaves[_m].slaveName.
+		<<else>>
+			wearing a very conflicted expression.
+		<</if>>
+	<</if>>
+	<<if _slave2.relationship != 0>>
+		<<if _slave2.relationship > 0>>
 			<<set _n = $slaveIndices[_slave2.relationshipTarget]>>
 			<<set _slave2.relationshipTarget = 0>>
 			<<set $slaves[_n].relationship = 0, $slaves[_n].relationshipTarget = 0>>
+		<</if>>
+	<</if>>
+	_slave2.slaveName, meanwhile, spent $his time
+	<<if _slave2.devotion+_slave2.trust >= 175>>
+		<<if _slave2.relationship != 0>>
+			<<if _slave2.relationship == -1>>
+				vowing that $he'll be less of a slut.
+			<<elseif _slave2.relationship == 4>>
+				breaking up with $his lover, $slaves[_n].slaveName, as painlessly as possible.
+			<<elseif _slave2.relationship == 3>>
+				breaking up with $his FWB, $slaves[_n].slaveName, as painlessly as possible.
+			<<elseif _slave2.relationship > 0>>
+				promising $slaves[_n].slaveName that they'll still be friends, even if they can't spend time together.
+			<<else>>
+				as close to you as $he could.
 			<</if>>
-			<<if _slave2.devotion+_slave2.trust >= 175>>
-				<<if _slave2.relationship != 0>>
-					<<if _slave2.relationship == -1>>
-						vowing that $he'll be less of a slut.
-					<<elseif _slave2.relationship == 4>>
-						breaking up with $his lover, $slaves[_n].slaveName, as painlessly as possible.
-					<<elseif _slave2.relationship == 3>>
-						breaking up with $his FWB, $slaves[_n].slaveName, as painlessly as possible.
-					<<elseif _slave2.relationship > 0>>
-						promising $slaves[_n].slaveName that they'll still be friends, even if they can't spend time together.
-					<<else>>
-						as close to you as $he could.
-					<</if>>
+		<</if>>
+	<<elseif _slave2.devotion < -20 && _slave2.trust > 20>>
+		<<if _slave2.relationship == -1>>
+			sleeping with as many different people as $he could.
+			<<if !isSlaveAvailable(_slave2)>>
+				Or $he would have, if $he were able.
+			<<elseif canDoVaginal(_slave2) && canDoAnal(_slave2)>>
+				<<set _randomVag = random(30,60)>>
+				<<set _randomAnal = random(30,60)>>
+				<<set _randomOral = random(30,60)>>
+				<<set _slave2.vaginalCount += _randomVag, _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed holes.
+				<<if _slave2.vagina == 0 && _slave2.anus == 0>>
+					$His actions robbed you of @@.lime;both $his virginities.@@
 				<</if>>
-			<<elseif _slave2.devotion < -20 && _slave2.trust > 20>>
-				<<if _slave2.relationship == -1>>
-					sleeping with as many different people as $he could.
-					<<if !isSlaveAvailable(_slave2)>>
-						Or $he would have, if $he were able.
-					<<elseif canDoVaginal(_slave2) && canDoAnal(_slave2)>>
-						<<set _randomVag = random(30,60)>>
-						<<set _randomAnal = random(30,60)>>
-						<<set _randomOral = random(30,60)>>
-						<<set _slave2.vaginalCount += _randomVag, _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed holes.
-						<<if _slave2.vagina == 0 && _slave2.anus == 0>>
-							$His actions robbed you of @@.lime;both $his virginities.@@
-						<</if>>
-						<<if _slave2.vagina < 4>><<set _slave2.vagina = 4>><</if>><<set _slave2.anus = 4>>
-						<<if canGetPregnant(_slave2) && (random(1,100) > 70) && _slave2.eggType == "human">>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<elseif canDoVaginal(_slave2)>>
-						<<set _randomVag = random(30,60)>>
-						<<set _randomOral = random(30,60)>>
-						<<set _slave2.vaginalCount += _randomVag, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
-						By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed cunt.
-						<<if _slave2.vagina == 0>>
-							$His actions robbed you of @@.lime;$his virginity.@@
-						<</if>>
-						<<if _slave2.vagina < 4>><<set _slave2.vagina = 4>><</if>>
-						<<if canGetPregnant(_slave2) && (random(1,100) > 70) && _slave2.eggType == "human">>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<elseif canDoAnal(_slave2)>>
-						<<set _randomAnal = random(30,60)>>
-						<<set _randomOral = random(30,60)>>
-						<<set _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed anus.
-						<<if _slave2.anus == 0>>
-							$His actions robbed you of @@.lime;$his anal virginity.@@
-						<</if>>
-						<<set _slave2.anus = 4>>
-						<<if canGetPregnant(_slave2) && (random(1,100) > 70) && _slave2.eggType == "human">>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<else>>
-						<<set _randomOral = random(60,100)>>
-						<<set _slave2.oralCount += _randomOral, $oralTotal += _randomOral>>
-						By week's end, $he's managed to make $himself sick from sucking down so much sexual fluid. Luckily inducing vomiting will save your wedding from making the tabloids.
-					<</if>>
-				<<elseif _slave2.relationship == 4>>
-					fucking $his love, $slaves[_n].slaveName, as often as possible while ignoring you.
-					<<if !isSlaveAvailable(_slave2)>>
-						Or $he would have, if $he were able.
-					<<elseif !isSlaveAvailable($slaves[_n])>>
-						Or $he would have, if _he2 were around.
-					<<elseif canDoVaginal(_slave2) && canDoAnal(_slave2)>>
-						<<set _randomVag = random(3,7)>>
-						<<set _randomAnal = random(1,4)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave2.vaginalCount += _randomVag, _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						<<if _slave2.vagina == 0 && _slave2.anus == 0>>
-							$His actions robbed you of @@.lime;both $his virginities.@@
-							<<set _slave2.vagina = 1, _slave2.anus = 1>>
-						<</if>>
-						<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<elseif canDoVaginal(_slave2)>>
-						<<set _randomVag = random(3,7)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave2.vaginalCount += _randomVag, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
-						<<if _slave2.vagina == 0>>
-							$His actions robbed you of @@.lime;$his virginity.@@
-							<<set _slave2.vagina = 1>>
-						<</if>>
-						<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<elseif canDoAnal(_slave2)>>
-						<<set _randomAnal = random(1,4)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						<<if _slave2.anus == 0>>
-							$His actions robbed you of @@.lime;$his anal virginity.@@
-							<<set _slave2.anus = 1>>
-						<</if>>
-						<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<else>>
-						<<set _randomOral = random(15,20)>>
-						<<set _slave2.oralCount += _randomOral, $oralTotal += _randomOral>>
-						By week's end, $he's managed to make $himself sick from going down on $slaves[_n].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
-					<</if>>
-				<<elseif _slave2.relationship == 3>>
-					fucking $his lover, $slaves[_n].slaveName, as often as possible while ignoring you.
-					<<if !isAvailable(_slave2)>>
-						Or $he would have, if $he were able.
-					<<elseif !isSlaveAvailable($slaves[_n])>>
-						Or $he would have, if _he2 were around.
-					<<elseif canDoVaginal(_slave2) && canDoAnal(_slave2)>>
-						<<set _randomVag = random(3,7)>>
-						<<set _randomAnal = random(1,4)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave2.vaginalCount += _randomVag, _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						<<if _slave2.vagina == 0 && _slave2.anus == 0>>
-							$His actions robbed you of @@.lime;both $his virginities.@@
-							<<set _slave2.vagina = 1, _slave2.anus = 1>>
-						<</if>>
-						<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<elseif canDoVaginal(_slave2)>>
-						<<set _randomVag = random(3,7)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave2.vaginalCount += _randomVag, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
-						<<if _slave2.vagina == 0>>
-							$His actions robbed you of @@.lime;$his virginity.@@
-							<<set _slave2.vagina = 1>>
-						<</if>>
-						<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<elseif canDoAnal(_slave2)>>
-						<<set _randomAnal = random(1,4)>>
-						<<set _randomOral = random(5,10)>>
-						<<set _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-						<<if _slave2.anus == 0>>
-							$His actions robbed you of @@.lime;$his anal virginity.@@
-							<<set _slave2.anus = 1>>
-						<</if>>
-						<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<else>>
-						<<set _randomOral = random(15,20)>>
-						<<set _slave2.oralCount += _randomOral, $oralTotal += _randomOral>>
-						By week's end, $he's managed to make $himself sick from going down on $slaves[_n].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
-					<</if>>
-				<<elseif _slave2.relationship > 0>>
-					spending time away from you with $slaves[_n].slaveName.
-				<<else>>
-					inappropriately planning redecorations.
+				<<if _slave2.vagina < 4>><<set _slave2.vagina = 4>><</if>><<set _slave2.anus = 4>>
+				<<if canGetPregnant(_slave2) && (random(1,100) > 70) && _slave2.eggType == "human">>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
 				<</if>>
-			<<elseif _slave2.devotion < -20>>
-				<<if _slave2.relationship == -1>>
-					desperately pleading with you to change your mind.
-				<<elseif _slave2.relationship == 4>>
-					with $his love, $slaves[_n].slaveName, weeping.
-				<<elseif _slave2.relationship == 3>>
-					with $his lover, $slaves[_n].slaveName, weeping.
-				<<elseif _slave2.relationship > 0>>
-					with $his friend, $slaves[_n].slaveName, weeping.
-				<<else>>
-					desperately pleading with you to change your mind.
+			<<elseif canDoVaginal(_slave2)>>
+				<<set _randomVag = random(30,60)>>
+				<<set _randomOral = random(30,60)>>
+				<<set _slave2.vaginalCount += _randomVag, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
+				By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed cunt.
+				<<if _slave2.vagina == 0>>
+					$His actions robbed you of @@.lime;$his virginity.@@
+				<</if>>
+				<<if _slave2.vagina < 4>><<set _slave2.vagina = 4>><</if>>
+				<<if canGetPregnant(_slave2) && (random(1,100) > 70) && _slave2.eggType == "human">>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
+				<</if>>
+			<<elseif canDoAnal(_slave2)>>
+				<<set _randomAnal = random(30,60)>>
+				<<set _randomOral = random(30,60)>>
+				<<set _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed anus.
+				<<if _slave2.anus == 0>>
+					$His actions robbed you of @@.lime;$his anal virginity.@@
+				<</if>>
+				<<set _slave2.anus = 4>>
+				<<if canGetPregnant(_slave2) && (random(1,100) > 70) && _slave2.eggType == "human">>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
 				<</if>>
 			<<else>>
-				<<if _slave2.relationship == -1>>
-					trying $his hardest to not sleep with anyone else.
-				<<elseif _slave2.relationship == 4>>
-					alongside $his love, $slaves[_n].slaveName.
-					<<if canDoVaginal(_slave2) && _slave2.vagina != 0>>
-						<<set _slave2.vaginalCount += 1, $vaginalTotal += 1>>
-						$He later lets you know $he let $slaves[_n].slaveName enjoy $his pussy one last time.
-						<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 90)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals _slave2.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount++, $penetrativeTotal++>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<elseif canDoAnal(_slave2)>>
-						<<set _slave2.analCount += 1, $analTotal += 1>>
-						$He later lets you know $he let $slaves[_n].slaveName enjoy $his butt one last time.
-						<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 90)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals _slave2.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount++, $penetrativeTotal++>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<else>>
-						<<set _slave2.oralCount += 1, $oralTotal += 1>>
-						$He later tells you $he gave $slaves[_n].slaveName <<if $slaves[_n].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_n])>>cunnilingus one last time<<else>>oral one last time<</if>>.
-					<</if>>
-				<<elseif _slave2.relationship == 3>>
-					alongside $his lover, $slaves[_n].slaveName.
-					<<if canDoVaginal(_slave2) && _slave2.vagina != 0>>
-						<<set _slave2.vaginalCount += 1, $vaginalTotal += 1>>
-						$He later lets you know $he let $slaves[_n].slaveName enjoy $his pussy one last time.
-						<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 90)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals _slave2.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount++, $penetrativeTotal++>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<elseif canDoAnal(_slave2)>>
-						<<set _slave2.analCount += 1, $analTotal += 1>>
-						$He later lets you know $he let $slaves[_n].slaveName enjoy $his butt one last time.
-						<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 90)>>
-							A pre-wedding checkup following an unusual bout of morning nausea reveals _slave2.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-							<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount++, $penetrativeTotal++>>
-							<<set _slave2.pregType = setPregType(_slave2)>>
-							<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
-						<</if>>
-					<<else>>
-						<<set _slave2.oralCount += 1, $oralTotal += 1>>
-						$He later tells you $he gave $slaves[_n].slaveName <<if $slaves[_n].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_n])>>cunnilingus one last time<<else>>oral one last time<</if>>.
-					<</if>>
-				<<elseif _slave2.relationship > 0>>
-					with $his friend, $slaves[_n].slaveName.
-				<<else>>
-					wearing a very conflicted expression.
+				<<set _randomOral = random(60,100)>>
+				<<set _slave2.oralCount += _randomOral, $oralTotal += _randomOral>>
+				By week's end, $he's managed to make $himself sick from sucking down so much sexual fluid. Luckily inducing vomiting will save your wedding from making the tabloids.
+			<</if>>
+		<<elseif _slave2.relationship == 4>>
+			fucking $his love, $slaves[_n].slaveName, as often as possible while ignoring you.
+			<<if !isSlaveAvailable(_slave2)>>
+				Or $he would have, if $he were able.
+			<<elseif !isSlaveAvailable($slaves[_n])>>
+				Or $he would have, if _he2 were around.
+			<<elseif canDoVaginal(_slave2) && canDoAnal(_slave2)>>
+				<<set _randomVag = random(3,7)>>
+				<<set _randomAnal = random(1,4)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave2.vaginalCount += _randomVag, _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				<<if _slave2.vagina == 0 && _slave2.anus == 0>>
+					$His actions robbed you of @@.lime;both $his virginities.@@
+					<<set _slave2.vagina = 1, _slave2.anus = 1>>
+				<</if>>
+				<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
+				<</if>>
+			<<elseif canDoVaginal(_slave2)>>
+				<<set _randomVag = random(3,7)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave2.vaginalCount += _randomVag, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
+				<<if _slave2.vagina == 0>>
+					$His actions robbed you of @@.lime;$his virginity.@@
+					<<set _slave2.vagina = 1>>
+				<</if>>
+				<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
+				<</if>>
+			<<elseif canDoAnal(_slave2)>>
+				<<set _randomAnal = random(1,4)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				<<if _slave2.anus == 0>>
+					$His actions robbed you of @@.lime;$his anal virginity.@@
+					<<set _slave2.anus = 1>>
+				<</if>>
+				<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
 				<</if>>
+			<<else>>
+				<<set _randomOral = random(15,20)>>
+				<<set _slave2.oralCount += _randomOral, $oralTotal += _randomOral>>
+				By week's end, $he's managed to make $himself sick from going down on $slaves[_n].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
+			<</if>>
+		<<elseif _slave2.relationship == 3>>
+			fucking $his lover, $slaves[_n].slaveName, as often as possible while ignoring you.
+			<<if !isAvailable(_slave2)>>
+				Or $he would have, if $he were able.
+			<<elseif !isSlaveAvailable($slaves[_n])>>
+				Or $he would have, if _he2 were around.
+			<<elseif canDoVaginal(_slave2) && canDoAnal(_slave2)>>
+				<<set _randomVag = random(3,7)>>
+				<<set _randomAnal = random(1,4)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave2.vaginalCount += _randomVag, _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				<<if _slave2.vagina == 0 && _slave2.anus == 0>>
+					$His actions robbed you of @@.lime;both $his virginities.@@
+					<<set _slave2.vagina = 1, _slave2.anus = 1>>
+				<</if>>
+				<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
+				<</if>>
+			<<elseif canDoVaginal(_slave2)>>
+				<<set _randomVag = random(3,7)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave2.vaginalCount += _randomVag, _slave2.oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
+				<<if _slave2.vagina == 0>>
+					$His actions robbed you of @@.lime;$his virginity.@@
+					<<set _slave2.vagina = 1>>
+				<</if>>
+				<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
+				<</if>>
+			<<elseif canDoAnal(_slave2)>>
+				<<set _randomAnal = random(1,4)>>
+				<<set _randomOral = random(5,10)>>
+				<<set _slave2.analCount += _randomAnal, _slave2.oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+				<<if _slave2.anus == 0>>
+					$His actions robbed you of @@.lime;$his anal virginity.@@
+					<<set _slave2.anus = 1>>
+				<</if>>
+				<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 70)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
+				<</if>>
+			<<else>>
+				<<set _randomOral = random(15,20)>>
+				<<set _slave2.oralCount += _randomOral, $oralTotal += _randomOral>>
+				By week's end, $he's managed to make $himself sick from going down on $slaves[_n].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
+			<</if>>
+		<<elseif _slave2.relationship > 0>>
+			spending time away from you with $slaves[_n].slaveName.
+		<<else>>
+			inappropriately planning redecorations.
+		<</if>>
+	<<elseif _slave2.devotion < -20>>
+		<<if _slave2.relationship == -1>>
+			desperately pleading with you to change your mind.
+		<<elseif _slave2.relationship == 4>>
+			with $his love, $slaves[_n].slaveName, weeping.
+		<<elseif _slave2.relationship == 3>>
+			with $his lover, $slaves[_n].slaveName, weeping.
+		<<elseif _slave2.relationship > 0>>
+			with $his friend, $slaves[_n].slaveName, weeping.
+		<<else>>
+			desperately pleading with you to change your mind.
+		<</if>>
+	<<else>>
+		<<if _slave2.relationship == -1>>
+			trying $his hardest to not sleep with anyone else.
+		<<elseif _slave2.relationship == 4>>
+			alongside $his love, $slaves[_n].slaveName.
+			<<if canDoVaginal(_slave2) && _slave2.vagina != 0>>
+				<<set _slave2.vaginalCount += 1, $vaginalTotal += 1>>
+				$He later lets you know $he let $slaves[_n].slaveName enjoy $his pussy one last time.
+				<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 90)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals _slave2.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount++, $penetrativeTotal++>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
+				<</if>>
+			<<elseif canDoAnal(_slave2)>>
+				<<set _slave2.analCount += 1, $analTotal += 1>>
+				$He later lets you know $he let $slaves[_n].slaveName enjoy $his butt one last time.
+				<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 90)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals _slave2.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount++, $penetrativeTotal++>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
+				<</if>>
+			<<else>>
+				<<set _slave2.oralCount += 1, $oralTotal += 1>>
+				$He later tells you $he gave $slaves[_n].slaveName <<if $slaves[_n].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_n])>>cunnilingus one last time<<else>>oral one last time<</if>>.
+			<</if>>
+		<<elseif _slave2.relationship == 3>>
+			alongside $his lover, $slaves[_n].slaveName.
+			<<if canDoVaginal(_slave2) && _slave2.vagina != 0>>
+				<<set _slave2.vaginalCount += 1, $vaginalTotal += 1>>
+				$He later lets you know $he let $slaves[_n].slaveName enjoy $his pussy one last time.
+				<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 90)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals _slave2.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount++, $penetrativeTotal++>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
+				<</if>>
+			<<elseif canDoAnal(_slave2)>>
+				<<set _slave2.analCount += 1, $analTotal += 1>>
+				$He later lets you know $he let $slaves[_n].slaveName enjoy $his butt one last time.
+				<<if canImpreg(_slave2, $slaves[_n]) && (random(1,100) > 90)>>
+					A pre-wedding checkup following an unusual bout of morning nausea reveals _slave2.slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+					<<set _slave2.preg = 1, _slave2.pregKnown = 1, _slave2.pregWeek = 1, _slave2.pregSource = $slaves[_n].ID, $slaves[_n].penetrativeCount++, $penetrativeTotal++>>
+					<<set _slave2.pregType = setPregType(_slave2)>>
+					<<set WombImpregnate(_slave2, _slave2.pregType, _slave2.pregSource, _slave2.preg)>>
+				<</if>>
+			<<else>>
+				<<set _slave2.oralCount += 1, $oralTotal += 1>>
+				$He later tells you $he gave $slaves[_n].slaveName <<if $slaves[_n].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_n])>>cunnilingus one last time<<else>>oral one last time<</if>>.
 			<</if>>
+		<<elseif _slave2.relationship > 0>>
+			with $his friend, $slaves[_n].slaveName.
+		<<else>>
+			wearing a very conflicted expression.
 		<</if>>
 	<</if>>
 <</if>>
 
 <<set _pregWedding = 2>>
-<<if (!isFertile(_slave1)) || ((!isFertile(_slave2))) && $weddingPlanned == 3>>
+<<if ((!isFertile(_slave1)) || (!isFertile(_slave2))) && $weddingPlanned == 3>>
 	<<if (!isFertile(_slave1))>>
 		<<set _pregWedding = 0>>
 	<<else>>
diff --git a/src/uncategorized/seWeddingSingle.tw b/src/uncategorized/seWeddingSingle.tw
index 955063692aa1443dd261fb67d348cd63d8dd34f0..549aa218ac04b704672f945c558db194bd67245c 100644
--- a/src/uncategorized/seWeddingSingle.tw
+++ b/src/uncategorized/seWeddingSingle.tw
@@ -23,258 +23,258 @@
 		<<set $slaves[_m].relationship = 0, $slaves[_m].relationshipTarget = 0>>
 		<<setLocalPronouns $slaves[_m] 2>>
 	<</if>>
-	In the days leading up to your wedding, $slaves[_wedS].slaveName spent $his time
-	<<if $slaves[_wedS].devotion+$slaves[_wedS].trust >= 175>>
-		<<if $slaves[_wedS].relationship != 0>>
-			<<if $slaves[_wedS].relationship == -1>>
-				vowing that $he'll be less of a slut.
-			<<elseif $slaves[_wedS].relationship == 4>>
-				breaking up with $his lover, $slaves[_m].slaveName, as painlessly as possible.
-			<<elseif $slaves[_wedS].relationship == 3>>
-				breaking up with $his FWB, $slaves[_m].slaveName, as painlessly as possible.
-			<<elseif $slaves[_wedS].relationship > 0>>
-				promising $slaves[_m].slaveName that they'll still be friends, even if they can't spend time together.
-			<<else>>
-				as close to you as $he could.
+<</if>>
+In the days leading up to your wedding, $slaves[_wedS].slaveName spent $his time
+<<if $slaves[_wedS].devotion+$slaves[_wedS].trust >= 175>>
+	<<if $slaves[_wedS].relationship != 0>>
+		<<if $slaves[_wedS].relationship == -1>>
+			vowing that $he'll be less of a slut.
+		<<elseif $slaves[_wedS].relationship == 4>>
+			breaking up with $his lover, $slaves[_m].slaveName, as painlessly as possible.
+		<<elseif $slaves[_wedS].relationship == 3>>
+			breaking up with $his FWB, $slaves[_m].slaveName, as painlessly as possible.
+		<<elseif $slaves[_wedS].relationship > 0>>
+			promising $slaves[_m].slaveName that they'll still be friends, even if they can't spend time together.
+		<<else>>
+			as close to you as $he could.
+		<</if>>
+	<</if>>
+<<elseif $slaves[_wedS].devotion < -20 && $slaves[_wedS].trust > 20>>
+	<<if $slaves[_wedS].relationship == -1>>
+		sleeping with as many different people as $he could.
+		<<if !isSlaveAvailable($slaves[_wedS])>>
+			Or $he would have, if $he were able.
+		<<elseif canDoVaginal($slaves[_wedS]) && canDoAnal($slaves[_wedS])>>
+			<<set _randomVag = random(30,60)>>
+			<<set _randomAnal = random(30,60)>>
+			<<set _randomOral = random(30,60)>>
+			<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+			By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed holes.
+			<<if $slaves[_wedS].vagina == 0 && $slaves[_wedS].anus == 0>>
+				$His actions robbed you of @@.lime;both $his virginities.@@
+			<</if>>
+			<<if $slaves[_wedS].vagina < 4>><<set $slaves[_wedS].vagina = 4>><</if>><<set $slaves[_wedS].anus = 4>>
+			<<if canGetPregnant($slaves[_wedS]) && (random(1,100) > 70) && $slaves[_wedS].eggType == "human">>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
+			<</if>>
+		<<elseif canDoVaginal($slaves[_wedS])>>
+			<<set _randomVag = random(30,60)>>
+			<<set _randomOral = random(30,60)>>
+			<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
+			By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed cunt.
+			<<if $slaves[_wedS].vagina == 0>>
+				$His actions robbed you of @@.lime;$his virginity.@@
+			<</if>>
+			<<if $slaves[_wedS].vagina < 4>><<set $slaves[_wedS].vagina = 4>><</if>>
+			<<if canGetPregnant($slaves[_wedS]) && (random(1,100) > 70) && $slaves[_wedS].eggType == "human">>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
+			<</if>>
+		<<elseif canDoAnal($slaves[_wedS])>>
+			<<set _randomAnal = random(30,60)>>
+			<<set _randomOral = random(30,60)>>
+			<<set $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+			By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed anus.
+			<<if $slaves[_wedS].anus == 0>>
+				$His actions robbed you of @@.lime;$his anal virginity.@@
+			<</if>>
+			<<set $slaves[_wedS].anus = 4>>
+			<<if canGetPregnant($slaves[_wedS]) && (random(1,100) > 70) && $slaves[_wedS].eggType == "human">>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
 			<</if>>
+		<<else>>
+			<<set _randomOral = random(60,100)>>
+			<<set $slaves[_wedS].oralCount += _randomOral, $oralTotal += _randomOral>>
+			By week's end, $he's managed to make $himself sick from sucking down so much sexual fluid. Luckily inducing vomiting will save your wedding from making the tabloids.
 		<</if>>
-	<<elseif $slaves[_wedS].devotion < -20 && $slaves[_wedS].trust > 20>>
-		<<if $slaves[_wedS].relationship == -1>>
-			sleeping with as many different people as $he could.
-			<<if !isSlaveAvailable($slaves[_wedS])>>
-				Or $he would have, if $he were able.
-			<<elseif canDoVaginal($slaves[_wedS]) && canDoAnal($slaves[_wedS])>>
-				<<set _randomVag = random(30,60)>>
-				<<set _randomAnal = random(30,60)>>
-				<<set _randomOral = random(30,60)>>
-				<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-				By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed holes.
-				<<if $slaves[_wedS].vagina == 0 && $slaves[_wedS].anus == 0>>
-					$His actions robbed you of @@.lime;both $his virginities.@@
-				<</if>>
-				<<if $slaves[_wedS].vagina < 4>><<set $slaves[_wedS].vagina = 4>><</if>><<set $slaves[_wedS].anus = 4>>
-				<<if canGetPregnant($slaves[_wedS]) && (random(1,100) > 70) && $slaves[_wedS].eggType == "human">>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<elseif canDoVaginal($slaves[_wedS])>>
-				<<set _randomVag = random(30,60)>>
-				<<set _randomOral = random(30,60)>>
-				<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
-				By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed cunt.
-				<<if $slaves[_wedS].vagina == 0>>
-					$His actions robbed you of @@.lime;$his virginity.@@
-				<</if>>
-				<<if $slaves[_wedS].vagina < 4>><<set $slaves[_wedS].vagina = 4>><</if>>
-				<<if canGetPregnant($slaves[_wedS]) && (random(1,100) > 70) && $slaves[_wedS].eggType == "human">>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<elseif canDoAnal($slaves[_wedS])>>
-				<<set _randomAnal = random(30,60)>>
-				<<set _randomOral = random(30,60)>>
-				<<set $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-				By week's end, $he's managed to ruin $his body out of spite. $He can barely move, trapped on $his back as cum steadily drips from $his prolapsed, gaping, destroyed anus.
-				<<if $slaves[_wedS].anus == 0>>
-					$His actions robbed you of @@.lime;$his anal virginity.@@
-				<</if>>
-				<<set $slaves[_wedS].anus = 4>>
-				<<if canGetPregnant($slaves[_wedS]) && (random(1,100) > 70) && $slaves[_wedS].eggType == "human">>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<else>>
-				<<set _randomOral = random(60,100)>>
-				<<set $slaves[_wedS].oralCount += _randomOral, $oralTotal += _randomOral>>
-				By week's end, $he's managed to make $himself sick from sucking down so much sexual fluid. Luckily inducing vomiting will save your wedding from making the tabloids.
+	<<elseif $slaves[_wedS].relationship == 4>>
+		fucking $his love, $slaves[_m].slaveName, as often as possible while ignoring you.
+		<<if !isSlaveAvailable($slaves[_wedS])>>
+			Or $he would have, if $he were able.
+		<<elseif !isSlaveAvailable($slaves[_m])>>
+			Or $he would have, if _he2 were around.
+		<<elseif canDoVaginal($slaves[_wedS]) && canDoAnal($slaves[_wedS])>>
+			<<set _randomVag = random(3,7)>>
+			<<set _randomAnal = random(1,4)>>
+			<<set _randomOral = random(5,10)>>
+			<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+			<<if $slaves[_wedS].vagina == 0 && $slaves[_wedS].anus == 0>>
+				$His actions robbed you of @@.lime;both $his virginities.@@
+				<<set $slaves[_wedS].vagina = 1, $slaves[_wedS].anus = 1>>
 			<</if>>
-		<<elseif $slaves[_wedS].relationship == 4>>
-			fucking $his love, $slaves[_m].slaveName, as often as possible while ignoring you.
-			<<if !isSlaveAvailable($slaves[_wedS])>>
-				Or $he would have, if $he were able.
-			<<elseif !isSlaveAvailable($slaves[_m])>>
-				Or $he would have, if _he2 were around.
-			<<elseif canDoVaginal($slaves[_wedS]) && canDoAnal($slaves[_wedS])>>
-				<<set _randomVag = random(3,7)>>
-				<<set _randomAnal = random(1,4)>>
-				<<set _randomOral = random(5,10)>>
-				<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-				<<if $slaves[_wedS].vagina == 0 && $slaves[_wedS].anus == 0>>
-					$His actions robbed you of @@.lime;both $his virginities.@@
-					<<set $slaves[_wedS].vagina = 1, $slaves[_wedS].anus = 1>>
-				<</if>>
-				<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<elseif canDoVaginal($slaves[_wedS])>>
-				<<set _randomVag = random(3,7)>>
-				<<set _randomOral = random(5,10)>>
-				<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
-				<<if $slaves[_wedS].vagina == 0>>
-					$His actions robbed you of @@.lime;$his virginity.@@
-					<<set $slaves[_wedS].vagina = 1>>
-				<</if>>
-				<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<elseif canDoAnal($slaves[_wedS])>>
-				<<set _randomAnal = random(1,4)>>
-				<<set _randomOral = random(5,10)>>
-				<<set $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-				<<if $slaves[_wedS].anus == 0>>
-					$His actions robbed you of @@.lime;$his anal virginity.@@
-					<<set $slaves[_wedS].anus = 1>>
-				<</if>>
-				<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<else>>
-				<<set _randomOral = random(15,20)>>
-				<<set $slaves[_wedS].oralCount += _randomOral, $oralTotal += _randomOral>>
-				By week's end, $he's managed to make $himself sick from going down on $slaves[_m].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
+			<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
 			<</if>>
-		<<elseif $slaves[_wedS].relationship == 3>>
-			fucking $his lover, $slaves[_m].slaveName, as often as possible while ignoring you.
-			<<if !isAvailable($slaves[_wedS])>>
-				Or $he would have, if $he were able.
-			<<elseif !isSlaveAvailable($slaves[_m])>>
-				Or $he would have, if _he2 were around.
-			<<elseif canDoVaginal($slaves[_wedS]) && canDoAnal($slaves[_wedS])>>
-				<<set _randomVag = random(3,7)>>
-				<<set _randomAnal = random(1,4)>>
-				<<set _randomOral = random(5,10)>>
-				<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-				<<if $slaves[_wedS].vagina == 0 && $slaves[_wedS].anus == 0>>
-					$His actions robbed you of @@.lime;both $his virginities.@@
-					<<set $slaves[_wedS].vagina = 1, $slaves[_wedS].anus = 1>>
-				<</if>>
-				<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<elseif canDoVaginal($slaves[_wedS])>>
-				<<set _randomVag = random(3,7)>>
-				<<set _randomOral = random(5,10)>>
-				<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
-				<<if $slaves[_wedS].vagina == 0>>
-					$His actions robbed you of @@.lime;$his virginity.@@
-					<<set $slaves[_wedS].vagina = 1>>
-				<</if>>
-				<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<elseif canDoAnal($slaves[_wedS])>>
-				<<set _randomAnal = random(1,4)>>
-				<<set _randomOral = random(5,10)>>
-				<<set $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
-				<<if $slaves[_wedS].anus == 0>>
-					$His actions robbed you of @@.lime;$his anal virginity.@@
-					<<set $slaves[_wedS].anus = 1>>
-				<</if>>
-				<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<else>>
-				<<set _randomOral = random(15,20)>>
-				<<set $slaves[_wedS].oralCount += _randomOral, $oralTotal += _randomOral>>
-				By week's end, $he's managed to make $himself sick from going down on $slaves[_m].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
+		<<elseif canDoVaginal($slaves[_wedS])>>
+			<<set _randomVag = random(3,7)>>
+			<<set _randomOral = random(5,10)>>
+			<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
+			<<if $slaves[_wedS].vagina == 0>>
+				$His actions robbed you of @@.lime;$his virginity.@@
+				<<set $slaves[_wedS].vagina = 1>>
+			<</if>>
+			<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
+			<</if>>
+		<<elseif canDoAnal($slaves[_wedS])>>
+			<<set _randomAnal = random(1,4)>>
+			<<set _randomOral = random(5,10)>>
+			<<set $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+			<<if $slaves[_wedS].anus == 0>>
+				$His actions robbed you of @@.lime;$his anal virginity.@@
+				<<set $slaves[_wedS].anus = 1>>
+			<</if>>
+			<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
 			<</if>>
-		<<elseif $slaves[_wedS].relationship > 0>>
-			spending time away from you with $slaves[_m].slaveName.
 		<<else>>
-			inappropriately planning redecorations.
+			<<set _randomOral = random(15,20)>>
+			<<set $slaves[_wedS].oralCount += _randomOral, $oralTotal += _randomOral>>
+			By week's end, $he's managed to make $himself sick from going down on $slaves[_m].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
 		<</if>>
-	<<elseif $slaves[_wedS].devotion < -20>>
-		<<if $slaves[_wedS].relationship == -1>>
-			desperately pleading with you to change your mind.
-		<<elseif $slaves[_wedS].relationship == 4>>
-			with $his love, $slaves[_m].slaveName, weeping.
-		<<elseif $slaves[_wedS].relationship == 3>>
-			with $his lover, $slaves[_m].slaveName, weeping.
-		<<elseif $slaves[_wedS].relationship > 0>>
-			with $his friend, $slaves[_m].slaveName, weeping.
+	<<elseif $slaves[_wedS].relationship == 3>>
+		fucking $his lover, $slaves[_m].slaveName, as often as possible while ignoring you.
+		<<if !isAvailable($slaves[_wedS])>>
+			Or $he would have, if $he were able.
+		<<elseif !isSlaveAvailable($slaves[_m])>>
+			Or $he would have, if _he2 were around.
+		<<elseif canDoVaginal($slaves[_wedS]) && canDoAnal($slaves[_wedS])>>
+			<<set _randomVag = random(3,7)>>
+			<<set _randomAnal = random(1,4)>>
+			<<set _randomOral = random(5,10)>>
+			<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+			<<if $slaves[_wedS].vagina == 0 && $slaves[_wedS].anus == 0>>
+				$His actions robbed you of @@.lime;both $his virginities.@@
+				<<set $slaves[_wedS].vagina = 1, $slaves[_wedS].anus = 1>>
+			<</if>>
+			<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag+_randomAnal), $penetrativeTotal += (_randomVag+_randomAnal)>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
+			<</if>>
+		<<elseif canDoVaginal($slaves[_wedS])>>
+			<<set _randomVag = random(3,7)>>
+			<<set _randomOral = random(5,10)>>
+			<<set $slaves[_wedS].vaginalCount += _randomVag, $slaves[_wedS].oralCount += _randomOral, $vaginalTotal += _randomVag, $oralTotal += _randomOral>>
+			<<if $slaves[_wedS].vagina == 0>>
+				$His actions robbed you of @@.lime;$his virginity.@@
+			<<set $slaves[_wedS].vagina = 1>>
+			<</if>>
+			<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomVag), $penetrativeTotal += (_randomVag)>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
+			<</if>>
+		<<elseif canDoAnal($slaves[_wedS])>>
+			<<set _randomAnal = random(1,4)>>
+			<<set _randomOral = random(5,10)>>
+			<<set $slaves[_wedS].analCount += _randomAnal, $slaves[_wedS].oralCount += _randomOral, $analTotal += _randomAnal, $oralTotal += _randomOral>>
+			<<if $slaves[_wedS].anus == 0>>
+				$His actions robbed you of @@.lime;$his anal virginity.@@
+				<<set $slaves[_wedS].anus = 1>>
+			<</if>>
+			<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 70)>>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals the bitch managed to get knocked up. There is no time before the ceremony to deal with it.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount += (_randomAnal), $penetrativeTotal += (_randomAnal)>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
+			<</if>>
 		<<else>>
-			desperately pleading with you to change your mind.
+			<<set _randomOral = random(15,20)>>
+			<<set $slaves[_wedS].oralCount += _randomOral, $oralTotal += _randomOral>>
+			By week's end, $he's managed to make $himself sick from going down on $slaves[_m].slaveName so often. Luckily inducing vomiting will save your wedding from making the tabloids.
 		<</if>>
+	<<elseif $slaves[_wedS].relationship > 0>>
+		spending time away from you with $slaves[_m].slaveName.
 	<<else>>
-		<<if $slaves[_wedS].relationship == -1>>
-			trying $his hardest to not sleep with anyone else.
-		<<elseif $slaves[_wedS].relationship == 4>>
-			alongside $his love, $slaves[_m].slaveName.
-			<<if canDoVaginal($slaves[_wedS]) && $slaves[_wedS].vagina != 0>>
-				<<set $slaves[_wedS].vaginalCount += 1, $vaginalTotal += 1>>
-				$He later lets you know $he let $slaves[_m].slaveName enjoy $his pussy one last time.
-				<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 90)>>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals $slaves[_wedS].slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<elseif canDoAnal($slaves[_wedS])>>
-				<<set $slaves[_wedS].analCount += 1, $analTotal += 1>>
-				$He later lets you know $he let $slaves[_m].slaveName enjoy $his butt one last time.
-				<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 90)>>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals $slaves[_wedS].slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<else>>
-				<<set $slaves[_wedS].oralCount += 1, $oralTotal += 1>>
-				$He later tells you $he gave $slaves[_m].slaveName <<if $slaves[_m].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_m])>>cunnilingus one last time<<else>>oral one last time<</if>>.
+		inappropriately planning redecorations.
+	<</if>>
+<<elseif $slaves[_wedS].devotion < -20>>
+	<<if $slaves[_wedS].relationship == -1>>
+		desperately pleading with you to change your mind.
+	<<elseif $slaves[_wedS].relationship == 4>>
+		with $his love, $slaves[_m].slaveName, weeping.
+	<<elseif $slaves[_wedS].relationship == 3>>
+		with $his lover, $slaves[_m].slaveName, weeping.
+	<<elseif $slaves[_wedS].relationship > 0>>
+		with $his friend, $slaves[_m].slaveName, weeping.
+	<<else>>
+		desperately pleading with you to change your mind.
+	<</if>>
+<<else>>
+	<<if $slaves[_wedS].relationship == -1>>
+		trying $his hardest to not sleep with anyone else.
+	<<elseif $slaves[_wedS].relationship == 4>>
+		alongside $his love, $slaves[_m].slaveName.
+		<<if canDoVaginal($slaves[_wedS]) && $slaves[_wedS].vagina != 0>>
+			<<set $slaves[_wedS].vaginalCount += 1, $vaginalTotal += 1>>
+			$He later lets you know $he let $slaves[_m].slaveName enjoy $his pussy one last time.
+			<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 90)>>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals $slaves[_wedS].slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
 			<</if>>
-		<<elseif $slaves[_wedS].relationship == 3>>
-			alongside $his lover, $slaves[_m].slaveName.
-			<<if canDoVaginal($slaves[_wedS]) && $slaves[_wedS].vagina != 0>>
-				<<set $slaves[_wedS].vaginalCount += 1, $vaginalTotal += 1>>
-				$He later lets you know $he let $slaves[_m].slaveName enjoy $his pussy one last time.
-				<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 90)>>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals $slaves[_wedS].slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<elseif canDoAnal($slaves[_wedS])>>
-				<<set $slaves[_wedS].analCount += 1, $analTotal += 1>>
-				$He later lets you know $he let $slaves[_m].slaveName enjoy $his butt one last time.
-				<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 90)>>
-					A pre-wedding checkup following an unusual bout of morning nausea reveals $slaves[_wedS].slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
-					<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
-					<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
-					<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
-				<</if>>
-			<<else>>
-				<<set $slaves[_wedS].oralCount += 1, $oralTotal += 1>>
-				$He later tells you $he gave $slaves[_m].slaveName <<if $slaves[_m].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_m])>>cunnilingus one last time<<else>>oral one last time<</if>>.
+		<<elseif canDoAnal($slaves[_wedS])>>
+			<<set $slaves[_wedS].analCount += 1, $analTotal += 1>>
+			$He later lets you know $he let $slaves[_m].slaveName enjoy $his butt one last time.
+			<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 90)>>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals $slaves[_wedS].slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
 			<</if>>
-		<<elseif $slaves[_wedS].relationship > 0>>
-			with $his friend, $slaves[_m].slaveName.
 		<<else>>
-			wearing a very conflicted expression.
+			<<set $slaves[_wedS].oralCount += 1, $oralTotal += 1>>
+			$He later tells you $he gave $slaves[_m].slaveName <<if $slaves[_m].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_m])>>cunnilingus one last time<<else>>oral one last time<</if>>.
 		<</if>>
+	<<elseif $slaves[_wedS].relationship == 3>>
+		alongside $his lover, $slaves[_m].slaveName.
+		<<if canDoVaginal($slaves[_wedS]) && $slaves[_wedS].vagina != 0>>
+			<<set $slaves[_wedS].vaginalCount += 1, $vaginalTotal += 1>>
+			$He later lets you know $he let $slaves[_m].slaveName enjoy $his pussy one last time.
+			<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 90)>>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals $slaves[_wedS].slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
+			<</if>>
+		<<elseif canDoAnal($slaves[_wedS])>>
+			<<set $slaves[_wedS].analCount += 1, $analTotal += 1>>
+			$He later lets you know $he let $slaves[_m].slaveName enjoy $his butt one last time.
+			<<if canImpreg($slaves[_wedS], $slaves[_m]) && (random(1,100) > 90)>>
+				A pre-wedding checkup following an unusual bout of morning nausea reveals $slaves[_wedS].slaveName managed to get knocked up. There is no time before the ceremony to deal with it and the distraught $girl is in a panic for making you go through this.
+				<<set $slaves[_wedS].preg = 1, $slaves[_wedS].pregKnown = 1, $slaves[_wedS].pregWeek = 1, $slaves[_wedS].pregSource = $slaves[_m].ID, $slaves[_m].penetrativeCount++, $penetrativeTotal++>>
+				<<set $slaves[_wedS].pregType = setPregType($slaves[_wedS])>>
+				<<set WombImpregnate($slaves[_wedS], $slaves[_wedS].pregType, $slaves[_wedS].pregSource, $slaves[_wedS].preg)>>
+			<</if>>
+		<<else>>
+			<<set $slaves[_wedS].oralCount += 1, $oralTotal += 1>>
+			$He later tells you $he gave $slaves[_m].slaveName <<if $slaves[_m].dick > 0>>one last blow job<<elseif canDoVaginal($slaves[_m])>>cunnilingus one last time<<else>>oral one last time<</if>>.
+		<</if>>
+	<<elseif $slaves[_wedS].relationship > 0>>
+		with $his friend, $slaves[_m].slaveName.
+	<<else>>
+		wearing a very conflicted expression.
 	<</if>>
 <</if>>
 
diff --git a/src/uncategorized/shops.tw b/src/uncategorized/shops.tw
index aa514c0310bbeff444f22ba572f88a8058f702c4..bcb43990a14405762d2ca8c4b5edebc236d0bd06 100644
--- a/src/uncategorized/shops.tw
+++ b/src/uncategorized/shops.tw
@@ -24,7 +24,7 @@ This is a section of the promenade
 	<span id="result"><<link "Tour the area">><<replace "#result">>You decide to put in an appearance at these establishments, and tour their front lobbies, listening politely to the educated slave receptionists' polished descriptions of the services offered. You stay out of the back areas, of course; those are for relaxing slaves, and owners typically leave them be while they're there. Most of the slaves moving through the area know who you are, and many of them are confident enough to give you respectful smiles.<</replace>><</link>></span>
 <<case "Degradationist">>
 	dedicated to Degradationism. The stores for slaveowners sell all sorts of inventive restraints and punishments. There are also a few of a uniquely Degradationist establishment: torture parlors, where any citizen can send a slave for punishment by paying customers, within bounds defined by the owner.
-	<span id="result"><<link "Try a round">><<replace "#result">>You decide to put in an appearance at a tenant business and show off your skills, and the torture parlors are very eager to have you accept a complimentary round. You select a pretty _girlU sent to a torture parlor for some unknown failing by _hisU owner, and use a switch to flog _hisU calves, inner thighs, and breasts until _heU loses control of _hisU bladder. <<if $PC.slaving >= 100>>You're skilled at this. The trick is to stop just short of blows that will break the skin, applying all possible pain without any inconvenient blood.<<else>>There's a bit of blood, but _hisU owner will expect that.<</if>><</replace>><</link>></span>
+	<span id="result"><<link "Try a round">><<replace "#result">>You decide to put in an appearance at a tenant business and show off your skills, and the torture parlors are very eager to have you accept a complimentary round. You select a pretty _girlU sent to a torture parlor for some unknown failing by _hisU owner, and use a switch to flog _hisU calves, inner thighs, and breasts until _heU <<if $seePee == 1>>loses control of _hisU bladder<<else>>passes out<</if>>. <<if $PC.slaving >= 100>>You're skilled at this. The trick is to stop just short of blows that will break the skin, applying all possible pain without any inconvenient blood.<<else>>There's a bit of blood, but _hisU owner will expect that.<</if>><</replace>><</link>></span>
 <<case "Body Purist">>
 	dedicated to Body Purism. There are high end clinics for citizens, with medical specialists skilled in the latest longevity treatments. Shops offer beauty treatments, anti-aging products, and personal massage services. The slave masseuses are naturally beautiful, and their bodies are obviously part of the services offered.
 	<span id="result"><<link "Get a massage">><<replace "#result">>You decide to put in an appearance at a tenant business, and the massage parlors are of course very eager to offer you complimentary services. The masseuse is very well-trained, and not at all a sex toy with poor massage skills as a veneer for handjob services. _HeU releases the muscle soreness from your latest workout, and uses _hisU delicate touch to bring you to an enjoyable orgasm; _heU <<if $PC.dick == 1>>catches your cum in _hisU mouth and swallows it<<else>>swallows your femcum<</if>> with every appearance of appetite.<</replace>><</link>></span>
diff --git a/src/uncategorized/slaveAssignmentsReport.tw b/src/uncategorized/slaveAssignmentsReport.tw
index 13a21d9fa342af46a490c0a5cacc087c3dedd068..93e06c17867f381637ebfc5f31d625d94d2406f5 100644
--- a/src/uncategorized/slaveAssignmentsReport.tw
+++ b/src/uncategorized/slaveAssignmentsReport.tw
@@ -496,7 +496,7 @@
 			<<continue>>
 		<</if>>
 
-		<<set _hasParaphilia = (["cum addict", "anal addict", "attention whore", "breast growth", "abusive", "malicious", "self hating", "neglectful", "breeder"].includes(_Slave.sexualFlaw))>>
+		<<set _hasParaphilia = (["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "self hating"].includes(_Slave.sexualFlaw))>>
 		<<if ($headGirlTrainsParaphilias && _hasParaphilia)>>
 			<<set _HGPossibleSlaves[1].push({ID: _Slave.ID, training: "paraphilia"})>>
 			<<continue>>
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 7fb5f4ff33b248872950ec8899bb403e04fee24a..78efeee68d035763cfb7517f2760bb9c1a8d98df 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -515,7 +515,7 @@
 
 	Assignment: <strong><span id="assign">$activeSlave.assignment<<if $activeSlave.sentence>> ($activeSlave.sentence weeks)<</if>></span>.</strong>
 	<<link "Rest">>				   <<= assignJob($activeSlave, "rest")>><<replace "#assign">>$activeSlave.assignment<</replace>><<SlaveInteractFucktoy>><</link>>
-	<<if ["be confined in the arcade", "work in the brothel", "serve in the club", "work in the dairy", "work as a farmhand", "serve in the master suite", "work as a servant", "work as a nanny"].includes($activeSlave.assignment)>>
+	<<if ["be confined in the arcade", "serve in the club", "serve in the master suite", "work as a farmhand", "work as a nanny", "work as a servant", "work in the brothel", "work in the dairy"].includes($activeSlave.assignment)>>
 	| <<link "Remove From Facility">>	<<= removeJob($activeSlave, $activeSlave.assignment)>><<replace "#assign">>$activeSlave.assignment<</replace>><<SlaveInteractFucktoy>><</link>>
 	<</if>>
 	| <<link "Fucktoy">>				<<= assignJob($activeSlave, "please you")>><<replace "#assign">>$activeSlave.assignment<</replace>><<SlaveInteractFucktoy>><</link>>
@@ -1083,7 +1083,7 @@
 		| <<link "Combined Chastity Belt">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 1>><<set $activeSlave.chastityPenis = 0>><<set $activeSlave.chastityVagina = 1>><<replace "#chastity">>Combined Chastity Belt<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
 	<</if>>
 	<<if $activeSlave.dick > 0>>
-		| <<link "Chastity Cage">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 0>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 0>><<replace "#chastity">>Chastity Cage<</replace>>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
+		| <<link "Chastity Cage">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 0>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 0>><<replace "#chastity">>Chastity Cage<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
 		| <<link "Combined Chastity Cage">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 1>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 0>><<replace "#chastity">>Combined Chastity Cage<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
 		<<if $activeSlave.vagina > -1>>
 			| <<link "Genital Chastity">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 0>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 1>><<replace "#chastity">>Genital Chastity<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
diff --git a/src/uncategorized/slaveStats.tw b/src/uncategorized/slaveStats.tw
index 8f30341551d85c7ad755535dcc59b21e1f2f6294..85e00ee250b9940225ccbb515e6ea6be924a1f81 100644
--- a/src/uncategorized/slaveStats.tw
+++ b/src/uncategorized/slaveStats.tw
@@ -114,6 +114,8 @@ slaveName: $activeSlave.slaveName	   /* TODO: figure out why this is being inden
 <br>hears: $activeSlave.hears
 <br>earwear: $activeSlave.earwear
 <br>earImplant: $activeSlave.earImplant
+<br>smells: $activeSlave.smells
+<br>tastes: $activeSlave.tastes
 <br>origHColor: $activeSlave.origHColor
 <br>hColor: $activeSlave.hColor
 <br>pubicHColor: $activeSlave.pubicHColor
diff --git a/src/uncategorized/slaveSummary.tw b/src/uncategorized/slaveSummary.tw
index 6f76429f617a074ca8b46b568085c7e48dc3e7f3..3264fbbead5df3a1047ccceff7770912e09efe57 100644
--- a/src/uncategorized/slaveSummary.tw
+++ b/src/uncategorized/slaveSummary.tw
@@ -10,4 +10,4 @@
 	});
 	quickListBuildLinks();
 });>>
-<<set $activeSlave = 0, _Slave = 0>>
+<<set _Slave = 0>>
diff --git a/src/uncategorized/surgeryDegradation.tw b/src/uncategorized/surgeryDegradation.tw
index b43a18f78a6bea8b2c4c93653fe79f49d52940cb..78a17b6f2797c7ca87345288e0eb45d82d0cec3a 100644
--- a/src/uncategorized/surgeryDegradation.tw
+++ b/src/uncategorized/surgeryDegradation.tw
@@ -27,7 +27,7 @@
 
 <<set _slaveDevotion = $activeSlave.devotion>>
 
-<<if ($activeSlave.health < random(-100,-80)) && !["braces", "removeBraces", "basicPLimbs", "sexPLimbs", "beautyPLimbs", "combatPLimbs", "cyberPLimbs", "insemination", "chem castrate", "body hair removal", "hair removal", "eyebrow removal"].includes($surgeryType)>>
+<<if ($activeSlave.health < random(-100,-80)) && !["basicPLimbs", "beautyPLimbs", "body hair removal", "braces", "chem castrate", "combatPLimbs", "cyberPLimbs", "eyebrow removal", "hair removal", "insemination", "removeBraces", "sexPLimbs"].includes($surgeryType)>>
 	$activeSlave.slaveName @@.red;has died from complications of surgery.@@
 	<<if $surgeryType == "ocular implant">>At least the ocular implants are still good.<<set $stockpile.ocularImplant++>><</if>>
 	<<if $surgeryType == "cochlear implant">>At least the cochlear implants are still good.<<set $stockpile.cochlearImplant++>><</if>>
@@ -464,6 +464,60 @@ As the remote surgery's long recovery cycle completes,
 		<<set $activeSlave.trust -= 20, $activeSlave.devotion -= 20>>
 	<</if>>
 
+<<case "desmell">>
+	The nasal surgery is brief, with @@.red;nothing more than minor health effects.@@ In the sterile environment of the autosurgery, $he's unable to notice any impairment to $his sense of smell, and so must wait to discover the change when $he's released much later on.
+	<<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>>
+		<<if ($activeSlave.devotion > 50)>>
+			When $he finally figures it out, $he begins to cry, not understanding why it's necessary that $he be unable to smell. After a few sniffles, $he carries on.
+		<<elseif ($activeSlave.devotion > 20)>>
+			When $he finally figures it out, $he begins to tear up, not understanding what $he did to earn this. After a short expurgation of @@.gold;sadness and fear,@@ $he takes a deep breath and suppresses $his emotions.
+			<<set $activeSlave.trust -= 10>>
+		<<else>>
+			When $he realizes what's happened, $his face @@.mediumorchid;fills with anger.@@ $he views this as another pointless way to assert your authority over $him. After briefly @@.gold;shuddering with fear@@ at that thought, $he morosely returns to $his duties.
+			<<set $activeSlave.trust -= 4, $activeSlave.devotion -= 4>>
+		<</if>>
+	<</if>>
+
+<<case "resmell">>
+	The nasal surgery is brief, with @@.red;nothing more than minor health effects.@@ In the sterile environment of the autosurgery, $he's unable to notice any improvement to $his sense of smell, and so must wait to discover the change when $he's released much later on.
+	<<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>>
+		<<set $activeSlave.devotion += 15, $activeSlave.trust += 15>>
+		<<if ($activeSlave.devotion > 50)>>
+			$He loved you before, but $he's @@.hotpink;still grateful,@@ and maybe even a bit @@.mediumaquamarine;more trusting,@@ too.
+		<<elseif ($activeSlave.devotion > 20)>>
+			$He accepted you as $his owner before, but $he's @@.hotpink;still grateful,@@ and maybe even a bit @@.mediumaquamarine;more trusting,@@ too.
+		<<else>>
+			$He hardly knows what to make of this present from someone $he hates, and questions if the gift conceals some sort of snare. After a while, though, $he accepts that you @@.hotpink;did help $him,@@ and, perhaps, @@.mediumaquamarine;might be trustworthy.@@
+		<</if>>
+	<</if>>
+
+<<case "detaste">>
+	The oral surgery is brief, with @@.red;nothing more than minor health effects.@@ In the sterile environment of the autosurgery, $he's unable to notice any impairment to $his sense of taste, and so must wait to discover the change when $he's released much later on.
+	<<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>>
+		<<if ($activeSlave.devotion > 50)>>
+			When $he finally figures it out, $he begins to cry, not understanding why it's necessary that $he be unable to taste. After a few sniffles, $he carries on.
+		<<elseif ($activeSlave.devotion > 20)>>
+			When $he finally figures it out, $he begins to tear up, not understanding what $he did to earn this. After a short expurgation of @@.gold;sadness and fear,@@ $he takes a deep breath and suppresses $his emotions.
+			<<set $activeSlave.trust -= 10>>
+		<<else>>
+			When $he realizes what's happened, $his face @@.mediumorchid;fills with anger.@@ $he views this as another pointless way to assert your authority over $him. After briefly @@.gold;shuddering with fear@@ at that thought, $he morosely returns to $his duties.
+			<<set $activeSlave.trust -= 4, $activeSlave.devotion -= 4>>
+		<</if>>
+	<</if>>
+	
+<<case "retaste">>
+	The oral surgery is brief, with @@.red;nothing more than minor health effects.@@ In the sterile environment of the autosurgery, $he's unable to notice any improvement to $his sense of taste, and so must wait to discover the change when $he's released much later on.
+	<<if $activeSlave.fetish != "mindbroken" && $activeSlave.fuckdoll == 0>>
+		<<set $activeSlave.devotion += 15, $activeSlave.trust += 15>>
+		<<if ($activeSlave.devotion > 50)>>
+			$He loved you before, but $he's @@.hotpink;still grateful,@@ and maybe even a bit @@.mediumaquamarine;more trusting,@@ too.
+		<<elseif ($activeSlave.devotion > 20)>>
+			$He accepted you as $his owner before, but $he's @@.hotpink;still grateful,@@ and maybe even a bit @@.mediumaquamarine;more trusting,@@ too.
+		<<else>>
+			$He hardly knows what to make of this present from someone $he hates, and questions if the gift conceals some sort of snare. After a while, though, $he accepts that you @@.hotpink;did help $him,@@ and, perhaps, @@.mediumaquamarine;might be trustworthy.@@
+		<</if>>
+	<</if>>
+
 <<case "horn">>
 	<<if $activeSlave.fetish == "mindbroken">>
 		$He shows little reaction to $his new head ornamentation. As with all invasive surgery @@.red;$his health has been affected.@@
@@ -870,7 +924,7 @@ As the remote surgery's long recovery cycle completes,
 	<<if $activeSlave.fetish == "mindbroken">>
 		$He notices almost immediately that $his breasts feel fuller, gasping as milk begins to leak from $his nipples. As with all surgery @@.red;$his health has been slightly affected.@@
 	<<elseif ($activeSlave.devotion > 50)>>
-		<<if $activeSlave.amp != 1>>$He hefts $his swollen breasts experimentally and turns to you with a smile to show them off. As $he does, a drop of milk drips from a nipple and $he gasps in surprise. $He's shocked, but after tasting $his own milk experimentally $he <<if canSee($activeSlave)>>looks<<else>>smiles<</if>> at you shyly and gently teases some more milk out of $himself. The resulting stream of cream is bountiful and $he giggles happily.<<else>>As you carry $him out of the surgery, droplets of milk begin to bud from $his nipples, and $he giggles giddily.<</if>> @@.hotpink;$He's happy with your changes to $his boobs.@@ As with all surgery @@.red;$his health has been slightly affected.@@
+		<<if $activeSlave.amp != 1>>$He hefts $his swollen breasts experimentally and turns to you with a smile to show them off. As $he does, a drop of milk drips from a nipple and $he gasps in surprise. $He's shocked, but after <<if canTaste($activeSlave)>>tasting<<else>>licking up<</if>> $his own milk experimentally $he <<if canSee($activeSlave)>>looks<<else>>smiles<</if>> at you shyly and gently teases some more milk out of $himself. The resulting stream of cream is bountiful and $he giggles happily.<<else>>As you carry $him out of the surgery, droplets of milk begin to bud from $his nipples, and $he giggles giddily.<</if>> @@.hotpink;$He's happy with your changes to $his boobs.@@ As with all surgery @@.red;$his health has been slightly affected.@@
 		<<set $activeSlave.devotion += 4>>
 	<<elseif ($activeSlave.devotion >= -20)>>
 		<<if $activeSlave.amp != 1>><<if canSee($activeSlave)>>$He eyes $his swollen breasts skeptically<<else>>$He is skeptical of the how swollen $his breasts feel<</if>>. $He's still sore, so $he doesn't touch them. Even so, a drop of milk drips from a nipple and $he gasps in surprise. $He's shocked, but after a few experimental pokes and rubs at $himself $he seems to understand that $he's a lactation slave now, and that's how it is.<<else>>As you carry $him out of the surgery, droplets of milk begin to bud from $his nipples. $He's shocked, but $he seems to understand that $he's a lactation slave now, and that's how it is.<</if>> $He isn't much affected mentally. As with all surgery @@.red;$his health has been slightly affected.@@ $He is @@.gold;sensibly fearful@@ of your total power over $his body.
diff --git a/src/uncategorized/toychest.tw b/src/uncategorized/toychest.tw
index 3ebe368952819dc10772c7fe49982d8776c3d101..7ffc433c9df9a016f42a57f286c7f4e11bf477bb 100644
--- a/src/uncategorized/toychest.tw
+++ b/src/uncategorized/toychest.tw
@@ -8,7 +8,7 @@
 <<if $slaves[$i].fuckdoll > 0>>
 	is waiting for use nearby.
 <<elseif $slaves[$i].fetish == "mindbroken">>
-	<<if $slaves[$i].career == "a breeding bull" && isPlayerFertile($PC) && canPenetrate($slaves[$i])>>
+	<<if canSmell($slaves[$i]) && $slaves[$i].career == "a breeding bull" && isPlayerFertile($PC) && canPenetrate($slaves[$i])>>
 		is rock hard and sniffing the air.
 	<<else>>
 		is waiting dumbly nearby.
diff --git a/src/uncategorized/universalRules.tw b/src/uncategorized/universalRules.tw
index 471dd334a3a0ee78c68d75c5eac40e1eda47dca4..b5e3434a71ef2fcd4cd05f975a2391a584a1f9f4 100644
--- a/src/uncategorized/universalRules.tw
+++ b/src/uncategorized/universalRules.tw
@@ -155,7 +155,7 @@ Upon birth slave babies will be sent to $DefaultBirthDestination.
 			//Will require a <<print cashFormat(50)>> donation per week once enrollment begins//
 		<</if>>
 	<</if>>
-	<br>//Children reserved for the incubator or any other pre-assigned fate e.g the elites or the nursery will not be affected//
+	<br>//Children reserved for the incubator or any other pre-assigned fate (e.g. the elites or the nursery) will not be affected//
 
 <</if>>/*Closes seePreg check*/
 <br><br>
diff --git a/src/utility/birthWidgets.tw b/src/utility/birthWidgets.tw
index 280d54aaa549c3ce03609fe5846e12a2dafb3269..f1c08d693138db1ff0b38c9741f760e47d82be2a 100644
--- a/src/utility/birthWidgets.tw
+++ b/src/utility/birthWidgets.tw
@@ -128,7 +128,7 @@
 			<<set _roll = random(0, _animals.length)>>
 			$He shows no interest in $his coming birth as $he continues being rutted by a <<print _animals[_roll].species>>, so <<if $Farmer > 0>>$Farmer.name<<else>>another slave<</if>> has to pull the animal off of $him and drag $him into the nearest birthing stall. $He also shows almost no reaction when $his child<<if $slaves[$i].pregType > 1>>ren<</if>> begin<<if $slaves[$i].pregType <= 1>>s<</if>> to come out, or when $he is subsequently hosed off before being led back to $farmyardName.
 		<<else>>
-			$He shows no interest in $his coming birth as $he continues <<print either("loading hay bales", "pulling weeds", "milking a cow")>>, until $his contractions become so strong that $he collapses to $his knees. <<if $Farmer > 0>>$Farmer.name<<else>>Another slave<</if>> is at $his side in an instant, pulling $him to $his feet and into a birthing stall. $He also shows almost no reaction when $his child<<if $slaves[$i].pregType > 1>>ren<</if>> begin<<if $slaves[$i].pregType <= 1>>s<</if>> to come out, or when $he is subsequently hosed off before being led back to $farmyardName.
+			$He shows no interest in $his coming birth as $he continues <<print either("loading hay bales", "milking a cow", "pulling weeds")>>, until $his contractions become so strong that $he collapses to $his knees. <<if $Farmer > 0>>$Farmer.name<<else>>Another slave<</if>> is at $his side in an instant, pulling $him to $his feet and into a birthing stall. $He also shows almost no reaction when $his child<<if $slaves[$i].pregType > 1>>ren<</if>> begin<<if $slaves[$i].pregType <= 1>>s<</if>> to come out, or when $he is subsequently hosed off before being led back to $farmyardName.
 		<</if>>
 	<<else>>
 		<<if $farmyardShows == 1>>
@@ -540,8 +540,8 @@
 	//This needs a description//
 
 <<case "learn in the schoolroom">>
-		$He is placed on special seat at the front of the class and stripped. $He is being used as a learning aid in this lesson. Blushing strongly, $he begins working on birthing $his bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>, fully aware of the rapt attention of the other students. $His child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a cleaning and fresh change of clothes, $he is carried back to $his seat. $He can't help but <<if canSee($slaves[$i])>>notice some of the detailed notes the class took on $his genitals<<else>>overhear the descriptions of $his <<if $slaves[$i].mpreg == 1>>asshole<<else>>vagina<</if>> being passed between $his peers<</if>>.
-		<<set $humiliation = 1>>
+	$He is placed on special seat at the front of the class and stripped. $He is being used as a learning aid in this lesson. Blushing strongly, $he begins working on birthing $his bab<<if $slaves[$i].pregType > 1>>ies<<else>>y<</if>>, fully aware of the rapt attention of the other students. $His child<<if $slaves[$i].pregType > 1>>ren are<<else>> is<</if>> promptly taken and, following a cleaning and fresh change of clothes, $he is carried back to $his seat. $He can't help but <<if canSee($slaves[$i])>>notice some of the detailed notes the class took on $his genitals<<else>>overhear the descriptions of $his <<if $slaves[$i].mpreg == 1>>asshole<<else>>vagina<</if>> being passed between $his peers<</if>>.
+	<<set $humiliation = 1>>
 
 <<case "take classes">>
 	Or $he would have been, had <<if $assistantName == "your personal assistant">>your personal assistant<<else>>$assistantName<</if>> allowed it. Since $he can't leave the lesson, $he tries $his best to hold back the upcoming birth, not without your assistant noticing. As punishment for poor planning, $he is forbidden from leaving. Additionally, $his birth will be turned into a live broadcast.
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 7fadd54063599e04bbce99d8bf58d826f08d17a3..9f08b9cb8ced8c6c4b741060b0836609650e7a81 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -1008,39 +1008,39 @@
 $His
 <<if $activeSlave.boobs < 300>><<print either("androgynous", "flat")>> breasts are practically non-existent.
 <<elseif $activeSlave.boobs < 400>><<print either("pointy", "tiny")>> breasts<<if $showBoobCCs == 1>>, <<print $activeSlave.boobs>> CCs each,<</if>> would only fill A-cups.
-<<elseif $activeSlave.boobs < 500>><<print either("perky", "small")>> <<print either("tits", "breasts", "boobs", "bosoms")>><<if $showBoobCCs == 1>>, <<print $activeSlave.boobs>> CCs each,<</if>> would fill B-cups.
-<<elseif $activeSlave.boobs < 650>><<print either("healthy", "curved")>> <<print either("tits", "breasts", "boobs", "bosoms")>><<if $showBoobCCs == 1>>, <<print $activeSlave.boobs>> CCs each,<</if>> would fill C-cups.
-<<elseif $activeSlave.boobs < 800>><<print either("big", "sizable")>> <<print either("tits", "breasts", "boobs", "bosoms")>><<if $showBoobCCs == 1>>, <<print $activeSlave.boobs>> CCs each,<</if>> would fill D-cups.
-<<elseif $activeSlave.boobs < 1000>><<print either("large", "big")>> <<print either("tits", "breasts", "boobs", "bosoms")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill DD-cups.
-<<elseif $activeSlave.boobs < 1200>><<print either("proud", "hefty")>> <<print either("tits", "breasts", "mammaries", "udders", "boobs")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill F-cups.
-<<elseif $activeSlave.boobs < 1400>><<print either("hefty", "huge")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill G-cups.
-<<elseif $activeSlave.boobs < 1600>><<print either("massive", "huge")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill H-cups.
-<<elseif $activeSlave.boobs < 1800>><<print either("enormous", "massive")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill I-cups.
-<<elseif $activeSlave.boobs < 2050>><<print either("titanic", "enormous")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill J-cups.
-<<elseif $activeSlave.boobs < 2300>><<print either("stupendous", "titanic")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill K-cups.
-<<elseif $activeSlave.boobs < 2600>><<print either("magnificent", "stupendous")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill L-cups.
-<<elseif $activeSlave.boobs < 2900>><<print either("impressive", "magnificent")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill M-cups.
-<<elseif $activeSlave.boobs < 3250>><<print either("awe-inspiring", "impressive")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill N-cups.
-<<elseif $activeSlave.boobs < 3600>><<print either("absurd", "awe-inspiring")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill O-cups.
-<<elseif $activeSlave.boobs < 3950>><<print either("disproportionate", "attention-grabbing")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill P-cups.
-<<elseif $activeSlave.boobs < 4300>><<print either("shocking", "massive")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill Q-cups.
-<<elseif $activeSlave.boobs < 4700>><<print either("striking", "jaw-dropping")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill R-cups.
+<<elseif $activeSlave.boobs < 500>><<print either("perky", "small")>> <<print either("boobs", "bosoms", "breasts", "tits")>><<if $showBoobCCs == 1>>, <<print $activeSlave.boobs>> CCs each,<</if>> would fill B-cups.
+<<elseif $activeSlave.boobs < 650>><<print either("curved", "healthy")>> <<print either("boobs", "bosoms", "breasts", "tits")>><<if $showBoobCCs == 1>>, <<print $activeSlave.boobs>> CCs each,<</if>> would fill C-cups.
+<<elseif $activeSlave.boobs < 800>><<print either("big", "sizable")>> <<print either("boobs", "bosoms", "breasts", "tits")>><<if $showBoobCCs == 1>>, <<print $activeSlave.boobs>> CCs each,<</if>> would fill D-cups.
+<<elseif $activeSlave.boobs < 1000>><<print either("big", "large")>> <<print either("boobs", "bosoms", "breasts", "tits")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill DD-cups.
+<<elseif $activeSlave.boobs < 1200>><<print either("hefty", "proud")>> <<print either("tits", "breasts", "mammaries", "udders", "boobs")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill F-cups.
+<<elseif $activeSlave.boobs < 1400>><<print either("hefty", "huge")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill G-cups.
+<<elseif $activeSlave.boobs < 1600>><<print either("huge", "massive")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill H-cups.
+<<elseif $activeSlave.boobs < 1800>><<print either("enormous", "massive")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill I-cups.
+<<elseif $activeSlave.boobs < 2050>><<print either("enormous", "titanic")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill J-cups.
+<<elseif $activeSlave.boobs < 2300>><<print either("stupendous", "titanic")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill K-cups.
+<<elseif $activeSlave.boobs < 2600>><<print either("magnificent", "stupendous")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill L-cups.
+<<elseif $activeSlave.boobs < 2900>><<print either("impressive", "magnificent")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill M-cups.
+<<elseif $activeSlave.boobs < 3250>><<print either("awe-inspiring", "impressive")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill N-cups.
+<<elseif $activeSlave.boobs < 3600>><<print either("absurd", "awe-inspiring")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill O-cups.
+<<elseif $activeSlave.boobs < 3950>><<print either("attention-grabbing", "disproportionate")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill P-cups.
+<<elseif $activeSlave.boobs < 4300>><<print either("massive", "shocking")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill Q-cups.
+<<elseif $activeSlave.boobs < 4700>><<print either("jaw-dropping", "striking")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill R-cups.
 <<elseif $activeSlave.boobs < 5000+($activeSlave.muscles*10) && $activeSlave.physicalAge <= 3>>
 	<<if ($activeSlave.amp == 1)>>
-		<<print either("tremendous", "astounding")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill S-cups and are so large that $he might not be able to walk, if $he still had legs.
+		<<print either("astounding", "tremendous")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill S-cups and are so large that $he might not be able to walk, if $he still had legs.
 	<<elseif ($activeSlave.muscles > 5)>>
-		<<print either("tremendous", "astounding")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill S-cups and are so large that $his <<if $activeSlave.muscles > 95>>shredded<<elseif $activeSlave.muscles > 30>>rippling<<else>>toned<</if>> back muscles get a workout just from supporting them. If they grow any larger, $he may not be able to walk.
+		<<print either("astounding", "tremendous")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill S-cups and are so large that $his <<if $activeSlave.muscles > 95>>shredded<<elseif $activeSlave.muscles > 30>>rippling<<else>>toned<</if>> back muscles get a workout just from supporting them. If they grow any larger, $he may not be able to walk.
 	<<else>>
-		<<print either("tremendous", "astounding")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill S-cups and are so large that $he can barely stand. If they grow any larger, $he may not be able to walk.
+		<<print either("astounding", "tremendous")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill S-cups and are so large that $he can barely stand. If they grow any larger, $he may not be able to walk.
 	<</if>>
-<<elseif $activeSlave.boobs < 5100>><<print either("tremendous", "astounding")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill S-cups.
-<<elseif $activeSlave.boobs < 5500>><<print either("frightening", "unmissable")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill T-cups.
-<<elseif $activeSlave.boobs < 6000>><<print either("unmissable", "attention-grabbing")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill U-cups.
-<<elseif $activeSlave.boobs < 6500>><<print either("attention-grabbing", "spectacular")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill V-cups.
-<<elseif $activeSlave.boobs < 7000>><<print either("spectacular", "obviously engineered")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill W-cups.
-<<elseif $activeSlave.boobs < 7500>><<print either("obviously engineered", "disproportionate")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill X-cups.
-<<elseif $activeSlave.boobs < 8000>><<print either("disproportionate", "nearly inhuman")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill Y-cups.
-<<elseif $activeSlave.boobs < 8500>><<print either("nearly inhuman", "nearly alien")>> <<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill Z-cups.
+<<elseif $activeSlave.boobs < 5100>><<print either("astounding", "tremendous")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill S-cups.
+<<elseif $activeSlave.boobs < 5500>><<print either("frightening", "unmissable")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill T-cups.
+<<elseif $activeSlave.boobs < 6000>><<print either("attention-grabbing", "unmissable")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill U-cups.
+<<elseif $activeSlave.boobs < 6500>><<print either("attention-grabbing", "spectacular")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill V-cups.
+<<elseif $activeSlave.boobs < 7000>><<print either("obviously engineered", "spectacular")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill W-cups.
+<<elseif $activeSlave.boobs < 7500>><<print either("disproportionate", "obviously engineered")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill X-cups.
+<<elseif $activeSlave.boobs < 8000>><<print either("disproportionate", "nearly inhuman")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill Y-cups.
+<<elseif $activeSlave.boobs < 8500>><<print either("nearly alien", "nearly inhuman")>> <<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> would fill Z-cups.
 <<elseif $activeSlave.boobs < 10000+($activeSlave.muscles*20) && $activeSlave.physicalAge <= 12>>
 	<<if ($activeSlave.amp == 1)>>
 		<<print either("boobs", "breasts", "mammaries", "udders")>> have <<if $activeSlave.boobsImplant>>been altered<<else>>grown<</if>> past any pretense of proportion.<<if $showBoobCCs == 1>> At <<print commaNum($activeSlave.boobs)>> CCs each, they<<else>> They<</if>> are so large that $he might not be able to walk, if $he still had legs.
@@ -1057,7 +1057,7 @@ $His
 	<<else>>
 		<<print either("boobs", "breasts", "mammaries", "udders")>> have <<if $activeSlave.boobsImplant>>been altered<<else>>grown<</if>> past any pretense of proportion.<<if $showBoobCCs == 1>> At <<print commaNum($activeSlave.boobs)>> CCs each, they<<else>> They<</if>> are so large that $he can barely stand. If they grow any larger, $he may not be able to walk.
 	<</if>>
-<<elseif $activeSlave.boobs < 20000>><<print either("tits", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> have <<if $activeSlave.boobsImplant>>been altered<<else>>grown<</if>> past any pretense of proportion.
+<<elseif $activeSlave.boobs < 20000>><<print either("breasts", "mammaries", "tits", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> have <<if $activeSlave.boobsImplant>>been altered<<else>>grown<</if>> past any pretense of proportion.
 <<elseif $activeSlave.boobs < 30000+($activeSlave.muscles*100) && $activeSlave.physicalAge >= 18>>
 	<<if $activeSlave.amp == 1>>
 		<<print either("boobs", "breasts", "mammaries", "udders")>><<if $showBoobCCs == 1>>, <<print commaNum($activeSlave.boobs)>> CCs each,<</if>> are so large that $he might not be able to walk, if $he still had legs.
@@ -1255,7 +1255,7 @@ $His
 
 <<if $showBodyMods == 1>>
 	<<if $activeSlave.fuckdoll == 0>>
-		<<if ($activeSlave.brand != 0) && ["left breast", "right breast", "breasts"].includes($activeSlave.brandLocation)>>
+		<<if ($activeSlave.brand != 0) && ["breasts", "left breast", "right breast"].includes($activeSlave.brandLocation)>>
 			<<brandDescription>>
 		<</if>>
 	<</if>>
@@ -2343,22 +2343,22 @@ $He's got a
 <<if $activeSlave.butt <= 1>>
 	flat and
 	<<if $arcologies[0].FSSlimnessEnthusiast > 20 && $arcologies[0].FSHedonisticDecadence == "unset">>
-		<<print either("fashionable", "attractive", "enticing")>>
+		<<print either("attractive", "enticing", "fashionable")>>
 	<<else>>
 		<<print either("skinny", "slim", "taut")>>
 	<</if>>
 	ass.
 <<elseif $activeSlave.butt <= 2>>
 	<<if $arcologies[0].FSSlimnessEnthusiast > 20 && $arcologies[0].FSHedonisticDecadence == "unset">>
-		<<print either("fashionable", "small and enticing", "sleek and attractive")>>
+		<<print either("fashionable", "sleek and attractive", "small and enticing")>>
 	<<else>>
 		<<print either("small, sleek", "small but rounded", "rounded, small")>>
 	<</if>>
 	rear end.
 <<elseif $activeSlave.butt <= 3>><<print either("big and healthy", "curved and plump", "healthy and plump")>> derrière.
-<<elseif $activeSlave.butt <= 4>><<print either("juicy and large", "big bubble", "curvy and enticing")>> butt.
-<<elseif $activeSlave.butt <= 5>><<print either("juicy and huge", "huge", "massive and undeniable")>> rear end.
-<<elseif $activeSlave.butt <= 6>><<print either("truly massive", "enormous")>> posterior.
+<<elseif $activeSlave.butt <= 4>><<print either("big bubble", "curvy and enticing", "juicy and large")>> butt.
+<<elseif $activeSlave.butt <= 5>><<print either("huge", "juicy and huge", "massive and undeniable")>> rear end.
+<<elseif $activeSlave.butt <= 6>><<print either("enormous", "truly massive")>> posterior.
 <<elseif $activeSlave.butt <= 7>><<print either("gigantic", "titanic")>> ass.
 <<elseif $activeSlave.butt <= 10>><<print either("gigantic", "titanic")>> ass.
 	<<if ($activeSlave.assignment == "work in the dairy") && ($dairyStimulatorsSetting > 1)>> It's so big it jiggles as the machine rapes $his asshole.
@@ -2557,8 +2557,8 @@ $He's got a
 <<if $activeSlave.anus == 0>>
 	$He is an @@.lime;anal virgin;@@ $his asshole is fresh and tight.
 <<elseif $activeSlave.anus == 1>>
-	<<set _ass = either("anal opening", "anus", "butthole", "asshole")>>
-	$His _ass is <<set _ass = either("very", "nice and")>>_ass tight,
+	<<set _ass = either("anal opening", "anus", "asshole", "butthole")>>
+	$His _ass is <<set _ass = either("nice and", "very")>>_ass tight,
 	<<if $activeSlave.analArea-$activeSlave.anus > 3>>
 		but it's surrounded by a massive oval of $analSkinDesc $skinDesc skin that runs from $his tailbone all the way down to the <<if $activeSlave.vagina > -1>>bottom of $his pussy<<else>>base of $his cock<</if>>.
 	<<elseif $activeSlave.analArea-$activeSlave.anus > 2>>
@@ -2566,12 +2566,12 @@ $He's got a
 	<<elseif $activeSlave.analArea-$activeSlave.anus > 1>>
 		but it's surrounded by a big ring of $analSkinDesc $skinDesc skin.
 	<<elseif $activeSlave.analArea-$activeSlave.anus > 0>>
-		and it's surrounded by a cute <<set _ass = either("rosebud", "pucker", "ring")>>_ass of $skinDesc skin.
+		and it's surrounded by a cute <<set _ass = either("pucker", "ring", "rosebud")>>_ass of $skinDesc skin.
 	<<else>>
 		and the $skinDesc skin around it is stretched smooth, since it's been deflowered only recently.
 	<</if>>
 <<elseif $activeSlave.anus == 2>>
-	<<set _ass = either("anal opening", "anus", "butthole", "asshole", "asspussy")>>
+	<<set _ass = either("anal opening", "anus", "asshole", "asspussy", "butthole")>>
 	$His _ass is <<if $activeSlave.analArea-$activeSlave.anus > 1>>only <</if>><<set _ass = either("relaxed", "loose", "accommodating")>>_ass,
 	<<if $activeSlave.analArea-$activeSlave.anus > 2>>
 		but it's surrounded by a massive oval of $analSkinDesc $skinDesc skin that runs from $his tailbone all the way down to the <<if $activeSlave.vagina > -1>>bottom of $his pussy<<else>>base of $his cock<</if>>.
@@ -2583,8 +2583,8 @@ $He's got a
 		and the $skinDesc skin around it is stretched smooth, suggesting it's getting used to being this way.
 	<</if>>
 <<elseif $activeSlave.anus == 3>>
-	<<set _ass = either("anal opening", "anus", "butthole", "asshole", "asspussy")>>
-	$His _ass is a <<set _ass = either("relaxed", "loose", "welcoming", "lewd")>>_ass slit,
+	<<set _ass = either("anal opening", "anus", "asshole", "asspussy", "butthole")>>
+	$His _ass is a <<set _ass = either("lewd", "loose", "relaxed", "welcoming")>>_ass slit,
 	<<if $activeSlave.analArea-$activeSlave.anus > 1>>
 		and it's surrounded by a massive oval of $analSkinDesc $skinDesc skin that runs from $his tailbone all the way down to the <<if $activeSlave.vagina > -1>>bottom of $his pussy<<else>>base of $his cock<</if>>.
 	<<elseif $activeSlave.analArea-$activeSlave.anus > 0>>
@@ -2593,8 +2593,8 @@ $He's got a
 		and the $skinDesc skin around it is stretched smooth, suggesting $he's getting used to having such a cock-hungry rear fuckhole.
 	<</if>>
 <<else>>
-	<<set _ass = either("anal opening", "anus", "butthole", "asshole", "asspussy", "anal slit")>>
-	$His _ass is a <<set _ass = either("relaxed", "loose", "permanent", "open")>>_ass gape,
+	<<set _ass = either("anal opening", "anal slit", "anus", "asshole", "asspussy", "butthole")>>
+	$His _ass is a <<set _ass = either("loose", "open", "permanent", "relaxed")>>_ass gape,
 	<<if $activeSlave.analArea-$activeSlave.anus > 0>>
 		and it's surrounded by a massive oval of $skinDesc skin that runs from $his tailbone all the way down to the <<if $activeSlave.vagina > -1>>bottom of $his pussy<<else>>base of $his cock<</if>>.
 	<<else>>
@@ -3860,7 +3860,7 @@ $He's got a
 			$His huge pregnancy puts pressure on $his prostate at all times, leaving $him fully erect and trailing cum.
 		<<elseif ($activeSlave.assignment == "work in the dairy") && ($dairyStimulatorsSetting > 1) && canAchieveErection($activeSlave)>>
 			<<if ($activeSlave.dick > 8)>>
-				$He's soft despite the drugs ejaculated by the dildo up $his asshole, since $his cock is too huge to ever become hard. The soft monstrosity simply exists to gush cum into a catchbasin.
+				$He's soft despite the drugs ejaculated by the dildo up $his asshole, since $his cock is too huge to ever become hard. The soft monstrosity simply exists to gush cum into a catch basin.
 			<<elseif ($activeSlave.dick > 6)>>
 				$He's only half hard despite the drugs ejaculated by the dildo up $his asshole, and $he must feel very faint, since even that requires much of $his blood volume.
 			<<else>>
@@ -4814,7 +4814,7 @@ $He's got a
 			<</if>>
 		<<elseif ($activeSlave.vaginaLube < 2)>>
 			<<if ($activeSlave.assignment == "work in the dairy") && ($dairyPregSetting > 1)>>
-				The dildo's ejaculate includes a drug that causes copious, constant vaginal lubrication, allowing it to fuck $him despite its giant size. The excess female fluid drips off $him and into a catchbasin.
+				The dildo's ejaculate includes a drug that causes copious, constant vaginal lubrication, allowing it to fuck $him despite its giant size. The excess female fluid drips off $him and into a catch basin.
 			<<elseif ($activeSlave.aphrodisiacs > 0) || ($activeSlave.inflationType == "aphrodisiac")>>
 				The aphrodisiacs have them <<if ($activeSlave.aphrodisiacs > 1) || ($activeSlave.inflationType == "aphrodisiac" && $activeSlave.inflation >= 2)>>sopping <</if>>wet.
 			<<elseif ($activeSlave.energy > 95)>>
@@ -4858,7 +4858,7 @@ $He's got a
 			<</if>>
 		<<else>>
 			<<if ($activeSlave.assignment == "work in the dairy") && ($dairyPregSetting > 1)>>
-				The dildo's ejaculate includes a drug that encourages vaginal lubrication, which is having a drastic effect on $him, since $he's already very gifted in that regard. The dildo makes a wet noise every time it thrusts into $him, and femcum streams into a catchbasin beneath $him. The smell of pussy is overwhelming.
+				The dildo's ejaculate includes a drug that encourages vaginal lubrication, which is having a drastic effect on $him, since $he's already very gifted in that regard. The dildo makes a wet noise every time it thrusts into $him, and femcum streams into a catch basin beneath $him. The smell of pussy is overwhelming.
 			<<elseif ($activeSlave.aphrodisiacs > 0) || ($saleDescription == 1 && $gingering == "vasodilator") || ($activeSlave.inflationType == "aphrodisiac")>>
 				The combination of the aphrodisiacs and $his natural tendency to produce a lot of female lubricant is having a drastic effect. $His cunt is absolutely beribboned with femcum, and $he smells strongly of wet, clean pussy.
 			<<elseif ($activeSlave.energy > 95)>>
@@ -5229,7 +5229,7 @@ $He's got a
 <<widget "eyeDescription">>
 
 <<if $activeSlave.eyes == -2>>
-	<<if $activeSlave.geneticQuirks.heterochromia != 0 && $activeSlave.geneticQuirks.heterochromia != 1 && $activeSlave.geneticQuirks.heterochromia != $activeSlave.origEye>><<set _heterochromia = 1>><<else>><<set _heterochromia = 0>><</if>>
+	<<if hasVisibleHeterochromia($activeSlave)>><<set _heterochromia = 1>><<else>><<set _heterochromia = 0>><</if>>
 	<<if $activeSlave.eyeColor != "empty">>
 		$His eyes are dull<<if $saleDescription == 1 && ($PC.medicine >= 50 || $PC.slaving >= 50)>>, unfocused<<if _heterochromia == 1>>, heterochromatic,<</if>> and clearly nonfunctional<<else>><<if _heterochromia == 1>>, heterochromatic,<</if>> and unfocused<</if>>,
 	<<else>>
@@ -5362,7 +5362,8 @@ $He's got a
 <</widget>>
 
 /* to simplify heterochromia */
-<<widget "eyeColor">><<if def $args[0]>><<if $args[0].geneticQuirks.heterochromia != 0 && $args[0].geneticQuirks.heterochromia != 1 && $args[0].geneticQuirks.heterochromia != $args[0].origEye>>heterochromatic $args[0].eyeColor and $args[0].geneticQuirks.heterochromia<<else>>$args[0].eyeColor<</if>><<else>><<if $activeSlave.geneticQuirks.heterochromia != 0 && $activeSlave.geneticQuirks.heterochromia != 1 && $activeSlave.geneticQuirks.heterochromia != $activeSlave.origEye>>heterochromatic $activeSlave.eyeColor and $activeSlave.geneticQuirks.heterochromia<<else>>$activeSlave.eyeColor<</if>><</if>><</widget>>
+<<widget "eyeColor">><<if def $args[0]>><<if hasVisibleHeterochromia($args[0])>>heterochromatic $args[0].eyeColor and $args[0].geneticQuirks.heterochromia<<else>>$args[0].eyeColor<</if>><<else>><<if hasVisibleHeterochromia($activeSlave)>>heterochromatic $activeSlave.eyeColor and $activeSlave.geneticQuirks.heterochromia<<else>>$activeSlave.eyeColor<</if>>
+<</if>><</widget>>
 
 <<widget "earDescription">>
 /* ear shape description here */
@@ -5390,11 +5391,11 @@ $He's got a
 <<elseif $activeSlave.earShape == "robot">>
 	$He has high tech cyber-ears that could be mistaken for headphones. /*not yet implemented*/
 <<elseif $activeSlave.earShape == "pointy">>
-	$His small, <<print either("pointed", "leaf-shaped", "elfin")>> ears are quite cute and give $him an exotic apearance.
+	$His small, <<print either("elfin", "leaf-shaped", "pointed")>> ears are quite cute and give $him an exotic appearance.
 <<elseif $activeSlave.earShape == "elven">>
-	$He has long, thin elven ears that <<print either("tend to waggle up and down when $he is exicited", "twitch at the slightest touch", "tend to droop when $he is relaxed or sad")>>.
+	$He has long, thin elven ears that <<print either("tend to droop when $he is relaxed or sad", "tend to waggle up and down when $he is excited", "twitch at the slightest touch")>>.
 <<elseif $activeSlave.earShape == "ushi">>
-	$He has long, floppy cow ears. /* that <<print either("tend waggle up and down when $he is exicited", "twitch at the slightest touch", "tend to droop when $he is relaxed or sad")>>. These don't make sense for the most part. */
+	$He has long, floppy cow ears. /* that <<print either("tend to droop when $he is relaxed or sad", "tend waggle up and down when $he is excited", "twitch at the slightest touch")>>. These don't make sense for the most part. */
 <</if>>
 
 <<if $activeSlave.earT == "neko">>
@@ -5407,7 +5408,7 @@ $He's got a
 			sudden noises and
 		<</if>>
 	<</if>>
-	<<print either("twitch at the slightest touch", "tend to droop when $he is relaxed or sad")>>.
+	<<print either("tend to droop when $he is relaxed or sad", "twitch at the slightest touch")>>.
 <<elseif $activeSlave.earT == "inu">>
 	$He has cute, $activeSlave.earTColor dog ears on $his head, they
 	<<if $activeSlave.earImplant == 1>>
@@ -5418,7 +5419,7 @@ $He's got a
 			sudden noises and
 		<</if>>
 	<</if>>
-	<<print either("twitch at the slightest touch", "tend to droop when $he is relaxed or sad")>>.
+	<<print either("tend to droop when $he is relaxed or sad", "twitch at the slightest touch")>>.
 <<elseif $activeSlave.earT == "kit">>
 	$He has elegant, $activeSlave.earTColor fox ears on $his head, they
 	<<if $activeSlave.earImplant == 1>>
@@ -5429,7 +5430,7 @@ $He's got a
 			sudden noises and
 		<</if>>
 	<</if>>
-	<<print either("twitch at the slightest touch", "tend to droop when $he is relaxed or sad")>>.
+	<<print either("tend to droop when $he is relaxed or sad", "twitch at the slightest touch")>>.
 <<elseif $activeSlave.earT == "tanuki">>
 	$He has adorable, $activeSlave.earTColor, round tanuki ears on $his head; they
 	<<if $activeSlave.earImplant == 1>>
@@ -5440,7 +5441,7 @@ $He's got a
 			sudden noises and
 		<</if>>
 	<</if>>
-	<<print either("twitch at the slightest touch", "tend to droop when $he is relaxed or sad")>>.
+	<<print either("tend to droop when $he is relaxed or sad", "twitch at the slightest touch")>>.
 <<elseif $activeSlave.earT == "human">>
 	$He has <<if $activeSlave.earShape != "none">>a second set<<else>>a pair<</if>> of non-functioning ears grafted to the top of $his head.
 <</if>>
@@ -5626,6 +5627,9 @@ $His
 		<</if>>
 	<</if>>
 <</if>>
+<<if $activeSlave.smells == -1>>
+	$He has no sense of smell, but this isn't immediately obvious just by looking at $his nose.
+<</if>>
 
 <<if $showBodyMods == 1>>
 	<<if $activeSlave.fuckdoll == 0>>
@@ -5750,6 +5754,9 @@ $He has
 		<</if>>
 	<</if>>
 <</if>>
+<<if $activeSlave.tastes == -1>>
+	$He has no sense of taste, but this isn't immediately obvious just by looking at $his tongue.
+<</if>>
 
 <<if $showBodyMods == 1>>
 	<<lipsPiercingDescription>>
@@ -14024,9 +14031,9 @@ $He has
 				<<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>>
 					$activeSlave.slaveName's dress's belt has been glued to it, rather than try to actually encircle $his giant <<print $activeSlave.inflationType>>-filled belly.
 				<<elseif $activeSlave.bellyImplant > 0>>
-					$activeSlave.slaveName's dress's belt has been glued to it, rather than try to actually encircle $his $his giant implant-filled belly.
+					$activeSlave.slaveName's dress's belt has been glued to it, rather than try to actually encircle $his giant implant-filled belly.
 				<<else>>
-					$activeSlave.slaveName's dress's belt has been glued to it, rather than try to actually encircle $his $his giant pregnant belly.
+					$activeSlave.slaveName's dress's belt has been glued to it, rather than try to actually encircle $his giant pregnant belly.
 				<</if>>
 			<<elseif $activeSlave.belly >= 30000>>
 				<<if $activeSlave.bellyFluid >= $activeSlave.bellyPreg && $activeSlave.bellyFluid >= $activeSlave.bellyImplant>>
@@ -16987,11 +16994,11 @@ $He has
 
 <<if $activeSlave.accent != 0>>
 	<<if $activeSlave.accent == 1>>
-		<<set _accent = either("beautiful", "distinctive", "intriguing", "light", "lovely", "mild", "pleasant", "rich", "slight", "smooth")>>
-		$He speaks $language in a _accent <<if $activeSlave.nationality == "a Cook Islander">>Cook Islander<<elseif $activeSlave.nationality == "a Liechtensteiner">>Liechtensteiner<<elseif $activeSlave.nationality == "a New Zealander">>New Zealander<<elseif $activeSlave.nationality == "a Solomon Islander">>Solomon Islander<<else>>$activeSlave.nationality<</if>> accent<<if $activeSlave.speechRules == "accent elimination">>, which the rules encourage $him to suppress<</if>>.
+		<<set _accent = either("a beautiful", "a distinctive", "an intriguing", "a light", "a lovely", "a mild", "a pleasant", "a rich", "a slight", "a smooth")>>
+		$He speaks $language in _accent <<if $activeSlave.nationality == "a Cook Islander">>Cook Islander<<elseif $activeSlave.nationality == "a Liechtensteiner">>Liechtensteiner<<elseif $activeSlave.nationality == "a New Zealander">>New Zealander<<elseif $activeSlave.nationality == "a Solomon Islander">>Solomon Islander<<else>>$activeSlave.nationality<</if>> accent<<if $activeSlave.speechRules == "accent elimination">>, which the rules encourage $him to suppress<</if>>.
 	<<elseif $activeSlave.accent == 2>>
-		<<set _accent = either("broad", "harsh", "heavy", "marked", "noticeable", "rough", "significant", "stressed", "strong", "thick")>>
-		$He speaks $language in a _accent <<if $activeSlave.nationality == "a Cook Islander">>Cook Islander<<elseif $activeSlave.nationality == "a Liechtensteiner">>Liechtensteiner<<elseif $activeSlave.nationality == "a New Zealander">>New Zealander<<elseif $activeSlave.nationality == "a Solomon Islander">>Solomon Islander<<else>>$activeSlave.nationality<</if>> accent that can be hard to understand<<if $activeSlave.speechRules == "accent elimination">>, and the rules encourage $him to make an effort to suppress it<</if>>.
+		<<set _accent = either("a broad", "a harsh", "a heavy", "an intense", "a marked", "a noticeable", "a rough", "a significant", "a stressed", "a strong", "a thick")>>
+		$He speaks $language in _accent <<if $activeSlave.nationality == "a Cook Islander">>Cook Islander<<elseif $activeSlave.nationality == "a Liechtensteiner">>Liechtensteiner<<elseif $activeSlave.nationality == "a New Zealander">>New Zealander<<elseif $activeSlave.nationality == "a Solomon Islander">>Solomon Islander<<else>>$activeSlave.nationality<</if>> accent that can be hard to understand<<if $activeSlave.speechRules == "accent elimination">>, and the rules encourage $him to make an effort to suppress it<</if>>.
 	<<else>>
 		$He speaks little $language, but understands enough to be given orders.
 	<</if>>
diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw
index b8c90b4416f0cd9c5b6e477d6e59e13e81683fbd..332c39fd64a2c10ea4c1dfdb09e46041161a8585 100644
--- a/src/utility/descriptionWidgetsStyle.tw
+++ b/src/utility/descriptionWidgetsStyle.tw
@@ -5835,7 +5835,7 @@ $His
 	It's agonizingly stretched by a plug so huge $his anus is probably being stretched into a permanent gape.
 		<<if $activeSlave.fuckdoll == 0>>
 			<<if ($activeSlave.fetish == "masochist") && ($activeSlave.fetishKnown == 1) && ($activeSlave.fetishStrength > 60)>>
-				$He's frequently in tears from the pain, which is so sharp it often tips $his over into spontaneous orgasm.
+				$He's frequently in tears from the pain, which is so sharp it often tips $him over into spontaneous orgasm.
 			<<else>>
 				$He spends much of $his time sobbing with anal pain and fear at having $his hole ruined.
 			<</if>>
@@ -5855,7 +5855,7 @@ $His
 	It's agonizingly stretched by a plug so huge it causes $his belly to bulge and is likely stretching $his anus into a permanent gape.
 		<<if $activeSlave.fuckdoll == 0>>
 			<<if ($activeSlave.fetish == "masochist") && ($activeSlave.fetishKnown == 1) && ($activeSlave.fetishStrength > 60)>>
-				$He's frequently in tears from the pain, which is so sharp it often tips $his over into spontaneous orgasm.
+				$He's frequently in tears from the pain, which is so sharp it often tips $him over into spontaneous orgasm.
 			<<else>>
 				$He spends much of $his time sobbing with anal pain and fear at having $his hole ruined.
 			<</if>>
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index fb4a1602590f80199df1033ce0ca7cd51af6cca5..2722431f93d1523d961519c0dc01698ae5963213 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -494,25 +494,7 @@
 %/
 <<widget "OralSkillIncrease">>
 
-<<setLocalPronouns $args[0]>>
-<<if $args[0].oralSkill <= 10>>
-	<<if $args[0].oralSkill+$skillIncrease > 10>>
-		@@.green;$He now has basic knowledge about oral sex,@@ and can at least suck a dick without constant gagging.
-	<</if>>
-<<elseif $args[0].oralSkill <= 30>>
-	<<if $args[0].oralSkill+$skillIncrease > 30>>
-		@@.green;$He now has some oral skills,@@ and can reliably bring dicks and pussies to climax with $his mouth.
-	<</if>>
-<<elseif $args[0].oralSkill <= 60>>
-	<<if $args[0].oralSkill+$skillIncrease > 60>>
-		@@.green;$He is now an oral expert,@@ and has a delightfully experienced tongue.
-	<</if>>
-<<elseif $args[0].oralSkill < 100>>
-	<<if $args[0].oralSkill+$skillIncrease >= 100>>
-		@@.green;$He has mastered oral sex,@@ and can learn nothing more about sucking dick or eating pussy.
-	<</if>>
-<</if>>
-<<set $args[0].oralSkill += $skillIncrease>>
+<<= SkillIncrease.Oral($args[0], $skillIncrease)>>
 
 <</widget>>
 
@@ -523,25 +505,7 @@
 %/
 <<widget "VaginalSkillIncrease">>
 
-<<setLocalPronouns $args[0]>>
-<<if $args[0].vaginalSkill <= 10>>
-	<<if $args[0].vaginalSkill+$skillIncrease > 10>>
-		@@.green;$He now has basic knowledge about vaginal sex,@@ and can avoid some of the common pitfalls and turnoffs.
-	<</if>>
-<<elseif $args[0].vaginalSkill <= 30>>
-	<<if $args[0].vaginalSkill+$skillIncrease > 30>>
-		@@.green;$He now has some vaginal sex skills,@@ and can do more than just lie there and take it.
-	<</if>>
-<<elseif $args[0].vaginalSkill <= 60>>
-	<<if $args[0].vaginalSkill+$skillIncrease > 60>>
-		@@.green;$He is now a vaginal sex expert,@@ and has the muscular control to massage anything that's inside $him.
-	<</if>>
-<<elseif $args[0].vaginalSkill < 100>>
-	<<if $args[0].vaginalSkill+$skillIncrease >= 100>>
-		@@.green;$He has mastered vaginal sex,@@ and can learn nothing more about tribbing or taking dick.
-	<</if>>
-<</if>>
-<<set $args[0].vaginalSkill += $skillIncrease>>
+<<= SkillIncrease.Vaginal($args[0], $skillIncrease)>>
 
 <</widget>>
 
@@ -552,25 +516,7 @@
 %/
 <<widget "AnalSkillIncrease">>
 
-<<setLocalPronouns $args[0]>>
-<<if $args[0].analSkill <= 10>>
-	<<if $args[0].analSkill+$skillIncrease > 10>>
-		@@.green;$He now has basic knowledge about anal sex,@@ and can accept penetration of $his anus without danger.
-	<</if>>
-<<elseif $args[0].analSkill <= 30>>
-	<<if $args[0].analSkill+$skillIncrease > 30>>
-		@@.green;$He now has some anal sex skills,@@ and needs less preparation before taking rough penetration.
-	<</if>>
-<<elseif $args[0].analSkill <= 60>>
-	<<if $args[0].analSkill+$skillIncrease > 60>>
-		@@.green;$He is now an anal sex expert,@@ and knows how to use $his sphincter to please.
-	<</if>>
-<<elseif $args[0].analSkill < 100>>
-	<<if $args[0].analSkill+$skillIncrease >= 100>>
-		@@.green;$He has mastered anal sex,@@ and can learn nothing more about taking it up the ass.
-	<</if>>
-<</if>>
-<<set $args[0].analSkill += $skillIncrease>>
+<<= SkillIncrease.Anal($args[0], $skillIncrease)>>
 
 <</widget>>
 
@@ -581,25 +527,7 @@
 %/
 <<widget "WhoreSkillIncrease">>
 
-<<setLocalPronouns $args[0]>>
-<<if $args[0].whoreSkill <= 10>>
-	<<if $args[0].whoreSkill+$skillIncrease > 10>>
-		@@.green;$He now has basic knowledge about how to whore,@@ and can avoid some potentially dangerous situations.
-	<</if>>
-<<elseif $args[0].whoreSkill <= 30>>
-	<<if $args[0].whoreSkill+$skillIncrease > 30>>
-		@@.green;$He now has some skill as a whore,@@ and knows how to sell $his body at a good price.
-	<</if>>
-<<elseif $args[0].whoreSkill <= 60>>
-	<<if $args[0].whoreSkill+$skillIncrease > 60>>
-		@@.green;$He is now an expert whore,@@ and can often make clients forget that $he's a prostitute they're paying for.
-	<</if>>
-<<elseif $args[0].whoreSkill < 100>>
-	<<if $args[0].whoreSkill+$skillIncrease >= 100>>
-		@@.green;$He is now a masterful whore,@@ and can learn nothing more about prostitution.
-	<</if>>
-<</if>>
-<<set $args[0].whoreSkill += $skillIncrease>>
+<<= SkillIncrease.Whore($args[0], $skillIncrease)>>
 
 <</widget>>
 
@@ -610,25 +538,7 @@
 %/
 <<widget "EntertainSkillIncrease">>
 
-<<setLocalPronouns $args[0]>>
-<<if $args[0].entertainSkill <= 10>>
-	<<if $args[0].entertainSkill+$skillIncrease > 10>>
-		@@.green;$He now has basic knowledge about how to be entertaining,@@ and can usually avoid serious faux pas.
-	<</if>>
-<<elseif $args[0].entertainSkill <= 30>>
-	<<if $args[0].entertainSkill+$skillIncrease > 30>>
-		@@.green;$He now has some skill as an entertainer,@@ and can flirt, dance, and strip acceptably.
-	<</if>>
-<<elseif $args[0].entertainSkill <= 60>>
-	<<if $args[0].entertainSkill+$skillIncrease > 60>>
-		@@.green;$He is now an expert entertainer,@@ and can flirt engagingly, dance alluringly, and strip arousingly.
-	<</if>>
-<<elseif $args[0].entertainSkill < 100>>
-	<<if $args[0].entertainSkill+$skillIncrease >= 100>>
-		@@.green;$He is now a masterful entertainer,@@ and can learn nothing more about flirting, dancing, or stripping.
-	<</if>>
-<</if>>
-<<set $args[0].entertainSkill += $skillIncrease>>
+<<= SkillIncrease.Entertain($args[0], $skillIncrease)>>
 
 <</widget>>
 
diff --git a/src/utility/slaveCreationWidgets.tw b/src/utility/slaveCreationWidgets.tw
index cb8555614083c9d01afe300c6b4785af11768c05..898ee64e55060c16ff97f6bddcef94cc27d9134a 100644
--- a/src/utility/slaveCreationWidgets.tw
+++ b/src/utility/slaveCreationWidgets.tw
@@ -1838,6 +1838,32 @@
 	<</replace>>
 <</widget>>
 
+/%
+ Call as <<CustomSlaveSmell>>
+%/
+<<widget "CustomSlaveSmell">>
+	<<replace #smelling>>
+		<<if $seeExtreme == 1>>
+			<<if $customSlave.smells == -1>>None.
+			<<else>>Normal.
+			<</if>>
+		<</if>>
+	<</replace>>
+<</widget>>
+
+/%
+ Call as <<CustomSlaveTaste>>
+%/
+<<widget "CustomSlaveTaste">>
+	<<replace #tasting>>
+		<<if $seeExtreme == 1>>
+			<<if $customSlave.tastes == -1>>None.
+			<<else>>Normal.
+			<</if>>
+		<</if>>
+	<</replace>>
+<</widget>>
+
 /%
  Call as <<CustomSlaveAmp>>
 %/
@@ -3032,7 +3058,7 @@
 	<<set $activeSlave.origin = "You bought her from the girl raiders' slave market the week she reached her majority.">>
 	<<set $activeSlave.trust -= 25>>
 	<<set $activeSlave.health += 20>>
-	<<set $activeSlave.career = either("a student", "a student", "a student", "a student", "a student", "a party girl", "a cheerleader", "a farm laborer")>>
+	<<set $activeSlave.career = either("a cheerleader", "a farm laborer", "a party girl", "a student", "a student", "a student", "a student", "a student")>>
 	<<set $activeSlave.birthWeek = 0>>
 	<<if $activeSlave.vagina != -1>>
 		<<if random(1,2) == 1>>
@@ -3169,7 +3195,7 @@
 	<<else>>
 		<<set $activeSlave.boobs = 200*random(4,20)>>
 	<</if>>
-	<<set $activeSlave.nipples = either("inverted", "huge")>>
+	<<set $activeSlave.nipples = either("huge", "inverted")>>
 	<<set $activeSlave.areolae = either(0, 1, 2, 3)>>
 	<<set $activeSlave.clit = either(0, 1, 2, 3)>>
 	<<set $activeSlave.lips = random(5,85)>>
@@ -3744,8 +3770,8 @@
 	<<if $TFS.schoolUpgrade == 1>>
 		<<set $activeSlave.sexualQuirk = "caring">>
 	<</if>>
-	<<set $activeSlave.sexualFlaw = either("none", "hates women")>>
-	<<set $activeSlave.behavioralFlaw = either("none", "arrogant")>>
+	<<set $activeSlave.sexualFlaw = either("hates women", "none")>>
+	<<set $activeSlave.behavioralFlaw = either("arrogant", "none")>>
 	<<set $activeSlave.fetishStrength = 100>>
 	<<set $activeSlave.fetishKnown = 0>>
 	<<set $activeSlave.attrKnown = 0>>
@@ -3817,14 +3843,14 @@
 	<<set $activeSlave.combatSkill = 1>>
 	<<set $activeSlave.pubicHStyle = "waxed">>
 	<<set $activeSlave.underArmHStyle = "waxed">>
-	<<set $activeSlave.sexualQuirk = either("none", "none", "caring", "unflinching")>>
-	<<set $activeSlave.sexualFlaw = either("none", "none", "apathetic", "judgemental")>>
-	<<set $activeSlave.behavioralFlaw = either("none", "arrogant")>>
-	<<set $activeSlave.behavioralQuirk = either("none", "none", "fitness", "confident")>>
+	<<set $activeSlave.sexualQuirk = either("caring", "none", "none", "unflinching")>>
+	<<set $activeSlave.sexualFlaw = either("apathetic", "judgemental", "none", "none")>>
+	<<set $activeSlave.behavioralFlaw = either("arrogant", "none")>>
+	<<set $activeSlave.behavioralQuirk = either("confident", "fitness", "none", "none")>>
 	<<set $activeSlave.fetishStrength = 0>>
 	<<set $activeSlave.fetishKnown = 0>>
 	<<set $activeSlave.attrKnown = 0>>
-	<<set $activeSlave.hStyle = either("neat", "braided", "tails", "ponytail", "bun")>>
+	<<set $activeSlave.hStyle = either("braided", "bun", "neat", "ponytail", "tails")>>
 	<<set $activeSlave.hLength = random(5,50)>>
 	<<set $activeSlave.clothes = "a nice maid outfit">>
 	<<set $activeSlave.customTat = "She has the sword and eagle symbol of the Hippolyta Academy tattooed on her left shoulder.">>
@@ -4313,7 +4339,7 @@
 		<<set $activeSlave.intelligenceImplant = 30>>
 		<<set $activeSlave.health = random(-40,20)>>
 	<<case "abuse of power">>
-		<<set $activeSlave.career = either("a lawyer", "a judge", "a police officer")>>
+		<<set $activeSlave.career = either("a judge", "a lawyer", "a police officer")>>
 		<<set $activeSlave.origin = "You purchased her life at a prison sale. She was " + $activeSlave.career + " that took advantage of her position for her own benefit.">>
 		<<set $prisonCrime = "is incarcerated for abuse of power.">>
 		<<set $activeSlave.devotion = random(-100,0)>>
@@ -4760,13 +4786,13 @@
 	/* Opens security */
 		<<case "Lieutenant Colonel">>
 			<<set $activeSlave.devotion = random(96,100), $activeSlave.trust = random(96, 100), $activeSlave.energy = random(96,100), $activeSlave.intelligence = 70, $activeSlave.combatSkill = 1>>
-			<<set $activeSlave.career = either("a bodyguard", "a law enforcement officer", "a revolutionary", "a soldier", "a transporter", "an assassin", "in a militia", "a bouncer", "a bounty hunter", "a gang member", "a mercenary", "a prison guard", "a private detective", "a security guard", "a street thug", "an enforcer")>>
+			<<set $activeSlave.career = either("a bodyguard", "a bouncer", "a bounty hunter", "a gang member", "a law enforcement officer", "a mercenary", "a prison guard", "a private detective", "a revolutionary", "a security guard", "a soldier", "a street thug", "a transporter", "an assassin", "an enforcer", "in a militia")>>
 		<<case "Bodyguard">>
-			<<set $activeSlave.devotion = 90, $activeSlave.muscles = random(30,70), $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]})), $activeSlave.weight = random(-10,10), $activeSlave.teeth = either("pointy", "normal"), $activeSlave.amp = either(-4, -4, 0, 0, 0, 0), $activeSlave.combatSkill = 1>>
+			<<set $activeSlave.devotion = 90, $activeSlave.muscles = random(30,70), $activeSlave.height = Math.round(Height.random($activeSlave, {skew: 3, spread: .2, limitMult: [1, 4]})), $activeSlave.weight = random(-10,10), $activeSlave.teeth = either("normal", "pointy"), $activeSlave.amp = either(-4, -4, 0, 0, 0, 0), $activeSlave.combatSkill = 1>>
 			<<set $activeSlave.career = either("a bodyguard", "a kunoichi", "a law enforcement officer", "a military brat", "a revolutionary", "a soldier", "a transporter", "an assassin", "in a militia")>>
 		<<case "Wardeness">>
 			<<set $activeSlave.energy = random(80,100), $activeSlave.sexualFlaw = either("malicious", "none", "none", "none", "none"), $activeSlave.fetish = "sadist", $activeSlave.fetishStrength = 100, $activeSlave.muscles = random(50,80), $activeSlave.combatSkill = 1>>
-			<<set $activeSlave.career = either("a security guard", "a mercenary", "an enforcer", "a private detective", "a bouncer", "a prison guard", "a street thug", "a gang member", "a bounty hunter")>>
+			<<set $activeSlave.career = either("a bouncer", "a bounty hunter", "a gang member", "a mercenary", "a prison guard", "a private detective", "a security guard", "a street thug", "an enforcer")>>
 			<<if $seeDicks > 0>>
 				<<set $activeSlave.dick = random(3,6), $activeSlave.balls = random(3,6), $activeSlave.scrotum = $activeSlave.balls, $activeSlave.prostate = either(1,1,1,2,2,3)>>
 			<</if>>