diff --git a/devTools/types/FC/facilities.d.ts b/devTools/types/FC/facilities.d.ts
index ac7eb1e90a3a22c2bfabef8730f28138a5421b19..628dca392e2d0b768627f240bca0890b75dd1782 100644
--- a/devTools/types/FC/facilities.d.ts
+++ b/devTools/types/FC/facilities.d.ts
@@ -11,15 +11,19 @@ declare namespace FC {
 	}
 
 	interface IUpgradeTier {
-		/** The value to set `property` to upon purchase. */
+		/** The value `property` must be set to in order to display this tier. */
 		value: any;
+		/** The value to set `property` to upon purchase of the upgrade, if any. */
+		upgraded?: any;
 		/** The link text. */
 		link?: string;
-		/** The text to display when the upgrade is available to purchase. */
-		base?: string;
-		/** The text to display when the upgrade has been purchased and no additional upgrades are available. */
-		upgraded?: string;
-		/** How much the upgrade costs. */
+		/** The text to display for the current tier of the upgrade. */
+		text: string;
+		/**
+		 * How much the upgrade costs.
+		 *
+		 * If one is not provided, the upgrade will be free.
+		 */
 		cost?: number;
 		/** Any handler to run upon purchase. */
 		handler?: () => void;
diff --git a/src/004-base/facilityFramework.js b/src/004-base/facilityFramework.js
index 88bfdfd9995aec1a24f071f8a298b5ae6194e67d..8115de9bd59fc03fb2981624c467c1bdb808b0bc 100644
--- a/src/004-base/facilityFramework.js
+++ b/src/004-base/facilityFramework.js
@@ -13,11 +13,11 @@ App.Facilities.Facility = class {
 
 		/** @private */
 		this._div = document.createElement("div");
-		/** @protected @type {Array<function():HTMLDivElement>} */
+		/** @private @type {Array<function():HTMLDivElement>} */
 		this._sections = [];
-		/** @protected @type {FC.IUpgrade[]} */
+		/** @private @type {FC.IUpgrade[]} */
 		this._upgrades = [];
-		/** @protected @type {FC.Facilities.Rule[]} */
+		/** @private @type {FC.Facilities.Rule[]} */
 		this._rules = [];
 
 		this._addUpgrades(...this.upgrades);
diff --git a/src/facilities/arcade/arcade.js b/src/facilities/arcade/arcade.js
index 23118203220425406bace710780a24d0497e4eae..a23cdfa9c6dbfb78a822643ab16bf8eee73c1bc0 100644
--- a/src/facilities/arcade/arcade.js
+++ b/src/facilities/arcade/arcade.js
@@ -100,8 +100,9 @@ App.Facilities.Arcade.arcade = class Arcade extends App.Facilities.Facility {
 				property: "arcadeUpgradeInjectors",
 				tiers: [
 					{
-						value: 1,
-						base: `It is a standard arcade. It can be upgraded to either maximize the pleasure of those that visit it at the expense of the health of the inmates, or to keep them healthy (if not happy) and milk them of useful fluids.`,
+						value: 0,
+						upgraded: 1,
+						text: `It is a standard arcade. It can be upgraded to either maximize the pleasure of those that visit it at the expense of the health of the inmates, or to keep them healthy (if not happy) and milk them of useful fluids.`,
 						link: `Upgrade the arcade with invasive performance-enhancing systems`,
 						cost: 10000 * V.upgradeMultiplierArcology,
 						handler: () => {
@@ -111,33 +112,32 @@ App.Facilities.Arcade.arcade = class Arcade extends App.Facilities.Facility {
 						},
 						note: `, increases upkeep costs, and is mutually exclusive with the collectors`,
 						prereqs: [
-							() => V.arcadeUpgradeInjectors < 1,
 							() => V.arcadeUpgradeCollectors < 1,
 						],
 					},
 					{
-						value: 2,
-						base: `It has been upgraded with electroshock applicators. Whether they're enjoying themselves or not is irrelevant; they are shocked to tighten their holes regardless. You may also apply aphrodisiacs to further enhance performance.`,
-						upgraded: `It has been upgraded with aphrodisiac injection systems and electroshock applicators. If the aphrodisiacs fail to force an orgasm from an inmate, they are shocked to tighten their holes regardless.`,
+						value: 1,
+						upgraded: 2,
+						text: `It has been upgraded with electroshock applicators. Whether they're enjoying themselves or not is irrelevant; they are shocked to tighten their holes regardless. You may also apply aphrodisiacs to further enhance performance.`,
 						link: `Apply aphrodisiacs`,
-						handler: () => {
-							V.PC.skill.engineering += .1;
-
-							App.UI.reload();
-						},
+						handler: () => V.PC.skill.engineering += .1,
 						prereqs: [
-							() => V.arcadeUpgradeInjectors > 0,
 							() => V.arcadeUpgradeCollectors < 1,
 						],
 					},
+					{
+						value: 2,
+						text: `It has been upgraded with aphrodisiac injection systems and electroshock applicators. If the aphrodisiacs fail to force an orgasm from an inmate, they are shocked to tighten their holes regardless.`,
+					},
 				],
 			},
 			{
 				property: "arcadeUpgradeCollectors",
 				tiers: [
 					{
-						value: 1,
-						upgraded: `It has been retrofitted to milk lactating slaves${V.seeDicks !== 0 ? ` and cockmilk slaves capable of ejaculating` : ``}, though less efficiently than a dedicated facility.`,
+						value: 0,
+						upgraded: 1,
+						text: `The fluids produced by the inmates here can be collected and sold.`,
 						link: `Retrofit the arcade to collect useful fluids`,
 						cost: 10000 * V.upgradeMultiplierArcology,
 						handler: () => {
@@ -150,14 +150,19 @@ App.Facilities.Arcade.arcade = class Arcade extends App.Facilities.Facility {
 							() => V.arcadeUpgradeInjectors < 1,
 						],
 					},
+					{
+						value: 1,
+						text: `It has been retrofitted to milk lactating slaves${V.seeDicks !== 0 ? ` and cockmilk slaves capable of ejaculating` : ``}, though less efficiently than a dedicated facility.`,
+					},
 				],
 			},
 			{
 				property: "arcadeUpgradeHealth",
 				tiers: [
 					{
-						value: 1,
-						base: `The arcade can be upgraded to include curative injectors in order to keep inmates from succumbing under the harsh treatment. You are assured the inmates won't like their time in the arcade any better; it is purely intended to keep them functional and ready for use around the clock. It comes equipped with two settings.`,
+						value: -1,
+						upgraded: 0,
+						text: `The arcade can be upgraded to include curative injectors in order to keep inmates from succumbing under the harsh treatment. You are assured the inmates won't like their time in the arcade any better; it is purely intended to keep them functional and ready for use around the clock. It comes equipped with two settings.`,
 						link: `Install curative injectors`,
 						cost: 10000 * V.upgradeMultiplierArcology,
 						handler: () => {
@@ -166,9 +171,6 @@ App.Facilities.Arcade.arcade = class Arcade extends App.Facilities.Facility {
 							App.UI.reload();
 						},
 						note: ` and will increase upkeep costs`,
-						prereqs: [
-							() => V.arcadeUpgradeHealth < 0,
-						],
 					},
 				],
 			},
@@ -176,8 +178,9 @@ App.Facilities.Arcade.arcade = class Arcade extends App.Facilities.Facility {
 				property: "arcadeUpgradeFuckdolls",
 				tiers: [
 					{
-						value: 1,
-						base: `${capFirstChar(V.arcadeName)} is not equipped to convert inmates into standard Fuckdolls.`,
+						value: 0,
+						upgraded: 1,
+						text: `${capFirstChar(V.arcadeName)} is not equipped to convert inmates into standard Fuckdolls.`,
 						link: `Upgrade the arcade to create Fuckdolls`,
 						cost: 5000 * V.upgradeMultiplierArcology,
 						handler: () => {
@@ -186,9 +189,6 @@ App.Facilities.Arcade.arcade = class Arcade extends App.Facilities.Facility {
 							App.UI.reload();
 						},
 						note: ` and will increase upkeep costs`,
-						prereqs: [
-							() => V.arcadeUpgradeFuckdolls === 0,
-						],
 					},
 				],
 			},
diff --git a/src/facilities/brothel/brothel.js b/src/facilities/brothel/brothel.js
index fe0cf230f7494657f9eb3efb67281c0842a6afbf..b319b37e656f10e66febcf040b9822fd59a69076 100644
--- a/src/facilities/brothel/brothel.js
+++ b/src/facilities/brothel/brothel.js
@@ -141,15 +141,25 @@ App.Facilities.Brothel.brothel = class Brothel extends App.Facilities.Facility {
 				property: "brothelUpgradeDrugs",
 				tiers: [
 					{
-						value: 1,
-						base: `It is a standard brothel.`,
+						value: 0,
+						upgraded: 1,
+						text: `It is a standard brothel.`,
 						link: `Upgrade the brothel with aphrodisiac injection systems`,
 						cost: 10000 * V.upgradeMultiplierArcology * V.HackingSkillMultiplier,
 						handler: () => V.PC.skill.engineering += .1,
 						note: ` and will increase upkeep costs`,
-						prereqs: [
-							() => V.brothelUpgradeDrugs === 0,
-						],
+					},
+					{
+						value: 0.1,
+						text: `It has been upgraded with an injection system that can keep whores horny and ready to fuck at the drop of a hat.`,
+					},
+					{
+						value: 1,
+						text: `It has been upgraded with an injection system that can keep whores horny and ready to fuck at the drop of a hat.`,
+					},
+					{
+						value: 2,
+						text: `It has been upgraded with an injection system that can keep whores horny and ready to fuck at the drop of a hat.`,
 					},
 				],
 			},
diff --git a/src/facilities/cellblock/cellblock.js b/src/facilities/cellblock/cellblock.js
index f59485372ae0012ad410ce05a6df2457a301a83b..eb662aded84f40d9c00f90507a495fdca3698d6a 100644
--- a/src/facilities/cellblock/cellblock.js
+++ b/src/facilities/cellblock/cellblock.js
@@ -98,9 +98,9 @@ App.Facilities.Cellblock.cellblock = class Cellblock extends App.Facilities.Faci
 				property: "cellblockUpgrade",
 				tiers: [
 					{
-						value: 1,
-						base: `Its compliance systems are standard.`,
-						upgraded: `Its compliance systems have been upgraded to allow slaves no mental respite, painstakingly correcting the tiniest misbehaviors to soften flaws into quirks at the cost of considerable anguish to inmates denied any rest from correction.`,
+						value: 0,
+						upgraded: 1,
+						text: `Its compliance systems are standard.`,
 						link: `Upgrade them to soften slave flaws`,
 						cost: 20000 * V.upgradeMultiplierArcology * V.HackingSkillMultiplier,
 						handler: () => {
@@ -108,6 +108,10 @@ App.Facilities.Cellblock.cellblock = class Cellblock extends App.Facilities.Faci
 							V.PC.skill.hacking += 0.1;
 						},
 					},
+					{
+						value: 1,
+						text: `Its compliance systems have been upgraded to allow slaves no mental respite, painstakingly correcting the tiniest misbehaviors to soften flaws into quirks at the cost of considerable anguish to inmates denied any rest from correction.`,
+					},
 				],
 			},
 		];
diff --git a/src/facilities/clinic/clinic.js b/src/facilities/clinic/clinic.js
index ea5cab998a3fe0e3215ee61508ddc81ac8a6955d..0eb19d32dda1d353482bdcc6735bca3844abc3fb 100644
--- a/src/facilities/clinic/clinic.js
+++ b/src/facilities/clinic/clinic.js
@@ -99,57 +99,69 @@ App.Facilities.Clinic.clinic = class Clinic extends App.Facilities.Facility {
 				property: "clinicUpgradeScanner",
 				tiers: [
 					{
-						value: 1,
-						base: `It mounts powerful medical scanning technology.`,
-						upgraded: `${this.facility.nameCaps}'s scanners have been upgraded with a sampling system that can estimate carcinogenic damage to a slave's body.`,
+						value: 0,
+						upgraded: 1,
+						text: `It mounts powerful medical scanning technology.`,
 						link: `Upgrade the scanners to help detect genomic damage`,
-						cost: Math.trunc(10000 * V.upgradeMultiplierArcology * Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier)),
+						cost: 10000 * V.upgradeMultiplierArcology * Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier),
 						handler: () => V.PC.skill.hacking += 0.1,
 						note: ` and increases the effectiveness of ${V.clinicName}`,
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps}'s scanners have been upgraded with a sampling system that can estimate carcinogenic damage to a slave's body.`,
+					},
 				],
 			},
 			{
 				property: "clinicUpgradeFilters",
 				tiers: [
 					{
-						value: 1,
-						base: `It includes standard dialysis equipment.`,
-						upgraded: `The entire floor beneath ${V.clinicName} is occupied by a huge filtration plant that constantly cycles out the patients' blood to remove impurities.`,
+						value: 0,
+						upgraded: 1,
+						text: `It includes standard dialysis equipment.`,
 						link: `Install advanced blood treatment equipment to help address drug side effects`,
-						cost: Math.trunc(50000 * V.upgradeMultiplierArcology * Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier)),
-						handler: () => V.PC.skill.hacking += 0.1,
+						cost: 50000 * V.upgradeMultiplierArcology * Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier),
+						handler: () => {
+							V.PC.skill.hacking += 0.1;
+
+							App.UI.reload();
+						},
 						note: ` and increases the effectiveness of ${V.clinicName}`,
 					},
+					{
+						value: 1,
+						text: `The entire floor beneath ${V.clinicName} is occupied by a huge filtration plant that constantly cycles out the patients' blood to remove impurities.`,
+					},
 				],
 			},
 			{
 				property: "clinicUpgradePurge",
 				tiers: [
 					{
-						value: 1,
-						base: V.clinicUpgradeFilters ? `Microscopic magnets have been added to better facilitate the leeching of impurities from cells.` : null,
+						value: 0,
+						upgraded: 1,
+						text: `Microscopic magnets have been added to better facilitate the leeching of impurities from cells.`,
 						link: `Increase the effectiveness of the impurity purging`,
-						cost: Math.trunc(150000 * V.upgradeMultiplierArcology * Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier)),
+						cost: 150000 * V.upgradeMultiplierArcology * Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier),
 						handler: () => V.PC.skill.hacking += 0.1,
 						note: ` and may cause health problems in slaves`,
 						prereqs: [
 							() => V.clinicUpgradeFilters > 0,
-							() => V.clinicUpgradePurge < 1,
 						],
 					},
 					{
-						value: 2,
-						base: V.clinicUpgradeFilters ? `Microscopic magnets have been added to better facilitate the leeching of impurities from cells.` : null,
-						upgraded: `Microscopic magnets have been added to better facilitate the leeching of impurities from cells. The blood is intensely cleaned to greatly decrease the presence of impurities at the cost of compatibility. Patients will likely be ill for the duration of the treatment.`,
+						value: 1,
+						upgraded: 2,
+						text: `Microscopic magnets have been added to better facilitate the leeching of impurities from cells.`,
 						link: `Further increase the effectiveness of the impurity purging by utilizing nano magnets`,
-						cost: Math.trunc(300000 * V.upgradeMultiplierArcology * Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier)),
+						cost: 300000 * V.upgradeMultiplierArcology * Math.min(V.upgradeMultiplierMedicine, V.HackingSkillMultiplier),
 						handler: () => V.PC.skill.hacking += 0.1,
 						note: ` and increases the effectiveness of ${V.clinicName}`,
