diff --git a/src/js/utilsPC.js b/src/js/utilsPC.js
index 4d1e516a74ca22e7874425dcb7377854d5b33f5d..7c843d0768302cf81d48165e4b35e2c546e921fb 100644
--- a/src/js/utilsPC.js
+++ b/src/js/utilsPC.js
@@ -1,3 +1,642 @@
+/**
+ * @returns {App.Entity.PlayerState}
+ */
+globalThis.basePlayer = function() {
+	return new App.Entity.PlayerState();
+};
+
+/**
+ * Helper function returning PC's title
+ * @returns {string}
+ */
+globalThis.properTitle = function() {
+	const PC = V.PC;
+	if (PC.customTitle) {
+		return PC.customTitle;
+	} else if (PC.title !== 0) {
+		return "Sir";
+	} else {
+		return "Ma'am";
+	}
+};
+
+/**
+ * Helper function returning slave's title for PC in situations where getWrittenTitle() is inappropriate
+ * @returns {string}
+ */
+globalThis.properMaster = function() {
+	const PC = V.PC;
+	if (PC.customTitle) {
+		return PC.customTitle;
+	} else if (PC.title !== 0) {
+		return "Master";
+	} else {
+		return "Mistress";
+	}
+};
+
+/**
+ * @returns {string}
+ */
+globalThis.PlayerName = function() {
+	const names = V.PC.slaveSurname ? [V.PC.slaveName, V.PC.slaveSurname] : [V.PC.slaveName];
+	if ((V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(V.PC.nationality)) || (V.surnameOrder === 2)) {
+		names.reverse();
+	}
+	return names.join(" ");
+};
+
+/**
+ * @returns {string}
+ */
+globalThis.PCTitle = function() {
+	const titles = [];
+
+	let title = PlayerName();
+	if (V.cheater === 1) {
+		titles.push(`${title} the Cheater`);
+	} else if (V.arcologies[0].FSRestart > 10) {
+		titles.push(`${title} of the Societal Elite`);
+	} else if (V.rep > 18000) {
+		titles.push(`${title} the Great`);
+	} else if (V.rep > 17000) {
+		titles.push(`the exalted ${title}`);
+	} else if (V.rep > 16000) {
+		titles.push(`the illustrious ${title}`);
+	} else if (V.rep > 15000) {
+		titles.push(`the prestigious ${title}`);
+	} else if (V.rep > 14000) {
+		titles.push(`the renowned ${title}`);
+	} else if (V.rep > 13000) {
+		titles.push(`the famed ${title}`);
+	} else if (V.rep > 12000) {
+		titles.push(`the celebrated ${title}`);
+	} else if (V.rep > 11000) {
+		titles.push(`the honored ${title}`);
+	} else if (V.rep > 10000) {
+		titles.push(`the acclaimed ${title}`);
+	} else if (V.rep > 9000) {
+		titles.push(`the eminent ${title}`);
+	} else if (V.rep > 8250) {
+		titles.push(`the prominent ${title}`);
+	} else if (V.rep > 7500) {
+		titles.push(`the distinguished ${title}`);
+	} else if (V.rep > 6750) {
+		titles.push(`the admired ${title}`);
+	} else if (V.rep > 6000) {
+		titles.push(`the esteemed ${title}`);
+	} else if (V.rep > 5250) {
+		titles.push(`the respected ${title}`);
+	} else if (V.rep > 4500) {
+		titles.push(`the known ${title}`);
+	} else if (V.rep > 3750) {
+		titles.push(`the recognized ${title}`);
+	} else if (V.rep > 3000) {
+		titles.push(`the rumored ${title}`);
+	} else {
+		titles.push(title);
+	}
+
+	if (V.PC.slaveName === "FC Dev") {
+		titles.push("the Creator");
+	}
+
+	if (V.plot === 1) {
+		if (V.invasionVictory === 3) {
+			if (V.PC.title === 1) {
+				titles.push("Hero of the City");
+			} else {
+				titles.push("Heroine of the City");
+			}
+		} else if (V.invasionVictory === 2) {
+			titles.push("Defender of the City");
+		}
+		if (V.daughtersVictory === 3) {
+			titles.push("Destroyer of the Daughters");
+		} else if (V.daughtersVictory === 2) {
+			if (V.PC.title === 1) {
+				titles.push("Victor over the Daughters");
+			} else {
+				titles.push("Victrix over the Daughters");
+			}
+		}
+	}
+
+	if (V.SF.Toggle && V.SF.FS.Tension > 100) {
+		switch (V.SF.FS.BadOutcome) {
+			case 'MIGRATION':
+				titles.push("The Abandoned");
+				break;
+			case 'Revolt':
+				titles.push("The Betrayed");
+				break;
+			case 'ANNIHILATION':
+				titles.push("The Runner");
+				break;
+			case 'OCCUPATION':
+				titles.push("The Occupied");
+				break;
+			case 'ASSIMILATION':
+				titles.push("The Deceived");
+				break;
+			case 'ISOLATION':
+				titles.push("The Ignored");
+				break;
+		}
+	}
+
+	if (V.mercenaries >= 5) {
+		if (V.mercenariesTitle === "Evocati") {
+			titles.push(`Princeps of the ${V.mercenariesTitle}`);
+		} else if (V.mercenariesTitle === "Knights") {
+			if (V.PC.title === 1) {
+				titles.push(`Lord Commander of the ${V.mercenariesTitle}`);
+			} else {
+				titles.push(`Lady Commander of the ${V.mercenariesTitle}`);
+			}
+		} else if (V.mercenariesTitle === "Immortals") {
+			titles.push(`Tyrant of the ${V.mercenariesTitle}`);
+		} else if (V.mercenariesTitle === "Black Eagles") {
+			titles.push(`Imperial Overlord of the ${V.mercenariesTitle}`);
+		} else {
+			titles.push(`Commander of the ${V.mercenariesTitle}`);
+		}
+	} else if (V.mercenaries >= 1) {
+		titles.push("Commander of the Mercenaries");
+	}
+
+	if (V.dispensary === 1) {
+		if (V.PC.title === 1) {
+			titles.push("Pharmacologos");
+		} else {
+			titles.push("Pharmacologes");
+		}
+	}
+
+	if (V.arcologies[0].FSSupremacist >= V.FSLockinLevel * 0.9) {
+		titles.push("Grand Champion of the Blood");
+	} else if (V.arcologies[0].FSSupremacist >= V.FSLockinLevel * 0.6) {
+		titles.push("Champion of the Blood");
+	} else if (V.arcologies[0].FSSupremacist >= V.FSLockinLevel * 0.3) {
+		titles.push("Defender of the Blood");
+	}
+
+	if (V.arcologies[0].FSSubjugationist >= V.FSLockinLevel * 0.9) {
+		titles.push("Grand Overseer of the Inferior Race");
+	} else if (V.arcologies[0].FSSubjugationist >= V.FSLockinLevel * 0.6) {
+		titles.push("Overseer of the Inferior Race");
+	} else if (V.arcologies[0].FSSubjugationist >= V.FSLockinLevel * 0.3) {
+		titles.push("Subduer of the Inferior Race");
+	}
+
+	if (V.arcologies[0].FSGenderRadicalist >= V.FSLockinLevel * 0.9) {
+		titles.push("Buttfucker of All Slaves");
+	} else if (V.arcologies[0].FSGenderRadicalist >= V.FSLockinLevel * 0.6) {
+		titles.push("Sodomizer of the Traps");
+	} else if (V.arcologies[0].FSGenderRadicalist >= V.FSLockinLevel * 0.3) {
+		if (V.PC.title === 1) {
+			titles.push("Penetrator of the Sissies");
+		} else {
+			titles.push("Penetratrix of the Sissies");
+		}
+	}
+
+	if (V.arcologies[0].FSGenderFundamentalist >= V.FSLockinLevel * 0.9) {
+		if (V.PC.title === 1) {
+			titles.push("Father to the City");
+		} else {
+			titles.push("Mother to the City");
+		}
+	} else if (V.arcologies[0].FSGenderFundamentalist >= V.FSLockinLevel * 0.6) {
+		titles.push("Defender of Women");
+	} else if (V.arcologies[0].FSGenderFundamentalist >= V.FSLockinLevel * 0.3) {
+		titles.push("Restorer of Morals");
+	}
+
+	if (V.arcologies[0].FSPaternalist >= V.FSLockinLevel * 0.9) {
+		if (V.PC.title === 1) {
+			titles.push("Protector to All Slaves");
+		} else {
+			titles.push("Protectrix to All Slaves");
+		}
+	} else if (V.arcologies[0].FSPaternalist >= V.FSLockinLevel * 0.6) {
+		if (V.PC.title === 1) {
+			titles.push("Benefactor of Slaves");
+		} else {
+			titles.push("Benefactrix of Slaves");
+		}
+	} else if (V.arcologies[0].FSPaternalist >= V.FSLockinLevel * 0.3) {
+		titles.push("Pursuer of Justice");
+	}
+
+	if (V.arcologies[0].FSRepopulationFocus >= V.FSLockinLevel * 0.9) {
+		titles.push("the Savior of the Future");
+	} else if (V.arcologies[0].FSRepopulationFocus >= V.FSLockinLevel * 0.6) {
+		titles.push("the Holder of the Future");
+	} else if (V.arcologies[0].FSRepopulationFocus >= V.FSLockinLevel * 0.3) {
+		titles.push("the Repopulist");
+	}
+
+	if (V.arcologies[0].FSDegradationist >= V.FSLockinLevel * 0.9) {
+		titles.push("Holder of the Rod and the Lash");
+	} else if (V.arcologies[0].FSDegradationist >= V.FSLockinLevel * 0.6) {
+		titles.push("Subduer of Slaves");
+	} else if (V.arcologies[0].FSDegradationist >= V.FSLockinLevel * 0.3) {
+		titles.push("Pursuer of Justice");
+	}
+
+	if (V.arcologies[0].FSIntellectualDependency >= V.FSLockinLevel * 0.9) {
+		titles.push("Sovereign of Bimbos");
+	} else if (V.arcologies[0].FSIntellectualDependency >= V.FSLockinLevel * 0.6) {
+		titles.push("Shepherd of the Slow");
+	} else if (V.arcologies[0].FSIntellectualDependency >= V.FSLockinLevel * 0.3) {
+		titles.push("Lover of Bimbos");
+	}
+
+	if (V.arcologies[0].FSSlaveProfessionalism >= V.FSLockinLevel * 0.9) {
+		titles.push("the Mastermind");
+	} else if (V.arcologies[0].FSSlaveProfessionalism >= V.FSLockinLevel * 0.6) {
+		titles.push("the Genius");
+	} else if (V.arcologies[0].FSSlaveProfessionalism >= V.FSLockinLevel * 0.3) {
+		titles.push("the Smart");
+	}
+
+	if (V.arcologies[0].FSBodyPurist >= V.FSLockinLevel * 0.9) {
+		titles.push("the Purifier of the Breasts");
+	} else if (V.arcologies[0].FSBodyPurist >= V.FSLockinLevel * 0.6) {
+		titles.push("the Discerning");
+	} else if (V.arcologies[0].FSBodyPurist >= V.FSLockinLevel * 0.3) {
+		titles.push("the Tasteful");
+	}
+
+	if (V.arcologies[0].FSAssetExpansionist >= V.FSLockinLevel * 0.9) {
+		titles.push("the Expander of the Breasts");
+	} else if (V.arcologies[0].FSAssetExpansionist >= V.FSLockinLevel * 0.6) {
+		titles.push("the Expander");
+	} else if (V.arcologies[0].FSAssetExpansionist >= V.FSLockinLevel * 0.3) {
+		if (V.PC.title === 1) {
+			titles.push("the Implanter");
+		} else {
+			titles.push("the Implantrix");
+		}
+	}
+
+	if (V.arcologies[0].FSStatuesqueGlorification >= V.FSLockinLevel * 0.9) {
+		if (V.PC.title === 1) {
+			titles.push("He Who Stands Above All");
+		} else {
+			titles.push("She Who Stands Above All");
+		}
+	} else if (V.arcologies[0].FSStatuesqueGlorification >= V.FSLockinLevel * 0.6) {
+		titles.push("Agent of Growth");
+	} else if (V.arcologies[0].FSStatuesqueGlorification >= V.FSLockinLevel * 0.3) {
+		titles.push("height fetishist");
+	}
+
+	if (V.arcologies[0].FSPetiteAdmiration >= V.FSLockinLevel * 0.9) {
+		titles.push("Supporter of the Small");
+	} else if (V.arcologies[0].FSPetiteAdmiration >= V.FSLockinLevel * 0.6) {
+		titles.push("the Size Enthusiast");
+	} else if (V.arcologies[0].FSPetiteAdmiration >= V.FSLockinLevel * 0.3) {
+		titles.push("height fetishist");
+	}
+
+	if (V.arcologies[0].FSPastoralist >= V.FSLockinLevel * 0.9) {
+		if (V.PC.title === 1) {
+			titles.push("the Master of Stock");
+		} else {
+			titles.push("the Mistress of Stock");
+		}
+	} else if (V.arcologies[0].FSPastoralist >= V.FSLockinLevel * 0.6) {
+		titles.push("the Rancher");
+	} else if (V.arcologies[0].FSPastoralist >= V.FSLockinLevel * 0.3) {
+		titles.push("the Farmer");
+	}
+
+	if (V.arcologies[0].FSPhysicalIdealist >= V.FSLockinLevel * 0.9) {
+		titles.push("beloved of Brodin");
+	} else if (V.arcologies[0].FSPhysicalIdealist >= V.FSLockinLevel * 0.6) {
+		if (V.PC.title === 1) {
+			titles.push("he of the godlike Body");
+		} else {
+			titles.push("she of the godlike Body");
+		}
+	} else if (V.arcologies[0].FSPhysicalIdealist >= V.FSLockinLevel * 0.3) {
+		titles.push("advancer of Gains");
+	}
+
+	if (V.arcologies[0].FSHedonisticDecadence >= V.FSLockinLevel * 0.9) {
+		if (V.PC.title === 1) {
+			titles.push("Master of Softness");
+		} else {
+			titles.push("Lady of Softness");
+		}
+	} else if (V.arcologies[0].FSHedonisticDecadence >= V.FSLockinLevel * 0.6) {
+		titles.push("Thickness Enthusiast");
+	} else if (V.arcologies[0].FSHedonisticDecadence >= V.FSLockinLevel * 0.3) {
+		titles.push("the Feeder");
+	}
+
+	if (V.arcologies[0].FSMaturityPreferentialist >= V.FSLockinLevel * 0.9) {
+		titles.push("Grand Preserver of MILFS");
+	} else if (V.arcologies[0].FSMaturityPreferentialist >= V.FSLockinLevel * 0.6) {
+		titles.push("Fucker of MILFS");
+	} else if (V.arcologies[0].FSMaturityPreferentialist >= V.FSLockinLevel * 0.3) {
+		if (V.PC.title === 1) {
+			titles.push("he of the notorious MILF preference");
+		} else {
+			titles.push("she of the notorious MILF preference");
+		}
+	}
+
+	if (V.arcologies[0].FSYouthPreferentialist >= V.FSLockinLevel * 0.9) {
+		titles.push("Keeper of the Magnificent Young Harem");
+	} else if (V.arcologies[0].FSYouthPreferentialist >= V.FSLockinLevel * 0.6) {
+		titles.push("Keeper of Virgins");
+	} else if (V.arcologies[0].FSYouthPreferentialist >= V.FSLockinLevel * 0.3) {
+		titles.push("the Virginbreaker");
+	}
+
+	if (V.arcologies[0].FSChattelReligionistLaw === 1) {
+		titles.push("the Prophet");
+	} else if (V.arcologies[0].FSChattelReligionist >= V.FSLockinLevel * 0.9) {
+		titles.push("Keeper of the Blade and Chalice");
+	} else if (V.arcologies[0].FSChattelReligionist >= V.FSLockinLevel * 0.6) {
+		titles.push("Champion of the Faith");
+	} else if (V.arcologies[0].FSChattelReligionist >= V.FSLockinLevel * 0.3) {
+		titles.push("the Holy");
+	}
+
+	if (V.arcologies[0].FSRomanRevivalist >= V.FSLockinLevel * 0.9) {
+		titles.push("First Consul");
+	} else if (V.arcologies[0].FSRomanRevivalist >= V.FSLockinLevel * 0.6) {
+		titles.push("Aedile");
+	} else if (V.arcologies[0].FSRomanRevivalist >= V.FSLockinLevel * 0.3) {
+		titles.push("Quaestor");
+	}
+
+	if (V.arcologies[0].FSNeoImperialist >= V.FSLockinLevel * 0.9) {
+		if (V.PC.title === 1) {
+			titles.push("Immortal Emperor");
+		} else {
+			titles.push("Immortal Empress");
+		}
+	} else if (V.arcologies[0].FSNeoImperialist >= V.FSLockinLevel * 0.6) {
+		if (V.PC.title === 1) {
+			titles.push("His Highness");
+		} else {
+			titles.push("Her Highness");
+		}
+	} else if (V.arcologies[0].FSNeoImperialist >= V.FSLockinLevel * 0.3) {
+		if (V.PC.title === 1) {
+			titles.push("Lord and Master");
+		} else {
+			titles.push("Lord and Mistress");
+		}
+	}
+
+	if (V.arcologies[0].FSAztecRevivalist >= V.FSLockinLevel * 0.9) {
+		titles.push("Tlatcani");
+	} else if (V.arcologies[0].FSAztecRevivalist >= V.FSLockinLevel * 0.6) {
+		titles.push("Cihuacoatl");
+	} else if (V.arcologies[0].FSAztecRevivalist >= V.FSLockinLevel * 0.3) {
+		titles.push("Tlatoani");
+	}
+
+	if (V.arcologies[0].FSEgyptianRevivalist >= V.FSLockinLevel * 0.9) {
+		if (V.PC.title === 1) {
+			titles.push("the Living God");
+		} else {
+			titles.push("the Living Goddess");
+		}
+	} else if (V.arcologies[0].FSEgyptianRevivalist >= V.FSLockinLevel * 0.6) {
+		titles.push("Pharaoh");
+	} else if (V.arcologies[0].FSEgyptianRevivalist >= V.FSLockinLevel * 0.3) {
+		if (V.PC.title === 1) {
+			titles.push("Prince of the Nile");
+		} else {
+			titles.push("Princess of the Nile");
+		}
+	}
+
+	if (V.arcologies[0].FSEdoRevivalist >= V.FSLockinLevel * 0.9) {
+		if (V.PC.title === 1) {
+			titles.push("Emperor and Descendant of Amaterasu");
+		} else {
+			titles.push("Amaterasu Reborn");
+		}
+	} else if (V.arcologies[0].FSEdoRevivalist >= V.FSLockinLevel * 0.6) {
+		titles.push("Shogun");
+	} else if (V.arcologies[0].FSEdoRevivalist >= V.FSLockinLevel * 0.3) {
+		titles.push("Daimyo");
+	}
+
+	if (V.arcologies[0].FSArabianRevivalist >= V.FSLockinLevel * 0.9) {
+		if (V.PC.title === 1) {
+			titles.push("Caliph");
+		} else {
+			titles.push("Handmaiden of Allah");
+		}
+	} else if (V.arcologies[0].FSArabianRevivalist >= V.FSLockinLevel * 0.6) {
+		if (V.PC.title === 1) {
+			titles.push("Sultan");
+		} else {
+			titles.push("Sultana");
+		}
+	} else if (V.arcologies[0].FSArabianRevivalist >= V.FSLockinLevel * 0.3) {
+		titles.push("Beloved of Allah");
+	}
+
+	if (V.arcologies[0].FSChineseRevivalist >= V.FSLockinLevel * 0.9) {
+		if (V.PC.title === 1) {
+			titles.push("Emperor and Holder of the Mandate of Heaven");
+		} else {
+			titles.push("Empress and Holder of the Mandate of Heaven");
+		}
+	} else if (V.arcologies[0].FSChineseRevivalist >= V.FSLockinLevel * 0.6) {
+		if (V.PC.title === 1) {
+			titles.push("Emperor");
+		} else {
+			titles.push("Empress");
+		}
+	} else if (V.arcologies[0].FSChineseRevivalist >= V.FSLockinLevel * 0.3) {
+		if (V.PC.title === 1) {
+			titles.push("Governor of the Province");
+		} else {
+			titles.push("Governess of the Province");
+		}
+	}
+
+	const facilities = App.Entity.facilities;
+	if (facilities.brothel.employeesIDs().size >= 15) {
+		if (V.PC.title === 1) {
+			titles.push("Procurator of the Brothel");
+		} else {
+			titles.push("Procuratrix of the Brothel");
+		}
+	}
+
+	if (facilities.club.employeesIDs().size >= 15) {
+		titles.push("First on the Club");
+	}
+	if (facilities.dairy.employeesIDs().size >= 15) {
+		titles.push("Keeper of the Cattle");
+	}
+	if (V.cumSlaves >= 15) {
+		if (V.PC.title === 1) {
+			titles.push("Extractor of the Ejaculate");
+		} else {
+			titles.push("Extractrix of the Ejaculate");
+		}
+	}
+	if (facilities.servantsQuarters.employeesIDs().size >= 15) {
+		if (V.PC.title === 1) {
+			titles.push("Director of the Servants");
+		} else {
+			titles.push("Directrix of the Servants");
+		}
+	}
+	if (facilities.schoolroom.employeesIDs().size >= 10) {
+		if (V.PC.title === 1) {
+			titles.push("Educator of the Slaves");
+		} else {
+			titles.push("Educatrix of the Slaves");
+		}
+	}
+	if (facilities.spa.employeesIDs().size >= 10) {
+		titles.push("Order of the Bath");
+	}
+	if (facilities.arcade.employeesIDs().size >= 15) {
+		titles.push("Comptroller of the Arcade");
+	}
+	if (V.nurseryChildren >= 10) {
+		titles.push("Caretaker of the Youth");
+	}
+
+	const schoolsPresent = [];
+	const schoolsPerfected = [];
+	for (const [school, obj] of App.Data.misc.schools) {
+		if (V[school].schoolProsperity >= 10) {
+			schoolsPerfected.push(obj.title);
+		} else if (V[school].schoolPresent === 1) {
+			schoolsPresent.push(obj.title);
+		}
+	}
+
+	if (schoolsPerfected.length > 0) {
+		titles.push(`${V.PC.title === 1 ? 'Benefactor' : 'Benefactrix'} of ${schoolsPerfected.toStringExt()}`);
+	}
+	if (schoolsPresent.length > 0) {
+		titles.push(`Supporter of ${schoolsPresent.toStringExt()}`);
+	}
+
+	if (V.TFS.schoolProsperity >= 10) {
+		titles.push("Honorary Sibling of the Futanari Sisters");
+	} else if (V.TFS.schoolPresent === 1) {
+		if (V.PC.title === 1) {
+			titles.push("Protector of the Futanari Sisters");
+		} else {
+			titles.push("Protectrix of the Futanari Sisters");
+		}
+	}
+
+	if (V.slaves.length > 50) {
+		if (V.PC.title === 1) {
+			titles.push("Master of Slaves");
+		} else {
+			titles.push("Mistress of Slaves");
+		}
+	} else if (V.slaves.length > 40) {
+		titles.push("Holder of Slaves");
+	} else if (V.slaves.length > 30) {
+		titles.push("Keeper of Slaves");
+	} else if (V.slaves.length > 20) {
+		titles.push("Manager of Slaves");
+	} else if (V.slaves.length > 10) {
+		titles.push("owner of slaves");
+	}
+	const corpValue = App.Corporate.value;
+	if (corpValue > 500000) {
+		titles.push("Corporate Titan");
+	} else if (corpValue > 250000) {
+		titles.push("corporate innovator");
+	} else if (corpValue > 100000) {
+		titles.push("corporate founder");
+	} else if (corpValue > 0) {
+		if (V.PC.title === 1) {
+			titles.push("noted corporate businessman");
+		} else {
+			titles.push("noted corporate businesswoman");
+		}
+	}
+
+	if (V.rep > 18000) {
+		if (V.PC.title === 1) {
+			titles.push("unquestioned Master of the Arcology");
+		} else {
+			titles.push("unquestioned Mistress of the Arcology");
+		}
+	} else if (V.rep > 15000) {
+		if (V.PC.title === 1) {
+			titles.push("Lord of the Arcology");
+		} else {
+			titles.push("Lady of the Arcology");
+		}
+	} else if (V.rep > 12000) {
+		titles.push("Ruler of the Arcology");
+	} else if (V.rep > 9000) {
+		titles.push("chief officer of the arcology");
+	} else {
+		titles.push("owner of the arcology");
+	}
+
+	return title + titles.toStringExt();
+};
+
+/**
+ * @param {string|Array<string>} input
+ * @param {number} [increase=1]
+ * @returns {string}
+ */
+globalThis.IncreasePCSkills = function(input, increase = 1) {
+	if (Array.isArray(input)) {
+		return input.reduce((r, inputArray) => r + IncreasePCSkills(inputArray, increase), '');
+	}
+	const player = V.PC;
+	const oldSkill = player.skill[input];
+	player.skill[input] += increase;
+	let t = ``;
+
+	if (oldSkill < 10 && player.skill[input] >= 10) {
+		t += `<span class="green"> \nYou have gained basic knowledge in ${input}.</span>`;
+	} else if (oldSkill < 30 && player.skill[input] >= 30) {
+		t += `<span class="green"> \nYou have gained some knowledge in ${input}.</span>`;
+	} else if (oldSkill < 60 && player.skill[input] >= 60) {
+		t += `<span class="green"> \nYou have become an expert in ${input}.</span>`;
+	} else if (oldSkill < 100 && player.skill[input] >= 100) {
+		t += `<span class="green"> \nYou have mastered ${input}.</span>`;
+	}
+	return t;
+};
+
+/** Returns if the player is on mandatory bedrest.
+ * @param {App.Entity.SlaveState} actor
+ * @returns {boolean}
+ */
+globalThis.onBedRest = function(actor) {
+	// consider player health and injury in the future!
+	if (!actor) {
+		return null;
+	} else if (!canMove(actor)) {
+		return true;
+	} else if (actor.preg > actor.pregData.normalBirth / 1.33 && actor.womb.find((ft) => ft.genetics.geneticQuirks.polyhydramnios === 2 && ft.age >= 20)) {
+		return true;
+	} else if (actor.bellyPreg >= actor.pregAdaptation * 2200) {
+		return true;
+	}
+	return false;
+};
+
 globalThis.resetPersonalAttention = function() {
 	if (V.PC.career === "escort" || V.PC.career === "prostitute" || V.PC.career === "child prostitute") {
 		V.personalAttention = "whoring";
diff --git a/src/markets/bulkSlave/bulkSlaveIntro.js b/src/markets/bulkSlave/bulkSlaveIntro.js
index 9e76f3dc949b383a5cbf99a0ea6d119cb4cb259b..5dec6c81fa9dd3a63718d427e87c1dde7680dd52 100644
--- a/src/markets/bulkSlave/bulkSlaveIntro.js
+++ b/src/markets/bulkSlave/bulkSlaveIntro.js
@@ -144,14 +144,14 @@ App.Markets.bulkSlaveIntro = function() {
 
 			/* Adjust _slaveCost according to V.slavesSeen */
 			if (V.slavesSeen > V.slaveMarketLimit) {
-				_slaveCost += _slaveCost*((V.slavesSeen-V.slaveMarketLimit)*0.1);
+				_slaveCost += _slaveCost * ((V.slavesSeen - V.slaveMarketLimit) * 0.1);
 				if (V.market.introType === "inStock") {
 					break;
 				}
 			}
 
 			/* Apply discount modifier */
-			_slaveCost = discount*Math.trunc(_slaveCost/500);
+			_slaveCost = discount * Math.trunc(_slaveCost / 500);
 
 			/* Charge the Player for the slave, or break out if cannot afford */
 			if (V.cash < _slaveCost) {
@@ -195,7 +195,7 @@ App.Markets.bulkSlaveIntro = function() {
 				V.market.numArcology = 1;
 			}
 			opinion = App.Neighbor.opinion(V.arcologies[0], V.arcologies[V.market.numArcology]);
-			opinion = Math.clamp(Math.trunc(opinion/20), -10, 10);
+			opinion = Math.clamp(Math.trunc(opinion / 20), -10, 10);
 			discount -= (opinion * 25);
 		} else if (App.Data.misc.schools.has(V.market.slaveMarket)) {
 			if (V[V.market.slaveMarket].schoolUpgrade !== 0) {
diff --git a/src/npc/databases/cheatmodeDatabase.js b/src/npc/databases/cheatmodeDatabase.js
index d7054ea13f9c2b0265ac7834b7f623461ce7061f..f293c2427bb447602e49d3b20df6166798dc9fcc 100644
--- a/src/npc/databases/cheatmodeDatabase.js
+++ b/src/npc/databases/cheatmodeDatabase.js
@@ -1,421 +1,420 @@
+/**
+ * @returns {string}
+ */
 App.Intro.cheatModeSlaves = function() {
-	const el = new DocumentFragment();
-	const r = [];
 	const slaveNames = [];
-	let _slave = BaseSlave();
-	let _HS = clone(_slave);
-	_HS.slaveName = "Miss Anne";
-	_HS.birthName = "Lindy Anne";
-	_HS.ID = 990000;
-	_HS.relationship = 4;
-	_HS.relationshipTarget = 990001;
-	_HS.rivalry = 1;
-	_HS.rivalryTarget = 990002;
-	_HS.assignment = "be your Head Girl";
-	_HS.birthWeek = random(0, 51);
-	_HS.actualAge = 42;
-	_HS.physicalAge = 42;
-	_HS.visualAge = 42;
-	_HS.ovaryAge = 42;
-	_HS.ageImplant = 1;
-	setHealth(_HS, 50);
-	_HS.devotion = 100;
-	_HS.nationality = "Stateless";
-	_HS.height = 175;
-	_HS.race = "white";
-	_HS.eye.origColor = "green";
-	_HS.origHColor = "honey blonde";
-	_HS.origSkin = "pale";
-	_HS.hStyle = "long";
-	_HS.waist = -55;
-	_HS.boobs = 1000;
-	_HS.boobsImplant = 600;
-	_HS.boobsImplantType = "normal";
-	_HS.areolae = 1;
-	_HS.butt = 4;
-	_HS.buttImplant = 2;
-	_HS.buttImplantType = "normal";
-	_HS.face = 55;
-	_HS.lips = 35;
-	_HS.anus = 1;
-	_HS.makeup = 1;
-	_HS.nails = 1;
-	_HS.earPiercing = 1;
-	_HS.skill.oral = 100;
-	_HS.skill.anal = 100;
-	_HS.skill.whoring = 100;
-	_HS.skill.entertainment = 100;
-	_HS.clothes = "a slave gown";
-	_HS.intelligence = 100;
-	_HS.energy = 65;
-	_HS.attrXY = 40;
-	_HS.fetishKnown = 1;
-	_HS.custom.tattoo = "'Miss Anne' is tattooed in lovely flowing script over $his collarbone.";
-	_HS.custom.desc = "$He speaks with the rich accent of the Old South.";
+	let baseSlave = BaseSlave();
+
+	let cheatSlave = clone(baseSlave);
+	cheatSlave.slaveName = "Miss Anne";
+	cheatSlave.birthName = "Lindy Anne";
+	cheatSlave.ID = 990000;
+	cheatSlave.relationship = 4;
+	cheatSlave.relationshipTarget = 990001;
+	cheatSlave.rivalry = 1;
+	cheatSlave.rivalryTarget = 990002;
+	cheatSlave.assignment = "be your Head Girl";
+	cheatSlave.birthWeek = random(0, 51);
+	cheatSlave.actualAge = 42;
+	cheatSlave.physicalAge = 42;
+	cheatSlave.visualAge = 42;
+	cheatSlave.ovaryAge = 42;
+	cheatSlave.ageImplant = 1;
+	setHealth(cheatSlave, 50);
+	cheatSlave.devotion = 100;
+	cheatSlave.nationality = "Stateless";
+	cheatSlave.height = 175;
+	cheatSlave.race = "white";
+	cheatSlave.eye.origColor = "green";
+	cheatSlave.origHColor = "honey blonde";
+	cheatSlave.origSkin = "pale";
+	cheatSlave.hStyle = "long";
+	cheatSlave.waist = -55;
+	cheatSlave.boobs = 1000;
+	cheatSlave.boobsImplant = 600;
+	cheatSlave.boobsImplantType = "normal";
+	cheatSlave.areolae = 1;
+	cheatSlave.butt = 4;
+	cheatSlave.buttImplant = 2;
+	cheatSlave.buttImplantType = "normal";
+	cheatSlave.face = 55;
+	cheatSlave.lips = 35;
+	cheatSlave.anus = 1;
+	cheatSlave.makeup = 1;
+	cheatSlave.nails = 1;
+	cheatSlave.earPiercing = 1;
+	cheatSlave.skill.oral = 100;
+	cheatSlave.skill.anal = 100;
+	cheatSlave.skill.whoring = 100;
+	cheatSlave.skill.entertainment = 100;
+	cheatSlave.clothes = "a slave gown";
+	cheatSlave.intelligence = 100;
+	cheatSlave.energy = 65;
+	cheatSlave.attrXY = 40;
+	cheatSlave.fetishKnown = 1;
+	cheatSlave.custom.tattoo = "'Miss Anne' is tattooed in lovely flowing script over $his collarbone.";
+	cheatSlave.custom.desc = "$He speaks with the rich accent of the Old South.";
 	if (V.seeDicks !== 100) {
-		_HS.genes = "XX";
-		_HS.vagina = 2;
-		_HS.ovaries = 1;
-		_HS.skill.vaginal = 100;
-		_HS.pubertyXX = 1;
+		cheatSlave.genes = "XX";
+		cheatSlave.vagina = 2;
+		cheatSlave.ovaries = 1;
+		cheatSlave.skill.vaginal = 100;
+		cheatSlave.pubertyXX = 1;
 	} else {
-		_HS.genes = "XY";
-		_HS.vagina = -1;
-		_HS.dick = 4;
-		_HS.balls = 4;
-		_HS.scrotum = 4;
-		_HS.foreskin = 4;
-		_HS.prostate = 1;
-		_HS.pubertyXY = 1;
+		cheatSlave.genes = "XY";
+		cheatSlave.vagina = -1;
+		cheatSlave.dick = 4;
+		cheatSlave.balls = 4;
+		cheatSlave.scrotum = 4;
+		cheatSlave.foreskin = 4;
+		cheatSlave.prostate = 1;
+		cheatSlave.pubertyXY = 1;
 	}
-	newSlave(_HS);
-	V.HeadGirlID = _HS.ID;
-	r.push(`There are quite a few left; their names are`);
-	slaveNames.push(_HS.slaveName);
+	newSlave(cheatSlave);
+	V.HeadGirlID = cheatSlave.ID;
+	slaveNames.push(cheatSlave.slaveName);
 
-	_HS = clone(_slave);
-	_HS.slaveName = "Cornelia";
-	_HS.birthName = "Cora";
-	_HS.ID = 990001;
-	_HS.relationship = 4;
-	_HS.relationshipTarget = 990000;
-	_HS.assignment = "whore";
-	_HS.birthWeek = random(0, 51);
-	_HS.actualAge = 36;
-	_HS.physicalAge = 36;
-	_HS.visualAge = 36;
-	_HS.ovaryAge = 36;
-	_HS.ageImplant = 1;
-	setHealth(_HS, 10);
-	_HS.devotion = 100;
-	_HS.nationality = "Stateless";
-	_HS.muscles = 20;
-	_HS.height = 190;
-	_HS.race = "black";
-	_HS.origHColor = "black";
-	_HS.pubicHColor = "black";
-	_HS.origSkin = "dark";
-	_HS.hStyle = "long";
-	_HS.pubicHStyle = "waxed";
-	_HS.waist = -55;
-	_HS.boobs = 1200;
-	_HS.boobsImplant = 1000;
-	_HS.boobsImplantType = "fillable";
-	_HS.areolae = 2;
-	_HS.butt = 5;
-	_HS.buttImplant = 3;
-	_HS.buttImplantType = "fillable";
-	_HS.preg = -2;
-	_HS.face = 15;
-	_HS.faceImplant = 65;
-	_HS.lips = 35;
-	_HS.lipsImplant = 10;
-	_HS.anus = 2;
-	_HS.makeup = 1;
-	_HS.nails = 1;
-	_HS.earPiercing = 1;
-	_HS.skill.oral = 100;
-	_HS.skill.anal = 100;
-	_HS.skill.whoring = 100;
-	_HS.skill.entertainment = 100;
-	_HS.clothes = "a slave gown";
-	_HS.energy = 65;
-	_HS.attrXX = 80;
-	_HS.attrXY = 40;
-	_HS.fetishKnown = 1;
-	_HS.brand["left hand"] = "a large letter 'S'";
-	_HS.custom.desc = "$He speaks with the demeaning accent of slaves from the Old South.";
+	cheatSlave = clone(baseSlave);
+	cheatSlave.slaveName = "Cornelia";
+	cheatSlave.birthName = "Cora";
+	cheatSlave.ID = 990001;
+	cheatSlave.relationship = 4;
+	cheatSlave.relationshipTarget = 990000;
+	cheatSlave.assignment = "whore";
+	cheatSlave.birthWeek = random(0, 51);
+	cheatSlave.actualAge = 36;
+	cheatSlave.physicalAge = 36;
+	cheatSlave.visualAge = 36;
+	cheatSlave.ovaryAge = 36;
+	cheatSlave.ageImplant = 1;
+	setHealth(cheatSlave, 10);
+	cheatSlave.devotion = 100;
+	cheatSlave.nationality = "Stateless";
+	cheatSlave.muscles = 20;
+	cheatSlave.height = 190;
+	cheatSlave.race = "black";
+	cheatSlave.origHColor = "black";
+	cheatSlave.pubicHColor = "black";
+	cheatSlave.origSkin = "dark";
+	cheatSlave.hStyle = "long";
+	cheatSlave.pubicHStyle = "waxed";
+	cheatSlave.waist = -55;
+	cheatSlave.boobs = 1200;
+	cheatSlave.boobsImplant = 1000;
+	cheatSlave.boobsImplantType = "fillable";
+	cheatSlave.areolae = 2;
+	cheatSlave.butt = 5;
+	cheatSlave.buttImplant = 3;
+	cheatSlave.buttImplantType = "fillable";
+	cheatSlave.preg = -2;
+	cheatSlave.face = 15;
+	cheatSlave.faceImplant = 65;
+	cheatSlave.lips = 35;
+	cheatSlave.lipsImplant = 10;
+	cheatSlave.anus = 2;
+	cheatSlave.makeup = 1;
+	cheatSlave.nails = 1;
+	cheatSlave.earPiercing = 1;
+	cheatSlave.skill.oral = 100;
+	cheatSlave.skill.anal = 100;
+	cheatSlave.skill.whoring = 100;
+	cheatSlave.skill.entertainment = 100;
+	cheatSlave.clothes = "a slave gown";
+	cheatSlave.energy = 65;
+	cheatSlave.attrXX = 80;
+	cheatSlave.attrXY = 40;
+	cheatSlave.fetishKnown = 1;
+	cheatSlave.brand["left hand"] = "a large letter 'S'";
+	cheatSlave.custom.desc = "$He speaks with the demeaning accent of slaves from the Old South.";
 	if (V.seeDicks !== 0) {
-		_HS.genes = "XY";
-		_HS.vagina = -1;
-		_HS.dick = 3;
-		_HS.balls = 3;
-		_HS.scrotum = 3;
-		_HS.foreskin = 3;
-		_HS.prostate = 1;
-		_HS.pubertyXY = 1;
+		cheatSlave.genes = "XY";
+		cheatSlave.vagina = -1;
+		cheatSlave.dick = 3;
+		cheatSlave.balls = 3;
+		cheatSlave.scrotum = 3;
+		cheatSlave.foreskin = 3;
+		cheatSlave.prostate = 1;
+		cheatSlave.pubertyXY = 1;
 	} else {
-		_HS.genes = "XX";
-		_HS.vagina = 3;
-		_HS.ovaries = 1;
-		_HS.pubertyXX = 1;
+		cheatSlave.genes = "XX";
+		cheatSlave.vagina = 3;
+		cheatSlave.ovaries = 1;
+		cheatSlave.pubertyXX = 1;
 	}
-	newSlave(_HS);
-	slaveNames.push(_HS.slaveName);
+	newSlave(cheatSlave);
+	slaveNames.push(cheatSlave.slaveName);
 
-	_HS = clone(_slave);
-	_HS.slaveName = "Sheba";
-	_HS.birthName = "Shaneequa";
-	_HS.ID = 990002;
-	_HS.rivalry = 1;
-	_HS.rivalryTarget = 990000;
-	_HS.assignment = "whore";
-	_HS.birthWeek = random(0, 51);
-	_HS.actualAge = 19;
-	_HS.physicalAge = 19;
-	_HS.visualAge = 19;
-	_HS.ovaryAge = 19;
-	setHealth(_HS, 10);
-	_HS.devotion = 60;
-	_HS.nationality = "Stateless";
-	_HS.height = 175;
-	_HS.race = "black";
-	_HS.pubicHColor = "black";
-	_HS.origSkin = "brown";
-	_HS.hStyle = "long";
-	_HS.pubicHStyle = "waxed";
-	_HS.waist = -55;
-	_HS.boobs = 1600;
-	_HS.boobsImplant = 600;
-	_HS.boobsImplantType = "normal";
-	_HS.nipplesPiercing = 1;
-	_HS.areolae = 1;
-	_HS.butt = 6;
-	_HS.buttImplant = 2;
-	_HS.buttImplantType = "normal";
-	_HS.face = 55;
-	_HS.faceImplant = 15;
-	_HS.lips = 55;
-	_HS.lipsImplant = 10;
-	_HS.anus = 1;
-	_HS.makeup = 1;
-	_HS.nails = 1;
-	_HS.earPiercing = 1;
-	_HS.skill.oral = 35;
-	_HS.skill.anal = 35;
-	_HS.skill.whoring = 35;
-	_HS.skill.entertainment = 35;
-	_HS.clothes = "a slave gown";
-	_HS.energy = 100;
-	_HS.attrXY = 40;
-	_HS.fetishKnown = 1;
-	_HS.brand["left hand"] = "a large letter 'S'";
-	_HS.custom.desc = "$He speaks with the demeaning accent of slaves from the Old South.";
-	_HS.mother = 990001;
+	cheatSlave = clone(baseSlave);
+	cheatSlave.slaveName = "Sheba";
+	cheatSlave.birthName = "Shaneequa";
+	cheatSlave.ID = 990002;
+	cheatSlave.rivalry = 1;
+	cheatSlave.rivalryTarget = 990000;
+	cheatSlave.assignment = "whore";
+	cheatSlave.birthWeek = random(0, 51);
+	cheatSlave.actualAge = 19;
+	cheatSlave.physicalAge = 19;
+	cheatSlave.visualAge = 19;
+	cheatSlave.ovaryAge = 19;
+	setHealth(cheatSlave, 10);
+	cheatSlave.devotion = 60;
+	cheatSlave.nationality = "Stateless";
+	cheatSlave.height = 175;
+	cheatSlave.race = "black";
+	cheatSlave.pubicHColor = "black";
+	cheatSlave.origSkin = "brown";
+	cheatSlave.hStyle = "long";
+	cheatSlave.pubicHStyle = "waxed";
+	cheatSlave.waist = -55;
+	cheatSlave.boobs = 1600;
+	cheatSlave.boobsImplant = 600;
+	cheatSlave.boobsImplantType = "normal";
+	cheatSlave.nipplesPiercing = 1;
+	cheatSlave.areolae = 1;
+	cheatSlave.butt = 6;
+	cheatSlave.buttImplant = 2;
+	cheatSlave.buttImplantType = "normal";
+	cheatSlave.face = 55;
+	cheatSlave.faceImplant = 15;
+	cheatSlave.lips = 55;
+	cheatSlave.lipsImplant = 10;
+	cheatSlave.anus = 1;
+	cheatSlave.makeup = 1;
+	cheatSlave.nails = 1;
+	cheatSlave.earPiercing = 1;
+	cheatSlave.skill.oral = 35;
+	cheatSlave.skill.anal = 35;
+	cheatSlave.skill.whoring = 35;
+	cheatSlave.skill.entertainment = 35;
+	cheatSlave.clothes = "a slave gown";
+	cheatSlave.energy = 100;
+	cheatSlave.attrXY = 40;
+	cheatSlave.fetishKnown = 1;
+	cheatSlave.brand["left hand"] = "a large letter 'S'";
+	cheatSlave.custom.desc = "$He speaks with the demeaning accent of slaves from the Old South.";
+	cheatSlave.mother = 990001;
 	if (V.seeDicks !== 100) {
-		_HS.genes = "XX";
-		_HS.vagina = 1;
-		_HS.ovaries = 1;
-		_HS.skill.vaginal = 35;
-		_HS.pubertyXX = 1;
+		cheatSlave.genes = "XX";
+		cheatSlave.vagina = 1;
+		cheatSlave.ovaries = 1;
+		cheatSlave.skill.vaginal = 35;
+		cheatSlave.pubertyXX = 1;
 	} else {
-		_HS.genes = "XY";
-		_HS.vagina = -1;
-		_HS.dick = 2;
-		_HS.balls = 2;
-		_HS.scrotum = 2;
-		_HS.foreskin = 2;
-		_HS.prostate = 1;
-		_HS.pubertyXY = 1;
+		cheatSlave.genes = "XY";
+		cheatSlave.vagina = -1;
+		cheatSlave.dick = 2;
+		cheatSlave.balls = 2;
+		cheatSlave.scrotum = 2;
+		cheatSlave.foreskin = 2;
+		cheatSlave.prostate = 1;
+		cheatSlave.pubertyXY = 1;
 	}
-	newSlave(_HS);
-	slaveNames.push(_HS.slaveName);
+	newSlave(cheatSlave);
+	slaveNames.push(cheatSlave.slaveName);
 
-	_HS = clone(_slave);
-	_HS.slaveName = "Cornflower";
-	_HS.birthName = "Alysa";
-	_HS.ID = 990003;
-	_HS.relationship = 3;
-	_HS.relationshipTarget = 990005;
-	_HS.assignment = "get milked";
-	_HS.birthWeek = random(0, 51);
-	setHealth(_HS, 20);
-	_HS.devotion = 60;
-	_HS.nationality = "Stateless";
-	_HS.muscles = 50;
-	_HS.height = 190;
-	_HS.race = "black";
-	_HS.origHColor = "black";
-	_HS.pubicHColor = "black";
-	_HS.origSkin = "brown";
-	_HS.hLength = 0;
-	_HS.hStyle = "shaved bald";
-	_HS.pubicHStyle = "waxed";
-	_HS.waist = -100;
-	_HS.heels = 1;
-	_HS.voice = 0;
-	_HS.boobs = 6000;
-	_HS.nipples = "huge";
-	_HS.areolae = 2;
-	_HS.boobsTat = "bovine patterns";
-	_HS.lactation = 2;
-	_HS.lactationDuration = 2;
-	_HS.butt = 3;
-	_HS.buttTat = "bovine patterns";
-	_HS.face = 15;
-	_HS.lips = 35;
-	_HS.lipsTat = "bovine patterns";
-	_HS.anus = 3;
-	_HS.anusTat = "bovine patterns";
-	_HS.makeup = 1;
-	_HS.nails = 1;
-	_HS.earPiercing = 1;
-	_HS.nosePiercing = 2;
-	_HS.shouldersTat = "bovine patterns";
-	_HS.armsTat = "bovine patterns";
-	_HS.legsTat = "bovine patterns";
-	_HS.stampTat = "bovine patterns";
-	_HS.skill.oral = 15;
-	_HS.skill.anal = 35;
-	_HS.energy = 65;
-	_HS.attrXY = 40;
-	_HS.fetish = "boobs";
-	_HS.fetishKnown = 1;
-	_HS.custom.tattoo = "A pretty blue cornflower is tattooed on each of $his cheeks.";
-	_HS.custom.desc = "$He once spoke with the demeaning accent of slaves from the Old South.";
-	_HS.mother = 990005;
+	cheatSlave = clone(baseSlave);
+	cheatSlave.slaveName = "Cornflower";
+	cheatSlave.birthName = "Alysa";
+	cheatSlave.ID = 990003;
+	cheatSlave.relationship = 3;
+	cheatSlave.relationshipTarget = 990005;
+	cheatSlave.assignment = "get milked";
+	cheatSlave.birthWeek = random(0, 51);
+	setHealth(cheatSlave, 20);
+	cheatSlave.devotion = 60;
+	cheatSlave.nationality = "Stateless";
+	cheatSlave.muscles = 50;
+	cheatSlave.height = 190;
+	cheatSlave.race = "black";
+	cheatSlave.origHColor = "black";
+	cheatSlave.pubicHColor = "black";
+	cheatSlave.origSkin = "brown";
+	cheatSlave.hLength = 0;
+	cheatSlave.hStyle = "shaved bald";
+	cheatSlave.pubicHStyle = "waxed";
+	cheatSlave.waist = -100;
+	cheatSlave.heels = 1;
+	cheatSlave.voice = 0;
+	cheatSlave.boobs = 6000;
+	cheatSlave.nipples = "huge";
+	cheatSlave.areolae = 2;
+	cheatSlave.boobsTat = "bovine patterns";
+	cheatSlave.lactation = 2;
+	cheatSlave.lactationDuration = 2;
+	cheatSlave.butt = 3;
+	cheatSlave.buttTat = "bovine patterns";
+	cheatSlave.face = 15;
+	cheatSlave.lips = 35;
+	cheatSlave.lipsTat = "bovine patterns";
+	cheatSlave.anus = 3;
+	cheatSlave.anusTat = "bovine patterns";
+	cheatSlave.makeup = 1;
+	cheatSlave.nails = 1;
+	cheatSlave.earPiercing = 1;
+	cheatSlave.nosePiercing = 2;
+	cheatSlave.shouldersTat = "bovine patterns";
+	cheatSlave.armsTat = "bovine patterns";
+	cheatSlave.legsTat = "bovine patterns";
+	cheatSlave.stampTat = "bovine patterns";
+	cheatSlave.skill.oral = 15;
+	cheatSlave.skill.anal = 35;
+	cheatSlave.energy = 65;
+	cheatSlave.attrXY = 40;
+	cheatSlave.fetish = "boobs";
+	cheatSlave.fetishKnown = 1;
+	cheatSlave.custom.tattoo = "A pretty blue cornflower is tattooed on each of $his cheeks.";
+	cheatSlave.custom.desc = "$He once spoke with the demeaning accent of slaves from the Old South.";
+	cheatSlave.mother = 990005;
 	if (V.seeDicks !== 100) {
-		_HS.genes = "XX";
-		_HS.vagina = 1;
-		_HS.vaginaTat = "bovine patterns";
-		_HS.ovaries = 1;
-		_HS.skill.vaginal = 15;
-		_HS.pubertyXX = 1;
+		cheatSlave.genes = "XX";
+		cheatSlave.vagina = 1;
+		cheatSlave.vaginaTat = "bovine patterns";
+		cheatSlave.ovaries = 1;
+		cheatSlave.skill.vaginal = 15;
+		cheatSlave.pubertyXX = 1;
 	} else {
-		_HS.genes = "XY";
-		_HS.vagina = -1;
-		_HS.dick = 3;
-		_HS.balls = 3;
-		_HS.scrotum = 3;
-		_HS.foreskin = 3;
-		_HS.prostate = 1;
-		_HS.dickTat = "bovine patterns";
-		_HS.pubertyXY = 1;
+		cheatSlave.genes = "XY";
+		cheatSlave.vagina = -1;
+		cheatSlave.dick = 3;
+		cheatSlave.balls = 3;
+		cheatSlave.scrotum = 3;
+		cheatSlave.foreskin = 3;
+		cheatSlave.prostate = 1;
+		cheatSlave.dickTat = "bovine patterns";
+		cheatSlave.pubertyXY = 1;
 	}
-	newSlave(_HS);
-	slaveNames.push(_HS.slaveName);
+	newSlave(cheatSlave);
+	slaveNames.push(cheatSlave.slaveName);
 
-	_HS = clone(_slave);
-	_HS.slaveName = "Miss Lily";
-	_HS.birthName = "Lillian";
-	_HS.ID = 990004;
-	_HS.assignment = "guard you";
-	_HS.birthWeek = random(0, 51);
-	setHealth(_HS, 20);
-	_HS.devotion = 30;
-	_HS.nationality = "Stateless";
-	_HS.muscles = 50;
-	_HS.height = 175;
-	_HS.race = "white";
-	_HS.eye.origColor = "green";
-	_HS.origHColor = "straw blonde";
-	_HS.origSkin = "pale";
-	_HS.hLength = 40;
-	_HS.hStyle = "in a short ponytail";
-	_HS.waist = -55;
-	_HS.boobs = 600;
-	_HS.butt = 3;
-	_HS.face = 15;
-	_HS.lips = 35;
-	_HS.preg = -2;
-	_HS.anus = 2;
-	_HS.makeup = 1;
-	_HS.nails = 1;
-	_HS.earPiercing = 1;
-	_HS.skill.anal = 35;
-	_HS.skill.combat = 1;
-	_HS.energy = 65;
-	_HS.attrXY = 40;
-	_HS.fetish = "buttslut";
-	_HS.fetishKnown = 1;
-	_HS.custom.tattoo = "'Miss Lily' is tattooed in lovely flowing script over $his collarbone.";
-	_HS.custom.desc = "$He once spoke with the rich accent of the Old South.";
-	_HS.mother = 990000;
+	cheatSlave = clone(baseSlave);
+	cheatSlave.slaveName = "Miss Lily";
+	cheatSlave.birthName = "Lillian";
+	cheatSlave.ID = 990004;
+	cheatSlave.assignment = "guard you";
+	cheatSlave.birthWeek = random(0, 51);
+	setHealth(cheatSlave, 20);
+	cheatSlave.devotion = 30;
+	cheatSlave.nationality = "Stateless";
+	cheatSlave.muscles = 50;
+	cheatSlave.height = 175;
+	cheatSlave.race = "white";
+	cheatSlave.eye.origColor = "green";
+	cheatSlave.origHColor = "straw blonde";
+	cheatSlave.origSkin = "pale";
+	cheatSlave.hLength = 40;
+	cheatSlave.hStyle = "in a short ponytail";
+	cheatSlave.waist = -55;
+	cheatSlave.boobs = 600;
+	cheatSlave.butt = 3;
+	cheatSlave.face = 15;
+	cheatSlave.lips = 35;
+	cheatSlave.preg = -2;
+	cheatSlave.anus = 2;
+	cheatSlave.makeup = 1;
+	cheatSlave.nails = 1;
+	cheatSlave.earPiercing = 1;
+	cheatSlave.skill.anal = 35;
+	cheatSlave.skill.combat = 1;
+	cheatSlave.energy = 65;
+	cheatSlave.attrXY = 40;
+	cheatSlave.fetish = "buttslut";
+	cheatSlave.fetishKnown = 1;
+	cheatSlave.custom.tattoo = "'Miss Lily' is tattooed in lovely flowing script over $his collarbone.";
+	cheatSlave.custom.desc = "$He once spoke with the rich accent of the Old South.";
+	cheatSlave.mother = 990000;
 	if (V.seeDicks !== 100) {
-		_HS.genes = "XX";
-		_HS.ovaries = 1;
-		_HS.pubertyXX = 1;
+		cheatSlave.genes = "XX";
+		cheatSlave.ovaries = 1;
+		cheatSlave.pubertyXX = 1;
 	} else {
-		_HS.genes = "XY";
-		_HS.vagina = -1;
-		_HS.dick = 4;
-		_HS.balls = 4;
-		_HS.scrotum = 4;
-		_HS.foreskin = 4;
-		_HS.prostate = 1;
-		_HS.pubertyXY = 1;
+		cheatSlave.genes = "XY";
+		cheatSlave.vagina = -1;
+		cheatSlave.dick = 4;
+		cheatSlave.balls = 4;
+		cheatSlave.scrotum = 4;
+		cheatSlave.foreskin = 4;
+		cheatSlave.prostate = 1;
+		cheatSlave.pubertyXY = 1;
 	}
-	newSlave(_HS);
-	V.BodyguardID = _HS.ID;
-	slaveNames.push(_HS.slaveName);
+	newSlave(cheatSlave);
+	V.BodyguardID = cheatSlave.ID;
+	slaveNames.push(cheatSlave.slaveName);
 
-	_HS = clone(_slave);
-	_HS.slaveName = "Lilac";
-	_HS.birthName = "Lillian";
-	_HS.ID = 990005;
-	_HS.relationship = 3;
-	_HS.relationshipTarget = 990003;
-	_HS.assignment = "get milked";
-	_HS.birthWeek = random(0, 51);
-	_HS.actualAge = 36;
-	_HS.physicalAge = 36;
-	_HS.visualAge = 36;
-	_HS.ovaryAge = 36;
-	setHealth(_HS, 20);
-	_HS.devotion = 60;
-	_HS.nationality = "Stateless";
-	_HS.muscles = 50;
-	_HS.height = 190;
-	_HS.race = "black";
-	_HS.origHColor = "black";
-	_HS.pubicHColor = "black";
-	_HS.origSkin = "brown";
-	_HS.hLength = 0;
-	_HS.hStyle = "shaved bald";
-	_HS.pubicHStyle = "waxed";
-	_HS.waist = -55;
-	_HS.heels = 1;
-	_HS.boobs = 8000;
-	_HS.nipples = "huge";
-	_HS.areolae = 2;
-	_HS.boobsTat = "bovine patterns";
-	_HS.lactation = 2;
-	_HS.lactationDuration = 2;
-	_HS.butt = 4;
-	_HS.buttTat = "bovine patterns";
-	_HS.face = 15;
-	_HS.lips = 35;
-	_HS.lipsTat = "bovine patterns";
-	_HS.anus = 3;
-	_HS.anusTat = "bovine patterns";
-	_HS.makeup = 1;
-	_HS.nails = 1;
-	_HS.earPiercing = 1;
-	_HS.nosePiercing = 2;
-	_HS.shouldersTat = "bovine patterns";
-	_HS.armsTat = "bovine patterns";
-	_HS.legsTat = "bovine patterns";
-	_HS.stampTat = "bovine patterns";
-	_HS.skill.oral = 15;
-	_HS.skill.anal = 35;
-	_HS.energy = 65;
-	_HS.attrXY = 40;
-	_HS.fetish = "boobs";
-	_HS.fetishKnown = 1;
-	_HS.custom.tattoo = "A pretty purple lilac is tattooed on each of $his cheeks.";
-	_HS.custom.desc = "$He once spoke with the demeaning accent of slaves from the Old South.";
+	cheatSlave = clone(baseSlave);
+	cheatSlave.slaveName = "Lilac";
+	cheatSlave.birthName = "Lillian";
+	cheatSlave.ID = 990005;
+	cheatSlave.relationship = 3;
+	cheatSlave.relationshipTarget = 990003;
+	cheatSlave.assignment = "get milked";
+	cheatSlave.birthWeek = random(0, 51);
+	cheatSlave.actualAge = 36;
+	cheatSlave.physicalAge = 36;
+	cheatSlave.visualAge = 36;
+	cheatSlave.ovaryAge = 36;
+	setHealth(cheatSlave, 20);
+	cheatSlave.devotion = 60;
+	cheatSlave.nationality = "Stateless";
+	cheatSlave.muscles = 50;
+	cheatSlave.height = 190;
+	cheatSlave.race = "black";
+	cheatSlave.origHColor = "black";
+	cheatSlave.pubicHColor = "black";
+	cheatSlave.origSkin = "brown";
+	cheatSlave.hLength = 0;
+	cheatSlave.hStyle = "shaved bald";
+	cheatSlave.pubicHStyle = "waxed";
+	cheatSlave.waist = -55;
+	cheatSlave.heels = 1;
+	cheatSlave.boobs = 8000;
+	cheatSlave.nipples = "huge";
+	cheatSlave.areolae = 2;
+	cheatSlave.boobsTat = "bovine patterns";
+	cheatSlave.lactation = 2;
+	cheatSlave.lactationDuration = 2;
+	cheatSlave.butt = 4;
+	cheatSlave.buttTat = "bovine patterns";
+	cheatSlave.face = 15;
+	cheatSlave.lips = 35;
+	cheatSlave.lipsTat = "bovine patterns";
+	cheatSlave.anus = 3;
+	cheatSlave.anusTat = "bovine patterns";
+	cheatSlave.makeup = 1;
+	cheatSlave.nails = 1;
+	cheatSlave.earPiercing = 1;
+	cheatSlave.nosePiercing = 2;
+	cheatSlave.shouldersTat = "bovine patterns";
+	cheatSlave.armsTat = "bovine patterns";
+	cheatSlave.legsTat = "bovine patterns";
+	cheatSlave.stampTat = "bovine patterns";
+	cheatSlave.skill.oral = 15;
+	cheatSlave.skill.anal = 35;
+	cheatSlave.energy = 65;
+	cheatSlave.attrXY = 40;
+	cheatSlave.fetish = "boobs";
+	cheatSlave.fetishKnown = 1;
+	cheatSlave.custom.tattoo = "A pretty purple lilac is tattooed on each of $his cheeks.";
+	cheatSlave.custom.desc = "$He once spoke with the demeaning accent of slaves from the Old South.";
 	if (V.seeDicks !== 100) {
-		_HS.genes = "XX";
-		_HS.vagina = 1;
-		_HS.vaginaTat = "bovine patterns";
-		_HS.ovaries = 1;
-		_HS.skill.vaginal = 15;
-		_HS.pubertyXX = 1;
+		cheatSlave.genes = "XX";
+		cheatSlave.vagina = 1;
+		cheatSlave.vaginaTat = "bovine patterns";
+		cheatSlave.ovaries = 1;
+		cheatSlave.skill.vaginal = 15;
+		cheatSlave.pubertyXX = 1;
 	} else {
-		_HS.genes = "XY";
-		_HS.vagina = -1;
-		_HS.dick = 5;
-		_HS.balls = 5;
-		_HS.scrotum = 5;
-		_HS.foreskin = 5;
-		_HS.prostate = 1;
-		_HS.dickTat = "bovine patterns";
-		_HS.pubertyXY = 1;
+		cheatSlave.genes = "XY";
+		cheatSlave.vagina = -1;
+		cheatSlave.dick = 5;
+		cheatSlave.balls = 5;
+		cheatSlave.scrotum = 5;
+		cheatSlave.foreskin = 5;
+		cheatSlave.prostate = 1;
+		cheatSlave.dickTat = "bovine patterns";
+		cheatSlave.pubertyXY = 1;
 	}
-	newSlave(_HS);
-	slaveNames.push(_HS.slaveName);
+	newSlave(cheatSlave);
+	slaveNames.push(cheatSlave.slaveName);
 
-	r.push(`${arrayToSentence(slaveNames)}.`);
-	App.Events.addNode(el, r);
-	return el;
+	return `There are quite a few left; their names are ${arrayToSentence(slaveNames)}.`;
 };
diff --git a/src/npc/databases/ddSlavesDatabase.js b/src/npc/databases/ddSlavesDatabase.js
index edf41470770ebd2e43eac3fe79c4dfe5136b4735..90fa71d27fa20a7f8b6180fdc07aab5f45783e6f 100644
--- a/src/npc/databases/ddSlavesDatabase.js
+++ b/src/npc/databases/ddSlavesDatabase.js
@@ -959,7 +959,10 @@ App.Data.HeroSlaves.DD = [
 		attrXY: 40,
 		fetishKnown: 1,
 		behavioralFlaw: "odd",
-		custom: {tattoo: "$He has a blood red, faux brand tattoo on $his left ass cheek.", desc: "$He has a nearly faded pockmark on the skin above $his left eyebrow, the last reminder of $his awkward past."}
+		custom: {
+			tattoo: "$He has a blood red, faux brand tattoo on $his left ass cheek.",
+			desc: "$He has a nearly faded pockmark on the skin above $his left eyebrow, the last reminder of $his awkward past."
+		}
 	},
 	{
 		ID: 800024,
@@ -1010,7 +1013,10 @@ App.Data.HeroSlaves.DD = [
 		intelligence: -30,
 		attrXX: 40,
 		attrXY: 40,
-		custom: {tattoo: "$He has tattooed petals trailing from the nape of $his neck down $his back, ending between $his butt cheeks.", desc: "$His red pubic hair is waxed into the shape of a heart. $He has bright blue eyeshadow on $his bottom lids."},
+		custom: {
+			tattoo: "$He has tattooed petals trailing from the nape of $his neck down $his back, ending between $his butt cheeks.",
+			desc: "$His red pubic hair is waxed into the shape of a heart. $He has bright blue eyeshadow on $his bottom lids."
+		},
 		pubicHStyle: "waxed"
 	},
 	{
@@ -1114,7 +1120,10 @@ App.Data.HeroSlaves.DD = [
 		attrXY: 40,
 		fetishKnown: 1,
 		behavioralFlaw: "arrogant",
-		custom: {tattoo: "$He has two neon-blue butterflies tattooed on $his right temple and one more right above $his right eyebrow; a bright blue, luminescent tattoo of an oriental dragon is intertwining with floral tattoos on $his right leg.", desc: "$He is almost never seen without $his long, thin, lavishly decorated smoking pipe, either holding it in hand, or carrying it tucked in $his chignon."},
+		custom: {
+			tattoo: "$He has two neon-blue butterflies tattooed on $his right temple and one more right above $his right eyebrow; a bright blue, luminescent tattoo of an oriental dragon is intertwining with floral tattoos on $his right leg.",
+			desc: "$He is almost never seen without $his long, thin, lavishly decorated smoking pipe, either holding it in hand, or carrying it tucked in $his chignon."
+		},
 		career: "a gang member"
 	},
 	{
@@ -1407,7 +1416,10 @@ App.Data.HeroSlaves.DD = [
 		attrXY: 40,
 		fetish: "humiliation",
 		behavioralFlaw: "arrogant",
-		custom: {tattoo: "$He has a tattoo down $his left arm, which reads 'Once a tall, muscular, handsome man with a big dick and big balls.'", desc: "Since becoming a slave $he has been turned into a little bimbo."}
+		custom: {
+			tattoo: "$He has a tattoo down $his left arm, which reads 'Once a tall, muscular, handsome man with a big dick and big balls.'",
+			desc: "Since becoming a slave $he has been turned into a little bimbo."
+		}
 	},
 ];
 
@@ -1643,8 +1655,6 @@ App.Data.HeroSlaves.DDextreme = [
 		voice: 0,
 		custom: {desc: "Though $his vocal cords have been altered to keep $him from speaking, $he is still capable of the occasional moo."}
 	},
-
-
 	{
 		ID: 800037,
 		slaveName: "Danny 'The D'",
diff --git a/src/npc/descriptions/boobs/boobsShape.js b/src/npc/descriptions/boobs/boobsShape.js
index 171ad16649f16f0e5e46270062eda3a229300f4c..b9540a8e3e805f58aef4e6cf88fc611b399fdfa5 100644
--- a/src/npc/descriptions/boobs/boobsShape.js
+++ b/src/npc/descriptions/boobs/boobsShape.js
@@ -21,12 +21,10 @@ App.Desc.boobsShape = function(slave) {
 			}
 		} else {
 			let showBoobShape = false;
-			 // Only used in implant related text.
-			 /* eslint-disable */
+			// Only used in implant related text.
 			let implantType = slave.boobsImplantType === "string" ? "engorged string" :
 				slave.boobsImplantType === "normal" ? "breast" :
-				"fillable breast";
-			/* eslint-enable */
+					"fillable breast";
 			if (slave.boobShape === "spherical") {
 				if (slave.boobs > 12000) {
 					r.push(`They anchor ${him} when ${he}'s face-down, pin ${him} when ${he}'s on ${his} back, and pull what little flesh is left taut when ${he} is upright. ${His} ${slave.boobsImplant} cc ${implantType} implants are extremely obvious; with little natural breast tissue to support them, they are barely recognizable as a part ${his} body.`);
diff --git a/src/npc/descriptions/butt/butt.js b/src/npc/descriptions/butt/butt.js
index 32c4344116194bb86f001acfe6f38783c4646eec..a2234be31a422ef72b446a585f8286b953809ed5 100644
--- a/src/npc/descriptions/butt/butt.js
+++ b/src/npc/descriptions/butt/butt.js
@@ -1226,124 +1226,46 @@ App.Desc.butt = function(slave, {market, eventDescription} = {}) {
 		r.push(`It's too small for the fashionable feminine ideal.`);
 	}
 
-	if (slave.physicalAge <= 3) {
-		if (slave.butt >= 8) {
-			if (slave.fuckdoll > 0) {
-				r.push(`The difficulties of having a gigantic ass is greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
-			} else {
-				if (canWalk(slave)) {
-					r.push(`${His} butt is so massive that it is difficult for ${him} to move.`);
-					if (slave.muscles > 95) {
-						r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his}`);
-						if (hasBothArms(slave)) {
-							r.push(`arms`);
-						} else {
-							r.push(`arm`);
-						}
-						r.push(`to support them.`);
-					} else if (slave.muscles > 30) {
-						r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his} ${hands} sunk into ${his} buttcheeks to help take their weight.`);
-					} else if (slave.muscles > 5) {
-						r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge cheeks on whatever nearby surfaces ${he} can.`);
-					} else {
-						r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated on ${his} enormous rear rather than stand.`);
-					}
+	if (
+		(slave.physicalAge <= 3 && slave.butt >= 8)
+		|| (slave.physicalAge <= 12 && slave.butt >= 12)
+		|| (slave.physicalAge > 12 && slave.butt > 17)
+	) {
+		if (slave.fuckdoll > 0) {
+			r.push(`The difficulties of having a gigantic ass is greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
+		} else {
+			if (canWalk(slave)) {
+				r.push(`${His} butt is so massive that it is difficult for ${him} to move.`);
+				if (slave.muscles > 95) {
+					r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his}`);
+					if (hasBothArms(slave)) {
+						r.push(`arms`);
+					} else {
+						r.push(`arm`);
+					}
+					r.push(`to support them.`);
+				} else if (slave.muscles > 30) {
+					r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his} ${hands} sunk into ${his} buttcheeks to help take their weight.`);
+				} else if (slave.muscles > 5) {
+					r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge cheeks on whatever nearby surfaces ${he} can.`);
 				} else {
-					r.push(`Together it is nearly the same size as ${his} torso, making ${him} about half butt.`);
-				}
-				if (slave.butt > 15) {
-					if (V.buttAccessibility === 1) {
-						r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with a rear`);
-					} else {
-						if (market) {
-							r.push(`${He}'ll have`);
-						} else {
-							r.push(`${He} has`);
-						}
-						r.push(`trouble living in your penthouse, which is not designed for ${girl}s with buttcheeks`);
-					}
-					r.push(`wider than a standard doorway.`);
+					r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated on ${his} enormous rear rather than stand.`);
 				}
-			}
-		}
-	} else if (slave.physicalAge <= 12) {
-		if (slave.butt >= 12) {
-			if (slave.fuckdoll > 0) {
-				r.push(`The difficulties of having a gigantic ass is greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
 			} else {
-				if (canWalk(slave)) {
-					r.push(`${His} butt is so massive that it is difficult for ${him} to move.`);
-					if (slave.muscles > 95) {
-						r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his}`);
-						if (hasBothArms(slave)) {
-							r.push(`arms`);
-						} else {
-							r.push(`arm`);
-						}
-						r.push(`to support them.`);
-					} else if (slave.muscles > 30) {
-						r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his} ${hands} sunk into ${his} buttcheeks to help take their weight.`);
-					} else if (slave.muscles > 5) {
-						r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge cheeks on whatever nearby surfaces ${he} can.`);
-					} else {
-						r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated on ${his} enormous rear rather than stand.`);
-					}
-				} else {
-					r.push(`Together it is nearly the same size as ${his} torso, making ${him} about half butt.`);
-				}
-				if (slave.butt > 15) {
-					if (V.buttAccessibility === 1) {
-						r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with a rear`);
-					} else {
-						if (market) {
-							r.push(`${He}'ll have`);
-						} else {
-							r.push(`${He} has`);
-						}
-						r.push(`trouble living in your penthouse, which is not designed for ${girl}s with buttcheeks`);
-					}
-					r.push(`wider than a standard doorway.`);
-				}
+				r.push(`Together it is nearly the same size as ${his} torso, making ${him} about half butt.`);
 			}
-		}
-	} else if (slave.physicalAge > 12) {
-		if (slave.butt > 17) {
-			if (slave.fuckdoll > 0) {
-				r.push(`The difficulties of having a gigantic ass is greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
-			} else {
-				if (canWalk(slave)) {
-					r.push(`${His} butt is so massive that it is difficult for ${him} to move.`);
-					if (slave.muscles > 95) {
-						r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his}`);
-						if (hasBothArms(slave)) {
-							r.push(`arms`);
-						} else {
-							r.push(`arm`);
-						}
-						r.push(`to support them.`);
-					} else if (slave.muscles > 30) {
-						r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks with ${his} ${hands} sunk into ${his} buttcheeks to help take their weight.`);
-					} else if (slave.muscles > 5) {
-						r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge cheeks on whatever nearby surfaces ${he} can.`);
-					} else {
-						r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated on ${his} enormous rear rather than stand.`);
-					}
+			if (slave.butt > 15) {
+				if (V.buttAccessibility === 1) {
+					r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with a rear`);
 				} else {
-					r.push(`Together it is nearly the same size as ${his} torso, making ${him} about half butt.`);
-				}
-				if (slave.butt > 15) {
-					if (V.buttAccessibility === 1) {
-						r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with a rear`);
-					} else {
-						if (market) {
-							r.push(`${He}'ll have`);
-						} else {
-							r.push(`${He} has`);
-						}
-						r.push(`trouble living in your penthouse, which is not designed for ${girl}s with buttcheeks`);
+					if (market) {
+						r.push(`${He}'ll have`);
+					} else {
+						r.push(`${He} has`);
 					}
-					r.push(`wider than a standard doorway.`);
+					r.push(`trouble living in your penthouse, which is not designed for ${girl}s with buttcheeks`);
 				}
+				r.push(`wider than a standard doorway.`);
 			}
 		}
 	}
