diff --git a/src/004-base/facility.js b/src/004-base/facility.js
index 8a73a5b25e5e1201d32b852a44768becdd384fc6..e2c964b78b266485d9de4ced1e28891ab4ce401a 100644
--- a/src/004-base/facility.js
+++ b/src/004-base/facility.js
@@ -384,6 +384,26 @@ App.Entity.Facilities.Facility = class {
 		return this.option("Upgrade" + name);
 	}
 
+	/**
+	 * How is this facility currently decorated?
+	 * @returns {FC.FutureSocietyDeco}
+	 */
+	get decoration() {
+		return (typeof V[this.desc.baseName] === "object") ? V[this.desc.baseName].decoration : V[this.desc.baseName + "Decoration"];
+	}
+
+	/**
+	 * Configure facility decoration
+	 * @param {FC.FutureSocietyDeco} val
+	 */
+	set decoration(val) {
+		if (typeof V[this.desc.baseName] === "object") {
+			V[this.desc.baseName].decoration = val;
+		} else {
+			V[this.desc.baseName + "Decoration"] = val;
+		}
+	}
+
 	/**
 	 * Can this facility host the given slave
 	 * @param {App.Entity.SlaveState} slave
diff --git a/src/futureSocieties/fsDecoration.js b/src/futureSocieties/fsDecoration.js
index 7861241d48ae57bb351a16903a3729b531e4cb72..e55d8887e3cc72fe0057768c2ce798463f60f247 100644
--- a/src/futureSocieties/fsDecoration.js
+++ b/src/futureSocieties/fsDecoration.js
@@ -3,10 +3,6 @@
  */
 App.UI.facilityRedecoration = function() {
 	const el = new DocumentFragment();
-	/**
-	 * @type {Map<string, string>}
-	 */
-	const activeFacilities = new Map([]);
 	const options = new App.UI.OptionsGroup();
 	const arc = V.arcologies[0];
 
@@ -15,53 +11,20 @@ App.UI.facilityRedecoration = function() {
 	const applicableFS = FutureSocieties.activeFSes(arc).filter(name => (arc[name] > 20));
 	const decorationNames = Array.from(applicableFS, FS => FutureSocieties.decorationName(FS)).filter(Boolean);
 
-	if (V.brothel > 0) {
-		activeFacilities.set(V.brothelName, "brothelDecoration");
-	}
-
-	if (V.club > 0) {
-		activeFacilities.set(V.clubName, "clubDecoration");
-	}
-
-	if (V.dairy > 0) {
-		activeFacilities.set(V.dairyName, "dairyDecoration");
-	}
-
-	if (V.farmyard > 0) {
-		activeFacilities.set(V.farmyardName, "farmyardDecoration");
-	}
-
-	if (V.spa > 0) {
-		activeFacilities.set(V.spaName, "spaDecoration");
-	}
-
-	if (V.nursery > 0) {
-		activeFacilities.set(V.nurseryName, "nurseryDecoration");
-	}
-
-	if (V.clinic > 0) {
-		activeFacilities.set(V.clinicName, "clinicDecoration");
-	}
-
-	if (V.schoolroom > 0) {
-		activeFacilities.set(V.schoolroomName, "schoolroomDecoration");
-	}
-
-	if (V.cellblock > 0) {
-		activeFacilities.set(V.cellblockName, "cellblockDecoration");
-	}
-
-	if (V.servantsQuarters > 0) {
-		activeFacilities.set(V.servantsQuartersName, "servantsQuartersDecoration");
-	}
-
-	if (V.arcade > 0) {
-		activeFacilities.set(V.arcadeName, "arcadeDecoration");
-	}
-
-	if (V.masterSuite > 0) {
-		activeFacilities.set(V.masterSuiteName, "masterSuiteDecoration");
-	}
+	const activeFacilities = [
+		App.Entity.facilities.brothel,
+		App.Entity.facilities.club,
+		App.Entity.facilities.dairy,
+		App.Entity.facilities.farmyard,
+		App.Entity.facilities.spa,
+		App.Entity.facilities.nursery,
+		App.Entity.facilities.clinic,
+		App.Entity.facilities.schoolroom,
+		App.Entity.facilities.cellblock,
+		App.Entity.facilities.servantsQuarters,
+		App.Entity.facilities.arcade,
+		App.Entity.facilities.masterSuite
+	].filter(f => f.established);
 
 	// dummy variable to make sure the first option is selected by default
 	const currentSelected = {value: "none"};
@@ -77,10 +40,10 @@ App.UI.facilityRedecoration = function() {
 		let totalCost = 0;
 		if (value === "even") { // Cycles through the list of available FS decorations, and distributes them to facilities round robin style.
 			let i = 0;
-			for (const decoration of activeFacilities.values()) {
-				if (V[decoration] !== decorationNames[i]) {
+			for (const facility of activeFacilities) {
+				if (facility.decoration !== decorationNames[i]) {
 					totalCost += 5000;
-					V[decoration] = decorationNames[i];
+					facility.decoration = decorationNames[i];
 				}
 				i++;
 				if (i >= decorationNames.length) {
@@ -88,11 +51,11 @@ App.UI.facilityRedecoration = function() {
 				}
 			}
 		} else if (value !== "none") {
-			for (const decoration of activeFacilities.values()) {
+			for (const facility of activeFacilities) {
 				if (value !== "standard") {
 					totalCost += 5000;
 				}
-				V[decoration] = value;
+				facility.decoration = value;
 			}
 		}
 		if (totalCost > 0) {
@@ -100,8 +63,8 @@ App.UI.facilityRedecoration = function() {
 		}
 	}).pulldown();
 
-	for (const [name, decoration] of activeFacilities) {
-		options.addOption(`The decoration style of ${name} is`, decoration)
+	for (const facility of activeFacilities) {
+		options.addOption(`The decoration style of ${facility.nameCaps} is`, "decoration", facility)
 			.addValue("Standard", "standard")
 			.addValueList(decorationNames)
 			.addCallbackToEach(value => {
diff --git a/src/futureSocieties/futureSociety.js b/src/futureSocieties/futureSociety.js
index 91021b60b48376800d0a5bc197d91007d1df6018..a170f1a7a5d4a14c9e69e067bdb90deed1aecb28 100644
--- a/src/futureSocieties/futureSociety.js
+++ b/src/futureSocieties/futureSociety.js
@@ -406,47 +406,50 @@ globalThis.FutureSocieties = (function() {
 
 	/* call as FutureSocieties.DecorationCleanup() */
 	function DecorationCleanup() {
-		ValidateFacilityDecoration("brothelDecoration");
-		ValidateFacilityDecoration("dairyDecoration");
-		ValidateFacilityDecoration("clubDecoration");
-		ValidateFacilityDecoration("servantsQuartersDecoration");
-		ValidateFacilityDecoration("schoolroomDecoration");
-		ValidateFacilityDecoration("spaDecoration");
-		ValidateFacilityDecoration("clinicDecoration");
-		ValidateFacilityDecoration("arcadeDecoration");
-		ValidateFacilityDecoration("cellblockDecoration");
-		ValidateFacilityDecoration("masterSuiteDecoration");
-		ValidateFacilityDecoration("nurseryDecoration");
-		ValidateFacilityDecoration("farmyardDecoration");
+		ValidateFacilityDecoration(App.Entity.facilities.brothel);
+		ValidateFacilityDecoration(App.Entity.facilities.dairy);
+		ValidateFacilityDecoration(App.Entity.facilities.club);
+		ValidateFacilityDecoration(App.Entity.facilities.servantsQuarters);
+		ValidateFacilityDecoration(App.Entity.facilities.schoolroom);
+		ValidateFacilityDecoration(App.Entity.facilities.spa);
+		ValidateFacilityDecoration(App.Entity.facilities.clinic);
+		ValidateFacilityDecoration(App.Entity.facilities.arcade);
+		ValidateFacilityDecoration(App.Entity.facilities.cellblock);
+		ValidateFacilityDecoration(App.Entity.facilities.masterSuite);
+		ValidateFacilityDecoration(App.Entity.facilities.nursery);
+		ValidateFacilityDecoration(App.Entity.facilities.farmyard);
 	}
 
 	/** helper function, not callable externally
-	 * @param {string} decoration should be passed as "facilityDecoration" in quotes. For example, ValidateFacilityDecoration("brothelDecoration"). The quotes are important, do not pass it as a story variable.
+	 * @param {App.Entity.Facilities.Facility} facility
 	 */
-	function ValidateFacilityDecoration(decoration) {
+	function ValidateFacilityDecoration(facility) {
 		// Backwards compatibility, do not remove
-		if (V[decoration] === "Hedonism" || V[decoration] === "Hedonistic Decadence") {
-			V[decoration] = "Hedonistic";
-		} else if (V[decoration] === "Repopulation Focus") {
-			V[decoration] = "Repopulationist";
-		} else if (V[decoration] === "Neo Imperialist") {
-			V[decoration] = "Neo-Imperialist";
+		// @ts-ignore BC
+		if (facility.decoration === "Hedonism" || facility.decoration === "Hedonistic Decadence") {
+			facility.decoration = "Hedonistic";
+		// @ts-ignore BC
+		} else if (facility.decoration === "Repopulation Focus") {
+			facility.decoration = "Repopulationist";
+		// @ts-ignore BC
+		} else if (facility.decoration === "Neo Imperialist") {
+			facility.decoration = "Neo-Imperialist";
 		}
 
-		const activeFS = DecoToFSMap.get(V[decoration]); // gets the property name
+		const activeFS = DecoToFSMap.get(facility.decoration); // gets the property name
 
-		if (V[decoration] === "standard") {
+		if (facility.decoration === "standard") {
 			// nothing to do
 		} else if (activeFS === undefined) {
 			// eslint-disable-next-line no-console
-			console.log(`Error: $${decoration} is ${V[decoration]}`);
-			V[decoration] = "standard";
+			console.log(`Error: ${facility.nameCaps} decoration is ${facility.decoration}`);
+			facility.decoration = "standard";
 		} else if (!Number.isFinite(V.arcologies[0][activeFS])) {
 			if (V.arcologies[0][activeFS] !== "unset") {
 				// eslint-disable-next-line no-console
 				console.log(`Error: $arcologies[0].${activeFS} is ${V.arcologies[0][activeFS]}`);
 			}
-			V[decoration] = "standard";
+			facility.decoration = "standard";
 		}
 	}