-						prereqs: [
-							() => V.clinicUpgradeFilters > 0,
-							() => V.clinicUpgradePurge > 0,
-						],
+					},
+					{
+						value: 2,
+						text: `Microscopic magnets have been added to better facilitate the leeching of impurities from cells. The blood is intensely cleaned to greatly decrease the presence of impurities at the cost of compatibility. Patients will likely be ill for the duration of the treatment.`,
 						nodes: !S.Nurse
 							? [`However, without a nurse in attendance, the <span class="yellow">blood treatment equipment remains idle.</span>`]
 							: null,
diff --git a/src/facilities/club/club.js b/src/facilities/club/club.js
index f5367bdababc87bbe3ae41b1cb2824af45b3ded2..b14ccfa4c5fe8c61a9b21aecd4735f9e883eb544 100644
--- a/src/facilities/club/club.js
+++ b/src/facilities/club/club.js
@@ -268,14 +268,18 @@ App.Facilities.Club.club = class Club extends App.Facilities.Facility {
 				property: "clubUpgradePDAs",
 				tiers: [
 					{
-						value: 1,
-						base: `The rooms are standard.`,
-						upgraded: `${this.facility.nameCaps} has been wired for unobtrusive personal data assistants to let your sluts pass tips about enslavable people to your recruiter.`,
+						value: 0,
+						upgraded: 1,
+						text: `The rooms are standard.`,
 						link: `Upgrade them with PDAs to help your recruiter`,
-						cost: Math.trunc(10000 * V.upgradeMultiplierArcology * V.HackingSkillMultiplier),
+						cost: 10000 * V.upgradeMultiplierArcology * V.HackingSkillMultiplier,
 						handler: () => V.PC.skill.engineering += 0.1,
 						note: ` and will increase upkeep costs`,
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} has been wired for unobtrusive personal data assistants to let your sluts pass tips about enslavable people to your recruiter.`,
+					},
 				],
 			},
 		];
diff --git a/src/facilities/farmyard/farmyard.js b/src/facilities/farmyard/farmyard.js
index 3de4088de3242efd01390a8d85893508c8c24fc8..04593848eacc66eaf5379bf14cd9308503eeaa8d 100644
--- a/src/facilities/farmyard/farmyard.js
+++ b/src/facilities/farmyard/farmyard.js
@@ -138,11 +138,11 @@ App.Facilities.Farmyard.farmyard = class Farmyard extends App.Facilities.Facilit
 				property: "pump",
 				tiers: [
 					{
-						value: 1,
-						base: `${this.facility.nameCaps} is currently using the basic water pump that it came with.`,
-						upgraded: `The water pump in ${V.farmyardName} is a more efficient model, slightly improving the amount of crops it produces.`,
+						value: 0,
+						upgraded: 1,
+						text: `${this.facility.nameCaps} is currently using the basic water pump that it came with.`,
 						link: `Upgrade the water pump`,
-						cost: Math.trunc(5000 * V.upgradeMultiplierArcology),
+						cost: 5000 * V.upgradeMultiplierArcology,
 						handler: () => {
 							V.PC.skill.engineering += 0.1;
 
@@ -150,6 +150,10 @@ App.Facilities.Farmyard.farmyard = class Farmyard extends App.Facilities.Facilit
 						},
 						note: ` and slightly decreases upkeep costs`,
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} is currently using the basic water pump that it came with.`,
+					},
 				],
 				object: V.farmyardUpgrades,
 			},