diff --git a/src/npc/descriptions/crotch/crotch.js b/src/npc/descriptions/crotch/crotch.js
index d2b904d7abb6f9f583d04d70a6ead0a1bb851d51..65e940dde4fe175c9a28fe1bb8d6e58b4f5a2e82 100644
--- a/src/npc/descriptions/crotch/crotch.js
+++ b/src/npc/descriptions/crotch/crotch.js
@@ -723,6 +723,7 @@ App.Desc.crotch = function(slave, {market, eventDescription} = {}) {
 					}
 					break;
 				case "a military uniform":
+				case "a red army uniform":
 					if (slave.dick > 3) {
 						r.push(`${slave.slaveName}'s uniform skirt bulges forward in front.`);
 					} else if ((slave.dick > 0) && (slave.vagina > -1)) {
@@ -761,19 +762,6 @@ App.Desc.crotch = function(slave, {market, eventDescription} = {}) {
 						r.push(`${slave.slaveName}'s uniform miniskirt gives no hint of the cock behind it.`);
 					}
 					break;
-				case "a red army uniform":
-					if (slave.dick > 3) {
-						r.push(`${slave.slaveName}'s uniform skirt bulges forward in front.`);
-					} else if ((slave.dick > 0) && (slave.vagina > -1)) {
-						r.push(`${slave.slaveName}'s hermaphroditic genitalia are decently hidden by ${his} skirt.`);
-					} else if (slave.vagina > -1) {
-						r.push(`${slave.slaveName}'s uniform skirt gives no hint of the pussy behind it.`);
-					} else if (slave.vagina === -1) {
-						r.push(`${slave.slaveName}'s uniform skirt gives no hint of the featureless groin behind it.`);
-					} else if (slave.dick > 0) {
-						r.push(`${slave.slaveName}'s uniform skirt gives no hint of the cock behind it.`);
-					}
-					break;
 				case "an apron":
 					if (slave.dick > 4) {
 						r.push(`${slave.slaveName}'s apron has a noticeable bulge in the front.`);
diff --git a/src/npc/descriptions/crotch/dick.js b/src/npc/descriptions/crotch/dick.js
index 8ef311b561870953f7f35d750cb280daaa47ae65..0abb26c7872fbbd0bc96c597872bad1e3295ca50 100644
--- a/src/npc/descriptions/crotch/dick.js
+++ b/src/npc/descriptions/crotch/dick.js
@@ -492,144 +492,7 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 					break;
 			}
 			if (slave.fuckdoll === 0 && slave.balls > 0 && slave.scrotum > 0) {
-				let scrotalFullness = slave.scrotum - slave.balls;
-				if (slave.balls > 90) {
-					if (scrotalFullness < -1) {
-						r.push(`${His} poor scrotum is agonizingly overfilled and looks ready to burst. ${He} must be in constant pain.`);
-					} else if (scrotalFullness === -1) {
-						r.push(`${His} poor scrotum is so overfilled, every little vein is visible. ${He} must be in constant discomfort.`);
-					} else if (scrotalFullness === 0) {
-						r.push(`${His} comfortable scrotum allows them to hang massively`);
-						if (hasBothLegs(slave)) {
-							r.push(`between ${his} legs.`);
-						} else {
-							r.push(`from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					} else {
-						r.push(`Their weight and size has stretched ${his} scrotum downward, so that they`);
-						if (hasAnyLegs(slave)) {
-							r.push(`drag along the floor.`);
-						} else {
-							r.push(`hang far from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					}
-				} else if (slave.balls >= 20) {
-					if (scrotalFullness < -1) {
-						r.push(`${His} poor scrotum is agonizingly overfilled and taut. ${He} must be in constant pain.`);
-					} else if (scrotalFullness === -1) {
-						r.push(`${His} poor scrotum is so overfilled, every little vein is visible. ${He} must be in constant discomfort.`);
-					} else if (scrotalFullness === 0) {
-						r.push(`${His} comfortable scrotum allows them to hang massively`);
-						if (hasBothLegs(slave)) {
-							r.push(`between ${his} legs.`);
-						} else {
-							r.push(`from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					} else {
-						r.push(`Their weight and size has stretched ${his} scrotum downward, so that they dangle`);
-						if (hasAnyLegs(slave)) {
-							r.push(`to ${his}`);
-							if (hasBothLegs(slave)) {
-								r.push(`knees.`);
-							} else {
-								r.push(`knee.`);
-							}
-						} else {
-							r.push(`quite the distance from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					}
-				} else if (slave.balls > 5) {
-					if (scrotalFullness < -1) {
-						r.push(`${His} poor scrotum is so overfilled, every little vein is visible. ${He} must be in agony.`);
-					} else if (scrotalFullness === -1) {
-						r.push(`They're held against ${his} base by a tight scrotum that permits them little movement.`);
-					} else if (scrotalFullness === 0) {
-						r.push(`${His} comfortable scrotum allows them to hang massively`);
-						if (hasBothLegs(slave)) {
-							r.push(`between ${his} legs.`);
-						} else {
-							r.push(`from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					} else {
-						r.push(`Their weight has stretched ${his} scrotum downward, so that they dangle`);
-						if (hasAnyLegs(slave)) {
-							r.push(`halfway to ${his}`);
-							if (hasBothLegs(slave)) {
-								r.push(`knees.`);
-							} else {
-								r.push(`knee.`);
-							}
-						} else {
-							r.push(`some distance from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					}
-				} else if (slave.balls > 3) {
-					if (scrotalFullness < -1) {
-						r.push(`They're too big for ${his} tiny scrotum, which is stretched tight over each ball.`);
-					} else if (scrotalFullness === -1) {
-						r.push(`They're held against ${his} base by a tight scrotum that permits them little movement.`);
-					} else if (scrotalFullness === 0) {
-						r.push(`${His} soft scrotum allows them to rest comfortably`);
-						if (hasBothLegs(slave)) {
-							r.push(`between ${his} legs.`);
-						} else {
-							r.push(`beneath ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					} else {
-						r.push(`${He} has a loose, dangling scrotum that allows them to swing`);
-						if (hasBothLegs(slave)) {
-							r.push(`between ${his} legs.`);
-						} else {
-							r.push(`from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					}
-				} else if (slave.balls > 1) {
-					if (scrotalFullness < 0) {
-						r.push(`They're held tightly by a very minimal scrotum that turns them into a soft little bump.`);
-					} else if (scrotalFullness === 0) {
-						r.push(`${His} comfortable little scrotum allows them to rest softly.`);
-					} else {
-						r.push(`They're almost lost in ${his} big soft scrotum, wrinkled for lack of anything to fill it properly.`);
-					}
-				} else {
-					if (scrotalFullness === 0) {
-						r.push(`${He} has a soft little trace of scrotum.`);
-					} else {
-						r.push(`They've left ${his} scrotum soft and empty.`);
-					}
-				}
+				ballsVariant1();
 			}
 		}
 
@@ -934,41 +797,7 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 						}
 					}
 				}
-			} else if (slave.physicalAge <= 12) {
-				if (slave.dick >= 30) {
-					if (slave.fuckdoll > 0) {
-						r.push(`The difficulties of having a gigantic dick are greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
-					} else {
-						if (canWalk(slave)) {
-							r.push(`${His} penis so massive that it is difficult for ${him} to move.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} arms to support it.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely to move ${his} penis, and usually walks carrying it in any way ${he} can.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to move ${his} penis, and tries to rest it on the ground whenever ${he} can.`);
-							} else {
-								r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated so ${his} enormous penis doesn't weigh ${him} down as much.`);
-							}
-						} else {
-							r.push(`${His} penis is nearly the same size as ${his} torso, making ${him} about half cock.`);
-						}
-						if (slave.dick >= 30) {
-							if (V.dickAccessibility === 1) {
-								r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with a cock`);
-							} else {
-								if (market) {
-									r.push(`${He}'ll have`);
-								} else {
-									r.push(`${He} has`);
-								}
-								r.push(`trouble living in your penthouse, which is not designed for ${girl}s with dicks`);
-							}
-							r.push(`bigger than they are.`);
-						}
-					}
-				}
-			} else if (slave.physicalAge > 12) {
+			} else { // Below is planned to be split like this: if (slave.physicalAge <= 12) else if (slave.physicalAge > 12)
 				if (slave.dick >= 30) {
 					if (slave.fuckdoll > 0) {
 						r.push(`The difficulties of having a gigantic dick are greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
@@ -1033,52 +862,7 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 			}
 
 			if (slave.physicalAge <= 3) {
-				if (slave.balls >= 25) {
-					if (slave.fuckdoll > 0) {
-						r.push(`The difficulties of having a gigantic pair of testicles are greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
-					} else {
-						if (canWalk(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} arms to support them.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks carrying ${his} testicles in any way ${he} can.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge balls on the ground whenever ${he} can.`);
-							} else {
-								r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated so ${his} enormous balls don't weigh ${him} down as much.`);
-							}
-						} else if (canMove(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move at all.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, dragging ${his} testicles along behind ${him}.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to lift ${his} testicles, and finds it exhausting to drag them everywhere.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and tries avoid moving them whenever ${he} can.`);
-							} else {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and can barely manage to drag them along behind ${him}.`);
-							}
-						} else if (slave.balls >= 100) {
-							r.push(`${His} testicles each dwarf ${him}, making ${him} almost entirely testicle.`);
-						} else {
-							r.push(`${His} testicles each dwarf ${his} torso, making ${him} almost entirely testicle.`);
-						}
-						if (slave.balls > 90) {
-							if (V.ballsAccessibility === 1) {
-								r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with balls`);
-							} else {
-								if (market) {
-									r.push(`${He}'ll have`);
-								} else {
-									r.push(`${He} has`);
-								}
-								r.push(`trouble living in your penthouse, which is not designed for ${girl}s with testicles`);
-							}
-							r.push(`wider than a standard doorway.`);
-						}
-					}
-				}
+				massiveTesticles1();
 			} else if (slave.physicalAge <= 12) {
 				if (slave.balls >= 50) {
 					if (slave.fuckdoll > 0) {
@@ -1127,61 +911,16 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 					}
 				}
 			} else if (slave.physicalAge > 12) {
-				if (slave.balls > 70) {
-					if (slave.fuckdoll > 0) {
-						r.push(`The difficulties of having a gigantic pair of testicles are greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
-					} else {
-						if (canWalk(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} arms to support them.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks carrying ${his} testicles in any way ${he} can.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge balls on the ground whenever ${he} can.`);
-							} else {
-								r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated so ${his} enormous balls don't weigh ${him} down as much.`);
-							}
-						} else if (canMove(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move at all.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, dragging ${his} testicles along behind ${him}.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to lift ${his} testicles, and finds it exhausting to drag them everywhere.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and tries avoid moving them whenever ${he} can.`);
-							} else {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and can barely manage to drag them along behind ${him}.`);
-							}
-						} else if (slave.balls >= 100) {
-							r.push(`Together, ${his} testicles are nearly the same size as ${him}, making ${him} about half testicle.`);
-						} else {
-							r.push(`Together, ${his} testicles are nearly the same size as ${his} torso, making ${him} about half testicle.`);
-						}
-						if (slave.balls > 90) {
-							if (V.ballsAccessibility === 1) {
-								r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with balls`);
-							} else {
-								if (market) {
-									r.push(`${He}'ll have`);
-								} else {
-									r.push(`${He} has`);
-								}
-								r.push(`trouble living in your penthouse, which is not designed for ${girl}s with testicles`);
-							}
-							r.push(`wider than a standard doorway.`);
-						}
-					}
-				}
-			}
-
-			if (slave.foreskin > 0) {
-				if (slave.foreskin - slave.dick < -1) {
-					r.push(`${His} cockhead is much too large for ${his} foreskin, probably as a result of recent penis growth it hasn't had time to stretch to accommodate yet.`);
-					if (canAchieveErection(slave) && ((slave.devotion > 20) || (slave.aphrodisiacs > 0) || (slave.gingering && slave.gingering.type === "vasodilator") || (slave.inflationType === "aphrodisiac") || (slave.drugs === "priapism agents"))) {
-						r.push(`The bit of erect dickhead visible at the tip of the uncomfortably stretched skin is an angry color from being squeezed so hard.`);
-					} else if (canAchieveErection(slave)) {
-						r.push(`${He} isn't erect right now, but getting a hard-on will probably be very uncomfortable for ${him}.`);
+				massiveTesticles2();
+			}
+
+			if (slave.foreskin > 0) {
+				if (slave.foreskin - slave.dick < -1) {
+					r.push(`${His} cockhead is much too large for ${his} foreskin, probably as a result of recent penis growth it hasn't had time to stretch to accommodate yet.`);
+					if (canAchieveErection(slave) && ((slave.devotion > 20) || (slave.aphrodisiacs > 0) || (slave.gingering && slave.gingering.type === "vasodilator") || (slave.inflationType === "aphrodisiac") || (slave.drugs === "priapism agents"))) {
+						r.push(`The bit of erect dickhead visible at the tip of the uncomfortably stretched skin is an angry color from being squeezed so hard.`);
+					} else if (canAchieveErection(slave)) {
+						r.push(`${He} isn't erect right now, but getting a hard-on will probably be very uncomfortable for ${him}.`);
 					} else {
 						r.push(`Fortunately for ${him}, ${he} can't get hard, making this merely uncomfortable for ${him}.`);
 					}
@@ -1248,61 +987,7 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 				r.push(`no penis and`);
 			}
 			r.push(`no vagina, just a tiny hole above`);
-			switch (slave.balls) {
-				case 6:
-					r.push(`a gigantic, clearly unnatural pair of`);
-					if (V.showDickCMs === 1) {
-						r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
-					} else {
-						r.push(`testicles.`);
-					}
-					break;
-				case 5:
-					r.push(`a huge pair of`);
-					if (V.showDickCMs === 1) {
-						r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
-					} else {
-						r.push(`testicles.`);
-					}
-					break;
-				case 4:
-					r.push(`a big pair of`);
-					if (V.showDickCMs === 1) {
-						r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
-					} else {
-						r.push(`testicles.`);
-					}
-					break;
-				case 3:
-					r.push(`an average pair of`);
-					if (V.showDickCMs === 1) {
-						r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
-					} else {
-						r.push(`testicles.`);
-					}
-					break;
-				case 2:
-					r.push(`a small pair of`);
-					if (V.showDickCMs === 1) {
-						r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
-					} else {
-						r.push(`testicles.`);
-					}
-					break;
-				case 1:
-					r.push(`a soft little trace of scrotum, since ${his} testicles are so small they have retreated up into ${his} abdomen.`);
-					break;
-				case 0:
-					r.push(`smooth ${slave.skin} skin.`);
-					break;
-				default:
-					r.push(`a hypertrophied, clearly unnatural pair of testicles,`);
-					if (V.showDickCMs === 1) {
-						r.push(`about ${ballsToEitherUnit(slave.balls)} long,`);
-					}
-					r.push(`a true masterpiece of modern growth hormone treatment.`);
-					break;
-			}
+			ballSize();
 			if (slave.fuckdoll === 0 && slave.balls > 0 && slave.scrotum > 0) {
 				let scrotalFullness = slave.scrotum - slave.balls;
 				if (slave.balls > 90) {
@@ -1449,52 +1134,7 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 				}
 			}
 			if (slave.physicalAge <= 3) {
-				if (slave.balls >= 25) {
-					if (slave.fuckdoll > 0) {
-						r.push(`The difficulties of having a gigantic pair of testicles are greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
-					} else {
-						if (canWalk(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} arms to support them.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks carrying ${his} testicles in any way ${he} can.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge balls on the ground whenever ${he} can.`);
-							} else {
-								r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated so ${his} enormous balls don't weigh ${him} down as much.`);
-							}
-						} else if (canMove(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move at all.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, dragging ${his} testicles along behind ${him}.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to lift ${his} testicles, and finds it exhausting to drag them everywhere.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and tries avoid moving them whenever ${he} can.`);
-							} else {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and can barely manage to drag them along behind ${him}.`);
-							}
-						} else if (slave.balls >= 100) {
-							r.push(`${His} testicles each dwarf ${him}, making ${him} almost entirely testicle.`);
-						} else {
-							r.push(`${His} testicles each dwarf ${his} torso, making ${him} almost entirely testicle.`);
-						}
-						if (slave.balls > 90) {
-							if (V.ballsAccessibility === 1) {
-								r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with balls`);
-							} else {
-								if (market) {
-									r.push(`${He}'ll have`);
-								} else {
-									r.push(`${He} has`);
-								}
-								r.push(`trouble living in your penthouse, which is not designed for ${girl}s with testicles`);
-							}
-							r.push(`wider than a standard doorway.`);
-						}
-					}
-				}
+				massiveTesticles1();
 			} else if (slave.physicalAge <= 12) {
 				if (slave.balls >= 50) {
 					if (slave.fuckdoll > 0) {
@@ -1543,52 +1183,7 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 					}
 				}
 			} else if (slave.physicalAge > 12) {
-				if (slave.balls > 70) {
-					if (slave.fuckdoll > 0) {
-						r.push(`The difficulties of having a gigantic pair of testicles are greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
-					} else {
-						if (canWalk(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} arms to support them.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks carrying ${his} testicles in any way ${he} can.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge balls on the ground whenever ${he} can.`);
-							} else {
-								r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated so ${his} enormous balls don't weigh ${him} down as much.`);
-							}
-						} else if (canMove(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move at all.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, dragging ${his} testicles along behind ${him}.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to lift ${his} testicles, and finds it exhausting to drag them everywhere.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and tries avoid moving them whenever ${he} can.`);
-							} else {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and can barely manage to drag them along behind ${him}.`);
-							}
-						} else if (slave.balls >= 100) {
-							r.push(`Together, ${his} testicles are nearly the same size as ${him}, making ${him} about half testicle.`);
-						} else {
-							r.push(`Together, ${his} testicles are nearly the same size as ${his} torso, making ${him} about half testicle.`);
-						}
-						if (slave.balls > 90) {
-							if (V.ballsAccessibility === 1) {
-								r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with balls`);
-							} else {
-								if (market) {
-									r.push(`${He}'ll have`);
-								} else {
-									r.push(`${He} has`);
-								}
-								r.push(`trouble living in your penthouse, which is not designed for ${girl}s with testicles`);
-							}
-							r.push(`wider than a standard doorway.`);
-						}
-					}
-				}
+				massiveTesticles2();
 			}
 			if (slave.prostate > 2) {
 				r.push(`The area above ${his} crotch has a slight swell to it from ${his} prostate implant. A constant dribble of precum streams from the hole; ${his} artificially hyperactive prostate keeps ${him} that way.`);
@@ -1716,248 +1311,12 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 
 		if (slave.scrotum !== 0) {
 			r.push(`${He} has no penis, just a tiny hole above`);
-			switch (slave.balls) {
-				case 6:
-					r.push(`a gigantic, clearly unnatural pair of`);
-					if (V.showDickCMs === 1) {
-						r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
-					} else{
-						r.push(`testicles.`);
-					}
-					break;
-				case 5:
-					r.push(`a huge pair of`);
-					if (V.showDickCMs === 1) {
-						r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
-					} else{
-						r.push(`testicles.`);
-					}
-					break;
-				case 4:
-					r.push(`a big pair of`);
-					if (V.showDickCMs === 1) {
-						r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
-					} else{
-						r.push(`testicles.`);
-					}
-					break;
-				case 3:
-					r.push(`an average pair of`);
-					if (V.showDickCMs === 1) {
-						r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
-					} else{
-						r.push(`testicles.`);
-					}
-					break;
-				case 2:
-					r.push(`a small pair of`);
-					if (V.showDickCMs === 1) {
-						r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
-					} else{
-						r.push(`testicles.`);
-					}
-					break;
-				case 1:
-					r.push(`a soft little trace of scrotum, since ${his} testicles are so small they have retreated up into ${his} abdomen.`);
-					break;
-				case 0:
-					r.push(`smooth ${slave.skin} skin.`);
-					break;
-				default:
-					r.push(`a hypertrophied, clearly unnatural pair of testicles,`);
-					if (V.showDickCMs === 1) {
-						r.push(`about ${ballsToEitherUnit(slave.balls)} long,`);
-					}
-					r.push(`a true masterpiece of modern growth hormone treatment.`);
-					break;
-			}
+			ballSize();
 			if (slave.fuckdoll === 0 && slave.balls > 0 && slave.scrotum > 0) {
-				const scrotalFullness = slave.scrotum - slave.balls;
-				if (slave.balls > 90) {
-					if (scrotalFullness < -1) {
-						r.push(`${His} poor scrotum is agonizingly overfilled and looks ready to burst. ${He} must be in constant pain.`);
-					} else if (scrotalFullness === -1) {
-						r.push(`${His} poor scrotum is so overfilled, every little vein is visible. ${He} must be in constant discomfort.`);
-					} else if (scrotalFullness === 0) {
-						r.push(`${His} comfortable scrotum allows them to hang massively`);
-						if (hasBothLegs(slave)) {
-							r.push(`between ${his} legs.`);
-						} else {
-							r.push(`from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					} else {
-						r.push(`Their weight and size has stretched ${his} scrotum downward, so that they`);
-						if (hasAnyLegs(slave)) {
-							r.push(`drag along the floor.`);
-						} else {
-							r.push(`hang far from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					}
-				} else if (slave.balls >= 20) {
-					if (scrotalFullness < -1) {
-						r.push(`${His} poor scrotum is agonizingly overfilled and taut. ${He} must be in constant pain.`);
-					} else if (scrotalFullness === -1) {
-						r.push(`${His} poor scrotum is so overfilled, every little vein is visible. ${He} must be in constant discomfort.`);
-					} else if (scrotalFullness === 0) {
-						r.push(`${His} comfortable scrotum allows them to hang massively`);
-						if (hasBothLegs(slave)) {
-							r.push(`between ${his} legs.`);
-						} else {
-							r.push(`from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					} else {
-						r.push(`Their weight and size has stretched ${his} scrotum downward, so that they dangle`);
-						if (hasAnyLegs(slave)) {
-							r.push(`to ${his}`);
-							if (hasBothLegs(slave)) {
-								r.push(`knees.`);
-							} else{
-								r.push(`knee.`);
-							}
-						} else {
-							r.push(`quite the distance from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					}
-				} else if (slave.balls > 5) {
-					if (scrotalFullness < -1) {
-						r.push(`${His} poor scrotum is so overfilled, every little vein is visible. ${He} must be in agony.`);
-					} else if (scrotalFullness === -1) {
-						r.push(`They're held against ${his} base by a tight scrotum that permits them little movement.`);
-					} else if (scrotalFullness === 0) {
-						r.push(`${His} comfortable scrotum allows them to hang massively`);
-						if (hasBothLegs(slave)) {
-							r.push(`between ${his} legs.`);
-						} else {
-							r.push(`from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					} else {
-						r.push(`Their weight has stretched ${his} scrotum downward, so that they dangle`);
-						if (hasAnyLegs(slave)) {
-							r.push(`halfway to ${his}`);
-							if (hasBothLegs(slave)) {
-								r.push(`knees.`);
-							} else{
-								r.push(`knee.`);
-							}
-						} else {
-							r.push(`some distance from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					}
-				} else if (slave.balls > 3) {
-					if (scrotalFullness < -1) {
-						r.push(`They're too big for ${his} tiny scrotum, which is stretched tight over each ball.`);
-					} else if (scrotalFullness === -1) {
-						r.push(`They're held against ${his} base by a tight scrotum that permits them little movement.`);
-					} else if (scrotalFullness === 0) {
-						r.push(`${His} soft scrotum allows them to rest comfortably`);
-						if (hasBothLegs(slave)) {
-							r.push(`between ${his} legs.`);
-						} else {
-							r.push(`beneath ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					} else {
-						r.push(`${He} has a loose, dangling scrotum that allows them to swing`);
-						if (hasBothLegs(slave)) {
-							r.push(`between ${his} legs.`);
-						} else {
-							r.push(`from ${his}`);
-							if (isAmputee(slave)) {
-								r.push(`limbless`);
-							}
-							r.push(`torso.`);
-						}
-					}
-				} else if (slave.balls > 1) {
-					if (scrotalFullness < 0) {
-						r.push(`They're held tightly by a very minimal scrotum that turns them into a soft little bump.`);
-					} else if (scrotalFullness === 0) {
-						r.push(`${His} comfortable little scrotum allows them to rest softly.`);
-					} else {
-						r.push(`They're almost lost in ${his} big soft scrotum, wrinkled for lack of anything to fill it properly.`);
-					}
-				} else {
-					if (scrotalFullness === 0) {
-						r.push(`${He} has a soft little trace of scrotum.`);
-					} else {
-						r.push(`They've left ${his} scrotum soft and empty.`);
-					}
-				}
+				ballsVariant1();
 			}
 			if (slave.physicalAge <= 3) {
-				if (slave.balls >= 25) {
-					if (slave.fuckdoll > 0) {
-						r.push(`The difficulties of having a gigantic pair of testicles are greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
-					} else {
-						if (canWalk(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} arms to support them.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks carrying ${his} testicles in any way ${he} can.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge balls on the ground whenever ${he} can.`);
-							} else {
-								r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated so ${his} enormous balls don't weigh ${him} down as much.`);
-							}
-						} else if (canMove(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move at all.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, dragging ${his} testicles along behind ${him}.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to lift ${his} testicles, and finds it exhausting to drag them everywhere.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and tries avoid moving them whenever ${he} can.`);
-							} else {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and can barely manage to drag them along behind ${him}.`);
-							}
-						} else if (slave.balls >= 100) {
-							r.push(`${His} testicles each dwarf ${him}, making ${him} almost entirely testicle.`);
-						} else {
-							r.push(`${His} testicles each dwarf ${his} torso, making ${him} almost entirely testicle.`);
-						}
-						if (slave.balls > 90) {
-							if (V.ballsAccessibility === 1) {
-								r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with balls`);
-							} else {
-								if (market) {
-									r.push(`${He}'ll have`);
-								} else {
-									r.push(`${He} has`);
-								}
-								r.push(`trouble living in your penthouse, which is not designed for ${girl}s with testicles`);
-							}
-							r.push(`wider than a standard doorway.`);
-						}
-					}
-				}
+				massiveTesticles1();
 			} else if (slave.physicalAge <= 12) {
 				if (slave.balls >= 50) {
 					if (slave.fuckdoll > 0) {
@@ -2006,52 +1365,7 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 					}
 				}
 			} else if (slave.physicalAge > 12) {
-				if (slave.balls > 70) {
-					if (slave.fuckdoll > 0) {
-						r.push(`The difficulties of having a gigantic pair of testicles are greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
-					} else {
-						if (canWalk(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} arms to support them.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks carrying ${his} testicles in any way ${he} can.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge balls on the ground whenever ${he} can.`);
-							} else {
-								r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated so ${his} enormous balls don't weigh ${him} down as much.`);
-							}
-						} else if (canMove(slave)) {
-							r.push(`${His} balls are so massive that it is difficult for ${him} to move at all.`);
-							if (slave.muscles > 95) {
-								r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, dragging ${his} testicles along behind ${him}.`);
-							} else if (slave.muscles > 30) {
-								r.push(`${He} can barely manage to lift ${his} testicles, and finds it exhausting to drag them everywhere.`);
-							} else if (slave.muscles > 5) {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and tries avoid moving them whenever ${he} can.`);
-							} else {
-								r.push(`${He} requires assistance to get ${his} testicles off the ground, and can barely manage to drag them along behind ${him}.`);
-							}
-						} else if (slave.balls >= 100) {
-							r.push(`Together, ${his} testicles are nearly the same size as ${him}, making ${him} about half testicle.`);
-						} else {
-							r.push(`Together, ${his} testicles are nearly the same size as ${his} torso, making ${him} about half testicle.`);
-						}
-						if (slave.balls > 90) {
-							if (V.ballsAccessibility === 1) {
-								r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with balls`);
-							} else {
-								if (market) {
-									r.push(`${He}'ll have`);
-								} else {
-									r.push(`${He} has`);
-								}
-								r.push(`trouble living in your penthouse, which is not designed for ${girl}s with testicles`);
-							}
-							r.push(`wider than a standard doorway.`);
-						}
-					}
-				}
+				massiveTesticles2();
 			}
 			if (slave.prostate > 2) {
 				r.push(`The area above ${his} crotch has a slight swell to it from ${his} prostate implant. A constant dribble of precum streams from the hole and down ${his} testicles; ${his} artificially hyperactive prostate keeps ${him} that way.`);
@@ -2196,4 +1510,301 @@ App.Desc.dick = function(slave, {market, eventDescription} = {}) {
 	r.push(App.Desc.mods(slave, "testicle"));
 
 	return r.join(" ");
+
+	function ballsVariant1() {
+		const scrotalFullness = slave.scrotum - slave.balls;
+		if (slave.balls > 90) {
+			if (scrotalFullness < -1) {
+				r.push(`${His} poor scrotum is agonizingly overfilled and looks ready to burst. ${He} must be in constant pain.`);
+			} else if (scrotalFullness === -1) {
+				r.push(`${His} poor scrotum is so overfilled, every little vein is visible. ${He} must be in constant discomfort.`);
+			} else if (scrotalFullness === 0) {
+				r.push(`${His} comfortable scrotum allows them to hang massively`);
+				if (hasBothLegs(slave)) {
+					r.push(`between ${his} legs.`);
+				} else {
+					r.push(`from ${his}`);
+					if (isAmputee(slave)) {
+						r.push(`limbless`);
+					}
+					r.push(`torso.`);
+				}
+			} else {
+				r.push(`Their weight and size has stretched ${his} scrotum downward, so that they`);
+				if (hasAnyLegs(slave)) {
+					r.push(`drag along the floor.`);
+				} else {
+					r.push(`hang far from ${his}`);
+					if (isAmputee(slave)) {
+						r.push(`limbless`);
+					}
+					r.push(`torso.`);
+				}
+			}
+		} else if (slave.balls >= 20) {
+			if (scrotalFullness < -1) {
+				r.push(`${His} poor scrotum is agonizingly overfilled and taut. ${He} must be in constant pain.`);
+			} else if (scrotalFullness === -1) {
+				r.push(`${His} poor scrotum is so overfilled, every little vein is visible. ${He} must be in constant discomfort.`);
+			} else if (scrotalFullness === 0) {
+				r.push(`${His} comfortable scrotum allows them to hang massively`);
+				if (hasBothLegs(slave)) {
+					r.push(`between ${his} legs.`);
+				} else {
+					r.push(`from ${his}`);
+					if (isAmputee(slave)) {
+						r.push(`limbless`);
+					}
+					r.push(`torso.`);
+				}
+			} else {
+				r.push(`Their weight and size has stretched ${his} scrotum downward, so that they dangle`);
+				if (hasAnyLegs(slave)) {
+					r.push(`to ${his}`);
+					if (hasBothLegs(slave)) {
+						r.push(`knees.`);
+					} else {
+						r.push(`knee.`);
+					}
+				} else {
+					r.push(`quite the distance from ${his}`);
+					if (isAmputee(slave)) {
+						r.push(`limbless`);
+					}
+					r.push(`torso.`);
+				}
+			}
+		} else if (slave.balls > 5) {
+			if (scrotalFullness < -1) {
+				r.push(`${His} poor scrotum is so overfilled, every little vein is visible. ${He} must be in agony.`);
+			} else if (scrotalFullness === -1) {
+				r.push(`They're held against ${his} base by a tight scrotum that permits them little movement.`);
+			} else if (scrotalFullness === 0) {
+				r.push(`${His} comfortable scrotum allows them to hang massively`);
+				if (hasBothLegs(slave)) {
+					r.push(`between ${his} legs.`);
+				} else {
+					r.push(`from ${his}`);
+					if (isAmputee(slave)) {
+						r.push(`limbless`);
+					}
+					r.push(`torso.`);
+				}
+			} else {
+				r.push(`Their weight has stretched ${his} scrotum downward, so that they dangle`);
+				if (hasAnyLegs(slave)) {
+					r.push(`halfway to ${his}`);
+					if (hasBothLegs(slave)) {
+						r.push(`knees.`);
+					} else {
+						r.push(`knee.`);
+					}
+				} else {
+					r.push(`some distance from ${his}`);
+					if (isAmputee(slave)) {
+						r.push(`limbless`);
+					}
+					r.push(`torso.`);
+				}
+			}
+		} else if (slave.balls > 3) {
+			if (scrotalFullness < -1) {
+				r.push(`They're too big for ${his} tiny scrotum, which is stretched tight over each ball.`);
+			} else if (scrotalFullness === -1) {
+				r.push(`They're held against ${his} base by a tight scrotum that permits them little movement.`);
+			} else if (scrotalFullness === 0) {
+				r.push(`${His} soft scrotum allows them to rest comfortably`);
+				if (hasBothLegs(slave)) {
+					r.push(`between ${his} legs.`);
+				} else {
+					r.push(`beneath ${his}`);
+					if (isAmputee(slave)) {
+						r.push(`limbless`);
+					}
+					r.push(`torso.`);
+				}
+			} else {
+				r.push(`${He} has a loose, dangling scrotum that allows them to swing`);
+				if (hasBothLegs(slave)) {
+					r.push(`between ${his} legs.`);
+				} else {
+					r.push(`from ${his}`);
+					if (isAmputee(slave)) {
+						r.push(`limbless`);
+					}
+					r.push(`torso.`);
+				}
+			}
+		} else if (slave.balls > 1) {
+			if (scrotalFullness < 0) {
+				r.push(`They're held tightly by a very minimal scrotum that turns them into a soft little bump.`);
+			} else if (scrotalFullness === 0) {
+				r.push(`${His} comfortable little scrotum allows them to rest softly.`);
+			} else {
+				r.push(`They're almost lost in ${his} big soft scrotum, wrinkled for lack of anything to fill it properly.`);
+			}
+		} else {
+			if (scrotalFullness === 0) {
+				r.push(`${He} has a soft little trace of scrotum.`);
+			} else {
+				r.push(`They've left ${his} scrotum soft and empty.`);
+			}
+		}
+	}
+
+	function massiveTesticles1() {
+		if (slave.balls >= 25) {
+			if (slave.fuckdoll > 0) {
+				r.push(`The difficulties of having a gigantic pair of testicles are greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
+			} else {
+				if (canWalk(slave)) {
+					r.push(`${His} balls are so massive that it is difficult for ${him} to move.`);
+					if (slave.muscles > 95) {
+						r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} arms to support them.`);
+					} else if (slave.muscles > 30) {
+						r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks carrying ${his} testicles in any way ${he} can.`);
+					} else if (slave.muscles > 5) {
+						r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge balls on the ground whenever ${he} can.`);
+					} else {
+						r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated so ${his} enormous balls don't weigh ${him} down as much.`);
+					}
+				} else if (canMove(slave)) {
+					r.push(`${His} balls are so massive that it is difficult for ${him} to move at all.`);
+					if (slave.muscles > 95) {
+						r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, dragging ${his} testicles along behind ${him}.`);
+					} else if (slave.muscles > 30) {
+						r.push(`${He} can barely manage to lift ${his} testicles, and finds it exhausting to drag them everywhere.`);
+					} else if (slave.muscles > 5) {
+						r.push(`${He} requires assistance to get ${his} testicles off the ground, and tries avoid moving them whenever ${he} can.`);
+					} else {
+						r.push(`${He} requires assistance to get ${his} testicles off the ground, and can barely manage to drag them along behind ${him}.`);
+					}
+				} else if (slave.balls >= 100) {
+					r.push(`${His} testicles each dwarf ${him}, making ${him} almost entirely testicle.`);
+				} else {
+					r.push(`${His} testicles each dwarf ${his} torso, making ${him} almost entirely testicle.`);
+				}
+				if (slave.balls > 90) {
+					if (V.ballsAccessibility === 1) {
+						r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with balls`);
+					} else {
+						if (market) {
+							r.push(`${He}'ll have`);
+						} else {
+							r.push(`${He} has`);
+						}
+						r.push(`trouble living in your penthouse, which is not designed for ${girl}s with testicles`);
+					}
+					r.push(`wider than a standard doorway.`);
+				}
+			}
+		}
+	}
+
+	function massiveTesticles2() {
+		if (slave.balls > 70) {
+			if (slave.fuckdoll > 0) {
+				r.push(`The difficulties of having a gigantic pair of testicles are greatly reduced for a Fuckdoll, since ${he}'s almost always restrained, stationary, or both.`);
+			} else {
+				if (canWalk(slave)) {
+					r.push(`${His} balls are so massive that it is difficult for ${him} to move.`);
+					if (slave.muscles > 95) {
+						r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, using ${his} arms to support them.`);
+					} else if (slave.muscles > 30) {
+						r.push(`${He} can barely manage to get to ${his} feet unaided, and usually walks carrying ${his} testicles in any way ${he} can.`);
+					} else if (slave.muscles > 5) {
+						r.push(`${He} requires assistance to get to ${his} feet, and tries to rest ${his} huge balls on the ground whenever ${he} can.`);
+					} else {
+						r.push(`${He} cannot get to ${his} feet unaided, and prefers to remain seated so ${his} enormous balls don't weigh ${him} down as much.`);
+					}
+				} else if (canMove(slave)) {
+					r.push(`${His} balls are so massive that it is difficult for ${him} to move at all.`);
+					if (slave.muscles > 95) {
+						r.push(`However, ${he} is so powerfully built that ${he} can manage it with effort, dragging ${his} testicles along behind ${him}.`);
+					} else if (slave.muscles > 30) {
+						r.push(`${He} can barely manage to lift ${his} testicles, and finds it exhausting to drag them everywhere.`);
+					} else if (slave.muscles > 5) {
+						r.push(`${He} requires assistance to get ${his} testicles off the ground, and tries avoid moving them whenever ${he} can.`);
+					} else {
+						r.push(`${He} requires assistance to get ${his} testicles off the ground, and can barely manage to drag them along behind ${him}.`);
+					}
+				} else if (slave.balls >= 100) {
+					r.push(`Together, ${his} testicles are nearly the same size as ${him}, making ${him} about half testicle.`);
+				} else {
+					r.push(`Together, ${his} testicles are nearly the same size as ${his} torso, making ${him} about half testicle.`);
+				}
+				if (slave.balls > 90) {
+					if (V.ballsAccessibility === 1) {
+						r.push(`Fortunately for ${him}, the penthouse is adapted for daily life with balls`);
+					} else {
+						if (market) {
+							r.push(`${He}'ll have`);
+						} else {
+							r.push(`${He} has`);
+						}
+						r.push(`trouble living in your penthouse, which is not designed for ${girl}s with testicles`);
+					}
+					r.push(`wider than a standard doorway.`);
+				}
+			}
+		}
+	}
+
+	function ballSize() {
+		switch (slave.balls) {
+			case 0:
+				r.push(`smooth ${slave.skin} skin.`);
+				break;
+			case 1:
+				r.push(`a soft little trace of scrotum, since ${his} testicles are so small they have retreated up into ${his} abdomen.`);
+				break;
+			case 2:
+				r.push(`a small pair of`);
+				if (V.showDickCMs === 1) {
+					r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
+				} else {
+					r.push(`testicles.`);
+				}
+				break;
+			case 3:
+				r.push(`an average pair of`);
+				if (V.showDickCMs === 1) {
+					r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
+				} else {
+					r.push(`testicles.`);
+				}
+				break;
+			case 4:
+				r.push(`a big pair of`);
+				if (V.showDickCMs === 1) {
+					r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
+				} else {
+					r.push(`testicles.`);
+				}
+				break;
+			case 5:
+				r.push(`a huge pair of`);
+				if (V.showDickCMs === 1) {
+					r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
+				} else {
+					r.push(`testicles.`);
+				}
+				break;
+			case 6:
+				r.push(`a gigantic, clearly unnatural pair of`);
+				if (V.showDickCMs === 1) {
+					r.push(`testicles, about ${ballsToEitherUnit(slave.balls)} long`);
+				} else {
+					r.push(`testicles.`);
+				}
+				break;
+			default:
+				r.push(`a hypertrophied, clearly unnatural pair of testicles,`);
+				if (V.showDickCMs === 1) {
+					r.push(`about ${ballsToEitherUnit(slave.balls)} long,`);
+				}
+				r.push(`a true masterpiece of modern growth hormone treatment.`);
+				break;
+		}
+	}
 };
