diff --git a/src/descriptions/arcologyDescription.js b/src/descriptions/arcologyDescription.js
index 9aea9f61a537bdf7c2fa5ab9dcf1eb1f4363eff6..f25075e068ed659282904d9fb6d8abd39322d4a1 100644
--- a/src/descriptions/arcologyDescription.js
+++ b/src/descriptions/arcologyDescription.js
@@ -12,8 +12,8 @@ App.Desc.playerArcology = function(lastElement) {
 	function location() {
 		const fragment = document.createDocumentFragment();
 
-		fragment.append(App.UI.DOM.makeElement("span", A.name, "arcology-name"),
-			` your arcology, is located in a Free City in  ${V.terrain === "oceanic" ? "the middle of the ocean" : V.continent}. It is a huge structure whose${V.arcologyUpgrade.apron === 1 ? " solar-paneled" : ""} skin gleams in the sunshine${V.arcologyUpgrade.hydro === 1 ? ", while verdant exterior hydroponics bays lend it an air of growth" : ""}. `);
+		fragment.append(App.UI.DOM.makeElement("span", A.name, "name"),
+			`, your arcology, is located in a Free City in  ${V.terrain === "oceanic" ? "the middle of the ocean" : V.continent}. It is a huge structure whose${V.arcologyUpgrade.apron === 1 ? " solar-paneled" : ""} skin gleams in the sunshine${V.arcologyUpgrade.hydro === 1 ? ", while verdant exterior hydroponics bays lend it an air of growth" : ""}. `);
 
 		let buffer = [];
 		if (V.weatherCladding === 1) {
diff --git a/src/gui/css/mainStyleSheet.css b/src/gui/css/mainStyleSheet.css
index d61e54a15f8738f5d0197921bc35ab11d7752641..dc0e69c9be39a271a1a2a5f795cb1e9d7110c371 100644
--- a/src/gui/css/mainStyleSheet.css
+++ b/src/gui/css/mainStyleSheet.css
@@ -304,7 +304,7 @@ table.corporate td {
 	margin-top: 0.5em;
 	margin-bottom: 1.5em;
 }
-div.tab {
+.tab {
 	margin-left: 2em;
 }
 div.indent, p.indent {
@@ -347,9 +347,8 @@ div.double-choices, p.double-choices {
 	text-decoration-color: white;
 }
 
-.arcology-name {
+.name {
 	font-weight: bold;
-	text-decoration: underline;
 }
 
 div.cheat-menu {
diff --git a/src/js/main.js b/src/js/main.js
index 3e23169bacb410524f5f502e8323c9b10b63cabd..daa41e8c67af728bc6d41b3c48a7dc80d26ddb80 100644
--- a/src/js/main.js
+++ b/src/js/main.js
@@ -211,3 +211,67 @@ App.MainView.useGuard = function() {
 
 	return outerDiv;
 };
+
+App.MainView.full = function() {
+	function mainMenu() {
+		const div = document.createElement("div");
+
+		div.append(App.UI.DOM.makeElement("span", "MAIN MENU", "name"));
+		const span = document.createElement("span");
+		span.classList.add("tab", "note");
+		span.append(App.UI.DOM.passageLink("Summary Options", "Summary Options"));
+
+		if (V.rulesAssistantMain !== 0) {
+			const raLink = document.createElement("span");
+			raLink.id = "RAButton";
+			raLink.append(" | ", App.UI.DOM.passageLink("Rules Assistant Options", "Rules Assistant"),
+				" ", App.UI.DOM.makeElement("span", "[R]", ["clear-formatting", "hotkey"]));
+			span.append(raLink);
+
+			if (V.rulesAssistantAuto !== 1) {
+				span.append(" | ", App.UI.DOM.passageLink("Apply Rules Assistant at week end", "Main", () => { V.rulesAssistantAuto = 1; }));
+			} else {
+				span.append(" | ", App.UI.DOM.passageLink("Stop applying Rules Assistant at week end", "Main", () => { V.rulesAssistantAuto = 0; }));
+			}
+			span.append(" | ");
+			if (DefaultRulesError()) {
+				span.append(App.UI.DOM.makeElement("span", "WARNING: One or more rules' custom conditions has errors!", "warning"));
+			}
+			span.append(App.UI.DOM.passageLink("Re-apply Rules Assistant now (this will only check slaves in the Penthouse)", "Main", () => {
+				for (const slave of V.slaves) {
+					if (assignmentVisible(slave) && slave.useRulesAssistant === 1) {
+						DefaultRules(slave);
+					}
+				}
+			}));
+		}
+		div.append(" ", span);
+		return div;
+	}
+
+	const fragment = document.createDocumentFragment();
+
+	fragment.append(App.Reminders.list({maxFuture: 5, link: true}));
+
+	if (V.seeFCNN === 1) {
+		const div = document.createElement("div");
+		div.classList.add("main-fcnn");
+		div.append(App.MainView.fcnn(),
+			App.UI.DOM.passageLink("Hide", passage(), () => { V.seeFCNN = 0; })
+		);
+		fragment.append(div);
+	}
+
+	fragment.append(mainMenu());
+
+	fragment.append(App.UI.SlaveList.penthousePage());
+
+	if (V.fucktoyInteractionsPosition === 0) {
+		fragment.append(App.MainView.useFucktoys());
+	}
+	if (V.useSlaveSummaryOverviewTab === 0) {
+		fragment.append(App.MainView.useGuard());
+	}
+
+	return App.UI.DOM.includeDOM(fragment, "mainFullDOM");
+};
diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js
index 1153c43e87acd8bc398ceb6223de3a24a4e04610..276c717bc823749b585a3b7896d33a57b691d35c 100644
--- a/src/js/slaveListing.js
+++ b/src/js/slaveListing.js
@@ -1017,7 +1017,7 @@ App.UI.SlaveList.penthousePage = function() {
 	}
 
 	if (V.sortSlavesMain) {
-		fragment.append(this.sortingLinksDOM("Main"));
+		fragment.append(App.UI.SlaveList.sortingLinksDOM("Main"));
 	}
 
 	/** @type {tabDesc[]} */
@@ -1080,7 +1080,7 @@ App.UI.SlaveList.penthousePage = function() {
 	}
 
 	App.UI.tabbar.handlePreSelectedTab();
-	return App.UI.DOM.includeDOM(fragment, "penthouseDOM");
+	return fragment;
 };
 
 /**
diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw
index 1b916d6129473cd992ff41e4344c0d72ada1c04b..7476f23d292984d5fdf40cceb149c5af0eac7ecc 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -59,63 +59,7 @@
 	[[Hide|Main][$seeDesk = 0]]
 <</if>>
 
-<span id="reminder"></span>
-<<script>>
-	$(document).one(':passagedisplay', () => {
-		$('#reminder').append(
-			App.Reminders.list({maxFuture: 5, link: true})
-		);
-	});
-<</script>>
-
-<<if $seeFCNN === 1>>
-	<div id="fcnn" class="main-fcnn"></div>
-	<<script>>
-		$(document).one(':passageend', () => {
-			$('#fcnn').append(
-				App.MainView.fcnn(),
-				App.UI.DOM.passageLink("Hide", passage(), () => {V.seeFCNN = 0;})
-			);
-		});
-	<</script>>
-<</if>>
-
-<<if ($seeDesk == 1) && ($seeFCNN == 0)>><br><</if>>
-
-__''MAIN MENU''__&nbsp;&nbsp;&nbsp;&nbsp;//[[Summary Options]]//
-<<if $rulesAssistantMain != 0>>
-	| //<span id="RAButton"><<link "Rules Assistant Options" "Rules Assistant">><</link>></span>// @@.cyan;[R]@@
-	<<if $rulesAssistantAuto != 1>>
-		| //<<link "Apply Rules Assistant at week end" "Main">><<set $rulesAssistantAuto = 1>><</link>>//
-	<<else>>
-		| //<<link "Stop applying Rules Assistant at week end" "Main">><<set $rulesAssistantAuto = 0>><</link>>//
-	<</if>>
-	| //<<if DefaultRulesError()>>@@.yellow; WARNING: One or more rules' custom conditions has errors! @@<</if>><<link "Re-apply Rules Assistant now (this will only check slaves in the Penthouse)" "Main">><<for _i = 0;_i < _SL;_i++>><<if assignmentVisible($slaves[_i]) && $slaves[_i].useRulesAssistant == 1>><<= DefaultRules($slaves[_i])>><</if>><</for>><</link>>//
-<</if>>
-
-<<print App.UI.SlaveList.penthousePage()>>
-
-<<if $fucktoyInteactionsPosition === 0>>
-	<span id="fucktoyDOM"></span>
-	<<script>>
-		$(document).one(':passageend', () => {
-			$('#fucktoyDOM').append(
-				App.MainView.useFucktoys(),
-			);
-		});
-	<</script>>
-<</if>>
-
-<<if $useSlaveSummaryOverviewTab === 0>>
-	<span id="BG"></span>
-	<<script>>
-		$(document).one(':passageend', () => {
-			$('#BG').append(
-				App.MainView.useGuard(),
-			);
-		});
-	<</script>>
-<</if>>
+<<print App.MainView.full()>>
 
 <<set $activeSlave = $slaves.random()>>
 <<if $activeSlave && ($activeSlave.assignment != "please you") && ($activeSlave.assignment != "guard you")>>