@@ -157,10 +161,11 @@ App.Facilities.Farmyard.farmyard = class Farmyard extends App.Facilities.Facilit
 				property: "fertilizer",
 				tiers: [
 					{
-						value: 1,
-						upgraded: `${this.facility.nameCaps} is using a higher-quality fertilizer, moderately increasing the amount of crops it produces and slightly raising upkeep costs.`,
+						value: 0,
+						upgraded: 1,
+						text: `The fertilizer being used in ${this.facility.name} is the cheap, buy-in-bulk stuff you can purchase at the local supermarket.`,
 						link: `Use a higher-quality fertilizer`,
-						cost: Math.trunc(10000 * V.upgradeMultiplierArcology),
+						cost: 10000 * V.upgradeMultiplierArcology,
 						handler: () => {
 							V.PC.skill.engineering += 0.1;
 
@@ -171,6 +176,10 @@ App.Facilities.Farmyard.farmyard = class Farmyard extends App.Facilities.Facilit
 							() => V.farmyardUpgrades.pump > 0,
 						],
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} is using a specialized fertilizer created to result in a higher crop yield.`,
+					},
 				],
 				object: V.farmyardUpgrades,
 			},
@@ -178,10 +187,11 @@ App.Facilities.Farmyard.farmyard = class Farmyard extends App.Facilities.Facilit
 				property: "hydroponics",
 				tiers: [
 					{
-						value: 1,
-						upgraded: `${this.facility.nameCaps} is outfitted with an advanced hydroponics system, reducing the amount of water your crops consume and thus moderately reducing upkeep costs.`,
+						value: 0,
+						upgraded: 1,
+						text: `There is room enough in ${this.facility.name} to install a hydroponics system for irrigation.`,
 						link: `Purchase an advanced hydroponics system`,
-						cost: Math.trunc(20000 * V.upgradeMultiplierArcology),
+						cost: 20000 * V.upgradeMultiplierArcology,
 						handler: () => {
 							V.PC.skill.engineering += 0.1;
 
@@ -192,6 +202,10 @@ App.Facilities.Farmyard.farmyard = class Farmyard extends App.Facilities.Facilit
 							() => V.farmyardUpgrades.fertilizer > 0,
 						],
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} is outfitted with an advanced hydroponics system, reducing the amount of water your crops consume and thus saving a bit on your water bill.`,
+					},
 				],
 				object: V.farmyardUpgrades,
 			},