diff --git a/src/npc/descriptions/crotch/dickAccessory.js b/src/npc/descriptions/crotch/dickAccessory.js
index a6d498ea02667cd1b8456bf66c5f91043918b795..46a1c846d10ce01997468bf73c438da62c4c34a8 100644
--- a/src/npc/descriptions/crotch/dickAccessory.js
+++ b/src/npc/descriptions/crotch/dickAccessory.js
@@ -12,7 +12,7 @@ App.Desc.dickAccessory = function(slave) {
 		if (slave.energy > 95) {
 			r.push(`The poor nympho looks painfully frustrated by this, and a long string of precum is dangling from the hole in the bottom of the cage.`);
 		}
-		 if (V.arcologies[0].FSRestart !== "unset") {
+		if (V.arcologies[0].FSRestart !== "unset") {
 			r.push(`This pleases the Societal Elite.`);
 		}
 	}
diff --git a/src/npc/descriptions/style/clothing.js b/src/npc/descriptions/style/clothing.js
index 44500af21affd83fdeab18571c2973c5af368e51..7c8b2bdbe611251e4a6065c5748b4a519a09dd67 100644
--- a/src/npc/descriptions/style/clothing.js
+++ b/src/npc/descriptions/style/clothing.js
@@ -32,7 +32,8 @@ App.Desc.clothing = function(slave, {market, eventDescription} = {}) {
 					r.push(App.Desc.footwear(slave));
 				} else {
 					r.push(`a pretty silk blouse.`);
-				} break;
+				}
+				break;
 			case "chains":
 				r.push(`looped tightly around ${his} body wherever they can make ${his} most uncomfortable.`);
 				if (hasAnyLegs(slave)) {
diff --git a/src/npc/descriptions/womb/pregnancy.js b/src/npc/descriptions/womb/pregnancy.js
index f0a2a774782ee18a731524e12e3ebf0d9025f90f..63b20b5a8d270ceeb31d3c8fa716f7dde913ad4f 100644
--- a/src/npc/descriptions/womb/pregnancy.js
+++ b/src/npc/descriptions/womb/pregnancy.js
@@ -96,103 +96,22 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 		r.push(`stretched by ${his} straining ${slave.bellyImplant}cc belly implant. It is well past its recommended capacity and at risk of rupturing.`);
 	} else if (slave.bellyPreg >= 600000) {
 		r.push(`${He} is <span class="pink">dangerously pregnant,</span> ${his} overburdened womb is filled with`);
-		if (slave.preg >= slave.pregData.normalBirth * 1.375) {
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
-		} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
-		} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
-		} else {
-			r.push(`${slave.pregType} babies.`);
-		}
-		r.push(App.Desc.superfetation(slave, {market: market}));
+		fullBelly();
 	} else if (slave.bellyImplant >= 600000) {
 		r.push(`${He} looks <span class="pink">dangerously pregnant.</span> ${His} middle is massively stretched by ${his} absurdly overfilled ${slave.bellyImplant}cc belly implant.`);
 	} else if (slave.bellyPreg >= 450000) {
 		r.push(`${He} is <span class="pink">grotesquely pregnant,</span> ${his} womb is packed with`);
-		if (slave.preg >= slave.pregData.normalBirth * 1.375) {
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
-		} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
-		} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
-		} else {
-			r.push(`${slave.pregType} babies.`);
-		}
-		r.push(App.Desc.superfetation(slave, {market: market}));
+		fullBelly();
 	} else if (slave.bellyImplant >= 450000) {
 		r.push(`${He} looks <span class="pink">absurdly pregnant.</span> ${His} middle is massively stretched by ${his} overfilled ${slave.bellyImplant}cc belly implant.`);
 	} else if (slave.bellyPreg >= 300000) {
 		r.push(`${He} is <span class="pink">absurdly pregnant</span> with`);
 		if (slave.preg >= slave.pregData.normalBirth * 1.375) {
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+			overgrownBaby1();
 		} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+			overGrownBaby2();
 		} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+			overgrownBaby3();
 		} else {
 			r.push(`${slave.pregType} children.`);
 		}
