diff --git a/js/003-data/gameVariableData.js b/js/003-data/gameVariableData.js
index ec378a28afb14ad3e9ba656a41a507100f55994a..c4d18ca7eb4587895b4858ebc11e0356ab0f2f09 100644
--- a/js/003-data/gameVariableData.js
+++ b/js/003-data/gameVariableData.js
@@ -1424,7 +1424,7 @@ App.Data.resetOnNGPlus = {
 	postSexCleanUp: 1,
 
 	sideBarOptions: {
-		compact: 1, Cash: 1, Upkeep: 1, SexSlaveCount: 1, roomPop: 1, Rep: 1, GSP: 1, Authority: 1, Security: 1, Crime: 1, confirmWeekEnd: 0,
+		Cash: 1, Upkeep: 1, SexSlaveCount: 1, roomPop: 1, Rep: 1, GSP: 1, Authority: 1, Security: 1, Crime: 1, confirmWeekEnd: 0,
 	},
 	DefaultBirthDestination: "individually decided fates",
 	legendaryFacility: 0,
diff --git a/src/002-config/modSC.css b/src/002-config/modSC.css
new file mode 100644
index 0000000000000000000000000000000000000000..b09893b63ac65cc1c62b2bedf44ecd1bf831cbfd
--- /dev/null
+++ b/src/002-config/modSC.css
@@ -0,0 +1,17 @@
+/* change some SC2 styles */
+
+/* make the sidebar more compact by reducing the space between major parts */
+#ui-bar-body {
+    /* height: calc(100% - 2.5em); */
+    /* margin: 2.5em 0; */
+    height: calc(100% - 1.5em);
+    margin: 1.5em 0;
+}
+#ui-bar-body > :not(:first-child) {
+    /* margin-top: 2em; */
+    margin-top: 1.5em;
+}
+#story-author {
+    /* margin-top: 2em; */
+    margin-top: 0;
+}
diff --git a/src/002-config/mousetrapConfig.js b/src/002-config/mousetrapConfig.js
index 0a8bc6f2df416623886e07b4450030df2ee48a87..df31dc5fb398961e29312bfaca764e0dab3ac096 100644
--- a/src/002-config/mousetrapConfig.js
+++ b/src/002-config/mousetrapConfig.js
@@ -5,47 +5,21 @@ Mousetrap.bind("enter", function() {
 Mousetrap.bind("space", function() {
 	$("#story-caption #nextButton a.macro-link").trigger("click");
 });
-Mousetrap.bind("c", function() {
-	$("#story-caption #manageArcology a.macro-link").trigger("click");
-});
-Mousetrap.bind("p", function() {
-	$("#story-caption #managePenthouse a.macro-link").trigger("click");
-});
-Mousetrap.bind("n", function() {
-	$("#story-caption #manageEconomy a.macro-link").trigger("click");
-});
 Mousetrap.bind("left", function() {
 	$("#prevSlave a.macro-link").trigger("click");
-	$("#prevRule a").trigger("click");
 	$("#prevChild a.macro-link").trigger("click");
 });
 Mousetrap.bind("q", function() {
 	$("#prevSlave a.macro-link").trigger("click");
-	$("#prevRule a").trigger("click");
 	$("#prevChild a.macro-link").trigger("click");
 });
-Mousetrap.bind("shift+left", function() {
-	$("#firstRule a").trigger("click");
-});
-Mousetrap.bind("shift+q", function() {
-	$("#firstRule a").trigger("click");
-});
 Mousetrap.bind("right", function() {
 	$("#nextSlave a.macro-link").trigger("click");
-	$("#nextRule a").trigger("click");
 	$("#nextChild a.macro-link").trigger("click");
 });
-Mousetrap.bind("shift+right", function() {
-	$("#lastRule a").trigger("click");
-});
 Mousetrap.bind("e", function() {
 	$("#nextSlave a.macro-link").trigger("click");
-	$("#nextRule a").trigger("click");
 	$("#nextChild a.macro-link").trigger("click");
-	$("#story-caption #edictButton a.macro-link").trigger("click");
-});
-Mousetrap.bind("shift+e", function() {
-	$("#lastRule a").trigger("click");
 });
 Mousetrap.bind("f", function() {
 	$("#walkpast a.macro-link").trigger("click");
@@ -53,57 +27,3 @@ Mousetrap.bind("f", function() {
 Mousetrap.bind("h", function() {
 	$("#manageHG a").trigger("click");
 });
-Mousetrap.bind("s", function() {
-	$("#buySlaves a").trigger("click");
-});
-Mousetrap.bind("a", function() {
-	$("#managePA a").trigger("click");
-});
-Mousetrap.bind("b", function() {
-	$("#manageBG a").trigger("click");
-});
-Mousetrap.bind("u", function() {
-	$("#manageRecruiter a").trigger("click");
-});
-Mousetrap.bind("o", function() {
-	$("#story-caption #optionsButton a.macro-link").trigger("click");
-});
-Mousetrap.bind("y", function() {
-	$("#story-caption #policyButton a.macro-link").trigger("click");
-});
-Mousetrap.bind("f", function() {
-	$("#story-caption #FSButton a.macro-link").trigger("click");
-});
-Mousetrap.bind("t", function() {
-	$("#story-caption #PAOButton a.macro-link").trigger("click");
-});
-Mousetrap.bind("v", function() {
-	$("#story-caption #URButton a.macro-link").trigger("click");
-});
-Mousetrap.bind("r", function() {
-	$("#RAButton a").trigger("click");
-});
-Mousetrap.bind("x", function() {
-	$("#story-caption #managePerson a.macro-link").trigger("click");
-});
-Mousetrap.bind("z", function() {
-	$("#story-caption #SFMButton a.macro-link").trigger("click");
-});
-Mousetrap.bind("d", function() {
-	$("#story-caption #diplomacyButton a.macro-link").trigger("click");
-});
-Mousetrap.bind("shift+s", function() {
-	$("#story-caption #securityHQ a.macro-link").trigger("click");
-});
-Mousetrap.bind("shift+a", function() {
-	$("#story-caption #secBarracks a.macro-link").trigger("click");
-});
-Mousetrap.bind("shift+h", function() {
-	$("#story-caption #propHub a.macro-link").trigger("click");
-});
-Mousetrap.bind("shift+r", function() {
-	$("#story-caption #riotCenter a.macro-link").trigger("click");
-});
-Mousetrap.bind("shift+c", function() {
-	$("#story-caption #manageCorporation a.macro-link").trigger("click");
-});
diff --git a/src/003-assets/CSS/quicklinks.css b/src/003-assets/CSS/quicklinks.css
new file mode 100644
index 0000000000000000000000000000000000000000..05a90ade95b41788d25e449bc5ef74b56c53c02c
--- /dev/null
+++ b/src/003-assets/CSS/quicklinks.css
@@ -0,0 +1,62 @@
+div.quick-links {
+    margin-bottom: 2px; /* the last menu link has a bottom outline, make enough space for it */
+}
+
+div.quick-links div.toggle {
+    position: relative; /* so ::before/::after works in relation to this element */
+    background-color: #444444;
+    cursor: pointer;
+}
+
+div.quick-links div.toggle:hover {
+    background-color: #5f5f5f;
+}
+
+div.quick-links div.toggle::before {
+    font-family: "tme-fa-icons";
+    position: absolute;
+    left: 5px;
+    content: "\e818";
+}
+
+div.quick-links div.collapsed div.toggle::before {
+    content: "\e81a";
+}
+
+div.quick-links div.content {
+    margin: 0 5px;
+}
+
+div.quick-links div.collapsed div.content {
+    display: none
+}
+
+div.quick-links div.menu-link {
+    background-color: #2b2b2b;
+    border: solid #3c3c3c;
+    border-width: 0 2px;
+    margin: 0 2px;
+    /* we cannot detect if an element has something after it, so we just add a shadow to every element. Only for the
+        last element the shadow is not hidden behind another element. */
+    box-shadow: 0 2px 0 0 #3c3c3c;
+    /* make sure the notification is relative to the correct element */
+    position: relative;
+}
+
+div.quick-links > div.menu-link:first-child, /* give the very first link an upper border */
+div.quick-links div:not(.menu-link):not(.collapsed) + div.menu-link /* give the link directly after an opened toggle an upper border */
+{
+    border-top-width: 2px;
+}
+
+/* notification */
+div.quick-links div.notification:not(.category)::after /* notification for entry */,
+div.quick-links div.category.notification.collapsed > div.toggle::after /* notification for category, disable when uncollapsed */
+{
+    font-family: "tme-fa-icons";
+    position: absolute;
+    right: 5px;
+    top: 0;
+    content: "\e80c";
+    color: yellow;
+}
diff --git a/src/004-base/facility.js b/src/004-base/facility.js
index 6c5c4b92124bad73f0c65f9d0f0b929c737c232a..f5bc2c16b88d8e7d20cda830c9ee74678b4d6de9 100644
--- a/src/004-base/facility.js
+++ b/src/004-base/facility.js
@@ -231,6 +231,11 @@ App.Entity.Facilities.ManagingJob = class extends App.Entity.Facilities.Job {
 	get _facilityHasFreeSpace() {
 		return true;
 	}
+
+	/** @returns {string} */
+	get positionAbbreviation() {
+		return this.desc.positionAbbreviation || "L";
+	}
 };
 
 App.Entity.Facilities.Facility = class {
@@ -522,6 +527,21 @@ App.Entity.Facilities.Facility = class {
 		return res;
 	}
 
+	/**
+	 * @param {boolean} long
+	 * @returns {string}
+	 */
+	occupancyReport(long) {
+		if (this.jobs.length === 0) {
+			return this.manager && this.manager.currentEmployee ? this.manager.positionAbbreviation : "";
+		}
+		const nonEmployees = this.nonEmployeeOccupantsCount;
+		const managerStr = this.manager && this.manager.currentEmployee ? (
+			long ? `, ${this.manager.desc.position}` : `, ${this.manager.positionAbbreviation}`) : "";
+		const slavesStr = long ? ` ${this.job().desc.position}${this.capacity !== 1 ? 's' : ''}` : "";
+		return `${this.hostedSlaves}${nonEmployees ? `+${nonEmployees}` : ""}/${this.capacity}${slavesStr}${managerStr}`;
+	}
+
 	/**
 	 * @protected
 	 * @param {string} jobName
diff --git a/src/Corporation/manageCorporation.tw b/src/Corporation/manageCorporation.tw
index f3eeb541247ee504304dd8a45f4dca3e3a235620..628b630257010ac9dd04e48ba4371b614c9d992a 100644
--- a/src/Corporation/manageCorporation.tw
+++ b/src/Corporation/manageCorporation.tw
@@ -1,4 +1,4 @@
-:: Manage Corporation [nobr]
+:: Manage Corporation [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Main", $encyclopedia = "The Corporation">>
 
diff --git a/src/Mods/SecExp/buildings/propagandaHub.tw b/src/Mods/SecExp/buildings/propagandaHub.tw
index f178296465e2e34312037bbec2ce252862020b91..2d147704b537648d320f6f847c241c28ef25af7a 100644
--- a/src/Mods/SecExp/buildings/propagandaHub.tw
+++ b/src/Mods/SecExp/buildings/propagandaHub.tw
@@ -1,4 +1,4 @@
-:: propagandaHub [nobr]
+:: propagandaHub [nobr jump-to-safe jump-from-safe]
 
 <<if $career == "capitalist" || $career == "celebrity" || $career == "wealth">>
 	<<set _HistoryDiscount = .5>>
@@ -7,11 +7,7 @@
 <</if>>
 
 <<set $nextButton = "Back">>
-<<if $sideBarOptions.compact > 0>>
-	<<set $nextLink = "Manage Arcology">>
-<<else>>
-	<<set $nextLink = "Main">>
-<</if>>
+<<set $nextLink = "Main">>
 
 Propaganda Hub
 <hr>
diff --git a/src/Mods/SecExp/buildings/riotControlCenter.tw b/src/Mods/SecExp/buildings/riotControlCenter.tw
index 78acfd20e68744c92a704eb8beeb19228c9854c3..1f4074f665c266e021bfba72e670b4606285c6fe 100644
--- a/src/Mods/SecExp/buildings/riotControlCenter.tw
+++ b/src/Mods/SecExp/buildings/riotControlCenter.tw
@@ -1,11 +1,7 @@
-:: riotControlCenter [nobr]
+:: riotControlCenter [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back">>
-<<if $sideBarOptions.compact > 0>>
-	<<set $nextLink = "Manage Arcology">>
-<<else>>
-	<<set $nextLink = "Main">>
-<</if>>
+<<set $nextLink = "Main">>
 
 Riot Control Center
 <hr>
diff --git a/src/Mods/SecExp/buildings/secBarracks.tw b/src/Mods/SecExp/buildings/secBarracks.tw
index 92cbb8d39760eefc67aecdfc07ab69de407de8e2..3b3826a3fb2b64dbc0a0f110e02202e7f7ac8272 100644
--- a/src/Mods/SecExp/buildings/secBarracks.tw
+++ b/src/Mods/SecExp/buildings/secBarracks.tw
@@ -1,11 +1,7 @@
-:: secBarracks [nobr]
+:: secBarracks [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back">>
-<<if $sideBarOptions.compact > 0>>
-	<<set $nextLink = "Manage Arcology">>
-<<else>>
-	<<set $nextLink = "Main">>
-<</if>>
+<<set $nextLink = "Main">>
 
 The Barracks
 <hr>
diff --git a/src/Mods/SecExp/buildings/securityHQ.tw b/src/Mods/SecExp/buildings/securityHQ.tw
index 02dffc50f5cf2f38a5d8ece5d941d75e5ed47a64..36f6fc97eb0c7825234a9692043fb2b2a672fa2a 100644
--- a/src/Mods/SecExp/buildings/securityHQ.tw
+++ b/src/Mods/SecExp/buildings/securityHQ.tw
@@ -1,4 +1,4 @@
-:: securityHQ [nobr]
+:: securityHQ [nobr jump-to-safe jump-from-safe]
 
 <<if $career == "mercenary" || $career == "gang" || $career == "slaver">>
 	<<set _HistoryDiscount = .5>>
@@ -7,11 +7,7 @@
 <</if>>
 
 <<set $nextButton = "Back">>
-<<if $sideBarOptions.compact > 0>>
-	<<set $nextLink = "Manage Arcology">>
-<<else>>
-	<<set $nextLink = "Main">>
-<</if>>
+<<set $nextLink = "Main">>
 
 Security Headquarters
 <hr>
diff --git a/src/Mods/SecExp/edicts.tw b/src/Mods/SecExp/edicts.tw
index f9369fa13425f3f526a1593f83f6d7a2e943866f..47b162f4983027b03ed70bd1b6e02cd1d9d36161 100644
--- a/src/Mods/SecExp/edicts.tw
+++ b/src/Mods/SecExp/edicts.tw
@@ -1,4 +1,4 @@
-:: edicts [nobr]
+:: edicts [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Main">>
 
diff --git a/src/Mods/SecExp/js/secExp.js b/src/Mods/SecExp/js/secExp.js
index 013a57b987beccbd58c001457c51ea3b3a04c33d..85043b8e8b504ce3dc18a62542558050538a4ee4 100644
--- a/src/Mods/SecExp/js/secExp.js
+++ b/src/Mods/SecExp/js/secExp.js
@@ -391,6 +391,9 @@ App.SecExp.Check = (function() {
 		if (jsDef(V.secExp)) {
 			if (V.secExpEnabled !== 1) {
 				V.secExpEnabled = V.secExp;
+				if (typeof V.secExpEnabled !== "number") {
+					V.secExpEnabled = 0;
+				}
 			}
 			delete V.secExp;
 		}
diff --git a/src/Mods/SpecialForce/Firebase.tw b/src/Mods/SpecialForce/Firebase.tw
index 07eb1d1b4200e3c70745ff2435215b9ca2b7d1d9..28060521187a3995a94917d4fb1e321358baf16f 100644
--- a/src/Mods/SpecialForce/Firebase.tw
+++ b/src/Mods/SpecialForce/Firebase.tw
@@ -1,4 +1,4 @@
-:: Firebase [nobr]
+:: Firebase [nobr jump-to-safe jump-from-safe]
 <<= App.SF.Count()>>
 <<if $SF.FS.Tension > 100>> <<= App.SF.fsIntegration('BadOutcome')>>
 <<else>>
@@ -12,11 +12,7 @@
 		<</switch>>
 
 		<<set $nextButton = "Back">>
-		<<if $sideBarOptions.compact > 0>>
-			<<set $nextLink = "Manage Arcology">>
-		<<else>>
-			<<set $nextLink = "Main">>
-		<</if>>
+		<<set $nextLink = "Main">>
 
 		<<if $cheatMode > 0>> [[Cheat edit|CheatEdit][]] <br> <</if>>
 		The firebase of $arcologies[0].name's <<textbox "$SF.Lower" $SF.Lower "Firebase">> is located in the lower levels, occupying unneeded warehouse space. It is not accessible to the general citizenry, but your personal elevator has express service to it. As you step off, two soldiers in combat armor manning the entry checkpoint tense before recognizing their Marshal and stepping aside with a sharp salute.<br>
diff --git a/src/arcologyBuilding/cell.tw b/src/arcologyBuilding/cell.tw
index aa51dc8caa38271c94c3047b48bde840b61307fe..5875dadfa14b53fb708c8d3c3e7436dfae16616a 100644
--- a/src/arcologyBuilding/cell.tw
+++ b/src/arcologyBuilding/cell.tw
@@ -1,4 +1,4 @@
-:: Cell [nobr]
+:: Cell [nobr jump-from-safe no-history]
 
 <<set $nextButton = "Back", $nextLink = "Main">>
 
diff --git a/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw b/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw
index c2d33e3141751253c1896d553fe3b29e522731dc..41f53158762723bffd3e53d033282e5998653159 100644
--- a/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw
+++ b/src/cheats/mod_EditArcologyCheatDatatypeCleanup.tw
@@ -1,11 +1,7 @@
 :: MOD_Edit Arcology Cheat Datatype Cleanup [nobr]
 
 <<set $nextButton = "Continue">>
-<<if $sideBarOptions.compact > 0>>
-	<<set $nextLink = "Manage Arcology">>
-<<else>>
-	<<set $nextLink = "Main">>
-<</if>>
+<<set $nextLink = "Main">>
 
 <<if $customEvalCode>>
 	<<if $customEvalCode.charAt(0) != "(" || $nextLink == ")">> /* second condition is only there for sanityCheck */
diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js
index 75ad567df681ed06f0a4869ed8673bb0b1ee391f..61efa463e4b983af125c56f57a113ffdc75fde0c 100644
--- a/src/data/backwardsCompatibility/backwardsCompatibility.js
+++ b/src/data/backwardsCompatibility/backwardsCompatibility.js
@@ -190,9 +190,6 @@ App.Update.globalVariables = function(node) {
 		if (typeof V.sideBarOptions.roomPop === "undefined") {
 			V.sideBarOptions.roomPop = 1;
 		}
-		if (typeof V.sideBarOptions.compact === "undefined") {
-			V.sideBarOptions.compact = 1;
-		}
 		if (typeof V.sideBarOptions.confirmWeekEnd === "undefined") {
 			V.sideBarOptions.confirmWeekEnd = 0;
 		}
diff --git a/src/facilities/arcade/arcadeFramework.js b/src/facilities/arcade/arcadeFramework.js
index 961d529eb867cb9f1e3dd59602e8f87a032e01fc..58f5d63338c3742e12960635e9fa64656060e756 100644
--- a/src/facilities/arcade/arcadeFramework.js
+++ b/src/facilities/arcade/arcadeFramework.js
@@ -3,7 +3,7 @@ App.Data.Facilities.arcade = {
 	genericName: null,
 	jobs: {
 		assignee: {
-			position: "whore",
+			position: "inmate",
 			assignment: Job.ARCADE,
 			publicSexUse: true,
 			fuckdollAccepted: true,
diff --git a/src/facilities/armory/armoryFramework.js b/src/facilities/armory/armoryFramework.js
index 2f866ee1672196432a108dfd58668d6efc8f54da..a219e606db73243e667199cc4dca544cd9c793fc 100644
--- a/src/facilities/armory/armoryFramework.js
+++ b/src/facilities/armory/armoryFramework.js
@@ -5,6 +5,7 @@ App.Data.Facilities.armory = {
 	defaultJob: null,
 	manager: {
 		position: "bodyguard",
+		positionAbbreviation: "BG",
 		assignment: Job.BODYGUARD,
 		careers: App.Data.misc.bodyguardCareers,
 		skill: "bodyguard",
@@ -21,6 +22,4 @@ App.Data.Facilities.armory = {
 	}
 };
 
-App.Entity.facilities.armory = new App.Entity.Facilities.Facility(
-	App.Data.Facilities.armory
-);
+App.Entity.facilities.armory = new App.Entity.Facilities.Facility(App.Data.Facilities.armory);
diff --git a/src/facilities/club/clubFramework.js b/src/facilities/club/clubFramework.js
index 02638c99d132484e645147919c8ba836d0d6fd57..3d25fd0af3b9d6da98fb3f78a1d5fd02ce10bf83 100644
--- a/src/facilities/club/clubFramework.js
+++ b/src/facilities/club/clubFramework.js
@@ -3,7 +3,7 @@ App.Data.Facilities.club = {
 	genericName: null,
 	jobs: {
 		slut: {
-			position: "Slut",
+			position: "slut",
 			assignment: Job.CLUB,
 			publicSexUse: true,
 			fuckdollAccepted: false,
diff --git a/src/facilities/farmyard/farmyard.tw b/src/facilities/farmyard/farmyard.tw
index 98ed68b19ecd28d255ebff29d362dd55e766a23e..60d10497b5c54964ad83dc078deb82b11b090c34 100644
--- a/src/facilities/farmyard/farmyard.tw
+++ b/src/facilities/farmyard/farmyard.tw
@@ -1,4 +1,4 @@
-:: Farmyard [nobr]
+:: Farmyard [nobr jump-to-safe jump-from-safe]
 
 /* TODO: add "plots" of "crops" */
 /* TODO: allow slaves that can't walk to put on shows */
diff --git a/src/facilities/farmyard/food/foodMarket.tw b/src/facilities/farmyard/food/foodMarket.tw
index 0773bc2bafe22f8efcf29491369af7242af163cd..75f2109bee0acad584721e3e9053c53ceab90cfd 100644
--- a/src/facilities/farmyard/food/foodMarket.tw
+++ b/src/facilities/farmyard/food/foodMarket.tw
@@ -7,11 +7,7 @@
 <<set _maxFood = Math.trunc($cash/$farmyardFoodCost)>>
 The food market has @@.chocolate;<<print massFormat($foodStored)>>@@ in storage, valued at a total of @@.yellowgreen;<<print cashFormat(_foodValue)>>.@@
 
-<<if $sideBarOptions.compact > 0>>
-	<<set _link = "Manage Arcology">>
-<<else>>
-	<<set _link = "Main">>
-<</if>>
+<<set $nextLink = "Main">>
 
 <br>
 <<link "Buy <<= massFormat(1)>>" _link>><<set cashX(forceNeg($farmyardFoodCost*1), "farmyard"), $foodStored += 1>><</link>>
diff --git a/src/facilities/headGirlSuite/headGirlSuiteFramework.js b/src/facilities/headGirlSuite/headGirlSuiteFramework.js
index a980f8a700c8a8105d7c0ce2f95ef6db5f6a6d41..6a059b0541cbb2941cad8cad94d0dbbaa92af8ca 100644
--- a/src/facilities/headGirlSuite/headGirlSuiteFramework.js
+++ b/src/facilities/headGirlSuite/headGirlSuiteFramework.js
@@ -33,6 +33,25 @@ App.Data.Facilities.headGirlSuite = {
 	}
 };
 
-App.Entity.facilities.headGirlSuite = new App.Entity.Facilities.SingleJobFacility(
-	App.Data.Facilities.headGirlSuite
-);
+App.Entity.Facilities.HeadGirlSuite = class extends App.Entity.Facilities.SingleJobFacility {
+	constructor() {
+		super(App.Data.Facilities.headGirlSuite);
+	}
+
+	/** @override */
+	get UIName() {
+		const nameCaps = this.nameCaps;
+		return nameCaps === "The Head Girl Suite" ? "Head Girl Suite"  : nameCaps;
+	}
+
+	/** @override */
+	occupancyReport(long) {
+		return this.manager.currentEmployee
+			? `HG${this.hostedSlaves ? long
+				? ` and ${getPronouns(this.manager.currentEmployee).his} slave`
+				: ", 1" : ""}`
+			: "";
+	}
+};
+
+App.Entity.facilities.headGirlSuite = new App.Entity.Facilities.HeadGirlSuite();
diff --git a/src/facilities/incubator/incubatorFramework.js b/src/facilities/incubator/incubatorFramework.js
index a425efb8c58157fb43d9149345fc79084223ed6d..bf1867fa54dd85fa93e66e6489e680d5fb5d75d4 100644
--- a/src/facilities/incubator/incubatorFramework.js
+++ b/src/facilities/incubator/incubatorFramework.js
@@ -3,7 +3,7 @@ App.Data.Facilities.incubator = {
 	genericName: null,
 	jobs: {
 		tank: {
-			position: "Tank",
+			position: "tank",
 			assignment: Job.TANK,
 			publicSexUse: false,
 			fuckdollAccepted: false
diff --git a/src/facilities/masterSuite/masterSuiteFramework.js b/src/facilities/masterSuite/masterSuiteFramework.js
index e94886e242a7970b0469b231d5d2ea3ce2334236..be55b6008cd4dcb8e21ed8a18baa991b3acbc065 100644
--- a/src/facilities/masterSuite/masterSuiteFramework.js
+++ b/src/facilities/masterSuite/masterSuiteFramework.js
@@ -17,6 +17,7 @@ App.Data.Facilities.masterSuite = {
 	defaultJob: "fucktoy",
 	manager: {
 		position: "concubine",
+		positionAbbreviation: "C",
 		assignment: Job.CONCUBINE,
 		careers: [],
 		skill: null,
diff --git a/src/facilities/nursery/nursery.tw b/src/facilities/nursery/nursery.tw
index 813bfb70328be4a14f6ce3f92748848c2dd2dc51..4fa0c863e9e028a14206a878c88c190e3c7e1d2d 100644
--- a/src/facilities/nursery/nursery.tw
+++ b/src/facilities/nursery/nursery.tw
@@ -1,4 +1,4 @@
-:: Nursery [nobr]
+:: Nursery [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Nursery", $encyclopedia = "Nursery">>
 <<set $targetAgeNursery = Number($targetAgeNursery) || $minimumSlaveAge>>
diff --git a/src/facilities/nursery/nurseryFramework.js b/src/facilities/nursery/nurseryFramework.js
index 2403edffab0a54573e70cbdae905ca5c62211615..61e2a148d3feb0167361bf5f64bb116e2053302f 100644
--- a/src/facilities/nursery/nurseryFramework.js
+++ b/src/facilities/nursery/nurseryFramework.js
@@ -60,6 +60,13 @@ App.Entity.Facilities.Nursery = class extends App.Entity.Facilities.SingleJobFac
 	// get capacity() {
 	// 	return State.Variables.nurseryNannies;
 	// }
+
+	/** @override */
+	occupancyReport(long) {
+		return long
+			? `${V.nurseryBabies}/${V.nursery} babies, ${this.nursery.hostedSlaves}/${V.nurseryNannies} nannies${this.manager.currentEmployee ? `, ${this.manager.desc.position}` : ""}`
+			: `${V.nurseryBabies}/${V.nursery}, ${this.nursery.hostedSlaves}/${V.nurseryNannies}${this.manager.currentEmployee ? ", L" : ""}`;
+	}
 };
 
 App.Entity.facilities.nursery = new App.Entity.Facilities.Nursery();
diff --git a/src/facilities/pit/pitFramework.js b/src/facilities/pit/pitFramework.js
index bac95c22fe173666f8675c8b6d08b0f79941cb4e..df3b2e7fda084849d5bab94a29d0fc922dfb0e42 100644
--- a/src/facilities/pit/pitFramework.js
+++ b/src/facilities/pit/pitFramework.js
@@ -45,6 +45,11 @@ App.Entity.Facilities.Pit = class extends App.Entity.Facilities.SingleJobFacilit
 	get capacity() {
 		return super.capacity > 0 ? Number.MAX_VALUE : 0;
 	}
+
+	/** @override */
+	occupancyReport(long) {
+		return `${this.hostedSlaves}${long ? ` ${this.job().desc.position}s` : ""}`;
+	}
 };
 
 App.Entity.facilities.pit = new App.Entity.Facilities.Pit();
diff --git a/src/facilities/schoolroom/schoolroomFramework.js b/src/facilities/schoolroom/schoolroomFramework.js
index 04b487df197d89d545eb0d85b6d4b5da4bc6afb5..0676a003f17de5a89e004ed18fc1186a0bf19b57 100644
--- a/src/facilities/schoolroom/schoolroomFramework.js
+++ b/src/facilities/schoolroom/schoolroomFramework.js
@@ -3,7 +3,7 @@ App.Data.Facilities.schoolroom = {
 	genericName: null,
 	jobs: {
 		student: {
-			position: "",
+			position: "student",
 			assignment: Job.SCHOOL,
 			publicSexUse: false,
 			fuckdollAccepted: false,
diff --git a/src/facilities/spa/spaFramework.js b/src/facilities/spa/spaFramework.js
index 2375a1bde62716d9d86ebce91e3a25a87a48b98e..475e5f10aa202dc58ba0fb7fc29accf6d0f85494 100644
--- a/src/facilities/spa/spaFramework.js
+++ b/src/facilities/spa/spaFramework.js
@@ -3,7 +3,7 @@ App.Data.Facilities.spa = {
 	genericName: null,
 	jobs: {
 		assignee: {
-			position: "",
+			position: "bather",
 			assignment: Job.SPA,
 			publicSexUse: false,
 			fuckdollAccepted: false,
diff --git a/src/gui/quicklinks.js b/src/gui/quicklinks.js
new file mode 100644
index 0000000000000000000000000000000000000000..5493e5cf9691a9baa64f5179e003eb620725c523
--- /dev/null
+++ b/src/gui/quicklinks.js
@@ -0,0 +1,509 @@
+/**
+ * Generate a list of links the player can safely jump to.
+ *
+ * Tags are:
+ * jump-to-safe: Allow to jump to this passage from anywhere
+ * jump-from-safe: Allow to jump from this passage to anywhere
+ * no-history: Do not record history for this passage, act as if was never opened; mutually exclusive with the jump tags
+ *
+ * @returns {DocumentFragment}
+ */
+App.UI.quickMenu = (function() {
+	// setup safe passages
+	const jumpFrom = Story.lookup("tags", "jump-from-safe").map(passage => passage.title);
+	const jumpTo = Story.lookup("tags", "jump-to-safe").map(passage => passage.title);
+	const noHistory = Story.lookup("tags", "no-history").map(passage => passage.title);
+
+	// if property name is a passage name, then it's a link, otherwise only text.
+	// category titles  are never links to passages
+	// Only two values are allowed: true or an object following the same rules
+	const layout = addOtherCategory({
+		Main: true,
+		Manage: {
+			"Manage Penthouse": true,
+			"Manage Arcology": true,
+			"Manage Personal Affairs": true,
+			"Manage Corporation": true,
+			"Personal assistant options":true,
+			Firebase: true,
+			propagandaHub: true,
+			securityHQ: true,
+			secBarracks: true,
+			riotControlCenter: true,
+		},
+		Social: {
+			"Future Society": true,
+			Policies: true,
+			edicts: true,
+			"Neighbor Interact": true,
+		},
+		Facilities: {
+			"Head Girl Suite": true,
+			"BG Select": true,
+			Brothel: true,
+			Club: true,
+			Arcade: true,
+			Dairy: true,
+			Farmyard: true,
+			"Servants' Quarters": true,
+			"Master Suite": true,
+			Schoolroom: true,
+			Spa: true,
+			Nursery: true,
+			Clinic: true,
+			Cellblock: true,
+			Incubator: true,
+			Pit: true,
+		},
+		Locations: {
+			"Gene Lab": true,
+			Dispensary: true,
+			"Organ Farm": true,
+			"Implant Manufactory": true,
+			"Prosthetic Lab": true,
+			Wardrobe: true,
+			"The Black Market": true,
+		},
+		Tools: {
+			"Find Slave": true,
+			"Rules Assistant":true,
+			"Personal Attention Select":true,
+		},
+		Options: {
+			Options: true,
+			"Summary Options": true,
+			"Description Options": true,
+			"Universal Rules": true,
+		}
+	});
+
+	// true means hidden
+	const hiddenPassages = cleanPassageMapping({
+		Arcade: () => !V.arcade,
+		"BG Select": () => V.dojo <= 1,
+		Brothel: () => !V.brothel,
+		Cellblock: () => !V.cellblock,
+		Clinic: () => !V.clinic,
+		Club: () => !V.club,
+		Dairy: () => !V.dairy,
+		Dispensary: () => !V.dispensary,
+		edicts: () => V.secExpEnabled <= 0,
+		Farmyard: () => !V.farmyard,
+		Firebase: () => !V.SF.Toggle || V.SF.Toggle < 1,
+		"Future Society": () => !V.FSAnnounced,
+		"Gene Lab": () => !V.geneticMappingUpgrade,
+		"Head Girl Suite": () => !V.HGSuite,
+		"Implant Manufactory": () => !V.ImplantProductionUpgrade,
+		Incubator: () => !V.incubator,
+		"Manage Corporation": () => V.corp.Announced !== 1,
+		"Master Suite": () => !V.masterSuite,
+		"Neighbor Interact": () => V.arcologies.length === 0,
+		Nursery: () => !V.nursery,
+		"Organ Farm": () => !V.organFarmUpgrade,
+		Pit: () => !V.pit,
+		propagandaHub: () => V.secExpEnabled <= 0 || V.SecExp.buildings.propHub.active <= 0,
+		"Prosthetic Lab": () => V.researchLab.level === 0,
+		riotControlCenter: () => V.secExpEnabled <= 0 || V.riotCenter <= 0,
+		Schoolroom: () => !V.schoolroom,
+		secBarracks: () => V.secExpEnabled <= 0 || V.SecExp.buildings.barracks.active <= 0,
+		securityHQ: () => V.secExpEnabled <= 0 || V.secHQ <= 0,
+		"Servants' Quarters": () => !V.servantsQuarters,
+		Spa: () => !V.spa,
+		"The Black Market": () => V.rep < 10000,
+	});
+
+	// show different names than the actual passage name, can be a function
+	const uiNames = cleanPassageMapping({
+		Arcade: () => App.Entity.facilities.arcade.UIName,
+		"BG Select": "Armory",
+		Brothel: () => App.Entity.facilities.brothel.UIName,
+		Cellblock: () => App.Entity.facilities.cellblock.UIName,
+		Clinic: () => App.Entity.facilities.clinic.UIName,
+		Club: () => App.Entity.facilities.club.UIName,
+		Dairy: () => App.Entity.facilities.dairy.UIName,
+		Dispensary: "Pharmaceutical Fabricator",
+		edicts: "Edicts",
+		Farmyard: () => App.Entity.facilities.farmyard.UIName,
+		"Find Slave": "Locate Slave",
+		Firebase: () => `${App.SF.Caps()}'s Firebase`,
+		"Future Society": "Future Societies",
+		"Head Girl Suite": () => App.Entity.facilities.headGirlSuite.UIName,
+		Incubator: () => App.Entity.facilities.incubator.UIName,
+		"Master Suite": () => App.Entity.facilities.masterSuite.UIName,
+		"Neighbor Interact": "Diplomacy",
+		Nursery: () => App.Entity.facilities.nursery.UIName,
+		Options: "Game Options",
+		"Personal assistant options": "Personal Assistant",
+		"Personal Attention Select":"Personal Attention",
+		Pit: () => App.Entity.facilities.pit.UIName,
+		propagandaHub: "Manage PR",
+		riotControlCenter: "Manage Rebels",
+		Schoolroom: () => App.Entity.facilities.schoolroom.UIName,
+		secBarracks: "Manage Military",
+		securityHQ: "Manage Security",
+		"Servants' Quarters": () => App.Entity.facilities.servantsQuarters.UIName,
+		Spa: () => App.Entity.facilities.spa.UIName,
+		"The Black Market": "Black Market",
+	});
+
+	// extra information behind the link, is a function
+	const f = App.Entity.facilities;
+	const extraInfo = cleanPassageMapping({
+		Arcade: () => occupancy(f.arcade),
+		"BG Select": () => occupancy(f.armory),
+		Brothel: () => occupancy(f.brothel),
+		Cellblock: () => occupancy(f.cellblock),
+		Clinic: () => occupancy(f.clinic),
+		Club: () => occupancy(f.club),
+		Dairy: () => occupancy(f.dairy),
+		Farmyard: () => occupancy(f.farmyard),
+		"Head Girl Suite": () => occupancy(f.headGirlSuite),
+		Incubator: () => occupancy(f.incubator),
+		"Master Suite": () => occupancy(f.masterSuite),
+		Nursery: () => occupancy(f.nursery),
+		Pit: () => occupancy(f.pit),
+		Schoolroom: () => occupancy(f.schoolroom),
+		"Servants' Quarters": () => occupancy(f.servantsQuarters),
+		Spa: () => occupancy(f.spa),
+	});
+
+	// true shows a notification symbol
+	const notifications = cleanPassageMapping({
+		"Future Society": () => V.FSCredits > 0 || V.FSReminder,
+		Incubator: () => V.readySlaves > 0,
+		"Manage Corporation": () => V.corp.SpecToken > 0 && V.corp.SpecTimer === 0,
+	});
+
+	// setup hotkeys list, upper/lower case is important!
+	// Due to limitation to the key capture library keys can not be used when they are already used in
+	// src/002-config/mousetrapConfig.js
+	const hotkeys = cleanPassageMapping({
+		"BG Select": "b",
+		"Buy Slaves": "s",
+		edicts: "E",
+		Firebase: "z",
+		"Future Society": "f",
+		Main: "m",
+		"Manage Arcology": "c",
+		"Manage Corporation":"C",
+		"Manage Penthouse": "p",
+		"Manage Personal Affairs": "x",
+		"Neighbor Interact": "d",
+		Options: "o",
+		"Personal assistant options": "t",
+		"Personal Attention Select":"a",
+		Policies: "y",
+		propagandaHub:"H",
+		"Recruiter Select": "u",
+		riotControlCenter:"R",
+		"Rules Assistant": "r",
+		secBarracks: "A",
+		securityHQ: "S",
+		"Universal Rules": "v",
+	});
+
+	/**
+	 * The DOM element of name of the currently played passage or any of it's parents. Used during generation to
+	 * uncollapse the category with the current passage.
+	 * @type {HTMLElement}
+	 */
+	let currentPassage;
+	/**
+	 * DOM elements that have a notification. Used to traverse upwards to give the categories notifications too.
+	 * @type {Array<HTMLElement>}
+	 */
+	let notificationPassages;
+
+	let hotkeysEnabled = false;
+
+	// register hotkeys
+	for (const passage in hotkeys) {
+		Mousetrap.bind(hotkeys[passage], () => {
+			if (hotkeysEnabled
+				// the passage is accessible
+				&& !(hiddenPassages[passage] && hiddenPassages[passage]())) {
+				Engine.play(passage);
+			}
+		});
+	}
+
+	// setup history
+	let history = [];
+	let historyNavigation = false;
+	$(document).on(':passageinit', event => {
+		// if navigated here normally, add passage to history, otherwise remove last entry from history
+		if (!historyNavigation) {
+			if (State.passage === event.passage.title // reloaded
+				|| noHistory.includes(State.passage) // came from a no-history passage
+				|| noHistory.includes(event.passage.title) // no history for this passage
+			) {
+				return;
+			}
+			// if last passage can be jumped to add passage to history, otherwise clear history
+			if (jumpTo.includes(State.passage)) {
+				history.unshift(State.passage);
+			} else {
+				history = [];
+			}
+		} else {
+			historyNavigation = false;
+			history.shift();
+		}
+	});
+	Mousetrap.bind("backspace", () => {
+		// jump back in history
+		goBack();
+	});
+
+	/**
+	 * Goes back in history if possible.
+	 */
+	function goBack() {
+		if (history.length > 0 && jumpFrom.includes(State.passage)) {
+			historyNavigation = true;
+			Engine.play(history[0]);
+		}
+	}
+
+	/**
+	 * Add a "Return" link at second position if there is a history.
+	 * @param {HTMLDivElement} container
+	 */
+	function addBackLink(container) {
+		if (history.length > 0) {
+			const div = document.createElement("div");
+			div.classList.add("menu-link");
+			const a = document.createElement("a");
+			a.append("Return");
+			a.onclick = goBack;
+			div.append(a, " ", App.UI.DOM.makeElement("span", "[backspace]", "hotkey"));
+			// insert at second position
+			container.insertBefore(div, container.firstChild.nextSibling);
+		}
+	}
+
+	/**
+	 * Generate a quick menu
+	 * @returns {string|HTMLDivElement}
+	 */
+	function generateMenu() {
+		if (!jumpFrom.includes(State.passage)) {
+			hotkeysEnabled = false;
+			return "";
+		}
+		currentPassage = null;
+		notificationPassages = [];
+
+		const div = document.createElement("div");
+		div.classList.add("quick-links");
+
+		// quick menu
+		div.append(...generateLinkList(layout));
+		addBackLink(div);
+
+		// traverse from current passage up to uncollapse.
+		if (currentPassage !== null) {
+			while (!currentPassage.classList.contains("quick-links")) {
+				currentPassage.classList.remove("collapsed");
+				currentPassage = currentPassage.parentElement;
+			}
+		}
+
+		// traverse from notifications up to add icon
+		for (let i = 0; i < notificationPassages.length; i++) {
+			while (!notificationPassages[i].classList.contains("quick-links")) {
+				if (notificationPassages[i].classList.contains("category")) {
+					notificationPassages[i].classList.add("notification");
+				}
+				notificationPassages[i] = notificationPassages[i].parentElement;
+			}
+		}
+
+		hotkeysEnabled = true;
+		return div;
+	}
+
+	/**
+	 * Create a list of links and/or categories based on the given category
+	 *
+	 * @param {object} category
+	 * @returns {Array<HTMLElement>}
+	 */
+	function generateLinkList(category) {
+		/** @type {Array<HTMLElement>} */
+		const links = [];
+		for (const passage in category) {
+			if (category[passage] === true) {
+				addMenuLink(links, passage);
+			} else {
+				addCategory(links, passage, category[passage]);
+			}
+		}
+		return links;
+	}
+
+	/**
+	 * Add a category to a link list
+	 *
+	 * @param {Array<HTMLElement>} outerLinkList
+	 * @param {string} name
+	 * @param {object} category
+	 */
+	function addCategory(outerLinkList, name, category) {
+		const innerLinkList = generateLinkList(category);
+		if (innerLinkList.length === 0) {
+			// category is empty
+			return;
+		}
+		const toggle = document.createElement("div");
+		toggle.classList.add("toggle");
+		toggle.append(name);
+		const content = document.createElement("div");
+		content.classList.add("content");
+		content.append(...innerLinkList);
+
+		// wrap everything in one div, so we can control collapsing by changing only one class
+		const wrapper = document.createElement("div");
+		wrapper.classList.add("category", "collapsed");
+		toggle.onclick = () => {
+			wrapper.classList.toggle("collapsed");
+		};
+		wrapper.append(toggle, content);
+		outerLinkList.push(wrapper);
+	}
+
+	/**
+	 * Create a link to the given passage and add it to the link list if link is accessible.
+	 *
+	 * @param {Array<HTMLElement>} linkList
+	 * @param {string} passage
+	 */
+	function addMenuLink(linkList, passage) {
+		// passage is hidden
+		if (hiddenPassages.hasOwnProperty(passage) && hiddenPassages[passage]()) {
+			return;
+		}
+		// we show some kind of text/link
+		const div = document.createElement("div");
+		linkList.push(div);
+		div.classList.add("menu-link");
+		// this passage has a notification
+		if (notifications[passage] && notifications[passage]()) {
+			notificationPassages.push(div);
+			div.classList.add("notification");
+		}
+		// there is additional non-link info
+		if (extraInfo[passage]) {
+			div.append(" ", extraInfo[passage]());
+		}
+		// we are already on this passage
+		if (State.passage === passage) {
+			div.prepend(uiName(passage));
+			currentPassage = div;
+			return;
+		}
+		// That is not a passage we can safely jump to, it's a deco element
+		if (!jumpTo.includes(passage)) {
+			div.prepend(uiName(passage));
+			return;
+		}
+		// Create link
+		const a = document.createElement("a");
+		a.append(uiName(passage));
+		a.onclick = () => {
+			Engine.play(passage);
+		};
+		div.prepend(a);
+		if (hotkeys[passage]) {
+			div.append(" ", App.UI.DOM.makeElement("span", `[${hotkeys[passage]}]`, "hotkey"));
+		}
+	}
+
+	/**
+	 * Gives back the proper name for the passage or the passage title itself if there is none
+	 *
+	 * @param {string} passage
+	 * @returns {string}
+	 */
+	function uiName(passage) {
+		if (uiNames[passage]) {
+			if (typeof uiNames[passage] === "function") {
+				return uiNames[passage]();
+			}
+			return uiNames[passage];
+		}
+		return passage;
+	}
+
+	/**
+	 * Adds an "Other" category to a given layout consisting of passages that can be jumped to not sorted into the
+	 * existing layout.
+	 *
+	 * @param {object} layout
+	 * @returns {object}
+	 */
+	function addOtherCategory(layout) {
+		const passages = jumpTo.slice();
+		filterPassages(passages, layout);
+
+		if (passages.length > 0) {
+			const other = {};
+			for (let i = 0; i < passages.length; i++) {
+				other[passages[i]] = true;
+			}
+			layout.Other = other;
+		}
+		return layout;
+	}
+
+	/**
+	 * Remove all entries from a given list that exist as keys in a given layout.
+	 *
+	 * @param {Array<string>} passages
+	 * @param {object} layout
+	 */
+	function filterPassages(passages, layout) {
+		for (const category in layout) {
+			const index = passages.indexOf(category);
+			if (layout[category] === true) {
+				if (index > -1) {
+					passages.splice(index, 1);
+				}
+			} else {
+				filterPassages(passages, layout[category]);
+			}
+		}
+	}
+
+	/**
+	 * @param {App.Entity.Facilities.Facility} facility
+	 * @returns {string}
+	 */
+	function occupancy(facility) {
+		const desc = facility.occupancyReport(V.abbreviateSidebar === 2);
+		if (desc === "") {
+			return "";
+		}
+		return `(${desc})`;
+	}
+
+	/**
+	 * Cleans out all mappings that are not contained in jumpTo and therefore not considered safe.
+	 *
+	 * @param {object} keys
+	 * @returns {object}
+	 */
+	function cleanPassageMapping(keys) {
+		const result = {};
+		for (const key in keys) {
+			if (jumpTo.includes(key)) {
+				result[key] = keys[key];
+			} else {
+				console.log("Found mapping to unsafe passage: " + key + " to " + keys[key]);
+			}
+		}
+		return result;
+	}
+
+	return generateMenu;
+})();
diff --git a/src/gui/storyCaption.tw b/src/gui/storyCaption.tw
index 9f9122d65aa7659f1bfe398125e72ff70922d8e3..c73a92b0d4a98ec45195ad8eca0f36e41d353ef3 100644
--- a/src/gui/storyCaption.tw
+++ b/src/gui/storyCaption.tw
@@ -2,7 +2,7 @@
 
 <<set _Pass = passage()>>
 
-<<if $ui != "start">> <<userButton>> <br> <</if>>
+<<if $ui != "start">><p><<userButton>></p><</if>>
 
 <<if $ui != "start">>
 	<<if $cheatMode || $debugMode>>
@@ -268,298 +268,59 @@
 		<</if>> /* Closes secExp check and associated sideBarOptions options */
 	<</if>> /* Closes Pass != "Manage Penthouse""*/
 
-	<<if $nextButton != "Continue" && $nextButton != " ">>
-		<<if $nextButton != "Refresh" && _Pass != "RE recruit">>
-			<<if _Pass != "Manage Penthouse">> <br>
-				<span id="managePenthouse">
-					<<link [[Manage Penthouse]]>><</link>>
-				</span> @@.cyan;[P]@@
-			<</if>>
-			<<if _Pass != "Manage Arcology">> <br>
-				<span id="manageArcology">
-					<<link [[Manage Arcology]]>><</link>>
-				</span> @@.cyan;[C]@@
-			<</if>>
-
-			<<if _Pass != "Manage Personal Affairs">>
-				<span id="managePerson"> <br>
-					<<link [[Manage Personal Affairs]]>><</link>>
-				</span> @@.cyan;[X]@@
-			<</if>>
-			<<if $corp.Announced == 1 && _Pass != "Manage Corporation">>
-				<span id="manageCorporation"> <br>
-					<<link [[Manage Corporation][$nextButton = "Back", $nextLink = _Pass]]>><</link>>
-				</span>
-				<<if ($corp.SpecToken > 0) && ($corp.SpecTimer == 0)>>@@.yellow;[!]@@<</if>>
-			<</if>>
-		<</if>>
-
-		<<if _Pass == "Main">>
-			<span id="findSlave"> <br>
-				<<link [[Locate Slave|Find Slave]]>><</link>>
-			</span>
-		<</if>>
-
-		<<if ($sideBarOptions.compact == 0 && _Pass == "Main") || ($sideBarOptions.compact == 1 && _Pass == "Manage Arcology")>> <br>
-			<<if $FSAnnounced>>
-				<span id="FSButton"> <br>
-				<<link [[Future Societies|Future Society][$nextButton = "Back", $nextLink = "Main"]]>><</link>>
-				</span> @@.cyan;[F]@@
-				<<if ($FSCredits > 0) || ($FSReminder)>>@@.yellow;[!]@@<</if>>
-			<</if>>
-			<span id="PAOButton"> <br>
-				<<link [[Personal Assistant|Personal assistant options]]>><</link>>
-			</span> @@.cyan;[T]@@
-		<</if>>
-
-		<<if _Pass == "Main" && $newModelUI == 0>>
-				<<set _L = App.Utils.countFacilityWorkers()>>
-				<<if ($HGSuite)>>
-					<br> <<link "$HGSuiteNameCaps""Head Girl Suite">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						<<if $HeadGirl != 0>>(HG<<if _L.HGSuite > 0>>, 1)<<else>>)<</if>><</if>>
-					<<else>>
-						<<if $HeadGirl != 0>>(HG<<if  _L.HGSuite > 0>> and slave<<else>>)<</if>><</if>>
-					<</if>>
-				<</if>>
-				<<if ($dojo > 1)>>
-					<br>[[Armory|BG Select]]
-					<<if $Bodyguard != 0>>
-						(BG)
-					<</if>>
-				<</if>>
-
-				<<if ($brothel)>>
-					<br> <<link "$brothelNameCaps""Brothel">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(_L.brothel/<<= $brothel>> whores<<if $Madam>>, madam<</if>>)
-					<<else>>
-						(_L.brothel/<<= $brothel>><<if $Madam>>, L<</if>>)
-					<</if>>
-				<</if>>
-				<<if ($club)>>
-					<br> <<link "$clubNameCaps""Club">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(_L.club/<<= $club>> sluts<<if $DJ>>, DJ<</if>>)
-					<<else>>
-						(_L.club/<<= $club>><<if $DJ>>, L<</if>>)
-					<</if>>
-				<</if>>
-
-				<<if ($arcade)>>
-					<br> <<link "$arcadeNameCaps""Arcade">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(_L.arcade/<<= $arcade>> inmates)
-					<<else>>
-						(_L.arcade/<<= $arcade>>)
-					<</if>>
-				<</if>>
-				<<if ($dairy)>>
-					<br> <<link "$dairyNameCaps""Dairy">><</link>>
-					<<set _SCapT9 = $bioreactorsXY+$bioreactorsXX+$bioreactorsHerm+$bioreactorsBarren>>
-					<<if $abbreviateSidebar == 2>>
-						(_L.dairy<<if _SCapT9>>+_SCapT9<</if>>/<<= $dairy>> cows<<if $Milkmaid>>, milkmaid<</if>>)
-					<<else>>
-						(_L.dairy<<if _SCapT9>>+_SCapT9<</if>>/<<= $dairy>><<if $Milkmaid>>, L<</if>>)
-					<</if>>
-				<</if>>
-
-				<<if ($farmyard)>>
-					<br> <<link "$farmyardNameCaps""Farmyard">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(_L.farmyard/$farmyard farmhands<<if $Farmer>>, farmer<</if>>)
-					<<else>>
-						(_L.farmyard/$farmyard<<if $Farmer>>, L<</if>>)
-					<</if>>
-				<</if>>
-				<<if ($servantsQuarters)>>
-					<br> <<link "$servantsQuartersNameCaps""Servants' Quarters">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(_L.servantsQuarters/$servantsQuarters servants<<if $Stewardess>>, stewardess<</if>>)
-					<<else>>
-						(_L.servantsQuarters/$servantsQuarters<<if $Stewardess>>, L<</if>>)
-					<</if>>
-				<</if>>
-
-				<<if ($masterSuite)>>
-					<br> <<link "$masterSuiteNameCaps""Master Suite">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(_L.masterSuite/$masterSuite <<if _L.masterSuite != 1>>fucktoys<<else>>fucktoy<</if>><<if $Concubine>>, Concubine<</if>>)
-					<<else>>
-						(_L.masterSuite/$masterSuite<<if $Concubine>>, C<</if>>)
-					<</if>>
-				<</if>>
-				<<if ($schoolroom)>>
-					<br> <<link "$schoolroomNameCaps""Schoolroom">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(_L.schoolroom/$schoolroom <<if _L.schoolroom != 1>>students<<else>>student<</if>><<if $Schoolteacher>>, schoolteacher<</if>>)
-					<<else>>
-						(_L.schoolroom/$schoolroom<<if $Schoolteacher>>, L<</if>>)
-					<</if>>
-				<</if>>
-
-				<<if ($spa)>>
-					<br> <<link "$spaNameCaps""Spa">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(_L.spa/$spa <<if _L.spa != 1>>bathers<<else>>bathing<</if>><<if _S.Attendant>>, attendant<</if>>)
-					<<else>>
-						(_L.spa/$spa<<if _S.Attendant>>, L<</if>>)
-					<</if>>
-				<</if>>
-				<<if ($nursery)>>
-					<br> <<link "$nurseryNameCaps""Nursery">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(<<if $nursery-$nurseryBabies == 0>>No empty rooms<<elseif $nursery-$nurseryBabies == 1>>1 empty room<<else>><<= $nursery-$nurseryBabies>> empty rooms<</if>>, _L.nursery/$nurseryNannies <<if _L.nursery != 1>>nannies<<else>>nanny<</if>><<if $Matron>>, attendant<</if>>)
-					<<else>>
-						($nurseryBabies/$nursery, _L.nursery/$nurseryNannies<<if $Matron>>, L<</if>>)
-					<</if>>
-				<</if>>
-
-				<<if ($clinic)>>
-					<br> <<link "$clinicNameCaps""Clinic">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(_L.clinic/$clinic <<if _L.clinic != 1>>patients<<else>>patient<</if>><<if $Nurse>>, nurse<</if>>)
-					<<else>>
-						(_L.clinic/$clinic<<if $Nurse>>, L<</if>>)
-					<</if>>
-				<</if>>
-				<<if ($cellblock)>>
-					<br> <<link "$cellblockNameCaps""Cellblock">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(_L.cellblock/$cellblock <<if _L.cellblock != 1>>prisoners<<else>>prisoner<</if>><<if $Wardeness>>, wardeness<</if>>)
-					<<else>>
-						(_L.cellblock/$cellblock<<if $Wardeness>>, L<</if>>)
-					<</if>>
-				<</if>>
-
-				<<if ($incubator)>>
-					<br> <<link "$incubatorNameCaps""Incubator">><</link>>
-					<<if $abbreviateSidebar == 2>>
-						(<<if $incubator-$incubatorSlaves == 0>>No empty tanks<<elseif $incubator-$incubatorSlaves == 1>>1 empty tank<<else>><<= $incubator-$incubatorSlaves>> empty tanks<</if>>)
-					<<else>>
-						($incubatorSlaves/$incubator)
-					<</if>>
-					<<if $readySlaves > 0>> @@.yellow;[!]@@ <</if>>
-				<</if>>
-				<<if ($pit)>>
-					<br> <<link "$pitNameCaps""Pit">><</link>>
-					<<set _SCapT = $fighterIDs.length>>
-					<<if $abbreviateSidebar == 2>>
-						(_SCapT <<if _SCapT != 1>>combatants<<else>>combatant<</if>>)
-					<<else>>
-						(_SCapT)
-					<</if>>
-					<br>
-				<</if>>
-		<</if>> /* closes _Pass == "Main" && $newModelUI == 0 */
-
-		<<if ($sideBarOptions.compact == 0 && _Pass == "Main") || ($sideBarOptions.compact == 1 && _Pass == "Manage Arcology")>>
-			<span id="policyButton"> <br>
-				<<link [[Policies]]>><</link>>
-			</span> @@.cyan;[Y]@@
-
-			<<if $secExpEnabled > 0>>
-				<span id="edictButton"> <br>
-					<<link [[Edicts|edicts]]>><</link>>
-				</span> @@.cyan;[E]@@
-			<</if>>
-			<<if $arcologies.length > 1>>
-				<span id="diplomacyButton"> <br>
-					<<link [[Diplomacy|Neighbor Interact]]>><</link>>
-				</span> @@.cyan;[D]@@
-			<</if>>
-
-			<span id="Security">
-			<<if ($secExpEnabled > 0 && ($SecExp.buildings.propHub.active + $secHQ + $SecExp.buildings.barracks.active + $riotCenter > 0)) || $SF.Toggle && $SF.Active >= 1>> <br>
-				<<link "Manage Security">> <<replace "#Security">> <<security>> <</replace>> <</link>>
-			<</if>>
-			</span>
-		<</if>>
+	<p>
+		<<includeDOM App.UI.quickMenu()>>
+	</p>
 
-		<<if _Pass == "Manage Penthouse">>
-			<span id="URButton"> <br><br>
-				<<link [[Universal Rules]]>><</link>>
-			</span> @@.cyan;[V]@@
-
-			<<if $geneticMappingUpgrade>> <br>[[Gene Lab|Gene Lab]]<</if>>
-			<<if $dispensary>> <br>[[Pharmaceutical Fabricator|Dispensary]]<</if>>
-			<<if $organFarmUpgrade>> <br>[[Organ Farm]]<</if>>
-			<<if $ImplantProductionUpgrade>> <br>[[Implant Manufactory]]<</if>>
-			<<if $researchLab.level > 0>> <br>[[Prosthetic Lab]]<</if>>
-			<<if $geneticMappingUpgrade + $dispensary + $organFarmUpgrade + $ImplantProductionUpgrade + $researchLab.level > 0>>
-				<br>
-			<</if>>
-
-			<br> [[Wardrobe]]
-			<<if $rep >= 10000>>
-				<br>[[Black Market|The Black Market]]
-			<<else>>
-				<br>You lack the reputation (<<= num(10000)>>) to be invited to the underground Black Market.
-			<</if>>
-
-		<<elseif ["Dispensary", "Organ Farm", "Implant Manufactory", "Gene Lab", "Prosthetic Lab"].includes(_Pass)>>
-			<<if $dispensary && _Pass != "Dispensary">> <br>[[Pharmaceutical Fabricator|Dispensary]]<</if>>
-			<<if $organFarmUpgrade && _Pass != "Organ Farm">> <br>[[Organ Farm]]<</if>>
-			<<if $ImplantProductionUpgrade && _Pass != "Implant Manufactory">> <br>[[Implant Manufactory]]<</if>>
-			<<if $geneticMappingUpgrade && _Pass != "Gene Lab">> <br>[[Gene Lab]]<</if>>
-			<<if $prostheticsUpgrade && _Pass != "Prosthetic Lab">> <br>[[Prosthetic Lab]]<</if>>
-
-		<<elseif _Pass == "Rules Assistant">> <br>
-			[[Rules Assistant Summary]]
-
-		<<elseif ["Firebase", "propagandaHub", "securityHQ", "secBarracks", "riotControlCenter"].includes(_Pass)>>
-			<<security>>
+	<<if $nextButton != "Continue" && $nextButton != " ">>
+		<<if _Pass == "Rules Assistant">>
+			<p>[[Rules Assistant Summary]]</p>
 		<</if>> /* Closes Pass state check */
 
-		<br><br>
-		<<if $nextButton != "Refresh" && _Pass != "RE recruit">>
-			<<if !["Description Options", "Options", "Summary Options"].includes(_Pass)>>
-				<span id="optionsButton">
-					<<link [[Game Options|Options][$nextButton = "Back", $nextLink = _Pass]]>><</link>>
-				</span> @@.cyan;[O]@@
-			<<else>>
-				<<if _Pass != "Summary Options">> [[Summary Options]] <</if>>
-				<<if _Pass == "Options">> <br> <</if>>
-				<<if _Pass != "Description Options">> [[Description Options]] <</if>>
-			<</if>>
-		<</if>>
-
 		<<if $debugMode > 0>>
-			<br><br>Debugging Tools<br> <<link "Display Variables">><<checkvars>><</link>>
-			<br> <<link "Display Changed Variables">>
-				<<set Config.history.maxStates = 2>> /* makes sure we store the current state so we can return to it */
-				<<goto "Variable Difference">>
-			<</link>>
-
-			<br> <<link "Bug Report">><<bugreport>><</link>>
-			<<if $debugModeCustomFunction > 0>>
-				<br> <<textarea "_customEvalCode" "">>
-				<<link "Run Custom Function">>
-					<<if _customEvalCode>>
-						<<if _customEvalCode.charAt(0) != "(" || $nextLink == ")">> /* second condition is only there for sanityCheck */
-							<<set _customEvalCode = "(" + _customEvalCode + ")">>
-						<</if>>
-						<<if typeof eval(_customEvalCode) === "function">>
-							<<run (eval(_customEvalCode))()>>
-						<</if>>
-					<</if>>
-					<<goto _Pass>>
-				<</link>>
-			<</if>>
-			<br> <<link "Dump Game State">><<run App.Debug.dumpGameState()>><</link>>
+			<p>
+				Debugging Tools
+				<div><<link "Display Variables">><<checkvars>><</link>></div>
+				<div>
+					<<link "Display Changed Variables">>
+						<<set Config.history.maxStates = 2>> /* makes sure we store the current state so we can return to it */
+						<<goto "Variable Difference">>
+					<</link>>
+				</div>
+				<div><<link "Bug Report">><<bugreport>><</link>></div>
+				<<if $debugModeCustomFunction > 0>>
+					<div>
+						<<textarea "_customEvalCode" "">>
+						<<link "Run Custom Function">>
+							<<if _customEvalCode>>
+								<<if _customEvalCode.charAt(0) != "(" || $nextLink == ")">> /* second condition is only there for sanityCheck */
+									<<set _customEvalCode = "(" + _customEvalCode + ")">>
+								<</if>>
+								<<if typeof eval(_customEvalCode) === "function">>
+									<<run (eval(_customEvalCode))()>>
+								<</if>>
+							<</if>>
+							<<goto _Pass>>
+						<</link>>
+					</div>
+				<</if>>
+				<div><<link "Dump Game State">><<run App.Debug.dumpGameState()>><</link>></div>
+			</p>
 		<</if>>
 	<</if>> /* Closes nextButton != "Continue" && nextButton != " " */
-	<br>
 <<elseif _Pass == "Starting Girls">>
 	<<set _slaveCost = startingSlaveCost($activeSlave)>>
-	<<if _slaveCost > $cash>>
-	@@.red;This slave will cost ''<<print cashFormat(_slaveCost)>>.''<br>
-	You only have: <<print cashFormat($cash)>>@@
-	<<else>>
-	This slave will cost @@.yellowgreen;''<<print cashFormat(_slaveCost)>>.''@@<br>
-	You have <<print cashFormat($cash)>>.
-	<</if>>
-	<br>
+	<p>
+		<<if _slaveCost > $cash>>
+			@@.red;This slave will cost ''<<print cashFormat(_slaveCost)>>.''<br>
+			You only have: <<print cashFormat($cash)>>@@
+		<<else>>
+			This slave will cost @@.yellowgreen;''<<print cashFormat(_slaveCost)>>.''@@<br>
+			You have <<print cashFormat($cash)>>.
+		<</if>>
+	</p>
 <</if>>
 
-//''FCE'':// <<= App.Encyclopedia.Dialog.linkSC($encyclopedia, $encyclopedia)>>
+<p>
+	//''FCE'':// <<= App.Encyclopedia.Dialog.linkSC($encyclopedia, $encyclopedia)>>
+</p>
diff --git a/src/gui/storyCaptionWidgets.tw b/src/gui/storyCaptionWidgets.tw
index 7e20114b35f6e1f0b7f361f1ed75cf47575d0522..a8616c836cd97a0ccaa8c7a5a96f418853a33889 100644
--- a/src/gui/storyCaptionWidgets.tw
+++ b/src/gui/storyCaptionWidgets.tw
@@ -16,10 +16,6 @@
 			<strong><div id="nextButton">
 			<<if $nextButton != " ">>
 				<<link "$nextButton">>
-					<<if _passageSwitchHandler>>
-						<<run _passageSwitchHandler();>>
-						<<set _passageSwitchHandler = null>>
-					<</if>>
 					<<goto $nextLink>>
 				<</link>> @@.cyan;[Space]@@
 			<</if>>
@@ -27,38 +23,3 @@
 		<</if>>
 	<</if>>
 <</widget>>
-
-<<widget "security">>
-	<<if ($SF.Toggle && $SF.Active >= 1) || $secExpEnabled > 0 && ($SecExp.buildings.propHub.active + $secHQ + $SecExp.buildings.barracks.active + $riotCenter) > 1>>
-		<br>
-	<</if>>
-	<<if $SF.Toggle && $SF.Active >= 1 && _Pass != "Firebase">>
-		<span id="SFMButton"> <br>
-			<<link "<<= App.SF.Caps()>>'s firebase""Firebase">><</link>>
-		</span> @@.cyan;[Z]@@
-	<</if>>
-
-	<<if $secExpEnabled > 0>>
-		<<if $SecExp.buildings.propHub.active > 0 && _Pass != "propagandaHub">>
-			<span id="propHub"> <br>
-				<<link [[Manage PR|propagandaHub]]>><</link>>
-			</span> @@.cyan;[Shift+H]@@
-		<</if>>
-		<<if $secHQ > 0 && _Pass != "securityHQ">>
-			<span id="securityHQ"> <br>
-				<<link [[Manage Security|securityHQ]]>><</link>>
-			</span> @@.cyan;[Shift+S]@@
-		<</if>>
-
-		<<if $SecExp.buildings.barracks.active > 0 && _Pass != "secBarracks">>
-			<span id="secBarracks"> <br>
-				<<link [[Manage Military|secBarracks]]>><</link>>
-			</span> @@.cyan;[Shift+A]@@
-		<</if>>
-		<<if $riotCenter > 0 && _Pass != "riotControlCenter">>
-			<span id="riotCenter"> <br>
-				<<link [[Manage Rebels|riotControlCenter]]>><</link>>
-			</span> @@.cyan;[Shift+R]@@
-		<</if>>
-	<</if>>
-<</widget>>
diff --git a/src/interaction/policies/policies.tw b/src/interaction/policies/policies.tw
index 630654d3e3e3a405195093e7b792201e8675344d..cd3de14313d8f410571e5d11793e479a2ba2c206 100644
--- a/src/interaction/policies/policies.tw
+++ b/src/interaction/policies/policies.tw
@@ -1,4 +1,4 @@
-:: Policies [nobr]
+:: Policies [nobr jump-to-safe jump-from-safe]
 
 <style>
 .active {
@@ -7,7 +7,7 @@
 </style>
 
 <<set $nextButton = "Back">>
-<<set _passageSwitchHandler = App.EventHandlers.societyChanged>>
+<<set $passageSwitchHandler = App.EventHandlers.societyChanged>>
 <<if $arcologies[0].FSSupremacistLawME && $PC.race != $arcologies[0].FSSupremacistRace>>
 	<<set $nextLink = "Gameover", $gameover = "Idiot Ball 2 The Dumbassening">>
 <<elseif $arcologies[0].FSSubjugationistLawME && $PC.race == $arcologies[0].FSSubjugationistRace>>
diff --git a/src/interaction/prostheticLab.tw b/src/interaction/prostheticLab.tw
index 1d8d739b8409bbf18d9f4a323e30f546e62ff8b4..d79406219171cdbe75c9cb7732cc43e0a8073730 100644
--- a/src/interaction/prostheticLab.tw
+++ b/src/interaction/prostheticLab.tw
@@ -1,4 +1,4 @@
-:: Prosthetic Lab [nobr]
+:: Prosthetic Lab [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Manage Penthouse">>
 
diff --git a/src/npc/asDump.tw b/src/npc/asDump.tw
index 53e23167d226133b5a0afb078d0306344d404705..b4cbe49c29a289151e1421f15e92cfe2384ee915 100644
--- a/src/npc/asDump.tw
+++ b/src/npc/asDump.tw
@@ -1,4 +1,4 @@
-:: AS Dump
+:: AS Dump [no-history]
 
 <<if (ndef $activeSlave) || ($activeSlave == 0)>>
 
diff --git a/src/npc/findSlave.tw b/src/npc/findSlave.tw
index 31ccfef53bbc1ff889aad854173001a86a2921ed..204f8a2b4b9f614b74a95a9c5bd366c9f03189e3 100644
--- a/src/npc/findSlave.tw
+++ b/src/npc/findSlave.tw
@@ -1,4 +1,4 @@
-:: Find Slave [nobr]
+:: Find Slave [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main">>
 
diff --git a/src/npc/interaction/FFuckdollAnal.tw b/src/npc/interaction/FFuckdollAnal.tw
index 1482ff00fc8cf78e5aac9221aed8ecd23deb15ff..1eb3cb0e90e5b3ea82476f72778db26eb3ba835b 100644
--- a/src/npc/interaction/FFuckdollAnal.tw
+++ b/src/npc/interaction/FFuckdollAnal.tw
@@ -1,4 +1,4 @@
-:: FFuckdollAnal [nobr]
+:: FFuckdollAnal [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/FFuckdollImpreg.tw b/src/npc/interaction/FFuckdollImpreg.tw
index 698559bab8f5f6df7509f58968e8ac4c3bef79ed..00db19147b0c1e2f4c0499b841734303eb08a34f 100644
--- a/src/npc/interaction/FFuckdollImpreg.tw
+++ b/src/npc/interaction/FFuckdollImpreg.tw
@@ -1,4 +1,4 @@
-:: FFuckdollImpreg [nobr]
+:: FFuckdollImpreg [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/FFuckdollOral.tw b/src/npc/interaction/FFuckdollOral.tw
index 9a7dc13fa8fd4f5bbcae4bdbc15c6c75bac7cb53..66cfc24ef2f8af2be2b5bad756442374a1c96503 100644
--- a/src/npc/interaction/FFuckdollOral.tw
+++ b/src/npc/interaction/FFuckdollOral.tw
@@ -1,4 +1,4 @@
-:: FFuckdollOral [nobr]
+:: FFuckdollOral [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/FFuckdollVaginal.tw b/src/npc/interaction/FFuckdollVaginal.tw
index 268ace4bf2289a1f511813bec52d690e0bc61022..77f62d82afb749e73e274e237ad5f739ea22fd88 100644
--- a/src/npc/interaction/FFuckdollVaginal.tw
+++ b/src/npc/interaction/FFuckdollVaginal.tw
@@ -1,4 +1,4 @@
-:: FFuckdollVaginal [nobr]
+:: FFuckdollVaginal [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/FSuckle.tw b/src/npc/interaction/FSuckle.tw
index 23c23895362898b25b29433c21f60353465842ef..4a2a5eb7eb129d2db6d19cb3ea8ee583230cb2b9 100644
--- a/src/npc/interaction/FSuckle.tw
+++ b/src/npc/interaction/FSuckle.tw
@@ -1,4 +1,4 @@
-:: FSuckle [nobr]
+:: FSuckle [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<run Enunciate($activeSlave)>>
diff --git a/src/npc/interaction/fAbuse.tw b/src/npc/interaction/fAbuse.tw
index e111159628637e985e12b605b0414774a44c57a9..3576b3642a3f38bab98acd39ecb32b7edf812c50 100644
--- a/src/npc/interaction/fAbuse.tw
+++ b/src/npc/interaction/fAbuse.tw
@@ -1,4 +1,4 @@
-:: FAbuse [nobr]
+:: FAbuse [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fAnus.tw b/src/npc/interaction/fAnus.tw
index 73cff54da5e28e089edf47fea647038998a4639b..2218ff43a6ea48b24d9451d0f88897eb20ec9c4a 100644
--- a/src/npc/interaction/fAnus.tw
+++ b/src/npc/interaction/fAnus.tw
@@ -1,4 +1,4 @@
-:: FAnus [nobr]
+:: FAnus [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fAssistedSex.tw b/src/npc/interaction/fAssistedSex.tw
index dc1d9326fc511f24b81134e3fb2d84a0bf57e28b..e809d033e2bd48e1ddba47c53d8687f8c09ebb98 100644
--- a/src/npc/interaction/fAssistedSex.tw
+++ b/src/npc/interaction/fAssistedSex.tw
@@ -1,4 +1,4 @@
-:: FAssistedSex [nobr]
+:: FAssistedSex [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fBeg.tw b/src/npc/interaction/fBeg.tw
index bb171297eee93986705a6da2c970a5e52222dff7..a1f94f2c2159a3d0613fdecb2d92607a40a3f36f 100644
--- a/src/npc/interaction/fBeg.tw
+++ b/src/npc/interaction/fBeg.tw
@@ -1,4 +1,4 @@
-:: FBeg [nobr]
+:: FBeg [nobr no-history]
 
 /* things I need: checks for canWalk() to see how easily she can move, blindness checks, replacement for BoobsDesc, maybe devotion catches for certain flaws */
 /* priority! femPC support! */
diff --git a/src/npc/interaction/fBellyFuck.tw b/src/npc/interaction/fBellyFuck.tw
index febe54b84ee640f729d7150d6722e93b37020eea..bb2c5857ae12c972aa1dfdc0435fb2d6295a8f7e 100644
--- a/src/npc/interaction/fBellyFuck.tw
+++ b/src/npc/interaction/fBellyFuck.tw
@@ -1,4 +1,4 @@
-:: FBellyFuck [nobr]
+:: FBellyFuck [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fBoobs.tw b/src/npc/interaction/fBoobs.tw
index 9216055783c9c60e00e1a3e5fd6f9fab650c23fa..037516b5a9676580d68035ba2ae809abbf06bd03 100644
--- a/src/npc/interaction/fBoobs.tw
+++ b/src/npc/interaction/fBoobs.tw
@@ -1,4 +1,4 @@
-:: FBoobs [nobr]
+:: FBoobs [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fButt.tw b/src/npc/interaction/fButt.tw
index 2f262587180cafbf2ddff0696b91d3e441e4c9bf..99d02192b0a64675463bcfc2b8e4c63fa1e37850 100644
--- a/src/npc/interaction/fButt.tw
+++ b/src/npc/interaction/fButt.tw
@@ -1,4 +1,4 @@
-:: FButt [nobr]
+:: FButt [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fCaress.tw b/src/npc/interaction/fCaress.tw
index be2830bfe89b0c9dd64f2a783e9590d299ccfe3d..4548eacf591df2d17044471d28abc65ec952102f 100644
--- a/src/npc/interaction/fCaress.tw
+++ b/src/npc/interaction/fCaress.tw
@@ -1,4 +1,4 @@
-:: FCaress [nobr]
+:: FCaress [nobr no-history]
 
 <<setPlayerPronouns>>
 <<set $AS = $activeSlave.ID>>
diff --git a/src/npc/interaction/fDance.tw b/src/npc/interaction/fDance.tw
index 7a1c6a83e086ed8bbe6af87e1a6d84f2e1a2afea..7ccc9dbf4589a3c5cd9ed43bf9fd49a3174b7bc9 100644
--- a/src/npc/interaction/fDance.tw
+++ b/src/npc/interaction/fDance.tw
@@ -1,4 +1,4 @@
-:: FDance [nobr]
+:: FDance [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fDick.tw b/src/npc/interaction/fDick.tw
index 18af069c27870fca63db405ae769b0b598513383..4463b3e59ad556f1d0ebb1555167dc48feca9985 100644
--- a/src/npc/interaction/fDick.tw
+++ b/src/npc/interaction/fDick.tw
@@ -1,4 +1,4 @@
-:: FDick [nobr]
+:: FDick [nobr no-history]
 /* TODO: .pregMood and more amp variants */
 
 <<set $AS = $activeSlave.ID>>
diff --git a/src/npc/interaction/fEmbrace.tw b/src/npc/interaction/fEmbrace.tw
index ce6dafb6cf64aa66b697ba144bfc3e9ff05c661b..d91ada3ada5b6c9594d912b0203bfbca1e1fd499 100644
--- a/src/npc/interaction/fEmbrace.tw
+++ b/src/npc/interaction/fEmbrace.tw
@@ -1,4 +1,4 @@
-:: FEmbrace [nobr]
+:: FEmbrace [nobr no-history]
 
 <<setPlayerPronouns>>
 <<set $AS = $activeSlave.ID>>
diff --git a/src/npc/interaction/fFeelings.tw b/src/npc/interaction/fFeelings.tw
index 02a1f016a4ec24cd89d83776df58fb541f7f9d6c..e3ee640ff841615771a0aad2e0449529bf426c31 100644
--- a/src/npc/interaction/fFeelings.tw
+++ b/src/npc/interaction/fFeelings.tw
@@ -1,4 +1,4 @@
-:: FFeelings [nobr]
+:: FFeelings [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 
diff --git a/src/npc/interaction/fFeet.tw b/src/npc/interaction/fFeet.tw
index bbeca8c26e70c5c3ee128f731aa4a764212f5e72..9e4085ccf539145177d813a72b459630a36485ed 100644
--- a/src/npc/interaction/fFeet.tw
+++ b/src/npc/interaction/fFeet.tw
@@ -1,4 +1,4 @@
-:: FFeet [nobr]
+:: FFeet [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fKiss.tw b/src/npc/interaction/fKiss.tw
index a377816d00d355bea8c05d580d192c8996859fc9..c708b599c0b01f490dd1c1a72b12203340a52d19 100644
--- a/src/npc/interaction/fKiss.tw
+++ b/src/npc/interaction/fKiss.tw
@@ -1,4 +1,4 @@
-:: FKiss [nobr]
+:: FKiss [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fLickPussy.tw b/src/npc/interaction/fLickPussy.tw
index eee1cdb815084f41147012348d07a9637f493a3a..d060cddc6a5c768cbed77a2007ff331791c4e18d 100644
--- a/src/npc/interaction/fLickPussy.tw
+++ b/src/npc/interaction/fLickPussy.tw
@@ -1,4 +1,4 @@
-:: FLickPussy [nobr]
+:: FLickPussy [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fLips.tw b/src/npc/interaction/fLips.tw
index 0cc558174b3adf3aa96660106ca3088ce231c021..3ea471f467cb7ef269c3e02ff130a702e39e0eb9 100644
--- a/src/npc/interaction/fLips.tw
+++ b/src/npc/interaction/fLips.tw
@@ -1,4 +1,4 @@
-:: FLips [nobr]
+:: FLips [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fMaternitySwing.tw b/src/npc/interaction/fMaternitySwing.tw
index 2642f35c493b4821314edc47361caca76b4df676..2d3a9eeceab5640382ebcc2629c42e9517755bf2 100644
--- a/src/npc/interaction/fMaternitySwing.tw
+++ b/src/npc/interaction/fMaternitySwing.tw
@@ -1,4 +1,4 @@
-:: FMaternitySwing [nobr]
+:: FMaternitySwing [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fNippleFuck.tw b/src/npc/interaction/fNippleFuck.tw
index 48631df4c303f32b0744b87786eee59cb04d1d2a..33b2065de50e7301498c43ea15a3bb32ba85ec4d 100644
--- a/src/npc/interaction/fNippleFuck.tw
+++ b/src/npc/interaction/fNippleFuck.tw
@@ -1,4 +1,4 @@
-:: FNippleFuck [nobr]
+:: FNippleFuck [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<run Enunciate($activeSlave)>>
diff --git a/src/npc/interaction/fPCImpreg.tw b/src/npc/interaction/fPCImpreg.tw
index 72b261d6aaf86303c3bf3625685459b73fe8795c..73651bcafd52d185d1fa9af5f3a100e307f0d02d 100644
--- a/src/npc/interaction/fPCImpreg.tw
+++ b/src/npc/interaction/fPCImpreg.tw
@@ -1,4 +1,4 @@
-:: FPCImpreg [nobr]
+:: FPCImpreg [nobr no-history]
 
 /* TODO: add reactions for incest */
 
diff --git a/src/npc/interaction/fPat.tw b/src/npc/interaction/fPat.tw
index a56458e24b4a01960a0da2f9b195e856832a371c..4de3f628f04259edebc253d5867a9a1e81e3b8d2 100644
--- a/src/npc/interaction/fPat.tw
+++ b/src/npc/interaction/fPat.tw
@@ -1,4 +1,4 @@
-:: FPat [nobr]
+:: FPat [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<run Enunciate($activeSlave)>>
diff --git a/src/npc/interaction/fPoolSex.tw b/src/npc/interaction/fPoolSex.tw
index 0b7378211243d7cff6cfc6d4ff2017b2750d747a..baf3d3a14ea16aba4189841c7d195e5eaf565151 100644
--- a/src/npc/interaction/fPoolSex.tw
+++ b/src/npc/interaction/fPoolSex.tw
@@ -1,4 +1,4 @@
-:: FPoolSex [nobr]
+:: FPoolSex [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fRelation.tw b/src/npc/interaction/fRelation.tw
index f02f48bae408c9bc94aba0fccbe39658e91906af..d3863431b65406ebe9269ca18460e1a7617db8c3 100644
--- a/src/npc/interaction/fRelation.tw
+++ b/src/npc/interaction/fRelation.tw
@@ -1,4 +1,4 @@
-:: FRelation [nobr]
+:: FRelation [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 
diff --git a/src/npc/interaction/fRival.tw b/src/npc/interaction/fRival.tw
index 7221a0b16fa65e0c720add2e8b26e36d69232aaa..19ea7feae342d52ceab63358db87b2bf25edf0a8 100644
--- a/src/npc/interaction/fRival.tw
+++ b/src/npc/interaction/fRival.tw
@@ -1,4 +1,4 @@
-:: FRival [nobr]
+:: FRival [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<set $partner = $slaveIndices[$activeSlave.rivalryTarget]>>
diff --git a/src/npc/interaction/fSlaveFeed.tw b/src/npc/interaction/fSlaveFeed.tw
index cf62f44f5dec021085e89ab51997040b01eb3289..c621bc715e69a3cdc4b039f1325aa630c1445ff3 100644
--- a/src/npc/interaction/fSlaveFeed.tw
+++ b/src/npc/interaction/fSlaveFeed.tw
@@ -1,4 +1,4 @@
-:: FSlaveFeed [nobr]
+:: FSlaveFeed [nobr no-history]
 
 <<set _pregDiscovery = 0>>
 <<set $AS = $activeSlave.ID>>
diff --git a/src/npc/interaction/fSlaveImpregConsummate.tw b/src/npc/interaction/fSlaveImpregConsummate.tw
index b699a90178af110121174b0ccd7aca5a04264c8f..a0fa8f1bc53b1a3b220319efb0597b7931862211 100644
--- a/src/npc/interaction/fSlaveImpregConsummate.tw
+++ b/src/npc/interaction/fSlaveImpregConsummate.tw
@@ -1,4 +1,4 @@
-:: FSlaveImpreg Consummate [nobr]
+:: FSlaveImpreg Consummate [nobr no-history]
 
 The first necessary step is to prepare the donatrix.
 <<set $AS = $activeSlave.ID>>
diff --git a/src/npc/interaction/fSlaveSelfImpreg.tw b/src/npc/interaction/fSlaveSelfImpreg.tw
index 9cb8eb637c0dbca9179b9e40f744252b1249ca93..aa21bdccf157a51adb2ed7ddb6aadef31ec1e6b7 100644
--- a/src/npc/interaction/fSlaveSelfImpreg.tw
+++ b/src/npc/interaction/fSlaveSelfImpreg.tw
@@ -1,4 +1,4 @@
-:: FSlaveSelfImpreg [nobr]
+:: FSlaveSelfImpreg [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fSlaveSlaveVagConsummate.tw b/src/npc/interaction/fSlaveSlaveVagConsummate.tw
index 5783fe47165c1fbaff46849159a937ab5439c94b..b6d8636bc430e874ebd1cfee196aa592d9ce6864 100644
--- a/src/npc/interaction/fSlaveSlaveVagConsummate.tw
+++ b/src/npc/interaction/fSlaveSlaveVagConsummate.tw
@@ -1,4 +1,4 @@
-:: FSlaveSlaveVag Consummate [nobr]
+:: FSlaveSlaveVag Consummate [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fVagina.tw b/src/npc/interaction/fVagina.tw
index 77e5cfcd43015f35183244ccf8caf6fefd111b00..028877f94692bddd85efb3916cc31919964532c3 100644
--- a/src/npc/interaction/fVagina.tw
+++ b/src/npc/interaction/fVagina.tw
@@ -1,4 +1,4 @@
-:: FVagina [nobr]
+:: FVagina [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fillUpButt.tw b/src/npc/interaction/fillUpButt.tw
index be0f17d9262b4b985087a59ac8d6caee98518eb3..b369ec7e73482ca2679b0c435320023779ef829c 100644
--- a/src/npc/interaction/fillUpButt.tw
+++ b/src/npc/interaction/fillUpButt.tw
@@ -1,4 +1,4 @@
-:: FillUpButt [nobr]
+:: FillUpButt [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fillUpFace.tw b/src/npc/interaction/fillUpFace.tw
index 73d86553a5843c2e0b522c5eca5a63b88c843ee2..fa1034e68fd38d49180ee464fbc85fff518ed35c 100644
--- a/src/npc/interaction/fillUpFace.tw
+++ b/src/npc/interaction/fillUpFace.tw
@@ -1,4 +1,4 @@
-:: FillUpFace [nobr]
+:: FillUpFace [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fondleBoobs.tw b/src/npc/interaction/fondleBoobs.tw
index 0d1419563a9fdcc1b6195affeb249d6d009a2659..fbc258757e1c6c7bec5b37f5ee2090823f4d65ac 100644
--- a/src/npc/interaction/fondleBoobs.tw
+++ b/src/npc/interaction/fondleBoobs.tw
@@ -1,4 +1,4 @@
-:: FondleBoobs [nobr]
+:: FondleBoobs [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fondleButt.tw b/src/npc/interaction/fondleButt.tw
index 6eb7d1f0c80b5c1ae7a47e1736d539828ff408ef..2da14590e42757bb51814871e3ceccdb30494bbe 100644
--- a/src/npc/interaction/fondleButt.tw
+++ b/src/npc/interaction/fondleButt.tw
@@ -1,4 +1,4 @@
-:: FondleButt [nobr]
+:: FondleButt [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fondleDick.tw b/src/npc/interaction/fondleDick.tw
index a4b10f25e859c330e39dfaf96f9b6f5caf0bbcee..be287a36854e21cb6a94aa79c796b25d74929b3e 100644
--- a/src/npc/interaction/fondleDick.tw
+++ b/src/npc/interaction/fondleDick.tw
@@ -1,4 +1,4 @@
-:: FondleDick [nobr]
+:: FondleDick [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/fondleVagina.tw b/src/npc/interaction/fondleVagina.tw
index 7e31cec7558285f6074b1662740a6cc4dee096dd..e8a4358665ca87fd3117ffb80d64eef5392bcadb 100644
--- a/src/npc/interaction/fondleVagina.tw
+++ b/src/npc/interaction/fondleVagina.tw
@@ -1,4 +1,4 @@
-:: FondleVagina [nobr]
+:: FondleVagina [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/npc/interaction/forceFeeding.tw b/src/npc/interaction/forceFeeding.tw
index c99bbb40b6855b070c830a5c1d537f0a7008b7a6..263e4f0d5f54682692e2182e19dad3aeaa89fefe 100644
--- a/src/npc/interaction/forceFeeding.tw
+++ b/src/npc/interaction/forceFeeding.tw
@@ -1,4 +1,4 @@
-:: forceFeeding [nobr]
+:: forceFeeding [nobr no-history]
 
 <<set $AS = $activeSlave.ID>>
 <<setLocalPronouns $activeSlave>>
diff --git a/src/personalAssistant/assistantOptions.tw b/src/personalAssistant/assistantOptions.tw
index ba4862b23a3f8b03d5dd59a18d0fbdb62a7eded3..9703a66d5e09a57b7af7eeaabbaefe9e6691bc2c 100644
--- a/src/personalAssistant/assistantOptions.tw
+++ b/src/personalAssistant/assistantOptions.tw
@@ -1,4 +1,4 @@
-:: Personal assistant options [nobr]
+:: Personal assistant options [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Main">>
 
diff --git a/src/pregmod/geneLab.tw b/src/pregmod/geneLab.tw
index 6ff269ae709bfd3acc73bf2d784b4041975c3907..9ca80165ac9d9a7ca13c434bf0d6b86203161d93 100644
--- a/src/pregmod/geneLab.tw
+++ b/src/pregmod/geneLab.tw
@@ -1,4 +1,4 @@
-:: Gene Lab [nobr]
+:: Gene Lab [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Manage Penthouse", $encyclopedia = "The Pharmaceutical Fab.", _PCSkillCheck = Math.min($upgradeMultiplierMedicine, $HackingSkillMultiplier)>>
 
diff --git a/src/pregmod/implantManufactory.tw b/src/pregmod/implantManufactory.tw
index a490c0459ddc38e0ebbc5cc25cb40d15eda09899..546fac7272b6f3c2ab2c78b4e300e5b6794f5676 100644
--- a/src/pregmod/implantManufactory.tw
+++ b/src/pregmod/implantManufactory.tw
@@ -1,4 +1,4 @@
-:: Implant Manufactory [nobr]
+:: Implant Manufactory [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Manage Penthouse", $encyclopedia = "The Pharmaceutical Fab.", _PCSkillCheck = Math.min($upgradeMultiplierMedicine, $HackingSkillMultiplier)>>
 
diff --git a/src/pregmod/incubator.tw b/src/pregmod/incubator.tw
index 65a4748933a59a2c47848333ca2b6d28da936c83..3b04c078da90a3e67ecea272d27b8f4460f43c74 100644
--- a/src/pregmod/incubator.tw
+++ b/src/pregmod/incubator.tw
@@ -1,4 +1,4 @@
-:: Incubator [nobr]
+:: Incubator [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Incubator", $encyclopedia = "The Incubation Facility">>
 <<set $targetAge = Number($targetAge) || $minimumSlaveAge>>
diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw
index d60db9032171b75d3ee8cc760518052e5b7fbd4a..3b36ea4884a7679a7d43e8a72de958a43d492823 100644
--- a/src/pregmod/managePersonalAffairs.tw
+++ b/src/pregmod/managePersonalAffairs.tw
@@ -1,4 +1,4 @@
-:: Manage Personal Affairs [nobr]
+:: Manage Personal Affairs [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Main", $encyclopedia = "Being in Charge">>
 <<run PCTitle()>>
diff --git a/src/pregmod/organFarm.tw b/src/pregmod/organFarm.tw
index e09fb5101aef57d1d88f0e5b605c5860ac91ce36..5caf33806cf54a2b60825b9182cdfcf71b339b6e 100644
--- a/src/pregmod/organFarm.tw
+++ b/src/pregmod/organFarm.tw
@@ -1,4 +1,4 @@
-:: Organ Farm [nobr]
+:: Organ Farm [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Manage Penthouse", $encyclopedia = "The Pharmaceutical Fab.", _PCSkillCheck = Math.min($upgradeMultiplierMedicine, $HackingSkillMultiplier)>>
 
diff --git a/src/pregmod/theBlackMarket.tw b/src/pregmod/theBlackMarket.tw
index bb47f7c81a933207856eacb4004c7680e406af04..f0113cd964357e4ab05158b66ea8a718463cb101 100644
--- a/src/pregmod/theBlackMarket.tw
+++ b/src/pregmod/theBlackMarket.tw
@@ -1,4 +1,4 @@
-:: The Black Market [nobr]
+:: The Black Market [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Main", $returnTo = "Main", $encyclopedia = "The Black Market">>
 
diff --git a/src/uncategorized/arcade.tw b/src/uncategorized/arcade.tw
index ba4f540aeae913f689fde41c011b74081b5c61b3..37823197d061dfd6483dd3e216b802784b8c78c7 100644
--- a/src/uncategorized/arcade.tw
+++ b/src/uncategorized/arcade.tw
@@ -1,4 +1,4 @@
-:: Arcade [nobr]
+:: Arcade [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Arcade", $encyclopedia = "Arcade", _AL = App.Entity.facilities.arcade.employeesIDs().size>>
 
diff --git a/src/uncategorized/bgSelect.tw b/src/uncategorized/bgSelect.tw
index 8d83007228ad15a6ef30e33c726a94cdde4645c3..b888caa6e8fcf56c4fb3b593e5205cfcc857366b 100644
--- a/src/uncategorized/bgSelect.tw
+++ b/src/uncategorized/bgSelect.tw
@@ -1,4 +1,4 @@
-:: BG Select [nobr]
+:: BG Select [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $encyclopedia = "Bodyguard">>
 
diff --git a/src/uncategorized/bodyModification.tw b/src/uncategorized/bodyModification.tw
index ba557c462ccf679c62ca0d6273bdc802da9b09ca..b09cdf0fc60a223add59cb89330200bba7bb1191 100644
--- a/src/uncategorized/bodyModification.tw
+++ b/src/uncategorized/bodyModification.tw
@@ -1,4 +1,4 @@
-:: Body Modification [nobr]
+:: Body Modification [nobr jump-from-safe]
 
 <<set $nextButton = "Confirm changes", $nextLink = "Slave Interact">>
 <<set $AS = $activeSlave.ID>>
diff --git a/src/uncategorized/brothel.tw b/src/uncategorized/brothel.tw
index 837f5efc26d8c6ca0e2659dcc66e461a7e7bc270..8cecc0d4392b290e9fa91da566d9b255956f0262 100644
--- a/src/uncategorized/brothel.tw
+++ b/src/uncategorized/brothel.tw
@@ -1,4 +1,4 @@
-:: Brothel [nobr]
+:: Brothel [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Brothel", $encyclopedia = "Brothel", _BL = App.Entity.facilities.brothel.employeesIDs().size>>
 
diff --git a/src/uncategorized/buySlaves.tw b/src/uncategorized/buySlaves.tw
index 63244a6a5436675b5037631dbab80cc8d76eccd1..55201fd3c888e84363f6f9cdd54f8bb2b343f1ca 100644
--- a/src/uncategorized/buySlaves.tw
+++ b/src/uncategorized/buySlaves.tw
@@ -1,4 +1,4 @@
-:: Buy Slaves [nobr]
+:: Buy Slaves [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back">>
 <<set $nextLink = "Main">>
diff --git a/src/uncategorized/cellblock.tw b/src/uncategorized/cellblock.tw
index 32028b0d60807f8edab2119d2f74f5e7a0d25efb..b6945d008a6ba7c0e53b14a255f639faa181f312 100644
--- a/src/uncategorized/cellblock.tw
+++ b/src/uncategorized/cellblock.tw
@@ -1,4 +1,4 @@
-:: Cellblock [nobr]
+:: Cellblock [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Cellblock", $encyclopedia = "Cellblock", _CL = App.Entity.facilities.cellblock.employeesIDs().size>>
 
diff --git a/src/uncategorized/changeLanguage.tw b/src/uncategorized/changeLanguage.tw
index 6050573779d97e09dac69244dbb44c8a7f4fbc96..7dbd3c9616c9cf89294ac9efac6a34a2e914611f 100644
--- a/src/uncategorized/changeLanguage.tw
+++ b/src/uncategorized/changeLanguage.tw
@@ -1,11 +1,7 @@
-:: Change Language [nobr]
+:: Change Language [nobr jump-from-safe]
 
 <<set $nextButton = "Confirm changes">>
-<<if $sideBarOptions.compact > 0>>
-	<<set $nextLink = "Manage Arcology">>
-<<else>>
-	<<set $nextLink = "Main">>
-<</if>>
+<<set $nextLink = "Main">>
 
 <<set $revivalistLanguage = 0>>
 <<if $arcologies[0].FSRomanRevivalist != "unset">>
diff --git a/src/uncategorized/clinic.tw b/src/uncategorized/clinic.tw
index 510361844776ddd97111b0e70ca790b5f1111796..4dad8233e513302660c1a51ca0ff1680c2895d2c 100644
--- a/src/uncategorized/clinic.tw
+++ b/src/uncategorized/clinic.tw
@@ -1,4 +1,4 @@
-:: Clinic [nobr]
+:: Clinic [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Clinic", $encyclopedia = "Clinic", _CL = App.Entity.facilities.clinic.employeesIDs().size>>
 
diff --git a/src/uncategorized/club.tw b/src/uncategorized/club.tw
index 8e77c328305925f9310a8d8d2e2366e62ac2fcf0..2a779b3a3708938d2a7b023d220c2f62a9de0283 100644
--- a/src/uncategorized/club.tw
+++ b/src/uncategorized/club.tw
@@ -1,4 +1,4 @@
-:: Club [nobr]
+:: Club [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Club", $encyclopedia = "Club", _CL = App.Entity.facilities.club.employeesIDs().size>>
 
diff --git a/src/uncategorized/costsBudget.tw b/src/uncategorized/costsBudget.tw
index 2f019b3ac1c4f4ed7ca4ce9bda2640ef77e66aa9..8af2335e3e9bf82a23307de7ebd2671c596c2e0c 100644
--- a/src/uncategorized/costsBudget.tw
+++ b/src/uncategorized/costsBudget.tw
@@ -1,4 +1,4 @@
-:: Costs Budget [nobr]
+:: Costs Budget [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", _arcologyCosts = 0>>
 
diff --git a/src/uncategorized/dairy.tw b/src/uncategorized/dairy.tw
index 94c52c5a02bcf842e95fc9204c07c29a11bc5924..b395aa8a853a39e487cd386823b1dc53d46e859f 100644
--- a/src/uncategorized/dairy.tw
+++ b/src/uncategorized/dairy.tw
@@ -1,4 +1,4 @@
-:: Dairy [nobr]
+:: Dairy [nobr jump-to-safe jump-from-safe]
 
 <<set _slaves = App.Utils.sortedEmployees(App.Entity.facilities.dairy)>>
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Dairy", $encyclopedia = "Dairy", _SL = $slaves.length, _DL = _slaves.length>>
diff --git a/src/uncategorized/descriptionOptions.tw b/src/uncategorized/descriptionOptions.tw
index 19a45f677ea6c8c8a17fb6598eba5c45b02fe581..b4b0c1a7075d5b046b65e1b92fdaf8ac4a4ede47 100644
--- a/src/uncategorized/descriptionOptions.tw
+++ b/src/uncategorized/descriptionOptions.tw
@@ -1,4 +1,4 @@
-:: Description Options [nobr]
+:: Description Options [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back">>
 <<if $storedLink !== "Slave Interact">>
diff --git a/src/uncategorized/dispensary.tw b/src/uncategorized/dispensary.tw
index 551bf6d86f17b3c2aba1350e8bd29f3526c2cdfb..e4b441d7688532d14d6a85058fb1dc9056db99b8 100644
--- a/src/uncategorized/dispensary.tw
+++ b/src/uncategorized/dispensary.tw
@@ -1,4 +1,4 @@
-:: Dispensary [nobr]
+:: Dispensary [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Manage Penthouse", $encyclopedia = "The Pharmaceutical Fab.", _PCSkillCheck = Math.min($upgradeMultiplierMedicine, $HackingSkillMultiplier)>>
 
diff --git a/src/uncategorized/futureSociety.tw b/src/uncategorized/futureSociety.tw
index 0823900a7425aa297880fa87c8cbc0d556bd3439..0053f2d4503c63eb33461461b8fe116bf816d6d0 100644
--- a/src/uncategorized/futureSociety.tw
+++ b/src/uncategorized/futureSociety.tw
@@ -1,4 +1,4 @@
-:: Future Society [nobr]
+:: Future Society [nobr jump-to-safe jump-from-safe]
 
 <<setAssistantPronouns>>
 <<set $nextButton = "Back", $nextLink = "Main", $encyclopedia = "Future Societies", $FSReminder = "">>
diff --git a/src/uncategorized/headGirlSuite.tw b/src/uncategorized/headGirlSuite.tw
index 9c514dfcea59d2f25a87e2b70ace36a003ed802e..af33f0331020b0323f7509c9dcb70063ec36771d 100644
--- a/src/uncategorized/headGirlSuite.tw
+++ b/src/uncategorized/headGirlSuite.tw
@@ -1,4 +1,4 @@
-:: Head Girl Suite [nobr]
+:: Head Girl Suite [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Head Girl Suite", $encyclopedia = "Head Girl Suite", _SL = $slaves.length>>
 
diff --git a/src/uncategorized/hgSelect.tw b/src/uncategorized/hgSelect.tw
index b1595ad809c406df1d3da55e7cc2f31cdcb2367e..d84ed190e4314ebd3c5dc33362ed1be2c55bfae5 100644
--- a/src/uncategorized/hgSelect.tw
+++ b/src/uncategorized/hgSelect.tw
@@ -1,4 +1,4 @@
-:: HG Select [nobr]
+:: HG Select [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $encyclopedia = "Head Girl">>
 
diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw
index 44bfce82fbbb268ef73226909e9cb80ea59bbdcf..7df482f44febb0ff06a6ef8ff6f8579e28a618bd 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -1,4 +1,4 @@
-:: Main [nobr]
+:: Main [nobr jump-to-safe jump-from-safe]
 
 /* make sure the first thing that happens is the error check */
 <<set _errors = App.MainView.errors()>>
diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw
index c197b19c1e850893ba0e1eef01d2187bcbe3cf2f..a3f4578e91d990e977a9a02412ef1ce0e142d8f0 100644
--- a/src/uncategorized/manageArcology.tw
+++ b/src/uncategorized/manageArcology.tw
@@ -1,4 +1,4 @@
-:: Manage Arcology [nobr]
+:: Manage Arcology [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Main", $encyclopedia = "The X-Series Arcology">>
 
diff --git a/src/uncategorized/managePenthouse.tw b/src/uncategorized/managePenthouse.tw
index f7e0b11df9e2bd2f4a1dfde8a9e60d06e72b907d..0d21179cc0b4d92b24f5e94532da1137f144178f 100644
--- a/src/uncategorized/managePenthouse.tw
+++ b/src/uncategorized/managePenthouse.tw
@@ -1,4 +1,4 @@
-:: Manage Penthouse [nobr]
+:: Manage Penthouse [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Main", $encyclopedia = "What the Upgrades Do">>
 
@@ -437,3 +437,11 @@
 		</div>
 	<</if>>
 </p>
+
+<p>
+	<<if $rep >= 10000>>
+		[[Black Market|The Black Market]]
+	<<else>>
+		You lack the reputation (<<= num(10000)>>) to be invited to the underground Black Market.
+	<</if>>
+</p>
diff --git a/src/uncategorized/masterSuite.tw b/src/uncategorized/masterSuite.tw
index 4fb0fb79409d95c0f7bf74097b9e347349df6baf..ffe42ab296eafb910f8ce955782ab8cbdb261513 100644
--- a/src/uncategorized/masterSuite.tw
+++ b/src/uncategorized/masterSuite.tw
@@ -1,4 +1,4 @@
-:: Master Suite [nobr]
+:: Master Suite [nobr jump-to-safe jump-from-safe]
 
 <<set _slaves = App.Utils.sortedEmployees(App.Entity.facilities.masterSuite)>>
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Master Suite", $encyclopedia = "Master Suite", _SL = $slaves.length, _MsL = _slaves.length>>
diff --git a/src/uncategorized/neighborInteract.tw b/src/uncategorized/neighborInteract.tw
index dda077d9ef4fb3c7e53e1be587ea5f85554b56f2..e13e2bbe922b916f0b0c1d748a200d7e7da7cb29 100644
--- a/src/uncategorized/neighborInteract.tw
+++ b/src/uncategorized/neighborInteract.tw
@@ -1,4 +1,4 @@
-:: Neighbor Interact [nobr]
+:: Neighbor Interact [nobr jump-to-safe jump-from-safe]
 
 <<if def $buyArcologyDirection>>
 	<<run delete $buyArcologyDirection>>
@@ -22,11 +22,7 @@
 	[[Cheat Edit Neighboring Arcologies|MOD_Edit Neighbor Arcology Cheat]]<br><br>
 <</if>>
 
-<<if $sideBarOptions.compact > 0>>
-	<<set $nextLink = "Manage Arcology">>
-<<else>>
-	<<set $nextLink = "Main">>
-<</if>>
+<<set $nextLink = "Main">>
 <<set $nextButton = "Back">>
 You have <<print $arcologies.length-1>> neighbors. <br><br>
 
diff --git a/src/uncategorized/options.tw b/src/uncategorized/options.tw
index d48ba7a26b461764ad0497c379954319ed68d1fa..2e5e940f852f4bec7ee15d35a88206086738579d 100644
--- a/src/uncategorized/options.tw
+++ b/src/uncategorized/options.tw
@@ -1,4 +1,4 @@
-:: Options [nobr]
+:: Options [nobr jump-to-safe jump-from-safe]
 
 <style>
 .subHeading {
@@ -23,7 +23,7 @@
 <</if>>
 
 <<set $nextButton = "Back", $nextLink = $storedLink, $encyclopedia = "How to Play">>
-<<set _passageSwitchHandler = App.EventHandlers.optionsChanged>>
+<<set $passageSwitchHandler = App.EventHandlers.optionsChanged>>
 
 <<set _options = new App.UI.OptionsGroup()>>
 <<run _options.addOption("End of week autosaving is currently", "autosave")
@@ -166,10 +166,6 @@ This save was created using FC version $ver build $releaseID.
 
 		<<set _options = new App.UI.OptionsGroup()>>
 
-		<<run _options.addOption("Compact side bar is", "compact", $sideBarOptions)
-		.addValue("Enabled", 1).on().addValue("Disabled", 0).off()
-		.addComment("Disabling this will move the sidebar 'Manage Arcology' links onto the Main menu, while keeping the passage visible.")>>
-
 		<<run _options.addOption("Cash is", "Cash", $sideBarOptions)
 		.addValue("Shown", 1).on().addValue("Hidden", 0).off()>>
 
diff --git a/src/uncategorized/personalAttentionSelect.tw b/src/uncategorized/personalAttentionSelect.tw
index 05f1689433798fa60c2fb79f9e5bb0046b4300ac..74c8f24c04d6af32566e9a6f75b94aa9946b215a 100644
--- a/src/uncategorized/personalAttentionSelect.tw
+++ b/src/uncategorized/personalAttentionSelect.tw
@@ -1,4 +1,4 @@
-:: Personal Attention Select [nobr]
+:: Personal Attention Select [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main">>
 
diff --git a/src/uncategorized/pit.tw b/src/uncategorized/pit.tw
index 87fc9402c86f6b349d01f1a972bf3dbe75233b88..88b3f79797b64931c649fe99c7c37f8b604b9c1f 100644
--- a/src/uncategorized/pit.tw
+++ b/src/uncategorized/pit.tw
@@ -1,4 +1,4 @@
-:: Pit [nobr]
+:: Pit [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Pit", $encyclopedia = "Pit", _DL = $fighterIDs.length, _SL = $slaves.length, _CL = $canines.length, _HL = $hooved.length, _FL = $felines.length>>
 <<if $pitName != "the Pit">>
diff --git a/src/uncategorized/recruiterSelect.tw b/src/uncategorized/recruiterSelect.tw
index b1155515ae8b9931dd3a8481eac8d2f9ff05ae24..49ad10e6d6d3c9f3b5720de175404330b1533935 100644
--- a/src/uncategorized/recruiterSelect.tw
+++ b/src/uncategorized/recruiterSelect.tw
@@ -1,4 +1,4 @@
-:: Recruiter Select [nobr]
+:: Recruiter Select [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", $encyclopedia = "Recruiter">>
 <<if ($Recruiter != 0)>>
diff --git a/src/uncategorized/remoteSurgery.tw b/src/uncategorized/remoteSurgery.tw
index 0a1006d5b6f938dcadc1f4e989b631fb763d9ce1..02f6493441392045dad16dafc8bd5ab64eb81d46 100644
--- a/src/uncategorized/remoteSurgery.tw
+++ b/src/uncategorized/remoteSurgery.tw
@@ -1,4 +1,4 @@
-:: Remote Surgery [nobr]
+:: Remote Surgery [nobr jump-from-safe]
 
 <style>
 .active {
diff --git a/src/uncategorized/repBudget.tw b/src/uncategorized/repBudget.tw
index 6bfaba0cf7f9a7a77c8706061c282bb134a8b22e..b07dae6ff9c1eeb55bdd1e8c126c5b702c6607ad 100644
--- a/src/uncategorized/repBudget.tw
+++ b/src/uncategorized/repBudget.tw
@@ -1,4 +1,4 @@
-:: Rep Budget [nobr]
+:: Rep Budget [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back to Main", $nextLink = "Main", _arcologyCosts = 0>>
 
diff --git a/src/uncategorized/rulesAssistant.tw b/src/uncategorized/rulesAssistant.tw
index 1eb4a9890e539dd550c5a18170e50378b894af95..662b7abb69484c8d982fcd4bf31a37733e7507a6 100644
--- a/src/uncategorized/rulesAssistant.tw
+++ b/src/uncategorized/rulesAssistant.tw
@@ -1,3 +1,3 @@
-:: Rules Assistant [nobr]
+:: Rules Assistant [nobr jump-to-safe jump-from-safe]
 
 <<run html5passage(rulesAssistantOptions)>>
diff --git a/src/uncategorized/salon.tw b/src/uncategorized/salon.tw
index f35b17b3be6fe24c655b20876169ed7b16c012c7..057c9ec21c72d376abc5d4a3ab3e56d4e832b70e 100644
--- a/src/uncategorized/salon.tw
+++ b/src/uncategorized/salon.tw
@@ -1,4 +1,4 @@
-:: Salon [nobr]
+:: Salon [nobr jump-from-safe]
 
 <<set $nextButton = "Confirm changes", $nextLink = "Slave Interact", $encyclopedia = "The Auto Salon">>
 <<set $AS = $activeSlave.ID>>
diff --git a/src/uncategorized/schoolroom.tw b/src/uncategorized/schoolroom.tw
index 3805a51143cfa881f1b22a21ebe05c54628f17a1..e55b592a89ce9d967c42d5f6cee9595a3f0e21ae 100644
--- a/src/uncategorized/schoolroom.tw
+++ b/src/uncategorized/schoolroom.tw
@@ -1,4 +1,4 @@
-:: Schoolroom [nobr]
+:: Schoolroom [nobr jump-to-safe jump-from-safe]
 
 <<set _DL = App.Entity.facilities.schoolroom.employeesIDs().size, $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Schoolroom", $encyclopedia = "Schoolroom">>
 
diff --git a/src/uncategorized/servantsQuarters.tw b/src/uncategorized/servantsQuarters.tw
index c952fb38433624afb2717372e682f271ceb37c6b..1d14602cf0d2ced5fafa2e500094d930097ea02d 100644
--- a/src/uncategorized/servantsQuarters.tw
+++ b/src/uncategorized/servantsQuarters.tw
@@ -1,4 +1,4 @@
-:: Servants' Quarters [nobr]
+:: Servants' Quarters [nobr jump-to-safe jump-from-safe]
 
 <<set _DL = App.Entity.facilities.servantsQuarters.employeesIDs().size, $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Servants' Quarters", $encyclopedia = "Servants' Quarters">>
 
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index 1ea450e187455c25a1cfd1eee126a104d82b6ce5..3052912793446c8b4de549988409c765eda39cec 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -1,4 +1,4 @@
-:: Slave Interact [nobr]
+:: Slave Interact [nobr jump-from-safe]
 
 <<set $nextButton = "Confirm changes", $nextLink = "Main">>
 <<set _SL = $slaves.length, _CL = $canines.length, _HL = $hooved.length, _FL = $felines.length>>
diff --git a/src/uncategorized/spa.tw b/src/uncategorized/spa.tw
index e71ea8b1438a58002068fffe2f49d3debf1fb4a7..696db7c3bcdffeb274137dff9adb72d4a84a601c 100644
--- a/src/uncategorized/spa.tw
+++ b/src/uncategorized/spa.tw
@@ -1,4 +1,4 @@
-:: Spa [nobr]
+:: Spa [nobr jump-to-safe jump-from-safe]
 
 <<set _DL = App.Entity.facilities.spa.employeesIDs().size, $nextButton = "Back to Main", $nextLink = "Main", $returnTo = "Spa", $encyclopedia = "Spa">>
 
diff --git a/src/uncategorized/summaryOptions.tw b/src/uncategorized/summaryOptions.tw
index 74411f44be29f280123bfec197c36ffec5970c28..bb269e7d04b462c6a004bc93f6468a106ef0d059 100644
--- a/src/uncategorized/summaryOptions.tw
+++ b/src/uncategorized/summaryOptions.tw
@@ -1,4 +1,4 @@
-:: Summary Options [nobr]
+:: Summary Options [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back">>
 <<if $storedLink !== "Slave Interact" && $storedLink !== "Main">>
@@ -9,7 +9,7 @@
 	<</if>>
 <</if>>
 <<set $nextLink = $storedLink>>
-<<set _passageSwitchHandler = App.EventHandlers.optionsChanged>>
+<<set $passageSwitchHandler = App.EventHandlers.optionsChanged>>
 
 <h1>Summary Options</h1>
 
diff --git a/src/uncategorized/universalRules.tw b/src/uncategorized/universalRules.tw
index d3b689b92c749377bbace8f4c0add129325d1af7..696769d1fd89af563834f5af2f51cb52ac3c8858 100644
--- a/src/uncategorized/universalRules.tw
+++ b/src/uncategorized/universalRules.tw
@@ -1,4 +1,4 @@
-:: Universal Rules [nobr]
+:: Universal Rules [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Manage Penthouse">>
 
diff --git a/src/uncategorized/wardrobe.tw b/src/uncategorized/wardrobe.tw
index 77435f54c98f4d1925eb4bc5ff90aad9e56a90a5..4859b05c7cd64511dff75f53bcb892a1dedffcee 100644
--- a/src/uncategorized/wardrobe.tw
+++ b/src/uncategorized/wardrobe.tw
@@ -1,4 +1,4 @@
-:: Wardrobe [nobr]
+:: Wardrobe [nobr jump-to-safe jump-from-safe]
 
 <<set $nextButton = "Back", $nextLink = "Manage Penthouse">>
 
diff --git a/src/zz1-last/setupEventHandlers.js b/src/zz1-last/setupEventHandlers.js
index 44cba09f389236f963c15e85054696220dd01ff1..0a6ef4160227ad480de47f3b895c24cc870cd2ba 100644
--- a/src/zz1-last/setupEventHandlers.js
+++ b/src/zz1-last/setupEventHandlers.js
@@ -2,7 +2,7 @@
 Config.saves.onLoad = App.EventHandlers.onLoad;
 Config.saves.onSave = App.EventHandlers.onSave;
 
-$(document).on(':storyready', function(ev) {
+$(document).on(':storyready', function() {
 	App.EventHandlers.storyReady();
 });
 
@@ -15,3 +15,10 @@ $(document).on(':passagestart', function() {
 		get: () => S
 	});
 });
+
+$(document).on("passageinit", () => {
+	if (V.passageSwitchHandler) {
+		V.passageSwitchHandler();
+		delete V.passageSwitchHandler;
+	}
+});