@@ -199,10 +213,11 @@ App.Facilities.Farmyard.farmyard = class Farmyard extends App.Facilities.Facilit
 				property: "seeds",
 				tiers: [
 					{
-						value: 1,
-						upgraded: `${this.facility.nameCaps} is using genetically modified seeds, significantly increasing the amount of crops it produces and moderately increasing upkeep costs.`,
+						value: 0,
+						upgraded: 1,
+						text: `The seeds ${this.facility.name} is using are the standard seeds one could pick up at the local farmers' market.`,
 						link: `Purchase genetically modified seeds`,
-						cost: Math.trunc(25000 * V.upgradeMultiplierArcology),
+						cost: 25000 * V.upgradeMultiplierArcology,
 						handler: () => {
 							V.PC.skill.engineering += 0.1;
 
@@ -213,6 +228,10 @@ App.Facilities.Farmyard.farmyard = class Farmyard extends App.Facilities.Facilit
 							() => V.farmyardUpgrades.hydroponics > 0,
 						],
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} is using genetically modified seeds, designed to produce a much greater yield while remaining more resistant to pests and disease.`,
+					},
 				],
 				object: V.farmyardUpgrades,
 			},
@@ -220,10 +239,11 @@ App.Facilities.Farmyard.farmyard = class Farmyard extends App.Facilities.Facilit
 				property: "machinery",
 				tiers: [
 					{
-						value: 1,
-						upgraded: `The machinery in ${V.farmyardName} has been upgraded and is more efficient, significantly increasing crop yields and significantly decreasing upkeep costs.`,
+						value: 0,
+						upgraded: 1,
+						text: `The machinery in ${this.facility.name} is equipment that was imported before the old world began to fall apart and is fairly old and outdated.`,
 						link: `Upgrade the machinery`,
-						cost: Math.trunc(50000 * V.upgradeMultiplierArcology),
+						cost: 50000 * V.upgradeMultiplierArcology,
 						handler: () => {
 							V.PC.skill.engineering += 0.1;
 
@@ -234,6 +254,10 @@ App.Facilities.Farmyard.farmyard = class Farmyard extends App.Facilities.Facilit
 							() => V.farmyardUpgrades.seeds > 0
 						],
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} is using the latest in farming equipment and technology.`,
+					},
 				],
 				object: V.farmyardUpgrades,
 			},