@@ -203,45 +122,16 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 		r.push(`${He} is`);
 		if (slave.preg >= slave.pregData.normalBirth * 1.375) {
 			r.push(`<span class="pink">obscenely pregnant</span> with`);
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+			overgrownBaby1();
 		} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
 			r.push(`<span class="pink">obscenely pregnant</span> with`);
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+			overGrownBaby2();
 		} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
 			r.push(`<span class="pink">obscenely pregnant</span> with`);
-			if (slave.pregType === 1) {
-				r.push(`a single overgrown baby.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} overgrown babies.`);
-			} else {
-				r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-			}
-			r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+			overgrownBaby3();
 		} else if (slave.pregType > 9) {
 			r.push(`<span class="pink">obscenely pregnant</span> with`);
-			if (slave.pregType >= 50) {
-				r.push(`an absurd number of children.`);
-			} else if (slave.pregType >= 30) {
-				r.push(`far too many children.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} children.`);
-			} else {
-				r.push(`${pregNumberName(slave.pregType, 2)}.`);
-			}
+			manyChildren();
 		} else {
 			r.push(`<span class="pink">obscenely pregnant:</span> ${he}'s`);
 			if (slave.pregType === 9) {
@@ -257,46 +147,13 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 		r.push(`${He} is`);
 		if (slave.bellyPreg >= 105000) {
 			if (slave.preg >= slave.pregData.normalBirth * 1.375) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby1();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby2();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby3();
 			} else if (slave.pregType > 8) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType >= 50) {
-					r.push(`an absurd number of children.`);
-				} else if (slave.pregType >= 30) {
-					r.push(`far too many children.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} children.`);
-				} else {
-					r.push(`${pregNumberName(slave.pregType, 2)}.`);
-				}
+				massivelyPregnantManyChildren();
 			} else {
 				r.push(`<span class="pink">massively pregnant:</span> ${he}'s`);
 				if (slave.pregType === 8) {
@@ -307,46 +164,13 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.bellyPreg >= 90000) {
 			if (slave.preg >= slave.pregData.normalBirth * 1.375) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby1();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby2();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby3();
 			} else if (slave.pregType > 7) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType >= 50) {
-					r.push(`an absurd number of children.`);
-				} else if (slave.pregType >= 30) {
-					r.push(`far too many children.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} children.`);
-				} else {
-					r.push(`${pregNumberName(slave.pregType, 2)}.`);
-				}
+				massivelyPregnantManyChildren();
 			} else {
 				r.push(`<span class="pink">massively pregnant:</span> ${he}'s`);
 				if (slave.pregType === 7) {
@@ -363,46 +187,13 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.bellyPreg >= 75000) {
 			if (slave.preg >= slave.pregData.normalBirth * 1.375) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby1();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby2();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby3();
 			} else if (slave.pregType > 6) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType >= 50) {
-					r.push(`an absurd number of children.`);
-				} else if (slave.pregType >= 30) {
-					r.push(`far too many children.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} children.`);
-				} else {
-					r.push(`${pregNumberName(slave.pregType, 2)}.`);
-				}
+				massivelyPregnantManyChildren();
 			} else {
 				r.push(`<span class="pink">massively pregnant:</span> ${he}'s`);
 				if (slave.pregType === 6) {
@@ -415,46 +206,13 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.bellyPreg >= 60000) {
 			if (slave.preg >= slave.pregData.normalBirth * 1.375) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby1();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby2();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby3();
 			} else if (slave.pregType > 5) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType >= 50) {
-					r.push(`an absurd number of children.`);
-				} else if (slave.pregType >= 30) {
-					r.push(`far too many children.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} children.`);
-				} else {
-					r.push(`${pregNumberName(slave.pregType, 2)}.`);
-				}
+				massivelyPregnantManyChildren();
 			} else {
 				r.push(`<span class="pink">massively pregnant:</span> ${he}'s`);
 				if (slave.pregType === 5) {
@@ -469,46 +227,13 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.bellyPreg >= 45000) {
 			if (slave.preg >= slave.pregData.normalBirth * 1.375) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby1();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby2();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby3();
 			} else if (slave.pregType > 4) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType >= 50) {
-					r.push(`an absurd number of children.`);
-				} else if (slave.pregType >= 30) {
-					r.push(`far too many children.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} children.`);
-				} else {
-					r.push(`${pregNumberName(slave.pregType, 2)}.`);
-				}
+				massivelyPregnantManyChildren();
 			} else {
 				r.push(`<span class="pink">massively pregnant:</span> ${he}'s`);
 				if (slave.pregType === 4) {
@@ -521,46 +246,13 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 			}
 		} else if (slave.bellyPreg >= 30000) {
 			if (slave.preg >= slave.pregData.normalBirth * 1.375) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby1();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby2();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby3();
 			} else if (slave.pregType > 3) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType >= 50) {
-					r.push(`an absurd number of children.`);
-				} else if (slave.pregType >= 30) {
-					r.push(`far too many children.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} children.`);
-				} else {
-					r.push(`${pregNumberName(slave.pregType, 2)}.`);
-				}
+				massivelyPregnantManyChildren();
 			} else {
 				r.push(`<span class="pink">massively pregnant:</span> ${he}'s`);
 				if (slave.pregType === 3) {
@@ -573,46 +265,13 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 			}
 		} else {
 			if (slave.preg >= slave.pregData.normalBirth * 1.375) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby1();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby2();
 			} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType === 1) {
-					r.push(`a single overgrown baby.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} overgrown babies.`);
-				} else {
-					r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
-				}
-				r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+				massivelyPregnantOvergrownBaby3();
 			} else if (slave.pregType > 2) {
-				r.push(`<span class="pink">massively pregnant</span> with`);
-				if (slave.pregType >= 50) {
-					r.push(`an absurd number of children.`);
-				} else if (slave.pregType >= 30) {
-					r.push(`far too many children.`);
-				} else if (slave.pregType >= 10) {
-					r.push(`${slave.pregType} children.`);
-				} else {
-					r.push(`${pregNumberName(slave.pregType, 2)}.`);
-				}
+				massivelyPregnantManyChildren();
 			} else {
 				r.push(`<span class="pink">massively pregnant:</span> ${he}'s`);
 				if (slave.pregType === 2) {
@@ -641,15 +300,7 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 		r.push(`${He} is`);
 		if (slave.pregType > 2) {
 			r.push(`<span class="pink">hugely pregnant,</span> despite how early in ${his} pregnancy ${he} is: ${he}'s carrying`);
-			if (slave.pregType >= 50) {
-				r.push(`an absurd number of children.`);
-			} else if (slave.pregType >= 30) {
-				r.push(`far too many children.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} children.`);
-			} else {
-				r.push(`${pregNumberName(slave.pregType, 2)}.`);
-			}
+			manyChildren();
 		} else {
 			r.push(`<span class="pink">hugely pregnant:</span> ${he}'s`);
 			if (slave.pregType === 2) {
@@ -665,15 +316,7 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 		r.push(`${He} is`);
 		if (slave.pregType > 2) {
 			r.push(`<span class="pink">very pregnant,</span> despite how early in ${his} pregnancy ${he} is: ${he}'s carrying`);
-			if (slave.pregType >= 50) {
-				r.push(`an absurd number of children.`);
-			} else if (slave.pregType >= 30) {
-				r.push(`far too many children.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} children.`);
-			} else {
-				r.push(`${pregNumberName(slave.pregType, 2)}.`);
-			}
+			manyChildren();
 		} else {
 			r.push(`<span class="pink">very pregnant:</span>`);
 			if (slave.pregType === 2) {
@@ -689,15 +332,7 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 		r.push(`${He} is`);
 		if (slave.pregType > 2) {
 			r.push(`<span class="pink">visibly pregnant,</span> despite how early in ${his} pregnancy ${he} is: ${he}'s carrying`);
-			if (slave.pregType >= 50) {
-				r.push(`an absurd number of children.`);
-			} else if (slave.pregType >= 30) {
-				r.push(`far too many children.`);
-			} else if (slave.pregType >= 10) {
-				r.push(`${slave.pregType} children.`);
-			} else {
-				r.push(`${pregNumberName(slave.pregType, 2)}.`);
-			}
+			manyChildren();
 		} else {
 			r.push(`<span class="pink">visibly pregnant.</span>`);
 		}
@@ -792,7 +427,7 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 				if (!sameFather) {
 					r.push(`tests report multiple different sources.`);
 				} else {
-					if (slaveWD.litterData[slaveWD.litters.length-1][0].age <= slave.pregData.normalBirth / 8) {
+					if (slaveWD.litterData[slaveWD.litters.length - 1][0].age <= slave.pregData.normalBirth / 8) {
 						r.push(`all of them too young to tell the father of.`);
 					} else if (slave.pregSource === -7) {
 						r.push(`all of them modified children from the gene lab.`);
@@ -968,4 +603,82 @@ App.Desc.pregnancy = function(slave, {market, eventDescription} = {}) {
 		r.push(`${His} belly is <span class="coral">large enough to be in the way,</span> both in daily affairs and during sex.`);
 	}
 	return r.join(" ");
+
+	function fullBelly() {
+		if (slave.preg >= slave.pregData.normalBirth * 1.375) {
+			overgrownBaby1();
+		} else if (slave.preg >= slave.pregData.normalBirth * 1.25) {
+			overGrownBaby2();
+		} else if (slave.preg >= slave.pregData.normalBirth * 1.075) {
+			overgrownBaby3();
+		} else {
+			r.push(`${slave.pregType} babies.`);
+		}
+		r.push(App.Desc.superfetation(slave, {market: market}));
+	}
+
+	function massivelyPregnantOvergrownBaby1() {
+		r.push(`<span class="pink">massively pregnant</span> with`);
+		overgrownBaby1();
+	}
+
+	function overgrownBaby1() {
+		if (slave.pregType === 1) {
+			r.push(`a single overgrown baby.`);
+		} else if (slave.pregType >= 10) {
+			r.push(`${slave.pregType} overgrown babies.`);
+		} else {
+			r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
+		}
+		r.push(`${He} is horrifically overdue; ${he} should have given birth a staggering ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+	}
+
+	function massivelyPregnantOvergrownBaby2() {
+		r.push(`<span class="pink">massively pregnant</span> with`);
+		overGrownBaby2();
+	}
+
+	function overGrownBaby2() {
+		if (slave.pregType === 1) {
+			r.push(`a single overgrown baby.`);
+		} else if (slave.pregType >= 10) {
+			r.push(`${slave.pregType} overgrown babies.`);
+		} else {
+			r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
+		}
+		r.push(`${He} is extremely overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+	}
+
+	function massivelyPregnantOvergrownBaby3() {
+		r.push(`<span class="pink">massively pregnant</span> with`);
+		overgrownBaby3();
+	}
+
+	function overgrownBaby3() {
+		if (slave.pregType === 1) {
+			r.push(`a single overgrown baby.`);
+		} else if (slave.pregType >= 10) {
+			r.push(`${slave.pregType} overgrown babies.`);
+		} else {
+			r.push(`overgrown ${pregNumberName(slave.pregType, 2)}.`);
+		}
+		r.push(`${He} is very overdue; ${he} should have given birth ${(slave.preg - slave.pregData.normalBirth)} weeks ago.`);
+	}
+
+	function massivelyPregnantManyChildren() {
+		r.push(`<span class="pink">massively pregnant</span> with`);
+		manyChildren();
+	}
+
+	function manyChildren() {
+		if (slave.pregType >= 50) {
+			r.push(`an absurd number of children.`);
+		} else if (slave.pregType >= 30) {
+			r.push(`far too many children.`);
+		} else if (slave.pregType >= 10) {
+			r.push(`${slave.pregType} children.`);
+		} else {
+			r.push(`${pregNumberName(slave.pregType, 2)}.`);
+		}
+	}
 };
diff --git a/src/player/js/playerJS.js b/src/player/js/playerJS.js
deleted file mode 100644
index a9a5df36f88e508c405884ac3bc9097c44605e4f..0000000000000000000000000000000000000000
--- a/src/player/js/playerJS.js
+++ /dev/null
@@ -1,656 +0,0 @@
-globalThis.basePlayer = function() {
-	return new App.Entity.PlayerState();
-};
-
-/**
- * Helper function returning PC's title
- * @returns {string}
- */
-globalThis.properTitle = function() {
-	const PC = V.PC;
-	if (PC.customTitle) {
-		return PC.customTitle;
-	} else if (PC.title !== 0) {
-		return "Sir";
-	} else {
-		return "Ma'am";
-	}
-};
-
-/**
- * Helper function returning slave's title for PC in situations where getWrittenTitle() is inappropriate
- * @returns {string}
- */
-globalThis.properMaster = function() {
-	const PC = V.PC;
-	if (PC.customTitle) {
-		return PC.customTitle;
-	} else if (PC.title !== 0) {
-		return "Master";
-	} else {
-		return "Mistress";
-	}
-};
-
-globalThis.PlayerName = function() {
-	const names = V.PC.slaveSurname ? [V.PC.slaveName, V.PC.slaveSurname] : [V.PC.slaveName];
-	if ((V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(V.PC.nationality)) || (V.surnameOrder === 2)) {
-		names.reverse();
-	}
-	return names.join(" ");
-};
-
-globalThis.PCTitle = function() {
-	const titles = [];
-
-	let title = PlayerName();
-
-	if (V.cheater === 1) {
-		title = (`${title} the Cheater`);
-	} else if (V.arcologies[0].FSRestart > 10) {
-		title = (`${title} of the Societal Elite`);
-	} else if (V.rep > 18000) {
-		title = (`${title} the Great`);
-	} else if (V.rep > 17000) {
-		title = (`the exalted ${title}`);
-	} else if (V.rep > 16000) {
-		title = (`the illustrious ${title}`);
-	} else if (V.rep > 15000) {
-		title = (`the prestigious ${title}`);
-	} else if (V.rep > 14000) {
-		title = (`the renowned ${title}`);
-	} else if (V.rep > 13000) {
-		title = (`the famed ${title}`);
-	} else if (V.rep > 12000) {
-		title = (`the celebrated ${title}`);
-	} else if (V.rep > 11000) {
-		title = (`the honored ${title}`);
-	} else if (V.rep > 10000) {
-		title = (`the acclaimed ${title}`);
-	} else if (V.rep > 9000) {
-		title = (`the eminent ${title}`);
-	} else if (V.rep > 8250) {
-		title = (`the prominent ${title}`);
-	} else if (V.rep > 7500) {
-		title = (`the distinguished ${title}`);
-	} else if (V.rep > 6750) {
-		title = (`the admired ${title}`);
-	} else if (V.rep > 6000) {
-		title = (`the esteemed ${title}`);
-	} else if (V.rep > 5250) {
-		title = (`the respected ${title}`);
-	} else if (V.rep > 4500) {
-		title = (`the known ${title}`);
-	} else if (V.rep > 3750) {
-		title = (`the recognized ${title}`);
-	} else if (V.rep > 3000) {
-		title = (`the rumored ${title}`);
-	}
-
-	title = (`${title}, `);
-
-	if (V.PC.slaveName === "FC Dev") {
-		titles.push("the Creator");
-	}
-
-	if (V.plot === 1) {
-		if (V.invasionVictory === 3) {
-			if (V.PC.title === 1) {
-				titles.push("Hero of the City");
-			} else {
-				titles.push("Heroine of the City");
-			}
-		} else if (V.invasionVictory === 2) {
-			titles.push("Defender of the City");
-		}
-		if (V.daughtersVictory === 3) {
-			titles.push("Destroyer of the Daughters");
-		} else if (V.daughtersVictory === 2) {
-			if (V.PC.title === 1) {
-				titles.push("Victor over the Daughters");
-			} else {
-				titles.push("Victrix over the Daughters");
-			}
-		}
-	}
-
-	if (V.SF.Toggle && V.SF.FS.Tension > 100) {
-		switch (V.SF.FS.BadOutcome) {
-			case 'MIGRATION':
-				titles.push("The Abandoned");
-				break;
-			case 'Revolt':
-				titles.push("The Betrayed");
-				break;
-			case 'ANNIHILATION':
-				titles.push("The Runner");
-				break;
-			case 'OCCUPATION':
-				titles.push("The Occupied");
-				break;
-			case 'ASSIMILATION':
-				titles.push("The Deceived");
-				break;
-			case 'ISOLATION':
-				titles.push("The Ignored");
-				break;
-		}
-	}
-
-	if (V.mercenaries >= 5) {
-		if (V.mercenariesTitle === "Evocati") {
-			titles.push(`Princeps of the ${V.mercenariesTitle}`);
-		} else if (V.mercenariesTitle === "Knights") {
-			if (V.PC.title === 1) {
-				titles.push(`Lord Commander of the ${V.mercenariesTitle}`);
-			} else {
-				titles.push(`Lady Commander of the ${V.mercenariesTitle}`);
-			}
-		} else if (V.mercenariesTitle === "Immortals") {
-			titles.push(`Tyrant of the ${V.mercenariesTitle}`);
-		} else if (V.mercenariesTitle === "Black Eagles") {
-			titles.push(`Imperial Overlord of the ${V.mercenariesTitle}`);
-		} else {
-			titles.push(`Commander of the ${V.mercenariesTitle}`);
-		}
-	} else if (V.mercenaries >= 1) {
-		titles.push("Commander of the Mercenaries");
-	}
-
-	if (V.dispensary === 1) {
-		if (V.PC.title === 1) {
-			titles.push("Pharmacologos");
-		} else {
-			titles.push("Pharmacologes");
-		}
-	}
-
-	if (V.arcologies[0].FSSupremacist >= V.FSLockinLevel * 0.9) {
-		titles.push("Grand Champion of the Blood");
-	} else if (V.arcologies[0].FSSupremacist >= V.FSLockinLevel * 0.6) {
-		titles.push("Champion of the Blood");
-	} else if (V.arcologies[0].FSSupremacist >= V.FSLockinLevel * 0.3) {
-		titles.push("Defender of the Blood");
-	}
-
-	if (V.arcologies[0].FSSubjugationist >= V.FSLockinLevel * 0.9) {
-		titles.push("Grand Overseer of the Inferior Race");
-	} else if (V.arcologies[0].FSSubjugationist >= V.FSLockinLevel * 0.6) {
-		titles.push("Overseer of the Inferior Race");
-	} else if (V.arcologies[0].FSSubjugationist >= V.FSLockinLevel * 0.3) {
-		titles.push("Subduer of the Inferior Race");
-	}
-
-	if (V.arcologies[0].FSGenderRadicalist >= V.FSLockinLevel * 0.9) {
-		titles.push("Buttfucker of All Slaves");
-	} else if (V.arcologies[0].FSGenderRadicalist >= V.FSLockinLevel * 0.6) {
-		titles.push("Sodomizer of the Traps");
-	} else if (V.arcologies[0].FSGenderRadicalist >= V.FSLockinLevel * 0.3) {
-		if (V.PC.title === 1) {
-			titles.push("Penetrator of the Sissies");
-		} else {
-			titles.push("Penetratrix of the Sissies");
-		}
-	}
-
-	if (V.arcologies[0].FSGenderFundamentalist >= V.FSLockinLevel * 0.9) {
-		if (V.PC.title === 1) {
-			titles.push("Father to the City");
-		} else {
-			titles.push("Mother to the City");
-		}
-	} else if (V.arcologies[0].FSGenderFundamentalist >= V.FSLockinLevel * 0.6) {
-		titles.push("Defender of Women");
-	} else if (V.arcologies[0].FSGenderFundamentalist >= V.FSLockinLevel * 0.3) {
-		titles.push("Restorer of Morals");
-	}
-
-	if (V.arcologies[0].FSPaternalist >= V.FSLockinLevel * 0.9) {
-		if (V.PC.title === 1) {
-			titles.push("Protector to All Slaves");
-		} else {
-			titles.push("Protectrix to All Slaves");
-		}
-	} else if (V.arcologies[0].FSPaternalist >= V.FSLockinLevel * 0.6) {
-		if (V.PC.title === 1) {
-			titles.push("Benefactor of Slaves");
-		} else {
-			titles.push("Benefactrix of Slaves");
-		}
-	} else if (V.arcologies[0].FSPaternalist >= V.FSLockinLevel * 0.3) {
-		titles.push("Pursuer of Justice");
-	}
-
-	if (V.arcologies[0].FSRepopulationFocus >= V.FSLockinLevel * 0.9) {
-		titles.push("the Savior of the Future");
-	} else if (V.arcologies[0].FSRepopulationFocus >= V.FSLockinLevel * 0.6) {
-		titles.push("the Holder of the Future");
-	} else if (V.arcologies[0].FSRepopulationFocus >= V.FSLockinLevel * 0.3) {
-		titles.push("the Repopulist");
-	}
-
-	if (V.arcologies[0].FSDegradationist >= V.FSLockinLevel * 0.9) {
-		titles.push("Holder of the Rod and the Lash");
-	} else if (V.arcologies[0].FSDegradationist >= V.FSLockinLevel * 0.6) {
-		titles.push("Subduer of Slaves");
-	} else if (V.arcologies[0].FSDegradationist >= V.FSLockinLevel * 0.3) {
-		titles.push("Pursuer of Justice");
-	}
-
-	if (V.arcologies[0].FSIntellectualDependency >= V.FSLockinLevel * 0.9) {
-		titles.push("Sovereign of Bimbos");
-	} else if (V.arcologies[0].FSIntellectualDependency >= V.FSLockinLevel * 0.6) {
-		titles.push("Shepherd of the Slow");
-	} else if (V.arcologies[0].FSIntellectualDependency >= V.FSLockinLevel * 0.3) {
-		titles.push("Lover of Bimbos");
-	}
-
-	if (V.arcologies[0].FSSlaveProfessionalism >= V.FSLockinLevel * 0.9) {
-		titles.push("the Mastermind");
-	} else if (V.arcologies[0].FSSlaveProfessionalism >= V.FSLockinLevel * 0.6) {
-		titles.push("the Genius");
-	} else if (V.arcologies[0].FSSlaveProfessionalism >= V.FSLockinLevel * 0.3) {
-		titles.push("the Smart");
-	}
-
-	if (V.arcologies[0].FSBodyPurist >= V.FSLockinLevel * 0.9) {
-		titles.push("the Purifier of the Breasts");
-	} else if (V.arcologies[0].FSBodyPurist >= V.FSLockinLevel * 0.6) {
-		titles.push("the Discerning");
-	} else if (V.arcologies[0].FSBodyPurist >= V.FSLockinLevel * 0.3) {
-		titles.push("the Tasteful");
-	}
-
-	if (V.arcologies[0].FSAssetExpansionist >= V.FSLockinLevel * 0.9) {
-		titles.push("the Expander of the Breasts");
-	} else if (V.arcologies[0].FSAssetExpansionist >= V.FSLockinLevel * 0.6) {
-		titles.push("the Expander");
-	} else if (V.arcologies[0].FSAssetExpansionist >= V.FSLockinLevel * 0.3) {
-		if (V.PC.title === 1) {
-			titles.push("the Implanter");
-		} else {
-			titles.push("the Implantrix");
-		}
-	}
-
-	if (V.arcologies[0].FSStatuesqueGlorification >= V.FSLockinLevel * 0.9) {
-		if (V.PC.title === 1) {
-			titles.push("He Who Stands Above All");
-		} else {
-			titles.push("She Who Stands Above All");
-		}
-	} else if (V.arcologies[0].FSStatuesqueGlorification >= V.FSLockinLevel * 0.6) {
-		titles.push("Agent of Growth");
-	} else if (V.arcologies[0].FSStatuesqueGlorification >= V.FSLockinLevel * 0.3) {
-		titles.push("height fetishist");
-	}
-
-	if (V.arcologies[0].FSPetiteAdmiration >= V.FSLockinLevel * 0.9) {
-		titles.push("Supporter of the Small");
-	} else if (V.arcologies[0].FSPetiteAdmiration >= V.FSLockinLevel * 0.6) {
-		titles.push("the Size Enthusiast");
-	} else if (V.arcologies[0].FSPetiteAdmiration >= V.FSLockinLevel * 0.3) {
-		titles.push("height fetishist");
-	}
-
-	if (V.arcologies[0].FSPastoralist >= V.FSLockinLevel * 0.9) {
-		if (V.PC.title === 1) {
-			titles.push("the Master of Stock");
-		} else {
-			titles.push("the Mistress of Stock");
-		}
-	} else if (V.arcologies[0].FSPastoralist >= V.FSLockinLevel * 0.6) {
-		titles.push("the Rancher");
-	} else if (V.arcologies[0].FSPastoralist >= V.FSLockinLevel * 0.3) {
-		titles.push("the Farmer");
-	}
-
-	if (V.arcologies[0].FSPhysicalIdealist >= V.FSLockinLevel * 0.9) {
-		titles.push("beloved of Brodin");
-	} else if (V.arcologies[0].FSPhysicalIdealist >= V.FSLockinLevel * 0.6) {
-		if (V.PC.title === 1) {
-			titles.push("he of the godlike Body");
-		} else {
-			titles.push("she of the godlike Body");
-		}
-	} else if (V.arcologies[0].FSPhysicalIdealist >= V.FSLockinLevel * 0.3) {
-		titles.push("advancer of Gains");
-	}
-
-	if (V.arcologies[0].FSHedonisticDecadence >= V.FSLockinLevel * 0.9) {
-		if (V.PC.title === 1) {
-			titles.push("Master of Softness");
-		} else {
-			titles.push("Lady of Softness");
-		}
-	} else if (V.arcologies[0].FSHedonisticDecadence >= V.FSLockinLevel * 0.6) {
-		titles.push("Thickness Enthusiast");
-	} else if (V.arcologies[0].FSHedonisticDecadence >= V.FSLockinLevel * 0.3) {
-		titles.push("the Feeder");
-	}
-
-	if (V.arcologies[0].FSMaturityPreferentialist >= V.FSLockinLevel * 0.9) {
-		titles.push("Grand Preserver of MILFS");
-	} else if (V.arcologies[0].FSMaturityPreferentialist >= V.FSLockinLevel * 0.6) {
-		titles.push("Fucker of MILFS");
-	} else if (V.arcologies[0].FSMaturityPreferentialist >= V.FSLockinLevel * 0.3) {
-		if (V.PC.title === 1) {
-			titles.push("he of the notorious MILF preference");
-		} else {
-			titles.push("she of the notorious MILF preference");
-		}
-	}
-
-	if (V.arcologies[0].FSYouthPreferentialist >= V.FSLockinLevel * 0.9) {
-		titles.push("Keeper of the Magnificent Young Harem");
-	} else if (V.arcologies[0].FSYouthPreferentialist >= V.FSLockinLevel * 0.6) {
-		titles.push("Keeper of Virgins");
-	} else if (V.arcologies[0].FSYouthPreferentialist >= V.FSLockinLevel * 0.3) {
-		titles.push("the Virginbreaker");
-	}
-
-	if (V.arcologies[0].FSChattelReligionistLaw === 1) {
-		titles.push("the Prophet");
-	} else if (V.arcologies[0].FSChattelReligionist >= V.FSLockinLevel * 0.9) {
-		titles.push("Keeper of the Blade and Chalice");
-	} else if (V.arcologies[0].FSChattelReligionist >= V.FSLockinLevel * 0.6) {
-		titles.push("Champion of the Faith");
-	} else if (V.arcologies[0].FSChattelReligionist >= V.FSLockinLevel * 0.3) {
-		titles.push("the Holy");
-	}
-
-	if (V.arcologies[0].FSRomanRevivalist >= V.FSLockinLevel * 0.9) {
-		titles.push("First Consul");
-	} else if (V.arcologies[0].FSRomanRevivalist >= V.FSLockinLevel * 0.6) {
-		titles.push("Aedile");
-	} else if (V.arcologies[0].FSRomanRevivalist >= V.FSLockinLevel * 0.3) {
-		titles.push("Quaestor");
-	}
-
-	if (V.arcologies[0].FSNeoImperialist >= V.FSLockinLevel * 0.9) {
-		if (V.PC.title === 1) {
-			titles.push("Immortal Emperor");
-		} else {
-			titles.push("Immortal Empress");
-		}
-	} else if (V.arcologies[0].FSNeoImperialist >= V.FSLockinLevel * 0.6) {
-		if (V.PC.title === 1) {
-			titles.push("His Highness");
-		} else {
-			titles.push("Her Highness");
-		}
-	} else if (V.arcologies[0].FSNeoImperialist >= V.FSLockinLevel * 0.3) {
-		if (V.PC.title === 1) {
-			titles.push("Lord and Master");
-		} else {
-			titles.push("Lord and Mistress");
-		}
-	}
-
-	if (V.arcologies[0].FSAztecRevivalist >= V.FSLockinLevel * 0.9) {
-		titles.push("Tlatcani");
-	} else if (V.arcologies[0].FSAztecRevivalist >= V.FSLockinLevel * 0.6) {
-		titles.push("Cihuacoatl");
-	} else if (V.arcologies[0].FSAztecRevivalist >= V.FSLockinLevel * 0.3) {
-		titles.push("Tlatoani");
-	}
-
-	if (V.arcologies[0].FSEgyptianRevivalist >= V.FSLockinLevel * 0.9) {
-		if (V.PC.title === 1) {
-			titles.push("the Living God");
-		} else {
-			titles.push("the Living Goddess");
-		}
-	} else if (V.arcologies[0].FSEgyptianRevivalist >= V.FSLockinLevel * 0.6) {
-		titles.push("Pharaoh");
-	} else if (V.arcologies[0].FSEgyptianRevivalist >= V.FSLockinLevel * 0.3) {
-		if (V.PC.title === 1) {
-			titles.push("Prince of the Nile");
-		} else {
-			titles.push("Princess of the Nile");
-		}
-	}
-
-	if (V.arcologies[0].FSEdoRevivalist >= V.FSLockinLevel * 0.9) {
-		if (V.PC.title === 1) {
-			titles.push("Emperor and Descendant of Amaterasu");
-		} else {
-			titles.push("Amaterasu Reborn");
-		}
-	} else if (V.arcologies[0].FSEdoRevivalist >= V.FSLockinLevel * 0.6) {
-		titles.push("Shogun");
-	} else if (V.arcologies[0].FSEdoRevivalist >= V.FSLockinLevel * 0.3) {
-		titles.push("Daimyo");
-	}
-
-	if (V.arcologies[0].FSArabianRevivalist >= V.FSLockinLevel * 0.9) {
-		if (V.PC.title === 1) {
-			titles.push("Caliph");
-		} else {
-			titles.push("Handmaiden of Allah");
-		}
-	} else if (V.arcologies[0].FSArabianRevivalist >= V.FSLockinLevel * 0.6) {
-		if (V.PC.title === 1) {
-			titles.push("Sultan");
-		} else {
-			titles.push("Sultana");
-		}
-	} else if (V.arcologies[0].FSArabianRevivalist >= V.FSLockinLevel * 0.3) {
-		titles.push("Beloved of Allah");
-	}
-
-	if (V.arcologies[0].FSChineseRevivalist >= V.FSLockinLevel * 0.9) {
-		if (V.PC.title === 1) {
-			titles.push("Emperor and Holder of the Mandate of Heaven");
-		} else {
-			titles.push("Empress and Holder of the Mandate of Heaven");
-		}
-	} else if (V.arcologies[0].FSChineseRevivalist >= V.FSLockinLevel * 0.6) {
-		if (V.PC.title === 1) {
-			titles.push("Emperor");
-		} else {
-			titles.push("Empress");
-		}
-	} else if (V.arcologies[0].FSChineseRevivalist >= V.FSLockinLevel * 0.3) {
-		if (V.PC.title === 1) {
-			titles.push("Governor of the Province");
-		} else {
-			titles.push("Governess of the Province");
-		}
-	}
-
-	const facilities = App.Entity.facilities;
-	if (facilities.brothel.employeesIDs().size >= 15) {
-		if (V.PC.title === 1) {
-			titles.push("Procurator of the Brothel");
-		} else {
-			titles.push("Procuratrix of the Brothel");
-		}
-	}
-
-	if (facilities.club.employeesIDs().size >= 15) {
-		titles.push("First on the Club");
-	}
-	if (facilities.dairy.employeesIDs().size >= 15) {
-		titles.push("Keeper of the Cattle");
-	}
-	if (V.cumSlaves >= 15) {
-		if (V.PC.title === 1) {
-			titles.push("Extractor of the Ejaculate");
-		} else {
-			titles.push("Extractrix of the Ejaculate");
-		}
-	}
-	if (facilities.servantsQuarters.employeesIDs().size >= 15) {
-		if (V.PC.title === 1) {
-			titles.push("Director of the Servants");
-		} else {
-			titles.push("Directrix of the Servants");
-		}
-	}
-	if (facilities.schoolroom.employeesIDs().size >= 10) {
-		if (V.PC.title === 1) {
-			titles.push("Educator of the Slaves");
-		} else {
-			titles.push("Educatrix of the Slaves");
-		}
-	}
-	if (facilities.spa.employeesIDs().size >= 10) {
-		titles.push("Order of the Bath");
-	}
-	if (facilities.arcade.employeesIDs().size >= 15) {
-		titles.push("Comptroller of the Arcade");
-	}
-	if (V.nurseryChildren >= 10) {
-		titles.push("Caretaker of the Youth");
-	}
-
-	const schoolsPresent = [];
-	const schoolsPerfected = [];
-	let schoolTitle;
-	for (const [school, obj] of App.Data.misc.schools) {
-		if (V[school].schoolProsperity >= 10) {
-			schoolsPerfected.push(obj.title);
-		} else if (V[school].schoolPresent === 1) {
-			schoolsPresent.push(obj.title);
-		}
-	}
-
-	if (schoolsPerfected.length > 0) {
-		schoolTitle = `${V.PC.title === 1 ? 'Benefactor' : 'Benefactrix'} of `;
-		if (schoolsPerfected.length === 1) {
-			schoolTitle += schoolsPerfected[0];
-		} else if (schoolsPerfected.length === 2) {
-			schoolTitle += `${schoolsPerfected[0]} and ${schoolsPerfected[1]}`;
-		} else {
-			schoolsPerfected[schoolsPerfected.length - 1] = `and ${schoolsPerfected[schoolsPerfected.length - 1]}`;
-			schoolTitle += schoolsPerfected.join(", ");
-		}
-		titles.push(schoolTitle);
-	}
-	if (schoolsPresent.length > 0) {
-		schoolTitle = "Supporter of ";
-		if (schoolsPresent.length === 1) {
-			schoolTitle += schoolsPresent[0];
-		} else if (schoolsPresent.length === 2) {
-			schoolTitle += `${schoolsPresent[0]} and ${schoolsPresent[1]}`;
-		} else {
-			schoolsPresent[schoolsPresent.length - 1] = `and ${schoolsPresent[schoolsPresent.length - 1]}`;
-			schoolTitle += schoolsPresent.join(", ");
-		}
-		titles.push(schoolTitle);
-	}
-
-	if (V.TFS.schoolProsperity >= 10) {
-		titles.push("Honorary Sibling of the Futanari Sisters");
-	} else if (V.TFS.schoolPresent === 1) {
-		if (V.PC.title === 1) {
-			titles.push("Protector of the Futanari Sisters");
-		} else {
-			titles.push("Protectrix of the Futanari Sisters");
-		}
-	}
-
-	if (V.slaves.length > 50) {
-		if (V.PC.title === 1) {
-			titles.push("Master of Slaves");
-		} else {
-			titles.push("Mistress of Slaves");
-		}
-	} else if (V.slaves.length > 40) {
-		titles.push("Holder of Slaves");
-	} else if (V.slaves.length > 30) {
-		titles.push("Keeper of Slaves");
-	} else if (V.slaves.length > 20) {
-		titles.push("Manager of Slaves");
-	} else if (V.slaves.length > 10) {
-		titles.push("owner of slaves");
-	}
-	const corpValue = App.Corporate.value;
-	if (corpValue > 500000) {
-		titles.push("Corporate Titan");
-	} else if (corpValue > 250000) {
-		titles.push("corporate innovator");
-	} else if (corpValue > 100000) {
-		titles.push("corporate founder");
-	} else if (corpValue > 0) {
-		if (V.PC.title === 1) {
-			titles.push("noted corporate businessman");
-		} else {
-			titles.push("noted corporate businesswoman");
-		}
-	}
-
-	if (V.rep > 18000) {
-		if (V.PC.title === 1) {
-			titles.push("unquestioned Master of the Arcology");
-		} else {
-			titles.push("unquestioned Mistress of the Arcology");
-		}
-	} else if (V.rep > 15000) {
-		if (V.PC.title === 1) {
-			titles.push("Lord of the Arcology");
-		} else {
-			titles.push("Lady of the Arcology");
-		}
-	} else if (V.rep > 12000) {
-		titles.push("Ruler of the Arcology");
-	} else if (V.rep > 9000) {
-		titles.push("chief officer of the arcology");
-	} else {
-		titles.push("owner of the arcology");
-	}
-
-	if (titles.length === 1) {
-		title += titles[0];
-	} else if (titles.length === 2) {
-		title += `${titles[0]} and ${titles[1]}`;
-	} else {
-		titles[titles.length - 1] = `and ${titles[titles.length - 1]}`;
-		title += titles.join(", ");
-	}
-	return title;
-};
-
-/**
- * @param {string} input
- * @param {number} [increase=1]
- * @returns {string}
- */
-globalThis.IncreasePCSkills = function(input, increase = 1) {
-	if (Array.isArray(input)) {
-		return input.reduce((r, inputArray) => r + IncreasePCSkills(inputArray, increase), '');
-	}
-	const player = V.PC;
-	const oldSkill = player.skill[input];
-	player.skill[input] += increase;
-	let t = ``;
-
-	if (oldSkill < 10 && player.skill[input] >= 10) {
-	 t += `<span class="green"> \nYou have gained basic knowledge in ${input}.</span>`;
-	} else if (oldSkill < 30 && player.skill[input] >= 30) {
-	 t += `<span class="green"> \nYou have gained some knowledge in ${input}.</span>`;
-	} else if (oldSkill < 60 && player.skill[input] >= 60) {
-	 t += `<span class="green"> \nYou have become an expert in ${input}.</span>`;
-	} else if (oldSkill < 100 && player.skill[input] >= 100) {
-	 t += `<span class="green"> \nYou have mastered ${input}.</span>`;
-	}
-	return t;
-};
-
-/** Returns if the player is on mandatory bedrest.
- * @returns {boolean}
- */
-globalThis.onBedRest = function(actor) {
-	// consider player health and injury in the future!
-	if (!actor) {
-		return null;
-	} else if (!canMove(actor)) {
-		return true;
-	} else if (actor.preg > actor.pregData.normalBirth / 1.33 && actor.womb.find((ft) => ft.genetics.geneticQuirks.polyhydramnios === 2 && ft.age >= 20)) {
-		return true;
-	} else if (actor.bellyPreg >= actor.pregAdaptation * 2200) {
-		return true;
-	}
-	return false;
-};