diff --git a/src/interaction/main/mainLinks.js b/src/interaction/main/mainLinks.js
index 44b7f3aa8b25a34b582219646e681741c2d979e1..887c184cd398bd5a536a994d09a8b40aa2c38b84 100644
--- a/src/interaction/main/mainLinks.js
+++ b/src/interaction/main/mainLinks.js
@@ -121,8 +121,7 @@ App.UI.View.MainLinks = function() {
 		});
 		/* cycle through slaves, for each slave cycle through completed organs and track how many are of the interrogated slave (and if organs have a slaves to be implanted on) */
 		for (let i = 0; i < V.slaves.length; i++) {
-			let slaveOrgans = 0;
-			V.completedOrgans.forEach(organ => { if (organ.ID === V.slaves[i].ID) { slaveOrgans++; } });
+			const slaveOrgans = V.completedOrgans.reduce((acc, organ) => organ.ID === V.slaves[i].ID ? acc + 1 : acc, 0);
 			/* if the interrogated slave has one or more organs ready: */
 			if (slaveOrgans > 0) {
 				r += '<br><span class="yellow">The fabricator has completed ';
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 104fc58e8a14be10b9c5d3c5fba21565268e21a3..7c39cffc61f0c58ab845ec512e624533fcc70df1 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -2329,7 +2329,8 @@ App.Entity.SlaveState = class SlaveState {
 		this.override_Pubic_H_Color = 0;
 		this.override_Arm_H_Color = 0;
 		this.override_Brow_H_Color = 0;
-		this.albinismOverride = 0;
+		/** @type {{skin:string, eyeColor:string, hColor:string}} */
+		this.albinismOverride = null;
 		/* eslint-enable */
 		/** are eyes missing?
 		*
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index 12d66183801c4fcaa74ea169d9130202d75cdb8a..1512dd218a3777ea42be9fd9f9c3829bbde42c3f 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -1,15 +1,35 @@
+/**
+ * @param {App.Entity.SlaveState} A
+ * @param {App.Entity.SlaveState} B
+ * @returns {boolean}
+ */
 window.sameAssignmentP = function sameAssignmentP(A, B) {
 	return A.assignment === B.assignment;
 };
 
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @param {App.Entity.SlaveState} target
+ * @returns {boolean}
+ */
 window.haveRelationP = function haveRelationP(slave, target) {
 	return slave.relationTarget === target.ID;
 };
 
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @param {App.Entity.SlaveState} target
+ * @returns {boolean}
+ */
 window.haveRelationshipP = function haveRelationshipP(slave, target) {
 	return slave.relationshipTarget === target.ID;
 };
 
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @param {App.Entity.SlaveState} target
+ * @returns {boolean}
+ */
 window.isRivalP = function isRivalP(slave, target) {
 	return slave.rivalryTarget === target.ID;
 };
@@ -40,15 +60,19 @@ window.hasVisibleHeterochromia = function hasVisibleHeterochromia(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * @returns {boolean}	// I think
+ * @returns {boolean}
  */
 window.isLeaderP = function isLeaderP(slave) {
 	const V = State.variables;
+	/** @type {App.Entity.SlaveState[]} */
 	const leaders = [V.HeadGirl, V.Bodyguard, V.Recruiter, V.Concubine, V.Nurse, V.Attendant, V.Matron, V.Madam, V.DJ, V.Milkmaid, V.Farmer, V.Stewardess, V.Schoolteacher, V.Wardeness];
 	return leaders.some(leader => leader.ID && leader.ID === slave.ID);
 };
 
-// helper function returning PC's title
+/**
+ * Helper function returning PC's title
+ * @returns {string}
+*/
 window.properTitle = function properTitle() {
 	const PC = State.variables.PC;
 	if (PC.customTitle) {
@@ -60,7 +84,10 @@ window.properTitle = function properTitle() {
 	}
 };
 
-// helper function returning slave's title for PC in situations where WrittenMaster() is inappropriate
+/**
+ * Helper function returning slave's title for PC in situations where WrittenMaster() is inappropriate
+ * @returns {string}
+*/
 window.properMaster = function properMaster() {
 	const PC = State.variables.PC;
 	if (PC.customTitle) {
@@ -198,17 +225,17 @@ window.newSlave = function newSlave(slave) {
 		V.genePool.push(slave);
 		/* Store non-albino stats in genePool */
 		if (slave.geneticQuirks.albinism === 2) {
-			const albInd = V.genePool.findIndex(function(s) { return s.ID === slave.ID; });
+			const albInd = V.genePool.findIndex(s => s.ID === slave.ID);
 			V.genePool[albInd].origSkin = slave.albinismOverride.skin;
 			V.genePool[albInd].origEye = slave.albinismOverride.eyeColor;
 			V.genePool[albInd].origHColor = slave.albinismOverride.hColor;
 			V.genePool[albInd].underArmHColor = slave.albinismOverride.hColor;
 			V.genePool[albInd].pubicHColor = slave.albinismOverride.hColor;
 			V.genePool[albInd].eyebrowHColor = slave.albinismOverride.hColor;
-			slave.albinismOverride = 0;
+			slave.albinismOverride = null;
 		}
 	} else {
-		if (V.genePool.findIndex(function(s) { return s.ID === slave.ID; }) === -1) {
+		if (!V.genePool.some(s => s.ID === slave.ID)) {
 			V.genePool.push(slave);
 		}
 	}
@@ -403,7 +430,7 @@ window.getPronouns = function(slave) {
 
 /**
  * @param {App.Entity.SlaveState} slave
- * @returns {string}	// I think
+ * @returns {string}
  */
 window.WrittenMaster = function WrittenMaster(slave) {
 	const V = State.variables;
diff --git a/src/js/assignJS.js b/src/js/assignJS.js
index 47da3b346cd5d99ca599394477de6e97437b76af..317a0d21efd80461b34c19fdd1644866484d8892 100644
--- a/src/js/assignJS.js
+++ b/src/js/assignJS.js
@@ -303,21 +303,18 @@ window.assignJob = function assignJob(slave, job) {
 	}
 
 	if (slave.assignmentVisible === 0 && Array.isArray(V.personalAttention)) {
-		const awi = V.personalAttention.findIndex(function(s) { return s.ID === slave.ID; });
-		if (awi !== -1) {
-			V.personalAttention.deleteAt(awi);
-			if (V.personalAttention.length === 0) {
-				if (V.PC.career === "escort") {
-					V.personalAttention = "whoring";
-				} else if (V.PC.career === "servant") {
-					V.personalAttention = "upkeep";
-				} else {
-					V.personalAttention = "business";
-				}
-				r += `${slave.slaveName} no longer has your personal attention; you plan to focus on ${V.personalAttention}.`;
+		V.personalAttention.deleteWith(s => s.ID === slave.ID);
+		if (V.personalAttention.length === 0) {
+			if (V.PC.career === "escort") {
+				V.personalAttention = "whoring";
+			} else if (V.PC.career === "servant") {
+				V.personalAttention = "upkeep";
 			} else {
-				r += `${slave.slaveName} no longer has your personal attention.`;
+				V.personalAttention = "business";
 			}
+			r += `${slave.slaveName} no longer has your personal attention; you plan to focus on ${V.personalAttention}.`;
+		} else {
+			r += `${slave.slaveName} no longer has your personal attention.`;
 		}
 	}
 	V.JobIDArray = resetJobIDArray();
@@ -490,14 +487,10 @@ window.removeJob = function removeJob(slave, assignment) {
 			case "be your agent":
 			case "live with your agent":
 				slave.assignment = "rest";
-				const _leaderIndex = V.leaders.findIndex(function(x) {
-					return x.ID === slave.ID;
-				});
-				if (_leaderIndex !== -1) { V.leaders.deleteAt(_leaderIndex); }
-
+				V.leaders.deleteWith(s => s.ID === slave.ID);
 				if (slave.relationshipTarget > 0) {
 					/* following code assumes there can be at most one companion */
-					const _lover = V.slaves.findIndex(function(s) { return haveRelationshipP(s, slave) && s.assignment === "live with your agent"; });
+					const _lover = V.slaves.findIndex(s => haveRelationshipP(s, slave) && s.assignment === "live with your agent");
 					if (_lover !== -1) {
 						V.slaves[_lover].assignment = "rest";
 						V.slaves[_lover].assignmentVisible = 1;
diff --git a/src/js/colorinput.js b/src/js/colorinput.js
index b97711b59ca92104febaa67be13e31c62d3f4ebc..0bd884a15bfed1e416dcfe121894588e3bdc2b95 100644
--- a/src/js/colorinput.js
+++ b/src/js/colorinput.js
@@ -4,9 +4,9 @@ Macro.add("colorinput", {
 			let e = [];
 			return this.args.length < 1 && e.push("variable name"), this.args.length < 2 && e.push("default value"), this.error("no " + e.join(" or ") + " specified");
 		}
-		if ("string" !== typeof this.args[0]) { return this.error("variable name argument is not a string"); }
+		if (typeof this.args[0] !== "string") { return this.error("variable name argument is not a string"); }
 		let varName = this.args[0].trim();
-		if ("$" !== varName[0] && "_" !== varName[0]) { return this.error('variable name "' + this.args[0] + '" is missing its sigil ($ or _)'); }
+		if (varName[0] !== "$" && varName[0] !== "_") { return this.error('variable name "' + this.args[0] + '" is missing its sigil ($ or _)'); }
 		Config.debug && this.debugView.modes({
 			block: true
 		});
@@ -42,12 +42,12 @@ Macro.add("colorinput", {
 		}
 
 		jQuery(inputElement).attr({
-				id: this.name + "-" + r,
-				name: this.name + "-" + r,
-				type: 'color',
-				value: value,
-				tabindex: 0
-			}).addClass("macro-" + this.name)
+			id: this.name + "-" + r,
+			name: this.name + "-" + r,
+			type: 'color',
+			value: value,
+			tabindex: 0
+		}).addClass("macro-" + this.name)
 			.on("change", function() {
 				State.setVar(varName, this.value);
 				// eslint-disable-next-line eqeqeq
diff --git a/src/js/datatypeCleanupJS.js b/src/js/datatypeCleanupJS.js
index d93384d17d4d5f4b167e16351a921eff07bcdb6b..3b8f31d33d173ae59e370733d65c650a494264e7 100644
--- a/src/js/datatypeCleanupJS.js
+++ b/src/js/datatypeCleanupJS.js
@@ -1737,9 +1737,7 @@ 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(s => s.assignment === "be the Madam") || 0;
 		V.MadamIgnoresFlaws = Math.clamp(+V.MadamIgnoresFlaws, 0, 1) || 0;
 	}
 
@@ -1769,9 +1767,7 @@ 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(s => s.assignment === "be the Milkmaid") || 0;
 		V.milkmaidImpregnates = Math.clamp(+V.milkmaidImpregnates, 0, 1) || 0;
 	}
 
@@ -1780,9 +1776,7 @@ window.FacilityDatatypeCleanup = (function() {
 		V.farmyardBreeding = Math.clamp(+V.farmyardBreeding, 0, 1) || 0;
 		V.farmyardShows = Math.clamp(+V.farmyardShows, 0, 1) || 0;
 		/* farmer */
-		V.Farmer = V.slaves.find(function(s) {
-			return s.assignment === "be the Farmer";
-		}) || 0;
+		V.Farmer = V.slaves.find(s => s.assignment === "be the Farmer") || 0;
 	}
 
 	function ClubDatatypeCleanup() {
@@ -1798,9 +1792,7 @@ 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(s => s.assignment === "be the DJ") || 0;
 		V.DJignoresFlaws = Math.clamp(+V.DJignoresFlaws, 0, 1) || 0;
 	}
 
@@ -1809,9 +1801,7 @@ 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(s => s.assignment === "be the Stewardess") || 0;
 		V.stewardessImpregnates = Math.clamp(+V.stewardessImpregnates, 0, 1) || 0;
 	}
 
@@ -1822,9 +1812,7 @@ 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(s => s.assignment === "be the Schoolteacher") || 0;
 	}
 
 	function SpaDatatypeCleanup() {
@@ -1832,9 +1820,7 @@ 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(s => s.assignment === "be the Attendant") || 0;
 		V.spaFix = Math.clamp(+V.spaFix, 0, 2) || 0;
 	}
 
@@ -1847,9 +1833,7 @@ 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(s => s.assignment === "be the Nurse") || 0;
 	}
 
 	function ArcadeDatatypeCleanup() {
@@ -1866,9 +1850,7 @@ 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(s => s.assignment === "be the Wardeness") || 0;
 		V.cellblockWardenCumsInside = Math.clamp(+V.cellblockWardenCumsInside, 0, 1) || 0;
 	}
 
@@ -1882,16 +1864,12 @@ 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(s => s.assignment === "be your Concubine") || 0;
 	}
 
 	function HeadGirlSuiteDatatypeCleanup() {
 		/* headgirl */
-		V.HeadGirl = V.slaves.find(function(s) {
-			return s.assignment === "be your Head Girl";
-		}) || 0;
+		V.HeadGirl = V.slaves.find(s => s.assignment === "be your Head Girl") || 0;
 		V.HGSuiteEquality = Math.clamp(+V.HGSuiteEquality, 0, 1) || 0;
 		if (V.HGSuiteSurgery !== 0) {
 			V.HGSuiteSurgery = 1;
diff --git a/src/js/descriptionWidgets.js b/src/js/descriptionWidgets.js
index 547281a596198880e966b85b5bf328b70813cef1..dd088cc835e8444bb3823acb0bf856e9c85694a3 100644
--- a/src/js/descriptionWidgets.js
+++ b/src/js/descriptionWidgets.js
@@ -291,7 +291,7 @@ App.Desc.ageAndHealth = function(slave) {
 		}
 	}
 
-	(boy === "girl" ? woman = "woman" : woman = "man");
+	woman = (boy === "girl" ? "woman" : "man");
 
 	if (!slave.fuckdoll) {
 		if (slave.health < -90) {
@@ -660,7 +660,7 @@ App.Desc.waist = function(slave) {
 	let His = capFirstChar(his);
 	/* eslint-enable */
 
-	(boy === "girl" ? woman = "woman" : woman = "man");
+	woman = (boy === "girl" ? "woman" : "man");
 	if (slave.belly >= 1500) {
 		belly = bellyAdjective(slave);
 	}
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index 1627b0c52e7d41a8d62d9a0e45fa202f03d6c27e..b32cc78421e99d6188db1756f8b558b902fa648f 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -547,6 +547,10 @@ window.calculateCosts = (function() {
 	}
 })();
 
+/**
+ * @param {App.Entity.SlaveState} s
+ * @returns {number}
+ */
 window.getSlaveCost = function(s) {
 	if (!s) {
 		return 0;
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index bb9d91a2f3f676c44c97405d66e06b84d089efdc..ad777d217454f02314666eab79d13ae9d9885f2e 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -225,9 +225,7 @@ window.generateRandomEventPoolStandard = function(eventSlave) {
 				}
 
 				if (eventSlave.relationship > 3) {
-					let relationshipSlave = State.variables.slaves.find(function(s) {
-						return s.ID === eventSlave.relationshipTarget;
-					});
+					let relationshipSlave = State.variables.slaves.find(s => s.ID === eventSlave.relationshipTarget);
 					if (relationshipSlave.devotion > 20) {
 						if (canWalk(relationshipSlave)) {
 							if (canTalk(relationshipSlave)) {
@@ -1956,9 +1954,7 @@ window.generateRandomEventPoolServant = function(eventSlave) {
 				}
 
 				if (eventSlave.relationship > 3) {
-					let relationshipSlave = State.variables.slaves.find(function(s) {
-						return s.ID === eventSlave.relationshipTarget;
-					});
+					let relationshipSlave = State.variables.slaves.find(s => s.ID === eventSlave.relationshipTarget);
 					if (relationshipSlave.devotion > 20) {
 						if (canWalk(relationshipSlave)) {
 							if (canTalk(relationshipSlave)) {
diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js
index 16c9f42679e95b70d0bf3ad66946a85df73bb1bb..d4c93f9c3a537245759dde843b071f57be4b6cfb 100644
--- a/src/js/generateGenetics.js
+++ b/src/js/generateGenetics.js
@@ -37,9 +37,7 @@ window.generateGenetics = (function() {
 			geneticQuirks: 0
 		};
 		if (actor1.ID > 0) {
-			mother = V.genePool.find(function(s) {
-				return s.ID === actor1.ID;
-			});
+			mother = V.genePool.find(s => s.ID === actor1.ID);
 			if (mother === undefined) {
 				mother = actor1;
 			}
@@ -52,9 +50,7 @@ window.generateGenetics = (function() {
 			mother = V.PC;
 		}
 		if (actor2 > 0) {
-			father = V.genePool.find(function(s) {
-				return s.ID === actor2;
-			});
+			father = V.genePool.find(s => s.ID === actor2);
 			activeFather = V.slaves[V.slaveIndices[actor2]];
 			if (father === undefined) {
 				father = V.slaves[V.slaveIndices[actor2]];
@@ -62,17 +58,13 @@ window.generateGenetics = (function() {
 			}
 			if (father === undefined) {
 				if (V.incubator > 0) {
-					father = V.tanks.find(function(s) {
-						return s.ID === actor2;
-					});
+					father = V.tanks.find(s => s.ID === actor2);
 					activeFather = 0; // activeFather = father?
 				}
 			}
 			if (father === undefined) {
 				if (V.nursery > 0) {
-					father = V.cribs.find(function(s) {
-						return s.ID === actor2;
-					});
+					father = V.cribs.find(s => s.ID === actor2);
 					activeFather = 0; // activeFather = father?
 				}
 			}
diff --git a/src/js/generateNewSlaveJS.js b/src/js/generateNewSlaveJS.js
index 5e93b736e17bd07e4e84718655ce55ef343ea8ed..585c3993aac813195ace84595dbce511da9dace8 100644
--- a/src/js/generateNewSlaveJS.js
+++ b/src/js/generateNewSlaveJS.js
@@ -995,7 +995,7 @@ window.GenerateNewSlave = (function() {
 
 	function generateXXTeeth() {
 		let femaleCrookedTeethGen = slave.intelligence + slave.intelligenceImplant;
-		if ("American" === slave.nationality) {
+		if (slave.nationality === "American") {
 			femaleCrookedTeethGen += 20;
 		} else if (["Andorran", "Antiguan", "Argentinian", "Aruban", "Australian", "Austrian", "Bahamian", "Bahraini", "Barbadian", "Belarusian", "Belgian", "Bermudian", "Brazilian", "British", "Bruneian", "Bulgarian", "Canadian", "Catalan", "Chilean", "a Cook Islander", "Croatian", "Curaçaoan", "Cypriot", "Czech", "Danish", "Dutch", "Emirati", "Estonian", "Finnish", "French", "German", "Greek", "Greenlandic", "Guamanian", "Hungarian", "Icelandic", "Irish", "Israeli", "Italian", "Japanese", "Kazakh", "Korean", "Kuwaiti", "Latvian", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Malaysian", "Maltese", "Mauritian", "Monégasque", "Montenegrin", "New Caledonian", "a New Zealander", "Niuean", "Norwegian", "Omani", "Palauan", "Panamanian", "Polish", "Portuguese", "Puerto Rican", "Qatari", "Romanian", "Russian", "Sammarinese", "Saudi", "Seychellois", "Singaporean", "Slovak", "Slovene", "Spanish", "Swedish", "Swiss", "Taiwanese", "Trinidadian", "Uruguayan", "Vatican"].includes(slave.nationality)) {
 			/* do nothing */
@@ -1016,7 +1016,7 @@ window.GenerateNewSlave = (function() {
 
 	function generateXYTeeth() {
 		let maleCrookedTeethGen = slave.intelligence + slave.intelligenceImplant;
-		if ("American" === slave.nationality) {
+		if (slave.nationality === "American") {
 			maleCrookedTeethGen += 22;
 		} else if (["Andorran", "Antiguan", "Argentinian", "Aruban", "Australian", "Austrian", "Bahamian", "Bahraini", "Barbadian", "Belarusian", "Belgian", "Bermudian", "Brazilian", "British", "Bruneian", "Bulgarian", "Canadian", "Catalan", "Chilean", "a Cook Islander", "Croatian", "Curaçaoan", "Cypriot", "Czech", "Danish", "Dutch", "Emirati", "Estonian", "Finnish", "French", "German", "Greek", "Greenlandic", "Guamanian", "Hungarian", "Icelandic", "Irish", "Israeli", "Italian", "Japanese", "Kazakh", "Korean", "Kuwaiti", "Latvian", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Malaysian", "Maltese", "Mauritian", "Monégasque", "Montenegrin", "New Caledonian", "a New Zealander", "Niuean", "Norwegian", "Omani", "Palauan", "Panamanian", "Polish", "Portuguese", "Puerto Rican", "Qatari", "Romanian", "Russian", "Sammarinese", "Saudi", "Seychellois", "Singaporean", "Slovak", "Slovene", "Spanish", "Swedish", "Swiss", "Taiwanese", "Trinidadian", "Uruguayan", "Vatican"].includes(slave.nationality)) {
 			/* do nothing */
diff --git a/src/js/itemAvailability.js b/src/js/itemAvailability.js
index a01fbbe24229a0b404327c8dc670197722ebcba7..1db914510422fa913a09e94845e3ebfc28b6493b 100644
--- a/src/js/itemAvailability.js
+++ b/src/js/itemAvailability.js
@@ -2,7 +2,7 @@
 
 /**
  * Checks whether item is accessible
- * @param {string} string Name of the item
+ * @param {string} string Name of wearable item
  * @returns {boolean}
  */
 window.isItemAccessible = function(string) {
diff --git a/src/js/pregJS.js b/src/js/pregJS.js
index 3d15ed734efecbe9402e910e8b3b1988332500b1..4b9237d938313e4f54af4b5a35555302aabbb4b1 100644
--- a/src/js/pregJS.js
+++ b/src/js/pregJS.js
@@ -489,16 +489,12 @@ window.findFather = function(fatherID) {
 	father = V.slaves[V.slaveIndices[fatherID]];
 	if (father === undefined) {
 		if (V.incubator > 0) {
-			father = V.tanks.find(function(s) {
-				return s.ID === fatherID;
-			});
+			father = V.tanks.find(s => s.ID === fatherID);
 		}
 	}
 	if (father === undefined) {
 		if (V.nursery > 0) {
-			father = V.cribs.find(function(s) {
-				return s.ID === fatherID;
-			});
+			father = V.cribs.find(s => s.ID === fatherID);
 		}
 	}
 
diff --git a/src/js/removeActiveSlave.js b/src/js/removeActiveSlave.js
index c93d9435f7e2d9602c5dd62ab5319fe1201382ed..9ba79e752902f63ce13633555112e7204ae420f2 100644
--- a/src/js/removeActiveSlave.js
+++ b/src/js/removeActiveSlave.js
@@ -125,17 +125,14 @@ window.removeActiveSlave = function removeActiveSlave() {
 		}
 
 		if (Array.isArray(V.personalAttention)) {
-			const _rasi = V.personalAttention.findIndex(function(s) { return s.ID === AS_ID; });
-			if (_rasi !== -1) {
-				V.personalAttention.deleteAt(_rasi);
-				if (V.personalAttention.length === 0) {
-					if (V.PC.career === "escort") {
-						V.personalAttention = "whoring";
-					} else if (V.PC.career === "servant") {
-						V.personalAttention = "upkeep";
-					} else {
-						V.personalAttention = "business";
-					}
+			V.personalAttention.deleteWith(s => s.ID === AS_ID);
+			if (V.personalAttention.length === 0) {
+				if (V.PC.career === "escort") {
+					V.personalAttention = "whoring";
+				} else if (V.PC.career === "servant") {
+					V.personalAttention = "upkeep";
+				} else {
+					V.personalAttention = "business";
 				}
 			}
 		}
@@ -174,20 +171,10 @@ window.removeActiveSlave = function removeActiveSlave() {
 			}
 		}
 
-		let _o;
-		for (_o = 0; _o < V.organs.length; _o++) {
-			if (V.organs[_o].ID === AS_ID) {
-				V.organs.deleteAt(_o);
-				_o--;
-			}
-		}
-		for (_o = 0; _o < V.completedOrgans.length; _o++) {
-			if (V.completedOrgans[_o].ID === AS_ID) {
-				V.completedOrgans.deleteAt(_o);
-				_o--;
-			}
-		}
-		for (_o = 0; _o < V.adjustProsthetics.length; _o++) {
+		V.organs.deleteWith(s => s.ID === AS_ID);
+		V.completedOrgans.deleteWith(s => s.ID === AS_ID);
+
+		for (let _o = 0; _o < V.adjustProsthetics.length; _o++) {
 			if (V.adjustProsthetics[_o].ID === AS_ID) {
 				V.adjustProsthetics.deleteAt(_o);
 				V.adjustProstheticsCompleted--;
@@ -195,7 +182,7 @@ window.removeActiveSlave = function removeActiveSlave() {
 			}
 		}
 
-		const _geneIndex = V.genePool.findIndex(function(s) { return s.ID === AS_ID; });
+		const _geneIndex = V.genePool.findIndex(s => s.ID === AS_ID);
 		if (_geneIndex !== -1) {
 			let keep = false;
 			if (V.traitor !== 0) {
@@ -335,7 +322,7 @@ window.removeNonNGPSlave = function removeNonNGPSlave(removedSlave) {
 			}
 		});
 
-		const _geneIndex = V.genePool.findIndex(function(s) { return s.ID === ID; });
+		const _geneIndex = V.genePool.findIndex(s => s.ID === ID);
 		if (_geneIndex !== -1) {
 			let keep = false;
 			if (isImpregnatedBy(V.PC, removedSlave)) {
diff --git a/src/js/rulesAssistant.js b/src/js/rulesAssistant.js
index d0460d7b5f2e25b792d4ab91721b3d525bf238fa..d73689da190cb2e063548078451e4757d8a929a1 100644
--- a/src/js/rulesAssistant.js
+++ b/src/js/rulesAssistant.js
@@ -195,7 +195,7 @@ window.RAFacilityRemove = function RAFacilityRemove(slave, rule) {
 
 /**
  * return whether the rule applies to the slave
- * @param {function} cond	// I think
+ * @param {{function:boolean|string, data, specialSlaves, selectedSlaves, excludedSlaves, assignment}} cond
  * @param {App.Entity.SlaveState} slave
  * @returns {boolean} flag */
 window.ruleAppliesP = function ruleAppliesP(cond, slave) {
diff --git a/src/js/rulesAutosurgery.js b/src/js/rulesAutosurgery.js
index 6be658d7a683bc0ad06df62102050af5bc30acf3..3fd11675c89df24510535f98dba834878d4a3e0c 100644
--- a/src/js/rulesAutosurgery.js
+++ b/src/js/rulesAutosurgery.js
@@ -115,8 +115,8 @@ window.rulesAutosurgery = (function() {
 				thisSurgery = autoSurgerySelector(
 					slave,
 					V.defaultRules
-					.filter(x => ruleApplied(slave, x) && x.set.autoSurgery === 1)
-					.map(x => x.set));
+						.filter(x => ruleApplied(slave, x) && x.set.autoSurgery === 1)
+						.map(x => x.set));
 				if ((thisSurgery.surgery_hips !== "no default setting") && (thisSurgery.surgery_butt !== "no default setting")) {
 					if (slave.hips < -1) {
 						if (thisSurgery.surgery_butt > 2) {
diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js
index d0f4b6da8cabb5bc79cef5d589ad1f29c97c0c23..844dccd74ac2a872960f47748dfcdeb6e741f73d 100644
--- a/src/js/slaveListing.js
+++ b/src/js/slaveListing.js
@@ -328,9 +328,7 @@ App.UI.selectSlaveForPersonalAttention = function(id) {
 			trainingRegimen: "undecided"
 		}];
 	} else {
-		const _pai = V.personalAttention.findIndex(function(s) {
-			return s.ID === id;
-		});
+		const _pai = V.personalAttention.findIndex(s => s.ID === id);
 		if (_pai === -1) {
 			/* not already a PA target; add */
 			V.activeSlave = getSlave(id);
diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js
index d09a60f2585af5878e826d80b837641fa6e085ef..c6798bf89e2b4be3ad32537725e61647a725942e 100644
--- a/src/js/slaveSummaryWidgets.js
+++ b/src/js/slaveSummaryWidgets.js
@@ -4004,9 +4004,7 @@ window.SlaveSummaryUncached = (function() {
 	function short_extended_family(slave) {
 		let handled = 0;
 		if (slave.mother > 0) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.mother;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.mother);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s daughter`;
 				if (slave.relationshipTarget === V.slaves[_ssj].ID) {
@@ -4030,9 +4028,7 @@ window.SlaveSummaryUncached = (function() {
 			r += `${V.missingTable[slave.mother].fullName}'s daughter `;
 		}
 		if (slave.father > 0 && slave.father !== slave.mother) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.father;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.father);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s daughter`;
 				if (slave.relationshipTarget === V.slaves[_ssj].ID && handled !== 1) {
@@ -4056,9 +4052,7 @@ window.SlaveSummaryUncached = (function() {
 			r += `${V.missingTable[slave.father].fullName}'s daughter`;
 		}
 		if (slave.daughters === 1) {
-			let _ssj = V.slaves.findIndex(function(s) {
-				return s.mother === slave.ID;
-			});
+			let _ssj = V.slaves.findIndex(s => s.mother === slave.ID);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s mother`;
 				if (slave.relationshipTarget === V.slaves[_ssj].ID) {
@@ -4068,9 +4062,7 @@ window.SlaveSummaryUncached = (function() {
 				}
 			}
 			r += " ";
-			_ssj = V.slaves.findIndex(function(s) {
-				return s.father === slave.ID;
-			});
+			_ssj = V.slaves.findIndex(s => s.father === slave.ID);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s father`;
 				if (slave.relationshipTarget === V.slaves[_ssj].ID && handled !== 1) {
@@ -4084,9 +4076,7 @@ window.SlaveSummaryUncached = (function() {
 			r += `multiple daughters `;
 		}
 		if (slave.sisters === 1) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return areSisters(s, slave) > 0;
-			});
+			const _ssj = V.slaves.findIndex(s => areSisters(s, slave) > 0);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s sister`;
 				if (slave.relationshipTarget === V.slaves[_ssj].ID) {
@@ -4100,9 +4090,7 @@ window.SlaveSummaryUncached = (function() {
 			r += `multiple sisters `;
 		}
 		if (slave.relationship > 0 && handled !== 1) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.relationshipTarget;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.relationshipTarget);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s`;
 				const friendShipShort = relationshipTermShort(slave);
@@ -4123,17 +4111,13 @@ window.SlaveSummaryUncached = (function() {
 	 */
 	function short_legacy_family(slave) {
 		if (slave.relation !== 0) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.relationTarget;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.relationTarget);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s ${slave.relation}`;
 			}
 		}
 		if (slave.relationship > 0) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.relationshipTarget;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.relationshipTarget);
 			if (_ssj !== -1) {
 				const friendship = relationshipTerm(slave);
 				if (slave.relationshipTarget !== slave.relationTarget) {
@@ -4167,9 +4151,7 @@ window.SlaveSummaryUncached = (function() {
 	function short_rival(slave) {
 		if (slave.rivalry !== 0) {
 			r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.rivalryTarget;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.rivalryTarget);
 			if (_ssj !== -1) {
 				r += `<span class="lightsalmon">`;
 				if (slave.rivalry <= 1) {
@@ -4190,9 +4172,7 @@ window.SlaveSummaryUncached = (function() {
 	function long_extended_family(slave) {
 		let handled = 0;
 		if (slave.mother > 0) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.mother;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.mother);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">daughter`;
 				if (slave.relationshipTarget === V.slaves[_ssj].ID) {
@@ -4217,9 +4197,7 @@ window.SlaveSummaryUncached = (function() {
 			r += `${V.missingTable[slave.mother].fullName}'s <span class="lightgreen">daughter.</span> `;
 		}
 		if (slave.father > 0 && slave.father !== slave.mother) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.father;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.father);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">daughter`;
 				if (slave.relationshipTarget === V.slaves[_ssj].ID) {
@@ -4244,9 +4222,7 @@ window.SlaveSummaryUncached = (function() {
 			r += `${V.missingTable[slave.father].fullName}'s <span class="lightgreen">daughter.</span> `;
 		}
 		if (slave.daughters === 1) {
-			let _ssj = V.slaves.findIndex(function(s) {
-				return s.mother === slave.ID;
-			});
+			let _ssj = V.slaves.findIndex(s => s.mother === slave.ID);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">mother`;
 				if (slave.relationshipTarget === V.slaves[_ssj].ID) {
@@ -4256,9 +4232,7 @@ window.SlaveSummaryUncached = (function() {
 				}
 				r += `.</span> `;
 			}
-			_ssj = V.slaves.findIndex(function(s) {
-				return s.father === slave.ID;
-			});
+			_ssj = V.slaves.findIndex(s => s.father === slave.ID);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">father`;
 				if (slave.relationshipTarget === V.slaves[_ssj].ID) {
@@ -4278,9 +4252,7 @@ window.SlaveSummaryUncached = (function() {
 			}
 		}
 		if (slave.sisters === 1) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return areSisters(s, slave) > 0;
-			});
+			const _ssj = V.slaves.findIndex(s => areSisters(s, slave) > 0);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s <span class="lightgreen">sister`;
 				if (slave.relationshipTarget === V.slaves[_ssj].ID) {
@@ -4300,9 +4272,7 @@ window.SlaveSummaryUncached = (function() {
 			}
 		}
 		if (slave.relationship > 0 && handled !== 1) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.relationshipTarget;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.relationshipTarget);
 			if (_ssj !== -1) {
 				const friendship = relationshipTerm(slave);
 				r += `${SlaveFullName(V.slaves[_ssj])}'s `;
@@ -4322,9 +4292,7 @@ window.SlaveSummaryUncached = (function() {
 	 */
 	function long_legacy_family(slave) {
 		if (slave.relation !== 0) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.relationTarget;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.relationTarget);
 			if (_ssj !== -1) {
 				r += `${SlaveFullName(V.slaves[_ssj])}'s `;
 				if (slave.relationshipTarget !== slave.relationTarget) {
@@ -4338,9 +4306,7 @@ window.SlaveSummaryUncached = (function() {
 			}
 		}
 		if (slave.relationship > 0) {
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.relationshipTarget;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.relationshipTarget);
 			if (_ssj !== -1) {
 				const friendship = relationshipTerm(slave);
 				if (slave.relationshipTarget !== slave.relationTarget) {
@@ -4374,9 +4340,7 @@ window.SlaveSummaryUncached = (function() {
 	function long_rival(slave) {
 		if (slave.rivalry !== 0) {
 			r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
-			const _ssj = V.slaves.findIndex(function(s) {
-				return s.ID === slave.rivalryTarget;
-			});
+			const _ssj = V.slaves.findIndex(s => s.ID === slave.rivalryTarget);
 			if (_ssj !== -1) {
 				if (slave.rivalry <= 1) {
 					r += `<span class="lightsalmon">Dislikes</span> ${SlaveFullName(V.slaves[_ssj])}.`;
diff --git a/src/js/storyJS.js b/src/js/storyJS.js
index 18530af669e3933fc1b3dc666909212040e0a26a..10eae2183ff7e04c5c0c81d6d3a72c8b2a14c32a 100644
--- a/src/js/storyJS.js
+++ b/src/js/storyJS.js
@@ -3,7 +3,7 @@
 
 /**
  * @param {number} x
- * @param {number} defaultValue
+ * @param {number} [defaultValue]
  * @param {number} minValue
  * @param {number} maxValue
  * @returns {number}
@@ -386,18 +386,12 @@ window.bodyguardSuccessorEligible = function(slave) {
 	return (slave.devotion > 50 && slave.muscles >= 0 && slave.weight < 100 && slave.boobs < 8000 && slave.butt < 10 && slave.belly < 5000 && slave.balls < 10 && slave.dick < 10 && slave.preg < 20 && slave.fuckdoll === 0 && slave.fetish !== "mindbroken" && canWalk(slave));
 };
 
-window.ngUpdateGenePool = function(genePool) {
+window.ngUpdateGenePool = function(genePool = []) {
 	const transferredSlaveIds = (State.variables.slaves || [])
-		.filter(function(s) {
-			return s.ID >= 1200000;
-		})
-		.map(function(s) {
-			return s.ID - 1200000;
-		});
-	return (genePool || [])
-		.filter(function(s) {
-			return transferredSlaveIds.indexOf(s.ID) >= 0;
-		})
+		.filter(s => s.ID >= 1200000)
+		.map(s => s.ID - 1200000);
+	return genePool
+		.filter(s => (transferredSlaveIds.indexOf(s.ID) >= 0))
 		.map(function(s) {
 			const result = jQuery.extend(true, {}, s);
 			result.ID += 1200000;