diff --git a/src/facilities/masterSuite/masterSuite.js b/src/facilities/masterSuite/masterSuite.js
index 970dcbbde605481cf641bff451d83119818ec05d..6e184cbe8023448ec52aef7ccb1a8818a157a7a2 100644
--- a/src/facilities/masterSuite/masterSuite.js
+++ b/src/facilities/masterSuite/masterSuite.js
@@ -267,9 +267,9 @@ App.Facilities.MasterSuite.masterSuite = class MasterSuite extends App.Facilitie
 				property: "masterSuiteUpgradeLuxury",
 				tiers: [
 					{
-						value: 1,
-						base: `The master suite is a fairly standard room, albeit a much larger and more luxurious one.`,
-						upgraded: `The large bed in the center of the room has been replaced with one that is nothing short of massive.`,
+						value: 0,
+						upgraded: 1,
+						text: `The master suite is a fairly standard room, albeit a much larger and more luxurious one.`,
 						link: `Refit the suite to the height of traditional opulence`,
 						cost: V.masterSuiteUpgradeLuxury === 0
 							? 25000 * V.upgradeMultiplierArcology
@@ -278,8 +278,13 @@ App.Facilities.MasterSuite.masterSuite = class MasterSuite extends App.Facilitie
 						note: ` and will focus the suite on you`,
 					},
 					{
-						value: 2,
-						upgraded: `A large, recessed space has been built in the center of the room where slaves can spend their days fucking each other.`,
+						value: 1,
+						text: `The large bed in the center of the room has been replaced with one that is nothing short of massive.`,
+					},
+					{
+						value: 0,
+						upgraded: 2,
+						text: ``,
 						link: `Remodel the suite around a luxurious pit for group sex`,
 						cost: V.masterSuiteUpgradeLuxury === 0
 							? 25000 * V.upgradeMultiplierArcology
@@ -287,22 +292,34 @@ App.Facilities.MasterSuite.masterSuite = class MasterSuite extends App.Facilitie
 						handler: () => V.PC.skill.engineering += .1,
 						note: ` and will encourage fucktoys to fuck each other`,
 					},
+					{
+						value: 2,
+						text: `A large, recessed space has been built in the center of the room where slaves can spend their days fucking each other.`,
+					},
 				],
 			},
 			{
 				property: "masterSuiteUpgradePregnancy",
 				tiers: [
 					{
-						value: 1,
-						base: `The master suite does not currently have special customizations to support slave pregnancy.`,
-						upgraded: `The master suite has been further upgraded to support fertile slaves and encourage slave pregnancy, providing additional rest areas, better access to amenities, and a dedicated birthing chamber.`,
+						value: 0,
+						upgraded: 1,
+						text: `The master suite does not currently have special customizations to support slave pregnancy.`,
 						link: `Refit the suite to support and encourage slave pregnancy`,
 						cost: 15000 * V.upgradeMultiplierArcology,
-						handler: () => V.PC.skill.engineering += .1,
+						handler: () => {
+							V.PC.skill.engineering += .1;
+
+							App.UI.reload();
+						},
 						prereqs: [
 							() => !!V.seePreg,
 						],
 					},
+					{
+						value: 1,
+						text: `The master suite has been further upgraded to support fertile slaves and encourage slave pregnancy, providing additional rest areas, better access to amenities, and a dedicated birthing chamber.`,
+					},
 				],
 			},
 		];
