diff --git a/src/js/generateGenetics.js b/src/js/generateGenetics.js
index 7e4993b7b1fe3c00d3987e9fe60597800da01513..548d119fb77dd6a6e779fdefc0974dda29ee7e32 100644
--- a/src/js/generateGenetics.js
+++ b/src/js/generateGenetics.js
@@ -12,8 +12,14 @@ window.generateGenetics = (function() {
 	// intelligence and face parameters are the same so we can use the same distribution for both values
 	// clamping makes edge values (-100, 100) more likely; this is expected behavior
 	// please see https://gitgud.io/pregmodfan/fc-pregmod/issues/852
-	const fuzzy = (a, b) => Math.clamp(normalRandInt((a+b)/2, 20), -100, 100);
+	const fuzzy = (a, b) => Math.clamp(normalRandInt((a + b) / 2, 20), -100, 100);
 
+	/**
+	 * @param {App.Entity.SlaveState} actor1
+	 * @param {number} actor2 Slave ID of actor 2
+	 * @param {number} x
+	 * @returns
+	 */
 	function generateGenetics(actor1, actor2, x) {
 		genes = {
 			gender: "XX",
@@ -38,7 +44,8 @@ window.generateGenetics = (function() {
 			underArmHStyle: "bushy",
 			clone: 0,
 			cloneID: 0,
-			geneticQuirks: 0
+			geneticQuirks: {},
+			fetish: "none"
 		};
 		if (actor1.ID > 0) {
 			mother = V.genePool.find(s => s.ID === actor1.ID);
@@ -658,7 +665,13 @@ window.generateGenetics = (function() {
 		return shape;
 	}
 
-	// genetic quirks
+	/**
+	 * Genetic quirks
+	 * @param {App.Entity.SlaveState|number} father
+	 * @param {App.Entity.SlaveState} mother
+	 * @param {string} sex
+	 * @returns {Object}
+	 */
 	function setGeneticQuirks(father, mother, sex) {
 		let quirks = {
 			macromastia: 0,
@@ -852,7 +865,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.pFace = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.pFace = 1;
 			}
 		}
@@ -866,7 +879,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.uFace = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.uFace = 1;
 			}
 		}
@@ -880,7 +893,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.gigantism = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.gigantism = 1;
 			}
 		}
@@ -894,7 +907,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.dwarfism = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.dwarfism = 1;
 			}
 		}
@@ -908,7 +921,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.albinism = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.albinism = 1;
 			}
 		}
@@ -922,7 +935,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.heterochromia = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.heterochromia = 1;
 			}
 		}
@@ -936,7 +949,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.rearLipedema = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.rearLipedema = 1;
 			}
 		}
@@ -950,7 +963,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.gigantomastia = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.gigantomastia = 1;
 			}
 		}
@@ -964,7 +977,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.macromastia = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.macromastia = 1;
 			}
 		}
@@ -978,7 +991,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.mGain = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.mGain = 1;
 			}
 		}
@@ -992,7 +1005,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.mLoss = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.mLoss = 1;
 			}
 		}
@@ -1006,7 +1019,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.wGain = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.wGain = 1;
 			}
 		}
@@ -1020,7 +1033,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.wLoss = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.wLoss = 1;
 			}
 		}
@@ -1034,7 +1047,7 @@ window.generateGenetics = (function() {
 			chance = jsRandom(1, 16);
 			if (chance <= genetarget) {
 				quirks.androgyny = 2;
-			} else if (chance <= 3*genetarget) {
+			} else if (chance <= 3 * genetarget) {
 				quirks.androgyny = 1;
 			}
 		}
@@ -1045,6 +1058,9 @@ window.generateGenetics = (function() {
 	return generateGenetics;
 })();
 
+/**
+ * @param {App.Entity.SlaveState} mother
+ */
 window.generateChild = function(mother, ova, destination) {
 	let genes = ova.genetics; // maybe just argument this? We'll see.
 	let pregUpgrade = V.pregnancyMonitoringUpgrade;