diff --git a/src/npc/startingGirls/startingGirls.js b/src/npc/startingGirls/startingGirls.js
index 7fe5ba3ca10c6e3d82d2c2796356df626908ee3b..f1e8e9e7e2c70b4e79b9cd5c936576fb924ec9fc 100644
--- a/src/npc/startingGirls/startingGirls.js
+++ b/src/npc/startingGirls/startingGirls.js
@@ -622,6 +622,9 @@ App.StartingGirls.physical = function(slave) {
 	const options = new App.UI.OptionsGroup();
 	let option;
 
+	options.addOption("Condition", "condition", slave.health)
+		.addValueList([["Unhealthy", -40], ["Healthy", 0], ["Very healthy", 40], ["Extremely healthy", 80]]);
+
 	options.addOption(`Height: ${heightToEitherUnit(slave.height)}`, "height", slave).showTextBox("cm")
 		.addRange(145, 150, "<", "Petite")
 		.addRange(155, 160, "<", "Short")
@@ -1114,43 +1117,6 @@ App.StartingGirls.profile = function(slave) {
 
 	options.addOption("Births", "birthsTotal", slave.counter).showTextBox().addComment(`How many times ${he} has already given birth, not necessarily while owned by you.`);
 
-	option = options.addOption("Devotion", "devotion", slave).showTextBox()
-		.addRange(-100, -95, "<", "Utterly hateful")
-		.addRange(-70, -50, "<", "Hateful")
-		.addRange(-35, -20, "<", "Resistant")
-		.addRange(0, 20, "<", "Ambivalent")
-		.addRange(35, 50, "<", "Accepting")
-		.addRange(70, 95, "<", "Devoted")
-		.addRange(100, 95, ">=", "Worshipful");
-	if (slave.devotion > 20) {
-		r = [];
-		r.push("Starting slaves incur");
-		if (slave.devotion > 50) {
-			r.push("severe cost penalty at very high");
-		} else {
-			r.push("an additional cost penalty at high");
-		}
-		r.push("levels of devotion. This slave's");
-		if (slave.actualAge >= 25) {
-			if (slave.actualAge > 35) {
-				r.push("advanced");
-			}
-			r.push("age decreases the penalty.");
-		} else {
-			r.push("young age requires paying the full penalty.");
-		}
-		option.addComment(`<span class=warning>${r.join(" ")}</span>`);
-	}
-
-	options.addOption("Trust", "trust", slave).showTextBox()
-		.addRange(-100, -95, "<", "Abjectly terrified")
-		.addRange(-70, -50, "<", "Terrified")
-		.addRange(-35, -20, "<", "Frightened")
-		.addRange(0, 20, "<", "Fearful")
-		.addRange(35, 50, "<", "Careful")
-		.addRange(70, 95, "<", "Trusting")
-		.addRange(100, 95, ">=", "Absolute trust");
-
 	options.addOption("Legal status", "indenture", slave)
 		.addValue("Slave", -1, () => slave.indentureRestrictions = 0)
 		.addRange(52, 0, ">=", "Indentured Servant");
@@ -1201,9 +1167,6 @@ App.StartingGirls.profile = function(slave) {
 			slave.hips = either(0, 1, 2);
 		});
 
-	options.addOption("Condition", "condition", slave.health)
-		.addValueList([["Unhealthy", -40], ["Healthy", 0], ["Very healthy", 40], ["Extremely healthy", 80]]);
-
 	 option = options.addOption("Prestige", "prestige", slave)
 		.addValueList([["None", 0], ["Locally known", 1], ["Regionally famous", 2], ["World renowned", 3]]);
 	if (slave.prestige > 0) {
@@ -1232,12 +1195,149 @@ App.StartingGirls.profile = function(slave) {
 				["Amerindian", "amerindian"], ["Pacific Islander", "pacific islander"], ["Malay", "malay"], ["Mixed Race", "mixed race"]]);
 	}
 