diff --git a/src/facilities/schoolroom/schoolroom.js b/src/facilities/schoolroom/schoolroom.js
index f9f5a9ba3a3d966aeb87f0de69ae081e761a2843..1050953c74365f0f0b2632d7ff7ade7307c3586d 100644
--- a/src/facilities/schoolroom/schoolroom.js
+++ b/src/facilities/schoolroom/schoolroom.js
@@ -99,35 +99,43 @@ App.Facilities.Schoolroom.schoolroom = class Schoolroom extends App.Facilities.F
 				property: "schoolroomUpgradeSkills",
 				tiers: [
 					{
-						value: 1,
-						base: `${this.facility.nameCaps} inculcates the basic skills necessary to a sex slave.`,
-						upgraded: `${this.facility.nameCaps} provides slaves with some intermediate skills, including a solid foundation in sex, efficient and safe prostitution, and the rudiments of courtesanship.`,
+						value: 0,
+						upgraded: 1,
+						text: `${this.facility.nameCaps} inculcates the basic skills necessary to a sex slave.`,
 						link: `Upgrade the curriculum to cover some intermediate skills`,
 						cost: 10000 * V.upgradeMultiplierArcology,
 						note: ` and increases the effectiveness of ${V.schoolroomName}`,
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} provides slaves with some intermediate skills, including a solid foundation in sex, efficient and safe prostitution, and the rudiments of courtesanship.`,
+					},
 				],
 			},
 			{
 				property: "schoolroomUpgradeLanguage",
 				tiers: [
 					{
-						value: 1,
-						base: `${this.facility.nameCaps} includes only basic language classes in its curriculum.`,
-						upgraded: `${this.facility.nameCaps} boasts state of the art linguistic interfaces that allow it to teach the basics of the arcology's lingua franca with increased success.`,
+						value: 0,
+						upgraded: 1,
+						text: `${this.facility.nameCaps} includes only basic language classes in its curriculum.`,
 						link: `Install advanced linguistic interfaces to efficiently teach the arcology's lingua franca`,
 						cost: 5000 * V.upgradeMultiplierArcology * V.HackingSkillMultiplier,
 						note: ` and increases the effectiveness of ${V.schoolroomName}`,
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} boasts state of the art linguistic interfaces that allow it to teach the basics of the arcology's lingua franca with increased success.`,
+					},
 				],
 			},
 			{
 				property: "schoolroomRemodelBimbo",
 				tiers: [
 					{
-						value: 1,
-						base: `${this.facility.nameCaps} is designed with intelligent slaves in mind and seeks to smarten slaves by providing them with an education.`,
-						upgraded: `${this.facility.nameCaps} is designed with moronic slaves in mind and seeks to dumb down slaves by providing them a confusing, contradictory education that retards decision making skills and undoes existing schooling.`,
+						value: 0,
+						upgraded: 1,
+						text: `${this.facility.nameCaps} is designed with intelligent slaves in mind and seeks to smarten slaves by providing them with an education.`,
 						link: `Redesign the curriculum to undo pesky educations and retard slaves while benefiting the most simple of minds`,
 						cost: 7500 * V.upgradeMultiplierArcology * V.HackingSkillMultiplier,
 						handler: () => V.schoolroomUpgradeRemedial = 0,
@@ -135,10 +143,14 @@ App.Facilities.Schoolroom.schoolroom = class Schoolroom extends App.Facilities.F
 							() => V.arcologies[0].FSIntellectualDependency > 80,
 						],
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} is designed with moronic slaves in mind and seeks to dumb down slaves by providing them a confusing, contradictory education that retards decision making skills and undoes existing schooling.`,
+					},
 					{
 						value: 0,
-						base: `${this.facility.nameCaps} is designed with moronic slaves in mind and seeks to dumb down slaves by providing them a confusing, contradictory education that retards decision making skills and undoes existing schooling.`,
-						upgraded: `${this.facility.nameCaps} is designed with intelligent slaves in mind and seeks to smarten slaves by providing them with an education.`,
+						upgraded: 1,
+						text: `${this.facility.nameCaps} is designed with moronic slaves in mind and seeks to dumb down slaves by providing them a confusing, contradictory education that retards decision making skills and undoes existing schooling.`,
 						link: `Restore the curriculum to the standard`,
 						cost: 7500 * V.upgradeMultiplierArcology * V.HackingSkillMultiplier,
 						handler: () => V.schoolroomUpgradeRemedial = 0,
@@ -146,15 +158,19 @@ App.Facilities.Schoolroom.schoolroom = class Schoolroom extends App.Facilities.F
 							() => V.arcologies[0].FSIntellectualDependency > 80,
 						],
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} is designed with intelligent slaves in mind and seeks to smarten slaves by providing them with an education.`,
+					},
 				],
 			},
 			{
 				property: "schoolroomUpgradeRemedial",
 				tiers: [
 					{
-						value: 1,
-						base: `${this.facility.nameCaps} teaches woefully smart slaves using its modified methods.`,
-						upgraded: `${this.facility.nameCaps} has been upgraded with advanced teaching tools to help even the smartest slave learn at an acceptable pace. Dumb slaves won't learn much faster as a result, but smarties will benefit a great deal.`,
+						value: 0,
+						upgraded: 1,
+						text: `${this.facility.nameCaps} teaches woefully smart slaves using its modified methods.`,
 						link: `Purchase specialized materials to help smart slaves get on the right track`,
 						cost: 5000 * V.upgradeMultiplierArcology * V.HackingSkillMultiplier,
 						note: ` and increases the effectiveness of ${V.schoolroomName}`,
@@ -164,8 +180,15 @@ App.Facilities.Schoolroom.schoolroom = class Schoolroom extends App.Facilities.F
 					},
 					{
 						value: 1,
-						base: `${this.facility.nameCaps} teaches idiots using standard methods.`,
-						upgraded: `${this.facility.nameCaps} has been upgraded with advanced teaching tools to help even the stupidest slave learn at an acceptable pace. Intelligent slaves won't learn much faster as a result, but idiots will benefit a great deal.`,
+						text: `${this.facility.nameCaps} has been upgraded with advanced teaching tools to help even the smartest slave learn at an acceptable pace. Dumb slaves won't learn much faster as a result, but smarties will benefit a great deal.`,
+						prereqs: [
+							() => V.schoolroomRemodelBimbo === 1,
+						],
+					},
+					{
+						value: 0,
+						upgraded: 1,
+						text: `${this.facility.nameCaps} teaches idiots using standard methods.`,
 						link: `Purchase specialized materials to help stupid slaves learn good`,
 						cost: 5000 * V.upgradeMultiplierArcology * V.HackingSkillMultiplier,
 						note: ` and increases the effectiveness of ${V.schoolroomName}`,
@@ -173,6 +196,13 @@ App.Facilities.Schoolroom.schoolroom = class Schoolroom extends App.Facilities.F
 							() => V.schoolroomRemodelBimbo === 0,
 						],
 					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} has been upgraded with advanced teaching tools to help even the stupidest slave learn at an acceptable pace. Intelligent slaves won't learn much faster as a result, but idiots will benefit a great deal.`,
+						prereqs: [
+							() => V.schoolroomRemodelBimbo === 0,
+						],
+					},
 				],
 			},
 		];
