diff --git a/src/js/utilsSlave.js b/src/js/utilsSlave.js
index 85c52c8384ce9467b1f4b9478c79dc2581eb9603..1ae04edf6fe5f33110a044ab6d537034ec2859e0 100644
--- a/src/js/utilsSlave.js
+++ b/src/js/utilsSlave.js
@@ -3414,101 +3414,3 @@ globalThis.ChattelReligionistClothingPass = function(outfit) {
 		return fsLovesClothes;
 	}
 };
-
-/** Returns the description of the slave vagina.
- * @param {FC.HumanState} slave // admits V.PC can be as argument.
- * @param {boolean} withNoun
- * @returns {string}
- */
-globalThis.vaginaDesc = function(slave, withNoun = true) {
-	let adj = [];
-	let noun = ["vagina", "pussy", "cunt", "pussy", "cunt"];
-	if (slave.newVag && slave.vagina > 0) {
-		return either(["hyperelastic", "highly adaptable"]) + withNoun ? " " + jsEither(noun) : "";
-	}
-	if (slave.vagina < 0) {
-		return "non-existent" + withNoun ? " front hole": "";
-	}
-	switch (slave.vagina) {
-		case 0:
-			adj.push(`virgin${slave.counter.reHymen ? "-again" : ""}`, "virgin");
-			noun.push("little slit", "flower");
-		case 1:
-			adj.push("tight", "narrow");
-		case 2:
-			adj.push("", "welcoming");
-			if (slave.vaginaLube) {
-				adj.push("wet", "moist");
-			} else {
-				adj.push("dry");
-			}
-		case 3:
-		case 4:
-			adj.push("baggy", "loose");
-		case 5:
-		case 6:
-			adj.push("gaping");
-		case 7:
-		case 8:
-		case 9:
-			adj.push("cavernous");
-		default:
-			adj.push("ruined");
-	}
-	if (withNoun) {
-		if (slave.vagina > 2) {
-			noun.push("twat")
-		}
-		return jsEither(adj) + " " + jsEither(noun);
-	}
-	return jsEither(adj);
-}
-
-/**
- * Returns the description of the slave penis
- * @param {FC.HumanState} slave // admits V.PC can be as argument.
- * @param {boolean} withNoun
- * @returns {string}
- */
-globalThis.dickDesc = function(slave, withNoun = true) {
-	let adj =[];
-	let noun = ["dick", "dick", "cock", "cock", "penis", "prick"]
-	if (slave.dick === 0) {
-		return "non-existent" + withNoun ? " virile appendage" : "";
-	}
-	switch (slave.dick) {
-		case 1:
-			if (withNoun) {
-				return jsEither(["micropenis", "tiny prick", "tiny weenie"]);
-			}
-			return "tiny";
-		case 2:
-			adj.push("cute");
-			noun.push("weenie");
-		case 3:
-			adj.push("", "average", "standard");
-		case 4:
-			adj.push("big");
-		case 5:
-			adj.push("huge");
-		case 6:
-			adj.push("gignatic");
-		case 7:
-			adj.push("massive");
-		case 8:
-			adj.push("titanic", "truly impossing");
-		case 9:
-			adj.push("monstruous", "absurd");
-		case 10:
-			adj.push("inhuman");
-		default:
-			adj.push("hypertrophied");
-	}
-	if (withNoun) {
-		if (slave.dick > 5) {
-			noun.push("dong")
-		}
-		return jsEither(adj) + " " + jsEither(noun);
-	}
-	return jsEither(adj);
-}
\ No newline at end of file
diff --git a/src/npc/descriptions/genericDescriptions.js b/src/npc/descriptions/genericDescriptions.js
index a77951663f201e853eca308852d59706bc5ddd26..02f7008d877648237dcd63f93cb91f62f34eb711 100644
--- a/src/npc/descriptions/genericDescriptions.js
+++ b/src/npc/descriptions/genericDescriptions.js
@@ -21,3 +21,102 @@ globalThis.beautiful = function(slave) {
 globalThis.pretty = function(slave) {
 	return slave.genes === "XX" ? `pretty` : `good-looking`;
 };
+
+
+/** Returns the description of the slave vagina.
+ * @param {FC.HumanState} slave // admits V.PC can be as argument.
+ * @param {boolean} withNoun
+ * @returns {string}
+ */
+globalThis.vaginaDesc = function(slave, withNoun = true) {
+	let adj = [];
+	let noun = ["vagina", "pussy", "cunt", "pussy", "cunt"];
+	if (slave.newVag && slave.vagina > 0) {
+		return `${jsEither(["hyperelastic", "highly adaptable"])}${withNoun ? " " + jsEither(noun) : ""}`;
+	}
+	if (slave.vagina < 0) {
+		return `non-existent${withNoun ? " front hole": ""}`;
+	}
+	switch (slave.vagina) {
+		case 0:
+			adj.push(`virgin${slave.counter.reHymen ? "-again" : ""}`, "virgin");
+			noun.push("little slit", "flower");
+		case 1:
+			adj.push("tight", "narrow");
+		case 2:
+			adj.push("", "welcoming");
+			if (slave.vaginaLube) {
+				adj.push("wet", "moist");
+			} else {
+				adj.push("dry");
+			}
+		case 3:
+		case 4:
+			adj.push("baggy", "loose");
+		case 5:
+		case 6:
+			adj.push("gaping");
+		case 7:
+		case 8:
+		case 9:
+			adj.push("cavernous");
+		default:
+			adj.push("ruined");
+	}
+	if (withNoun) {
+		if (slave.vagina > 2) {
+			noun.push("twat");
+		}
+		return `${jsEither(adj)} ${jsEither(noun)}`;
+	}
+	return `${jsEither(adj)}`;
+}
+
+/**
+ * Returns the description of the slave penis
+ * @param {FC.HumanState} slave // admits V.PC can be as argument.
+ * @param {boolean} withNoun
+ * @returns {string}
+ */
+globalThis.dickDesc = function(slave, withNoun = true) {
+	let adj =[];
+	let noun = ["dick", "dick", "cock", "cock", "penis", "prick", "phallus"]
+	if (slave.dick === 0) {
+		return `non-existent${withNoun ? " penis" : ""}`;
+	}
+	switch (slave.dick) {
+		case 1:
+			if (withNoun) {
+				return `${jsEither(["micropenis", "tiny prick", "tiny weenie"])}`;
+			}
+			return "tiny";
+		case 2:
+			adj.push("cute", "small");
+			noun.push("weenie");
+		case 3:
+			adj.push("", "average", "standard");
+		case 4:
+			adj.push("big");
+		case 5:
+			adj.push("huge");
+		case 6:
+			adj.push("gignatic");
+		case 7:
+			adj.push("massive");
+		case 8:
+			adj.push("titanic", "truly impossing");
+		case 9:
+			adj.push("monstruous", "absurd");
+		case 10:
+			adj.push("inhuman");
+		default:
+			adj.push("hypertrophied");
+	}
+	if (withNoun) {
+		if (slave.dick > 5) {
+			noun.push("dong");
+		}
+		return `${jsEither(adj)} ${jsEither(noun)}`;
+	}
+	return `${jsEither(adj)}`;
+}