+	el.append(options.render());
+	return el;
+};
+
+App.StartingGirls.mental = function(slave) {
+	const el = new DocumentFragment();
+	const options = new App.UI.OptionsGroup();
+	let option;
+	let r;
+
 	options.addOption("Intelligence", "intelligence", slave)
 		.addValueList([["Moronic", -100], ["Very stupid", -60], ["Stupid", -30], ["Average", 0], ["Smart", 30], ["Very smart", 60], ["Brilliant", 100]]);
 
 	options.addOption("Education", "intelligenceImplant", slave)
 		.addValueList([["Uneducated", 0], ["Educated", 15], ["Well educated", 30]]);
 
+	option = options.addOption("Devotion", "devotion", slave).showTextBox()
+		.addRange(-100, -95, "<", "Utterly hateful")
+		.addRange(-70, -50, "<", "Hateful")
+		.addRange(-35, -20, "<", "Resistant")
+		.addRange(0, 20, "<", "Ambivalent")
+		.addRange(35, 50, "<", "Accepting")
+		.addRange(70, 95, "<", "Devoted")
+		.addRange(100, 95, ">=", "Worshipful");
+	if (slave.devotion > 20) {
+		r = [];
+		r.push("Starting slaves incur");
+		if (slave.devotion > 50) {
+			r.push("severe cost penalty at very high");
+		} else {
+			r.push("an additional cost penalty at high");
+		}
+		r.push("levels of devotion. This slave's");
+		if (slave.actualAge >= 25) {
+			if (slave.actualAge > 35) {
+				r.push("advanced");
+			}
+			r.push("age decreases the penalty.");
+		} else {
+			r.push("young age requires paying the full penalty.");
+		}
+		option.addComment(`<span class=warning>${r.join(" ")}</span>`);
+	}
+
+	options.addOption("Trust", "trust", slave).showTextBox()
+		.addRange(-100, -95, "<", "Abjectly terrified")
+		.addRange(-70, -50, "<", "Terrified")
+		.addRange(-35, -20, "<", "Frightened")
+		.addRange(0, 20, "<", "Fearful")
+		.addRange(35, 50, "<", "Careful")
+		.addRange(70, 95, "<", "Trusting")
+		.addRange(100, 95, ">=", "Absolute trust");
+
+
+
+	if (slave.fetishKnown === 0) {
+		options.addOption("Fetish", "fetishKnown", slave)
+			.addValueList([["Unknown", 0], ["Known", 1]]);
+	} else {
+		option = options.addOption("Fetish", "fetish", slave)
+			.addValue("Unknown", "", () => {
+				slave.fetish = either("boobs", "buttslut", "cumslut", "dom", "humiliation", "masochist", "pregnancy", "sadist",
+					"submissive", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none");
+				slave.fetishKnown = 0;
+			}).addValueList([["None", "none"], ["Sub", "submissive"], ["Dom", "dom"], ["Cumslut", "cumslut"], ["Humiliation", "humiliation"],
+				["Buttslut", "buttslut"], ["Breasts", "boobs"], ["Pregnancy", "pregnancy"], ["Sadism", "sadist"], ["Masochism", "masochist"]]);
+		if (V.seeExtreme === 1) {
+			option.addValue("Mindbroken", "mindbroken", () => {
+				slave.fetishStrength = 10;
+				slave.sexualFlaw = "none";
+				slave.sexualQuirk = "none";
+				slave.behavioralFlaw = "none";
+				slave.behavioralQuirk = "none";
+			});
+		}
+
+		if (slave.fetish !== "none" && slave.fetish !== "mindbroken") {
+			options.addOption("Fetish strength", "fetishStrength", slave)
+				.addRange(15, 30, "<=", "Very Low")
+				.addRange(45, 60, "<=", "Low")
+				.addRange(75, 85, "<=", "Normal")
+				.addRange(90, 95, "<=", "High")
+				.addRange(100, 95, ">", "Extremely High");
+		}
+	}
+
+	options.addOption("Sexuality", "attrKnown", slave)
+		.addValue("Known", 1, () => {
+			slave.attrXX = random(0, 100);
+			slave.attrXY = random(0, 100);
+			slave.energy = random(1, 90);
+		}).on()
+		.addValue("Unknown", 0).off();
+	if (slave.attrKnown === 1) {
+		options.addOption("Attraction to men", "attrXY", slave)
+			.addRange(0, 5, "<=", "Disgusted").off()
+			.addRange(10, 15, "<=", "Turned off").off()
+			.addRange(25, 35, "<=", "Not attracted").off()
+			.addRange(50, 65, "<=", "Indifferent").neutral()
+			.addRange(75, 85, "<=", "Attracted").on()
+			.addRange(90, 95, "<=", "Aroused").on()
+			.addRange(100, 95, ">", "Passionate").on();
+		options.addOption("Attraction to women", "attrXX", slave)
+			.addRange(0, 5, "<=", "Disgusted").off()
+			.addRange(10, 15, "<=", "Turned off").off()
+			.addRange(25, 35, "<=", "Not attracted").off()
+			.addRange(50, 65, "<=", "Indifferent").neutral()
+			.addRange(75, 85, "<=", "Attracted").on()
+			.addRange(90, 95, "<=", "Aroused").on()
+			.addRange(100, 95, ">", "Passionate").on();
+
+		options.addOption("Sex drive", "energy", slave)
+			.addRange(5, 10, "<=", "Frigid").off()
+			.addRange(25, 40, "<=", "Poor").off()
+			.addRange(45, 60, "<=", "Average").neutral()
+			.addRange(65, 80, "<=", "Powerful").on()
+			.addRange(85, 99, "<=", "Sex addict").on()
+			.addRange(100, 99, ">", "Nympho").on();
+	}
+
+	if (slave.fetish !== "mindbroken") {
+		options.addOption("Behavioral Flaw", "behavioralFlaw", slave)
+			.addValueList([["None", "none"], ["Arrogant", "arrogant"], ["Bitchy", "bitchy"], ["Odd", "odd"], ["Hates Men", "hates men"],
+				["Hates Women", "hates women"], ["Anorexic", "anorexic"], ["Gluttonous", "gluttonous"], ["Devout", "devout"],
+				["Liberated", "liberated"]]);
+
+		options.addOption("Behavioral Quirk", "behavioralQuirk", slave)
+			.addValueList([["None", "none"], ["Confident", "confident"], ["Cutting", "cutting"], ["Funny", "funny"],
+				["Adores Men", "adores men"], ["Adores Women", "adores women"], ["Insecure", "insecure"], ["Fitness", "fitness"],
+				["Sinful", "sinful"], ["Advocate", "advocate"]]);
+
+		options.addOption("Sexual Flaw", "sexualFlaw", slave)
+			.addValueList([["None", "none"], ["Hates Oral", "hates oral"], ["Hates Anal", "hates anal"],
+				["Hates Penetration", "hates penetration"], ["Repressed", "repressed"], ["Shamefast", "shamefast"], ["Apathetic", "apathetic"],
+				["Crude", "crude"], ["Judgemental", "judgemental"], ["Sexually idealistic", "idealistic"]]);
+
+		options.addOption("Sexual Quirk", "sexualQuirk", slave)
+			.addValueList([["None", "none"], ["Oral", "gagfuck queen"], ["Anal", "painal queen"], ["Penetration", "strugglefuck queen"],
+				["Perverted", "perverted"], ["Tease", "tease"], ["Caring", "caring"], ["Unflinching", "unflinching"], ["Size queen", "size queen"],
+				["Romantic", "romantic"]]);
+	}
+
 	el.append(options.render());
+
 	return el;
 };
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index 164d9fd53fd929ddc7891c98c437af3167eb8223..6dc4e30a17bbc6c267dfbcebb163fd38ab8faefa 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -230,95 +230,7 @@
 
 <div id="Mental" class="tab-content">
 	<div class="content">
-
-	<<set _options = new App.UI.OptionsGroup()>>
-	<<if $activeSlave.fetishKnown === 0>>
-		<<run _options.addOption("Fetish", "fetishKnown", $activeSlave)
-		.addValueList([["Unknown", 0], ["Known", 1]])>>
-	<<else>>
-		<<set _option = _options.addOption("Fetish", "fetish", $activeSlave)
-		.addValue("Unknown", "", () => {
-			V.activeSlave.fetish = either("boobs", "buttslut", "cumslut", "dom", "humiliation", "masochist", "pregnancy", "sadist",
-				"submissive", "none", "none", "none", "none", "none", "none", "none", "none", "none", "none");
-			V.activeSlave.fetishKnown = 0
-		}).addValueList([["None", "none"], ["Sub", "submissive"], ["Dom", "dom"], ["Cumslut", "cumslut"], ["Humiliation", "humiliation"],
-		["Buttslut", "buttslut"], ["Breasts", "boobs"], ["Pregnancy", "pregnancy"], ["Sadism", "sadist"], ["Masochism", "masochist"]])>>
-		<<if $seeExtreme === 1>>
-			<<run _option.addValue("Mindbroken", "mindbroken", () => {
-				V.activeSlave.fetishStrength = 10;
-				V.activeSlave.sexualFlaw = "none";
-				V.activeSlave.sexualQuirk = "none";
-				V.activeSlave.behavioralFlaw = "none";
-				V.activeSlave.behavioralQuirk = "none";
-			})>>
-		<</if>>
-
-		<<if $activeSlave.fetish !== "none" && $activeSlave.fetish !== "mindbroken">>
-			<<run _options.addOption("Fetish strength", "fetishStrength", $activeSlave)
-			.addRange(15, 30, "<=", "Very Low")
-			.addRange(45, 60, "<=", "Low")
-			.addRange(75, 85, "<=", "Normal")
-			.addRange(90, 95, "<=", "High")
-			.addRange(100, 95, ">", "Extremely High")>>
-		<</if>>
-	<</if>>
-
-	<<run _options.addOption("Sexuality", "attrKnown", $activeSlave)
-	.addValue("Unknown", 0).addValue("Known", 1, () => {
-		V.activeSlave.attrXX = random(0, 100);
-		V.activeSlave.attrXY = random(0, 100);
-		V.activeSlave.energy = random(1, 90);
-	})>>
-	<<if $activeSlave.attrKnown === 1>>
-		<<run _options.addOption("Attraction to men", "attrXY", $activeSlave)
-		.addRange(0, 5, "<=", "Disgusted").off()
-		.addRange(10, 15, "<=", "Turned off").off()
-		.addRange(25, 35, "<=", "Not attracted").off()
-		.addRange(50, 65, "<=", "Indifferent").neutral()
-		.addRange(75, 85, "<=", "Attracted").on()
-		.addRange(90, 95, "<=", "Aroused").on()
-		.addRange(100, 95, ">", "Passionate").on()>>
-		<<run _options.addOption("Attraction to women", "attrXX", $activeSlave)
-		.addRange(0, 5, "<=", "Disgusted").off()
-		.addRange(10, 15, "<=", "Turned off").off()
-		.addRange(25, 35, "<=", "Not attracted").off()
-		.addRange(50, 65, "<=", "Indifferent").neutral()
-		.addRange(75, 85, "<=", "Attracted").on()
-		.addRange(90, 95, "<=", "Aroused").on()
-		.addRange(100, 95, ">", "Passionate").on()>>
-
-		<<run _options.addOption("Sex drive", "energy", $activeSlave)
-		.addRange(5, 10, "<=", "Frigid").off()
-		.addRange(25, 40, "<=", "Poor").off()
-		.addRange(45, 60, "<=", "Average").neutral()
-		.addRange(65, 80, "<=", "Powerful").on()
-		.addRange(85, 99, "<=", "Sex addict").on()
-		.addRange(100, 99, ">", "Nympho").on()>>
-	<</if>>
-
-	<<if $activeSlave.fetish !== "mindbroken">>
-		<<run _options.addOption("Behavioral Flaw", "behavioralFlaw", $activeSlave)
-		.addValueList([["None", "none"], ["Arrogant", "arrogant"], ["Bitchy", "bitchy"], ["Odd", "odd"], ["Hates Men", "hates men"],
-		["Hates Women", "hates women"], ["Anorexic", "anorexic"], ["Gluttonous", "gluttonous"], ["Devout", "devout"],
-		["Liberated", "liberated"]])>>
-
-		<<run _options.addOption("Behavioral Quirk", "behavioralQuirk", $activeSlave)
-		.addValueList([["None", "none"], ["Confident", "confident"], ["Cutting", "cutting"], ["Funny", "funny"],
-		["Adores Men", "adores men"], ["Adores Women", "adores women"], ["Insecure", "insecure"], ["Fitness", "fitness"],
-		["Sinful", "sinful"], ["Advocate", "advocate"]])>>
-
-		<<run _options.addOption("Sexual Flaw", "sexualFlaw", $activeSlave)
-		.addValueList([["None", "none"], ["Hates Oral", "hates oral"], ["Hates Anal", "hates anal"],
-		["Hates Penetration", "hates penetration"], ["Repressed", "repressed"], ["Shamefast", "shamefast"], ["Apathetic", "apathetic"],
-		["Crude", "crude"], ["Judgemental", "judgemental"], ["Sexually idealistic", "idealistic"]])>>
-
-		<<run _options.addOption("Sexual Quirk", "sexualQuirk", $activeSlave)
-		.addValueList([["None", "none"], ["Oral", "gagfuck queen"], ["Anal", "painal queen"], ["Penetration", "strugglefuck queen"],
-		["Perverted", "perverted"], ["Tease", "tease"], ["Caring", "caring"], ["Unflinching", "unflinching"], ["Size queen", "size queen"],
-		["Romantic", "romantic"]])>>
-	<</if>>
-
-	<<includeDOM _options.render()>>
+		<<includeDOM App.StartingGirls.mental($activeSlave)>>
 	</div>
 </div>