diff --git a/src/facilities/servantsQuarters/servantsQuarters.js b/src/facilities/servantsQuarters/servantsQuarters.js
index 3fb0b7267e1f50d153b3d50a1aa9feb3b17c7226..7607828dce2bcd9f011ba17cbbeada82ab8162ed 100644
--- a/src/facilities/servantsQuarters/servantsQuarters.js
+++ b/src/facilities/servantsQuarters/servantsQuarters.js
@@ -96,14 +96,18 @@ App.Facilities.ServantsQuarters.servantsQuarters = class ServantsQuarters extend
 				property: "servantsQuartersUpgradeMonitoring",
 				tiers: [
 					{
-						value: 1,
-						base: `The quarters are standard.`,
-						upgraded: `The quarters have been upgraded with enhanced monitoring systems to make the servants work harder, improving their obedience and efficiency.`,
+						value: 0,
+						upgraded: 1,
+						text: `The quarters are standard.`,
 						link: `Upgrade the monitoring systems to force harder work`,
 						cost: 10000 * V.upgradeMultiplierArcology * V.HackingSkillMultiplier,
 						handler: () => V.PC.skill.hacking += 0.1,
 						note: ` and will increase upkeep costs`,
 					},
+					{
+						value: 1,
+						text: `The quarters have been upgraded with enhanced monitoring systems to make the servants work harder, improving their obedience and efficiency.`,
+					},
 				],
 			},
 		];
