diff --git a/src/debugging/debugJS.js b/src/debugging/debugJS.js
index ed7a4c0283ba7f59e16a15e26154e20f49387c80..8cc94e24f33769ba9b670f7c59c5a806e776d70f 100644
--- a/src/debugging/debugJS.js
+++ b/src/debugging/debugJS.js
@@ -107,9 +107,9 @@ App.Debug.dumpGameState = function() {
 	// we will replace SugarCube onSave handler
 	let oldHandler = SugarCube.Config.saves.onSave;
 	try {
-		SugarCube.Config.saves.onSave = function(save) {
+		SugarCube.Config.saves.onSave = function(save, details) {
 			if (oldHandler) {
-				oldHandler(save);
+				oldHandler(save, details);
 			}
 			downloadToFile(JSON.stringify(save, null, 2), save.id + ".json", "text/plain");
 		};
diff --git a/src/endWeek/saDrugs.js b/src/endWeek/saDrugs.js
index 6d644bf87d99fb2dd9417dc37dfa47c3baa046ff..f6f831799f2034a434d5000d6fb6d82e1e483333 100644
--- a/src/endWeek/saDrugs.js
+++ b/src/endWeek/saDrugs.js
@@ -1858,7 +1858,7 @@ App.SlaveAssignment.drugs = (function() {
 								r += ` Getting buttfucked morning and night by reciprocating dildos that ejaculate ${his} drug regime has <span class="lightcoral">deepened ${his} anal fixation.</span>`;
 								slave.fetishStrength += 5;
 							}
-						} else if (slave.fetish !== "buttslut") {
+						} else {
 							if (slave.devotion < -20) {
 								r += ` Getting buttfucked morning and night by reciprocating dildos that ejaculate ${his} drug regime <span class="mediumorchid">disgusts ${him}.</span>`;
 								slave.devotion -= 2;
diff --git a/src/endWeek/saPorn.js b/src/endWeek/saPorn.js
index fc7dfd49852fc6e31f8e6b5c2172b5d06562b45c..7d6c236b5adf03f92d16b98a503146f4de7f186a 100644
--- a/src/endWeek/saPorn.js
+++ b/src/endWeek/saPorn.js
@@ -308,7 +308,7 @@ App.SlaveAssignment.porn = (function() {
 	 * @param {App.Entity.SlaveState} slave
 	 */
 	function getHighestPornGenre(slave) {
-		return App.Porn.getAllGenres().reduce((acc, cur) => slave.porn.fame[cur] > slave.porn.fame[acc] ? cur : acc);
+		return App.Porn.getAllGenres().reduce((acc, cur) => slave.porn.fame[cur.fameVar] > slave.porn.fame[acc.fameVar] ? cur : acc);
 	}
 
 	/**
@@ -338,7 +338,7 @@ App.SlaveAssignment.porn = (function() {
 				slave.porn.prestige = 2;
 				slave.porn.prestigeDesc = `$He is well known from $his career in slave pornography. ${genre.prestigeDesc2}.`;
 				r += `<span class="green">${He} has gained a hold in ${slave.porn.fameType} pornography!</span> ${genre.prestigeDesc2}, so it is now prestigious to own ${him}. `;
-			} else if (slave.porn.fame[highestPorn] >= slave.porn.fame[genre.fameVar] * swapPoint) {
+			} else if (slave.porn.fame[highestPorn.fameVar] >= slave.porn.fame[genre.fameVar] * swapPoint) {
 				r += `${His} fame in ${slave.porn.fameType} pornography has been overwhelmed by ${his} surging popularity in other aspects. <span class="yellow">${He} is now better known for ${his} ${highestPorn.fameName} porn.</span> `;
 				slave.porn.fameType = highestPorn.fameName;
 				slave.porn.prestigeDesc = `$He has a following in slave pornography. ${highestPorn.prestigeDesc1}.`;
diff --git a/src/endWeek/saTakeClasses.js b/src/endWeek/saTakeClasses.js
index 2dc4501d554930d7082b4fa1409d3aa63761a502..6a7cca4b4e2858098f57648dcf3de2891b2634de 100644
--- a/src/endWeek/saTakeClasses.js
+++ b/src/endWeek/saTakeClasses.js
@@ -485,7 +485,7 @@ App.SlaveAssignment.takeClasses = (function() {
 			switch (tutorForSlave(slave)) {
 				case "Headgirl":
 					if (slave.skill.headGirl <= 10) {
-					r += ` ${He} is so unskilled that the tutor teaches ${him} the basics. ${He} learns how to make slaves obey ${him} and how to treat minor injuries.`;
+						r += ` ${He} is so unskilled that the tutor teaches ${him} the basics. ${He} learns how to make slaves obey ${him} and how to treat minor injuries.`;
 					} else if (slave.skill.headGirl <= 30) {
 						r += ` ${He} has some experience teaching others. The tutor has ${him} practice teaching slaves how to please their master, and has ${him} attend lectures on slave psychology.`;
 					} else if (slave.skill.headGirl <= 60) {
@@ -499,7 +499,7 @@ App.SlaveAssignment.takeClasses = (function() {
 					if (slave.skill.recruiter <= 10) {
 						r += ` The tutor starts teaching ${him} the basics. ${He} is given lessons on conversing, pronounciation, style and fashion.`;
 					} else if (slave.skill.recruiter <= 30) {
-					r += ` Having been taught the basics by ${his} tutor, ${he} is no longer awkard in conversation. But ${he} has a long way to go, the tutor teaches ${him} how to carry ${himself} and how to interpret others' non-verbal cues.`;
+						r += ` Having been taught the basics by ${his} tutor, ${he} is no longer awkard in conversation. But ${he} has a long way to go, the tutor teaches ${him} how to carry ${himself} and how to interpret others' non-verbal cues.`;
 					} else if (slave.skill.recruiter <= 60) {
 						r += ` The tutor has ${him} practice convincing others. ${He} watches online lectures on slave pschyology, and applies it in practice by convincing others to make unfavorable deals.`;
 					} else if (slave.skill.recruiter <= 100) {
@@ -524,7 +524,7 @@ App.SlaveAssignment.takeClasses = (function() {
 					} else if (slave.skill.madam <= 30) {
 						r += ` Having been taught the basics, the lessons shift to learning how to best please a customer. ${He} is taught to converse and how to respond to a customer's desires.`;
 					} else if (slave.skill.madam <= 60) {
-					r += ` Now that ${he} is a masterful whore, the tutor teaches ${him} how to discipline her subordinate whores. ${He} attends online lectures on marketing.`;
+						r += ` Now that ${he} is a masterful whore, the tutor teaches ${him} how to discipline her subordinate whores. ${He} attends online lectures on marketing.`;
 					} else if (slave.skill.madam <= 100) {
 						r += ` ${He} is becoming a master at extracting maximum value from the assets ${he} commands, and is learning how to run the brothel effectively.`;
 					}
@@ -534,9 +534,9 @@ App.SlaveAssignment.takeClasses = (function() {
 					if (slave.skill.DJ <= 10) {
 						r += ` The tutor trains ${him} to perform as a DJ. The Club is crucial for your reputation, and the DJ is in charge of the club, so classes are quite demanding. ${He} is absolutely unskilled so he is teaching ${him} the very basics. ${He} is undergoing military-like drills in dancing and composure.`;
 					} else if (slave.skill.DJ <= 30) {
-						r += ` The tutor trains ${him} to perform as a DJ. ${He} is still quite inexperienced, although ${he} is at least not awkard in conversation anymore. ${His} classes are heavily focused on slut etiquette, dancing and composure, but ${his} moves are still stiff and unsure.`;
+						r += ` The tutor trains ${him} to perform as a DJ. ${He} is still quite inexperienced, although ${he} is at least not awkward in conversation anymore. ${His} classes are heavily focused on slut etiquette, dancing and composure, but ${his} moves are still stiff and unsure.`;
 					} else if (slave.skill.DJ <= 60) {
-						r += ` ${He} is already a skilled entartainer, yet ${his} DJ training continues. ${His} training is now more focused on putting ${him} in charge of the whole club facility, which serves to increase public opinion of ${his} owner. ${He} is taught how to make guests feel welcome, and how to manage ${his} employees. `;
+						r += ` ${He} is already a skilled entertainer, yet ${his} DJ training continues. ${His} training is now more focused on putting ${him} in charge of the whole club facility, which serves to increase public opinion of ${his} owner. ${He} is taught how to make guests feel welcome, and how to manage ${his} employees. `;
 					} else if (slave.skill.DJ <= 100) {
 						r += `Every movement and gesture of ${him} must engage the crowd. ${He} is so well-trained that ${his} sultry and inviting composure seems entirely natural. ${He} is also taught how to look after subordinate club sluts, to make sure they perform at their best and give the guests an unforgettable experience.`;
 					}
@@ -558,7 +558,7 @@ App.SlaveAssignment.takeClasses = (function() {
 					if (slave.skill.teacher <= 10) {
 						r += ` ${He} is so inept that the tutor has to teach ${him} the very basics before ${he} can progress any further. ${He} is given grammar and arithmetic lessons.`;
 					} else if (slave.skill.teacher <= 30) {
-						r += ` Now that ${he} has some understanding of the basics, the tutor has ${him} attend more advanced lectures on grammar, mathematics and pronounciation.`;
+						r += ` Now that ${he} has some understanding of the basics, the tutor has ${him} attend more advanced lectures on grammar, mathematics and pronunciation.`;
 					} else if (slave.skill.teacher <= 60) {
 						r += ` Having mastered basic skills, ${he} is now being taught how to teach others. The tutor sends ${him} to work at a local slave school.`;
 					} else if (slave.skill.teacher <= 100) {
@@ -580,11 +580,11 @@ App.SlaveAssignment.takeClasses = (function() {
 					break;
 				case "Matron":
 					if (slave.skill.matron <= 10) {
-						r += ` The tutor teaches ${him} how to care for ${his} body during pregnancy. To eat well, rest, and avoid strenous activity.`;
+						r += ` The tutor teaches ${him} how to care for ${his} body during pregnancy. To eat well, rest, and avoid strenuous activity.`;
 					} else if (slave.skill.matron <= 30) {
 						r += ` ${He} learns how to best prepare ${his} body for a baby's birth. And how to take care of the baby after it has been born.`;
 					} else if (slave.skill.matron <= 60) {
-						r += ` The tutor has ${her} serve as a midwife at a local hospital. ${He} also attends lectures on child development and child psychology.`;
+						r += ` The tutor has ${him} serve as a midwife at a local hospital. ${He} also attends lectures on child development and child psychology.`;
 					} else if (slave.skill.matron <= 100) {
 						r += ` ${He} continues attending lectures, but at the same time the tutor teaches ${him} how to take care of others while they are pregnant. ${He}'s quickly learning how to best rear children.`;
 					}
@@ -604,7 +604,7 @@ App.SlaveAssignment.takeClasses = (function() {
 					break;
 				case "Milkmaid":
 					if (slave.skill.milkmaid <= 10) {
-						r += ` The tutor teaches ${her} the basics. ${He} is taught what to eat to maximize ${his} fluid production, as well as how to milk udders.`;
+						r += ` The tutor teaches ${him} the basics. ${He} is taught what to eat to maximize ${his} fluid production, as well as how to milk udders.`;
 					} else if (slave.skill.milkmaid <= 30) {
 						r += ` Having been taught the basics, the tutor has ${him} work at a farm milking cows. ${He} also attends online lectures on nutrition and health.`;
 					} else if (slave.skill.milkmaid <= 60) {
@@ -622,7 +622,7 @@ App.SlaveAssignment.takeClasses = (function() {
 					} else if (slave.skill.farmer <= 60) {
 						r += ` ${He} oversees a group of farmhands as they care for the animals and plow the fields. Having mastered farming, ${he}'s now training ${his} leadership skills.`;
 					} else if (slave.skill.farmer <= 100) {
-					r += ` The tutor has him lead an entire farm. ${He} manages every aspect, and does so admirably. ${He} is also introduced to a different side of slave farming, the "shows". It doesn't take long before ${he}'s overseeing those too...`;
+						r += ` The tutor has him lead an entire farm. ${He} manages every aspect, and does so admirably. ${He} is also introduced to a different side of slave farming, the "shows". It doesn't take long before ${he}'s overseeing those too...`;
 					}
 					r += ` ${SkillIncrease.Farmer(slave, skillIncrease)}`;
 					break;
diff --git a/src/events/RESS/obedientBitchy.js b/src/events/RESS/obedientBitchy.js
index 556716dd4b764f2acc9ce283e4197b056f7a09b4..903ba6a17d265589f72c237c6aedb9c9ec0839f5 100644
--- a/src/events/RESS/obedientBitchy.js
+++ b/src/events/RESS/obedientBitchy.js
@@ -85,7 +85,7 @@ App.Events.RESSObedientBitchy = class RESSObedientBitchy extends App.Events.Base
 			} else {
 				t.push("arrange your bitchy little sex toy between you and your guest.");
 			}
-			t.push(`The businesswoman clearly wants ${his} ass, so you ${!canDoAnal(eventSlave.slaveName) ? `quickly unfasten ${his} anal chastity. You` : ""} ${PC.vagina !== -1 ? `ride ${eventSlave.slaveName}'s face` : `facefuck ${eventSlave.slaveName}`} roughly as ${eventSlave.slaveName} takes a painful anal raping from the huge dildo. The businesswoman winks at you companionably and extracts squeals from ${eventSlave.slaveName} that feel especially delicious ${PC.vagina !== -1 ? "against your cunt" : "along your dick"}.`);
+			t.push(`The businesswoman clearly wants ${his} ass, so you ${!canDoAnal(eventSlave) ? `quickly unfasten ${his} anal chastity. You` : ""} ${PC.vagina !== -1 ? `ride ${eventSlave.slaveName}'s face` : `facefuck ${eventSlave.slaveName}`} roughly as ${eventSlave.slaveName} takes a painful anal raping from the huge dildo. The businesswoman winks at you companionably and extracts squeals from ${eventSlave.slaveName} that feel especially delicious ${PC.vagina !== -1 ? "against your cunt" : "along your dick"}.`);
 			if (canMove(eventSlave)) {
 				t.push(`${eventSlave.slaveName} collapses ${eventSlave.belly >= 5000 ? `and rolls onto ${his} side` : ""} after a long punishment fuck;`);
 			} else {
diff --git a/src/events/RETS/reSiblingTussle.js b/src/events/RETS/reSiblingTussle.js
index 23d4d79106c68f4b107b38c44c1b8fa0dcb26885..669a14e7972fdd9be95f58398f2e05f6ca6805fc 100644
--- a/src/events/RETS/reSiblingTussle.js
+++ b/src/events/RETS/reSiblingTussle.js
@@ -210,12 +210,12 @@ App.Events.RETSSiblingTussle = class RETSSiblingTussle extends App.Events.BaseEv
 					if (sexType === "vaginal") {
 						t.push(`${winner.slaveName} slides ${hisW} ${winner.dick > 3 ? "stiff prick" : "hard little dick"} into ${hisW} ${relativeTerm(winner, loser)}'s ${loser.vagina < 2 ? "tight slit" : "cunt"} and starts pounding away.`);
 						if (canImpreg(loser, winner)) {
-							knockMeUp(loser, 10, 0, winner.id);
+							knockMeUp(loser, 10, 0, winner.ID);
 						}
 					} else if (sexType === "anal") {
 						t.push(`${winner.slaveName} slides ${hisW} ${winner.dick > 3 ? "stiff prick" : "hard little dick"} into ${hisW} ${relativeTerm(winner, loser)}'s ${loser.anus < 2 ? "tight ass" : "well-used ass"} and starts pounding away.`);
 						if (canImpreg(loser, winner)) {
-							knockMeUp(loser, 10, 1, winner.id);
+							knockMeUp(loser, 10, 1, winner.ID);
 						}
 					} else {
 						t.push(`${winner.slaveName} encourages ${loser.slaveName} to ${winner.dick > 0 ? `suck ${himW} off` : `eat ${himW} out`} quickly, knowing that they both still have to get to work.`);
diff --git a/src/facilities/nursery/utils/nurseryUtils.js b/src/facilities/nursery/utils/nurseryUtils.js
index a20b79001d1aba4cd9223a03c2443746ad232564..b3102a003ab8ebe73425968f39d9108ea8a8ea31 100644
--- a/src/facilities/nursery/utils/nurseryUtils.js
+++ b/src/facilities/nursery/utils/nurseryUtils.js
@@ -386,6 +386,8 @@ App.Facilities.Nursery.nameChild = function nameChild(child) {
 		father = 0,
 		mother = 0;
 
+	const {him} = getPronouns(child);
+
 	if (child.father === -1 && child.mother === -1) {
 		father = PC;
 		mother = PC;
@@ -403,9 +405,6 @@ App.Facilities.Nursery.nameChild = function nameChild(child) {
 	}
 
 	function newChildName(child) {
-		const
-			V = State.variable;
-
 		child.birthName = generateName(child.nationality, child.race, child.genes === "XY");
 
 		if (child.genes === "XY" && !V.allowMaleSlaveNames && isMaleName(child.birthName, child.nationality, child.race)) {
@@ -868,7 +867,7 @@ App.Facilities.Nursery.nurserySort = function nurserySort() {
 		r += `<br><b><span class="pink">You're pregnant</span></b> and going to have ${WL === 1 ? `a baby. ` : pregNumberName(WL, 1)} `;
 
 		if (reservedNursery > 0) {
-			nurseryHasReservedChildren = 1;
+			nurseryHasReservedChildren = true;
 			if (WL === 1) {
 				r += `Your child will be placed in ${V.nurseryName}.`;
 			} else if (reservedNursery < WL) {
diff --git a/src/interaction/slaveInteract.js b/src/interaction/slaveInteract.js
index 79246bd04c1e560e4fb404bb357f50c1a2db64a8..50bf44c582cb91b6905fbc0b562a2888bb3b86d7 100644
--- a/src/interaction/slaveInteract.js
+++ b/src/interaction/slaveInteract.js
@@ -217,9 +217,6 @@ App.UI.SlaveInteract.work = function(slave) {
 	span = document.createElement('span');
 	span.className = "note";
 	switch (slave.assignment) {
-		case "recover from surgery":
-			span.textContent = `${He} is recovering from surgery this week`;
-			break;
 		case Job.BODYGUARD:
 			span.textContent = `${He} is your Bodyguard and is not available for other work`;
 			break;
@@ -418,7 +415,7 @@ App.UI.SlaveInteract.tutorBlock = function(slave) {
 	let el = App.UI.DOM.makeElement("div");
 	let title = App.UI.DOM.appendNewElement("div", el, `Private tutoring: `);
 	let tutor = tutorForSlave(slave);
-	
+
 	if (tutor === null) {
 		App.UI.DOM.appendNewElement("span", title, `none.`, "bold");
 	} else {
@@ -1454,7 +1451,7 @@ App.UI.SlaveInteract.fertility = function(slave) {
 	let link = document.createElement('div');
 	link.className = "choices";
 	if (slave.ovaries === 1 || slave.mpreg === 1 || slave.preg > 0) {
-		let note = document.createTextNode(``);
+		let note = document.createElement("span");
 		note.className = "note";
 		if (slave.preg < -1) {
 			note.textContent += `${He} is sterile`;
@@ -2102,7 +2099,7 @@ App.UI.SlaveInteract.rules = function(slave) {
 							App.UI.SlaveInteract.rules(slave);
 						}
 					)
-				)
+				);
 			} else {
 				p.append(`Will not be bred by you when fertile. `);
 				p.append(
@@ -2113,7 +2110,7 @@ App.UI.SlaveInteract.rules = function(slave) {
 							App.UI.SlaveInteract.rules(slave);
 						}
 					)
-				)
+				);
 			}
 		} else if (V.universalRulesImpregnation === "HG") {
 			if (slave.HGExclude === 0) {
@@ -2126,7 +2123,7 @@ App.UI.SlaveInteract.rules = function(slave) {
 							App.UI.SlaveInteract.rules(slave);
 						}
 					)
-				)
+				);
 			} else {
 				p.append(`Will not be bred by the Head Girl when fertile. `);
 				p.append(
@@ -2137,7 +2134,7 @@ App.UI.SlaveInteract.rules = function(slave) {
 							App.UI.SlaveInteract.rules(slave);
 						}
 					)
-				)
+				);
 			}
 		} else if (V.universalRulesImpregnation === "Stud") {
 			if (slave.StudExclude === 0) {
@@ -2150,7 +2147,7 @@ App.UI.SlaveInteract.rules = function(slave) {
 							App.UI.SlaveInteract.rules(slave);
 						}
 					)
-				)
+				);
 			} else {
 				p.append(`Will not be bred by your Stud when fertile. `);
 				p.append(
@@ -2161,7 +2158,7 @@ App.UI.SlaveInteract.rules = function(slave) {
 							App.UI.SlaveInteract.rules(slave);
 						}
 					)
-				)
+				);
 			}
 		}
 		frag.append(p);
diff --git a/src/js/futureSocietyJS.js b/src/js/futureSocietyJS.js
index 944ec9fc0222d3caebdfffebe2d7ac52509a2498..3253f9605fc3bb307025e32306f9bbeac4451d77 100644
--- a/src/js/futureSocietyJS.js
+++ b/src/js/futureSocietyJS.js
@@ -297,14 +297,14 @@ globalThis.FutureSocieties = (function() {
 			case "FSPaternalist":
 				arcology[FSLaw] = 0;
 				arcology[FSSMR] = 0;
-				if (_.get(V.SecExp.edicts)) {
+				if (_.get(V, "SecExp.edicts")) {
 					V.SecExp.edicts.slaveWatch = 0;
 				}
 				break;
 			case "FSDegradationist":
 				arcology[FSLaw] = 0;
 				arcology[FSSMR] = 0;
-				if (_.get(V.SecExp.edicts)) {
+				if (_.get(V, "SecExp.edicts")) {
 					V.SecExp.edicts.defense.liveTargets = 0;
 				}
 				break;
@@ -320,7 +320,7 @@ globalThis.FutureSocieties = (function() {
 			case "FSSupremacist":
 				arcology[FSLaw] = 0;
 				arcology[FSSMR] = 0;
-				if (_.get(V.SecExp.edicts)) {
+				if (_.get(V, "SecExp.edicts")) {
 					V.SecExp.edicts.defense.noSubhumansInArmy = 0;
 				}
 				break;
@@ -332,7 +332,7 @@ globalThis.FutureSocieties = (function() {
 				arcology.FSPhysicalIdealistLaw = 0;
 				arcology.FSPhysicalIdealistSMR = 0;
 				arcology.FSPhysicalIdealistStrongFat = 0;
-				if (_.get(V.SecExp.edicts)) {
+				if (_.get(V, "SecExp.edicts")) {
 					V.SecExp.edicts.defense.martialSchool = 0;
 				}
 				break;
@@ -346,7 +346,7 @@ globalThis.FutureSocieties = (function() {
 				arcology.FSChattelReligionistLaw = 0;
 				arcology.FSChattelReligionistSMR = 0;
 				arcology.FSChattelReligionistCreed = 0;
-				if (_.get(V.SecExp.edicts)) {
+				if (_.get(V, "SecExp.edicts")) {
 					V.SecExp.edicts.subsidyChurch = 0;
 				}
 				break;
@@ -354,14 +354,14 @@ globalThis.FutureSocieties = (function() {
 				arcology[FSLaw] = 0;
 				arcology[FSSMR] = 0;
 				V.universalRulesChildrenBecomeBreeders = 0;
-				if (_.get(V.SecExp.edicts)) {
+				if (_.get(V, "SecExp.edicts")) {
 					V.SecExp.edicts.defense.pregExemption = 0;
 				}
 				break;
 			case "FSRestart":
 				arcology[FSLaw] = 0;
 				arcology[FSSMR] = 0;
-				if (_.get(V.SecExp.edicts)) {
+				if (_.get(V, "SecExp.edicts")) {
 					V.SecExp.edicts.defense.eliteOfficers = 0;
 				}
 				V.propOutcome = 0;
diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index b64cb442be3dcef4b2c9803f5a7847033350dcbb..ee6a875b4b8b3812b41a7668857ebcd8ed74227b 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -1878,7 +1878,7 @@ globalThis.rulesAssistantOptions = (function() {
 				["hand gloves"],
 				["elbow gloves"],
 			];
-			super("Arm accessory", items, true, false, true);
+			super("Arm accessory", items, true);
 			this.setValue(current_rule.set.armAccessory);
 			this.onchange = (value) => current_rule.set.armAccessory = value;
 		}
@@ -1891,7 +1891,7 @@ globalThis.rulesAssistantOptions = (function() {
 				["short stockings"],
 				["long stockings"],
 			];
-			super("Leg accessory", items, true, false, true);
+			super("Leg accessory", items, true);
 			this.setValue(current_rule.set.legAccessory);
 			this.onchange = (value) => current_rule.set.legAccessory = value;
 		}
@@ -2212,7 +2212,7 @@ globalThis.rulesAssistantOptions = (function() {
 				["preventatives", 1],
 				["curatives", 2],
 			];
-			super("Health drugs", pairs, true, false, true);
+			super("Health drugs", pairs, true);
 			this.setValue(current_rule.set.curatives);
 			this.onchange = (value) => current_rule.set.curatives = value;
 		}
@@ -3038,7 +3038,7 @@ globalThis.rulesAssistantOptions = (function() {
 				["very long", 100],
 				["floor length", 150]
 			];
-			super("Hair length", pairs, true, false, true);
+			super("Hair length", pairs, true);
 			this.setValue(current_rule.set.hLength);
 			this.onchange = (value) => current_rule.set.hLength = value;
 		}
@@ -3050,7 +3050,7 @@ globalThis.rulesAssistantOptions = (function() {
 				["maintain hair length", 1],
 				["do not maintain hair length", 0]
 			];
-			super("Hair length maintenance", pairs, true, false, true);
+			super("Hair length maintenance", pairs, true);
 			this.setValue(current_rule.set.haircuts);
 			this.onchange = (value) => current_rule.set.haircuts = value;
 		}
@@ -3249,7 +3249,7 @@ globalThis.rulesAssistantOptions = (function() {
 				["remove birthmarks"],
 				["remove both"]
 			];
-			super("Facial markings", pairs, true, false, true);
+			super("Facial markings", pairs, true);
 			this.setValue(current_rule.set.markings);
 			this.onchange = (value) => current_rule.set.markings = value;
 		}
@@ -3429,7 +3429,7 @@ globalThis.rulesAssistantOptions = (function() {
 				["none", 0],
 				["studded", 1]
 			];
-			super("Areola studs", pairs, true, false, true);
+			super("Areola studs", pairs, true);
 			this.setValue(current_rule.set.areolaePiercing);
 			this.onchange = (value) => current_rule.set.areolaePiercing = value;
 		}
@@ -3489,7 +3489,7 @@ globalThis.rulesAssistantOptions = (function() {
 				["none", 0],
 				["applied", 1]
 			];
-			super("Corset piercings", pairs, true, false, true);
+			super("Corset piercings", pairs, true);
 			this.setValue(current_rule.set.corsetPiercing);
 			this.onchange = (value) => current_rule.set.corsetPiercing = value;
 		}
diff --git a/src/js/wombJS.js b/src/js/wombJS.js
index 2cdf98b6a0ff14da877cc76498f9ba6f798a83f0..10cbcc47455959c2a5216c69e9e9aabde08c0838 100644
--- a/src/js/wombJS.js
+++ b/src/js/wombJS.js
@@ -176,7 +176,7 @@ globalThis.WombImpregnateClone = function(actor, fCount, mother, motherOriginal,
 		if (mother.ID === -1) {
 			tf.genetics.motherName = mother.slaveName;
 			tf.genetics.fatherName = mother.slaveName;
-			tf.genetics.clone = PlayerName(mother);
+			tf.genetics.clone = PlayerName();
 			tf.genetics.cloneID = -1;
 		} else {
 			tf.genetics.motherName = mother.slaveName;
@@ -401,7 +401,7 @@ globalThis.FetusGetPrediction = function(actor, age) {
 	} else if (actor.pregData.sizeType === 1) {
 		vol = getVolByWeight(actor, age);
 	} else if (actor.pregData.sizeType === 2) {
-		vol = getVolByRaw(actor, age);
+		vol = getVolByRaw(actor);
 	}
 
 	if (vol === 0) {
diff --git a/src/npc/databases/dSlavesDatabase.js b/src/npc/databases/dSlavesDatabase.js
index 02f590e2357e5d9d9a26b473bde7847f073ea162..896dd033213a268050876b4ecd266495626cac76 100644
--- a/src/npc/databases/dSlavesDatabase.js
+++ b/src/npc/databases/dSlavesDatabase.js
@@ -3605,8 +3605,8 @@ App.Data.HeroSlaves.D = [
 			anal: 100,
 			whoring: 100,
 			entertainment: 35,
+			combat: 0,
 		},
-		combat: 0,
 		collar: "heavy gold",
 		shoes: "flats",
 		energy: 100,
diff --git a/src/npc/descriptions/boobs/boobs.js b/src/npc/descriptions/boobs/boobs.js
index 63bab1973489cec437094ac516ed076d1dc32444..3dd6d7fc4bdd447b77f08e9fb8c3fef025d06ab4 100644
--- a/src/npc/descriptions/boobs/boobs.js
+++ b/src/npc/descriptions/boobs/boobs.js
@@ -218,7 +218,7 @@ App.Desc.boobs = function() {
 	/**
 	 * @param {App.Entity.SlaveState} slave
 	 * @param {object} params
-	 * @param {number} [params.market]
+	 * @param {number | string} [params.market]
 	 * @param {number} [params.eventDescription]
 	 * @returns {string}
 	 */
@@ -1611,7 +1611,7 @@ App.Desc.boobsExtra = function(slave, {market, eventDescription} = {}) {
 /**
  * @param {App.Entity.SlaveState} slave
  * @param {object} params
- * @param {number} [params.market]
+ * @param {number | string} [params.market]
  * @param {number} [params.eventDescription]
  * @returns {string}
  */
diff --git a/src/npc/descriptions/longSlave.js b/src/npc/descriptions/longSlave.js
index dc9cbb95dcfac55469775ac2fc92a077fcaf96e6..5bf5b434c7fe4d1333c03ac51b50a8fcf8d4eff2 100644
--- a/src/npc/descriptions/longSlave.js
+++ b/src/npc/descriptions/longSlave.js
@@ -1,7 +1,8 @@
 /**
  * @param {App.Entity.SlaveState} slave
  * @param {object} params
- * @param {string|number} [params.market] 0 if the slave is not for sale.  Otherwise a string with the name of the market, partially to determine if laws apply to the market or not.
+ * @param {string|number} [params.market] 0 if the slave is not for sale.  Otherwise a string with the name of the market,
+ * partially to determine if laws apply to the market or not.
  * @param {number} [params.eventDescription]
  * @returns {DocumentFragment}
  */
diff --git a/src/npc/descriptions/skin.js b/src/npc/descriptions/skin.js
index 80a9d44292822a564f5e4b3237d7ff6ed0d105a2..6bd663641ac4a9b38a164aeb6832a2d37fa1b676 100644
--- a/src/npc/descriptions/skin.js
+++ b/src/npc/descriptions/skin.js
@@ -1,7 +1,7 @@
 /**
  * @param {App.Entity.SlaveState} slave
  * @param {object} params
- * @param {number} [params.market]
+ * @param {number | string} [params.market]
  * @param {number} [params.eventDescription]
  * @returns {string}
  */
diff --git a/src/npc/descriptions/style/clothing.js b/src/npc/descriptions/style/clothing.js
index 231e14bf1b0e51833bd3cf95c0791b7060f5c153..9fe0884e12164e9076a3f8e239822bb6da1d904e 100644
--- a/src/npc/descriptions/style/clothing.js
+++ b/src/npc/descriptions/style/clothing.js
@@ -1,7 +1,7 @@
 /**
  * @param {App.Entity.SlaveState} slave
  * @param {object} params
- * @param {number} [params.market]
+ * @param {number | string} [params.market]
  * @param {number} [params.eventDescription]
  * @returns {string}
  */
diff --git a/src/npc/descriptions/womb/pregnancy.js b/src/npc/descriptions/womb/pregnancy.js
index 9b30e76f732e3ad12167b4fbcb55a1f448451c5b..8d38aefc24a75450b84864fdbf4d1238a2712097 100644
--- a/src/npc/descriptions/womb/pregnancy.js
+++ b/src/npc/descriptions/womb/pregnancy.js
@@ -1,7 +1,7 @@
 /**
  * @param {App.Entity.SlaveState} slave
  * @param {object} params
- * @param {number} [params.market]
+ * @param {number| string} [params.market]
  * @param {number} [params.eventDescription]
  * @returns {string}
  */
diff --git a/src/npc/generate/lawCompliance.js b/src/npc/generate/lawCompliance.js
index f65daac17fc52c6eee5a2f90c20721c59aefae2b..c5801fe3cbff6a4baaf7587776eac97192fd161c 100644
--- a/src/npc/generate/lawCompliance.js
+++ b/src/npc/generate/lawCompliance.js
@@ -1,5 +1,6 @@
 /**
  * @param {App.Entity.SlaveState} slave
+ * @param {number | string} [market=0]
  * @returns {string}
  */
 App.Desc.lawCompliance = function(slave, market = 0) {
diff --git a/src/npc/surgery/organs.js b/src/npc/surgery/organs.js
index e73f83bec6b9782b98e6c94184eff0546d0d160c..ecb0bfeb5fc28d128cd7c1cd3332d919b4127329 100644
--- a/src/npc/surgery/organs.js
+++ b/src/npc/surgery/organs.js
@@ -398,7 +398,7 @@ App.Medicine.OrganFarm.init = function() {
 				implant: s => {
 					s.bald = 0;
 					s.hLength = 1;
-					s.hair = "neat";
+					s.hStyle = "neat";
 					s.hColor = getGeneticHairColor(s);
 				}
 			}),