diff --git a/src/facilities/spa/spa.js b/src/facilities/spa/spa.js
index 1b5f78fbd20538c0b0f4ea297a1d4b3fd0c3b723..9bb4a8bfdc27d1a78648e767b41173e9f17a0106 100644
--- a/src/facilities/spa/spa.js
+++ b/src/facilities/spa/spa.js
@@ -101,12 +101,16 @@ App.Facilities.Spa.spa = class Spa extends App.Facilities.Facility {
 				property: "spaUpgrade",
 				tiers: [
 					{
-						value: 1,
-						base: `${this.facility.nameCaps} is a standard spa.`,
-						upgraded: `${this.facility.nameCaps} has been upgraded with state of the art temperature treatment options, from hot and cold mineral water pools to baking saunas and dense steam rooms.`,
+						value: 0,
+						upgraded: 1,
+						text: `${this.facility.nameCaps} is a standard spa.`,
 						link: `Upgrade ${V.spaName} with saunas, steam rooms, and mineral water baths`,
 						cost: 1000 * V.upgradeMultiplierArcology,
 						note: ` and increases the effectiveness of ${V.spaName}`,
+					},
+					{
+						value: 1,
+						text: `${this.facility.nameCaps} has been upgraded with state of the art temperature treatment options, from hot and cold mineral water pools to baking saunas and dense steam rooms.`,
 					}
 				],
 			},
diff --git a/src/js/upgrade.js b/src/js/upgrade.js
index 599f0f99d2f7e0e39cd2d8b890ba6b7875041fac..3dae4c386f200df899779eb90c16ab9e9e2c1229 100644
--- a/src/js/upgrade.js
+++ b/src/js/upgrade.js
@@ -12,7 +12,7 @@ App.Upgrade = class Upgrade {
 		/** @private */
 		this._div = document.createElement("div");
 		/** @private @type {Object} */
-		this._object = object;
+		this._object = object || V;
 		/** @private @type {FC.IUpgradeTier[]} */
 		this._tiers = tiers;
 	}
@@ -28,39 +28,30 @@ App.Upgrade = class Upgrade {
 
 		this.tiers.forEach(tier => {
 			const {
-				value, link, base, upgraded, handler, note, prereqs, nodes,
+				value, link, text, upgraded, handler, note, prereqs, nodes,
 			} = tier;
 
-			let cost = Math.trunc(tier.cost) || 0;
-
-			if (!prereqs || prereqs.every(prereq => prereq())) {
-				if (upgraded
-					&& (_.isEqual(V[this.property], value)
-						|| _.isEqual(this._object[this.property], value))) {
-					App.UI.DOM.appendNewElement("div", frag, upgraded);
-				} else {
-					App.UI.DOM.appendNewElement("div", frag, base);
-					App.UI.DOM.appendNewElement("div", frag, App.UI.DOM.link(link, () => {
-						cashX(forceNeg(cost), "capEx");
-
-						if (this._object) {
-							this._object[this.property] = value;
-						} else {
-							V[this.property] = value;
-						}
-
-						if (handler) {
-							handler();
-						}
-
-						this.refresh();
-					}, [], '',
-					`${cost > 0 ? `Costs ${cashFormat(cost)}` : `Free`}${note ? `${note}` : ``}.`),
-					['indent']);
-
-					if (nodes) {
-						App.Events.addNode(frag, nodes);
+			const cost = Math.trunc(tier.cost) || 0;
+
+			if ((!prereqs || prereqs.every(prereq => prereq()))
+				&& _.isEqual(value, this._object[this._property])) {
+				App.UI.DOM.appendNewElement("div", frag, text);
+				App.UI.DOM.appendNewElement("div", frag, App.UI.DOM.link(link, () => {
+					cashX(forceNeg(cost), "capEx");
+
+					this._object[this._property] = upgraded;
+
+					if (handler) {
+						handler();
 					}
+
+					this.refresh();
+				}, [], '',
+				`${cost > 0 ? `Costs ${cashFormat(cost)}` : `Free`}${note ? `${note}` : ``}.`),
+				['indent']);
+
+				if (nodes) {
+					App.Events.addNode(frag, nodes);
 				}
 			}
 		});
@@ -69,7 +60,7 @@ App.Upgrade = class Upgrade {
 	}
 
 	/**
-	 * Renders the facility onscreen.
+	 * Renders the upgrade onscreen.
 	 *
 	 * @returns {HTMLDivElement}
 	 */
@@ -80,7 +71,7 @@ App.Upgrade = class Upgrade {
 	}
 
 	/**
-	 * Refreshes the facility onscreen.
+	 * Refreshes the upgrade onscreen.
 	 *
 	 * @returns {void}
 	 */