diff --git a/devTools/types/FC/data.d.ts b/devTools/types/FC/data.d.ts
index c6efdfe4f8217a064dbdd580d08b11e422b5de85..48e6a8e94a673b25ced0e5a153d3eb5d24006772 100644
--- a/devTools/types/FC/data.d.ts
+++ b/devTools/types/FC/data.d.ts
@@ -62,15 +62,6 @@ declare namespace FC {
 			manager: ManagerJobDesc | null;
 		}
 
-		interface ProstheticDefinition {
-			name: string;
-			adjust: number;
-			craft: number;
-			research: number;
-			level: number;
-			costs: number;
-		}
-
 		namespace SlaveSummary {
 			interface SmartPiercing {
 				setting: {
diff --git a/devTools/types/SugarCubeExtensions.d.ts b/devTools/types/SugarCubeExtensions.d.ts
index 571c21cc390dc5a4c454f388b7114b043b622cbb..c26ed89e0664e6f849bec9fe226bc18c5ad614d9 100644
--- a/devTools/types/SugarCubeExtensions.d.ts
+++ b/devTools/types/SugarCubeExtensions.d.ts
@@ -43,7 +43,6 @@ declare module "twine-sugarcube" {
 
 		baseNationalities: string[];
 		paraphiliaList: string[]; // actually FC.SexualFlaw[]
-		prosthetics: Record<string, FC.Data.ProstheticDefinition>;
 	}
 
 	// These are SugarCube private APIs used in the project
diff --git a/js/003-data/miscData.js b/js/003-data/miscData.js
index 115fde838b2bcd7d4644101628380081f33d1681..e47f9f1b2aa6c509f7d77e359f31fbfa5e6f6189 100644
--- a/js/003-data/miscData.js
+++ b/js/003-data/miscData.js
@@ -1,133 +1,4 @@
 App.Data.misc = {
-	/* prosthetic stuff */
-	/* do not change order, order = display order */
-	prostheticIDs: ["interfaceP1", "interfaceP2", "basicL", "sexL", "beautyL", "combatL", "cyberneticL", "ocular", "cochlear", "electrolarynx", "interfaceTail", "modT", "sexT", "combatT", "erectile"],
-
-	/* .name is expected to be singular and uncapitalized; 10 = 1 week without upgrades */
-	prosthetics: {
-		interfaceP1: {
-			name: "basic prosthetic interface",
-			adjust: 40,
-			craft: 50,
-			research: 100,
-			level: 1,
-			costs: 5000
-		},
-		interfaceP2: {
-			name: "advanced prosthetic interface",
-			adjust: 80,
-			craft: 80,
-			research: 160,
-			level: 2,
-			costs: 10000
-		},
-		basicL: {
-			name: "set of basic prosthetic limbs",
-			adjust: 40,
-			craft: 40,
-			research: 80,
-			level: 1,
-			costs: 7000
-		},
-		sexL: {
-			name: "set of advanced sex limbs",
-			adjust: 60,
-			craft: 70,
-			research: 140,
-			level: 2,
-			costs: 15000
-		},
-		beautyL: {
-			name: "set of advanced beauty limbs",
-			adjust: 60,
-			craft: 70,
-			research: 140,
-			level: 2,
-			costs: 15000
-		},
-		combatL: {
-			name: "set of advanced combat limbs",
-			adjust: 60,
-			craft: 70,
-			research: 140,
-			level: 2,
-			costs: 15000
-		},
-		cyberneticL: {
-			name: "set of cybernetic limbs",
-			adjust: 80,
-			craft: 150,
-			research: 250,
-			level: 3,
-			costs: 25000
-		},
-		ocular: {
-			name: "ocular implant",
-			adjust: 60,
-			craft: 80,
-			research: 150,
-			level: 2,
-			costs: 20000
-		},
-		cochlear: {
-			name: "cochlear implant",
-			adjust: 40,
-			craft: 40,
-			research: 80,
-			level: 1,
-			costs: 5000
-		},
-		electrolarynx: {
-			name: "electrolarynx",
-			adjust: 40,
-			craft: 40,
-			research: 40,
-			level: 1,
-			costs: 5000
-		},
-		interfaceTail: {
-			name: "prosthetic tail interface",
-			adjust: 50,
-			craft: 60,
-			research: 120,
-			level: 1,
-			costs: 5000
-		},
-		modT: {
-			name: "modular tail",
-			adjust: 40,
-			craft: 40,
-			research: 80,
-			level: 1,
-			costs: 5000
-		},
-		combatT: {
-			name: "combat tail",
-			adjust: 70,
-			craft: 70,
-			research: 140,
-			level: 2,
-			costs: 15000
-		},
-		sexT: {
-			name: "pleasure tail",
-			adjust: 60,
-			craft: 60,
-			research: 120,
-			level: 2,
-			costs: 10000
-		},
-		erectile: {
-			name: "erectile implant",
-			adjust: 40,
-			craft: 50,
-			research: 100,
-			level: 1,
-			costs: 7000
-		}
-	},
-	/* prosthetic stuff end */
-
 	/** * pregmod exclusive start ***/
 
 	/* Double 20 week point for human data — not a bug. Do not change! (It's transfer point in data source, from data without CTR to with CTR) */
diff --git a/js/003-data/slaveProstheticsData.js b/js/003-data/slaveProstheticsData.js
new file mode 100644
index 0000000000000000000000000000000000000000..e4942a7761506d4dce09c5e3378be6cf26c2147b
--- /dev/null
+++ b/js/003-data/slaveProstheticsData.js
@@ -0,0 +1,146 @@
+/**
+ * do not change order, order = display order
+ *
+ * @type {string[]}
+ */
+App.Data.prostheticIDs =
+	["interfaceP1", "interfaceP2", "basicL", "sexL", "beautyL", "combatL", "cyberneticL", "ocular", "cochlear",
+		"electrolarynx", "interfaceTail", "modT", "sexT", "combatT", "erectile"];
+
+/**
+ * @typedef {object} prosthetics
+ * @property {string} name expected to singular and lowercase
+ * @property {number} adjust time required to adjust an existing prosthetic to a slave
+ * @property {number} craft time required to create a new, not to  a specific slave fitted prosthetic
+ * @property {number} research time required to research the prosthetic
+ * @property {number} level minimum level the prosthetics lab needs to research/craft the prosthetic
+ * @property {number} costs cash required to buy the prosthetic
+ *
+ * For all time values: 10 = 1 week without upgrades
+ */
+
+/**
+ * @type {Object<string, prosthetics>}
+ */
+App.Data.prosthetics = {
+	interfaceP1: {
+		name: "basic prosthetic interface",
+		adjust: 40,
+		craft: 50,
+		research: 100,
+		level: 1,
+		costs: 5000
+	},
+	interfaceP2: {
+		name: "advanced prosthetic interface",
+		adjust: 80,
+		craft: 80,
+		research: 160,
+		level: 2,
+		costs: 10000
+	},
+	basicL: {
+		name: "set of basic prosthetic limbs",
+		adjust: 40,
+		craft: 40,
+		research: 80,
+		level: 1,
+		costs: 7000
+	},
+	sexL: {
+		name: "set of advanced sex limbs",
+		adjust: 60,
+		craft: 70,
+		research: 140,
+		level: 2,
+		costs: 15000
+	},
+	beautyL: {
+		name: "set of advanced beauty limbs",
+		adjust: 60,
+		craft: 70,
+		research: 140,
+		level: 2,
+		costs: 15000
+	},
+	combatL: {
+		name: "set of advanced combat limbs",
+		adjust: 60,
+		craft: 70,
+		research: 140,
+		level: 2,
+		costs: 15000
+	},
+	cyberneticL: {
+		name: "set of cybernetic limbs",
+		adjust: 80,
+		craft: 150,
+		research: 250,
+		level: 3,
+		costs: 25000
+	},
+	ocular: {
+		name: "ocular implant",
+		adjust: 60,
+		craft: 80,
+		research: 150,
+		level: 2,
+		costs: 20000
+	},
+	cochlear: {
+		name: "cochlear implant",
+		adjust: 40,
+		craft: 40,
+		research: 80,
+		level: 1,
+		costs: 5000
+	},
+	electrolarynx: {
+		name: "electrolarynx",
+		adjust: 40,
+		craft: 40,
+		research: 40,
+		level: 1,
+		costs: 5000
+	},
+	interfaceTail: {
+		name: "prosthetic tail interface",
+		adjust: 50,
+		craft: 60,
+		research: 120,
+		level: 1,
+		costs: 5000
+	},
+	modT: {
+		name: "modular tail",
+		adjust: 40,
+		craft: 40,
+		research: 80,
+		level: 1,
+		costs: 5000
+	},
+	combatT: {
+		name: "combat tail",
+		adjust: 70,
+		craft: 70,
+		research: 140,
+		level: 2,
+		costs: 15000
+	},
+	sexT: {
+		name: "pleasure tail",
+		adjust: 60,
+		craft: 60,
+		research: 120,
+		level: 2,
+		costs: 10000
+	},
+	erectile: {
+		name: "erectile implant",
+		adjust: 40,
+		craft: 50,
+		research: 100,
+		level: 1,
+		costs: 7000
+	}
+};
diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js
index 1cdba489fbce084ca2980e514f5525f9e7424090..ceaf0db964d84494f81010a21a251a0e4ffd3450 100644
--- a/src/data/backwardsCompatibility/backwardsCompatibility.js
+++ b/src/data/backwardsCompatibility/backwardsCompatibility.js
@@ -1777,7 +1777,7 @@ App.Update.oldVersions = function(node) {
 		if (jQuery.isEmptyObject(V.prosthetics)) {
 			if (jQuery.isEmptyObject(V.stockpile)) {
 				V.prosthetics = {};
-				setup.prostheticIDs.forEach(function(id) {
+				App.Data.prostheticIDs.forEach(function(id) {
 					V.prosthetics[id] = {amount: 0, research: 0};
 				});
 			} else {
diff --git a/src/endWeek/labReport.js b/src/endWeek/labReport.js
index f32bf642cc28a4131be1ab6f82623e80de1a9084..dfbeed085d39e2a8504febc7d51d1c47e3271dee 100644
--- a/src/endWeek/labReport.js
+++ b/src/endWeek/labReport.js
@@ -18,24 +18,24 @@ App.EndWeek.labReport = function() {
 				} else if (work < task.workLeft) {
 					task.workLeft -= work;
 					work = 0;
-					r.push(`The lab continues ${task.type === "research" ? "research" : "work"} on <span class="yellow">${addA(setup.prosthetics[task.id].name)}.</span> It will take approximately ${numberWithPluralNonZero(Math.floor(task.workLeft / V.researchLab.speed) + 1, "week")} to complete.`);
+					r.push(`The lab continues ${task.type === "research" ? "research" : "work"} on <span class="yellow">${addA(App.Data.prosthetics[task.id].name)}.</span> It will take approximately ${numberWithPluralNonZero(Math.floor(task.workLeft / V.researchLab.speed) + 1, "week")} to complete.`);
 				} else {
 					work -= task.workLeft;
 					r.push(`Your lab staff have <span class="green">completed</span> their`);
 					switch (task.type) {
 						case "research":
 							V.prosthetics[task.id].research = 1;
-							r.push(`${setup.prosthetics[task.id].name} research project.`);
+							r.push(`${App.Data.prosthetics[task.id].name} research project.`);
 							break;
 						case "craft":
 							V.prosthetics[task.id].amount += 1;
-							r.push(`${setup.prosthetics[task.id].name} construction project.`);
+							r.push(`${App.Data.prosthetics[task.id].name} construction project.`);
 							break;
 						case "craftFit":
 							task.workLeft = 0;
 							V.adjustProsthetics.push(task);
 							V.adjustProstheticsCompleted++;
-							r.push(`project to construct ${addA(setup.prosthetics[task.id].name)} for ${SlaveFullName(getSlave(task.slaveID))}.`);
+							r.push(`project to construct ${addA(App.Data.prosthetics[task.id].name)} for ${SlaveFullName(getSlave(task.slaveID))}.`);
 							break;
 					}
 					V.researchLab.tasks.shift();
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 2aad4145719a1fd06fff7c34499655d220ee14c2..c11306c4ec50e275ba67daff4711b3d1cbd5e0a8 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -41,7 +41,7 @@ You should have received a copy of the GNU General Public License along with thi
 
 <<run assistant.object()>>
 <<run repX(1000, "event")>>
-<<run setup.prostheticIDs.forEach(function(id) {
+<<run App.Data.prostheticIDs.forEach(function(id) {
 	$prosthetics[id] = {amount: 0, research: 0};
 })>>
 <<set $JobIDMap = makeJobIdMap()>>
diff --git a/src/interaction/main/mainLinks.js b/src/interaction/main/mainLinks.js
index dfab76fb1dda51647360d6904af8d7f5e6465cea..2c025b2bae3059510aba92ae98b74c37f660bc0b 100644
--- a/src/interaction/main/mainLinks.js
+++ b/src/interaction/main/mainLinks.js
@@ -189,7 +189,7 @@ App.UI.View.mainLinks = function() {
 				if (V.adjustProsthetics[j].workLeft <= 0) {
 					const div = document.createElement("div");
 					div.classList.add("yellow");
-					div.append(`The lab has completed ${addA(setup.prosthetics[V.adjustProsthetics[j].id].name)} for `,
+					div.append(`The lab has completed ${addA(App.Data.prosthetics[V.adjustProsthetics[j].id].name)} for `,
 						App.UI.DOM.makeElement("span", App.UI.DOM.link(SlaveFullName(slave), () => { V.AS = slave.ID; }, [], "Slave Interact"), "clear-formatting"),
 						" which is ready to be attached.");
 					fragment.append(div);
diff --git a/src/interaction/prostheticConfig.tw b/src/interaction/prostheticConfig.tw
index 12d06a338c6179b92aff4d51c59c66a7d9000f0f..84155c0678e9682f25e8d0802a2565d27daec53d 100644
--- a/src/interaction/prostheticConfig.tw
+++ b/src/interaction/prostheticConfig.tw
@@ -293,12 +293,12 @@ This room is lined with shelves and cabinets; it could be easily mistaken for a
 		<</if>>
 	</div>
 
-<<for _p range setup.prostheticIDs>>
+<<for _p range App.Data.prostheticIDs>>
 	<<if _p != "erectile">> /* exclude erectile implant */
-		<div><<= capFirstChar(setup.prosthetics[_p].name)>></div>
+		<div><<= capFirstChar(App.Data.prosthetics[_p].name)>></div>
 		<<if $adjustProsthetics.findIndex(function(p) {return p.id == _p && p.slaveID == getSlave($AS).ID}) != -1 || $researchLab.tasks.findIndex(function(p) {return p.type == "craftFit" && p.id == _p && p.slaveID == getSlave($AS).ID}) != -1>>
 			<div class="full">//Currently being fitted to $him.//</div>
-		<<elseif setup.prosthetics[_p].level > $prostheticsUpgrade>>
+		<<elseif App.Data.prosthetics[_p].level > $prostheticsUpgrade>>
 			<div class="full">//Better contracts are needed to buy these.//</div>
 		<<elseif isProstheticAvailable(getSlave($AS), _p)>>
 			<div class="full">//Completed.//</div>
@@ -307,11 +307,11 @@ This room is lined with shelves and cabinets; it could be easily mistaken for a
 			<div>
 				<<if $prosthetics[_p].amount > 0>>
 					<<link "From storage" "Prosthetics Configuration">>
-						<<set $adjustProsthetics.push({id: _p, workLeft: setup.prosthetics[_p].adjust, slaveID: getSlave($AS).ID}), $prosthetics[_p].amount -= 1>>
+						<<set $adjustProsthetics.push({id: _p, workLeft: App.Data.prosthetics[_p].adjust, slaveID: getSlave($AS).ID}), $prosthetics[_p].amount -= 1>>
 					<</link>>
 				<<else>>
-					<<link "<<= cashFormat(setup.prosthetics[_p].costs)>>" "Prosthetics Configuration">>
-						<<set $adjustProsthetics.push({id: _p, workLeft: setup.prosthetics[_p].adjust, slaveID: getSlave($AS).ID}), cashX(forceNeg(setup.prosthetics[_p].costs), "slaveMod", getSlave($AS))>>
+					<<link "<<= cashFormat(App.Data.prosthetics[_p].costs)>>" "Prosthetics Configuration">>
+						<<set $adjustProsthetics.push({id: _p, workLeft: App.Data.prosthetics[_p].adjust, slaveID: getSlave($AS).ID}), cashX(forceNeg(App.Data.prosthetics[_p].costs), "slaveMod", getSlave($AS))>>
 					<</link>>
 				<</if>>
 			</div>
@@ -322,7 +322,7 @@ This room is lined with shelves and cabinets; it could be easily mistaken for a
 							<<set $researchLab.tasks.push({
 								type: "craftFit",
 								id: _p,
-								workLeft: (setup.prosthetics[_p].adjust + setup.prosthetics[_p].craft) / 1.5,
+								workLeft: (App.Data.prosthetics[_p].adjust + App.Data.prosthetics[_p].craft) / 1.5,
 								slaveID: $AS})>>
 							/* 1.5: longer than adjust, but faster than adjust+craft. */
 						<</link>>
@@ -331,12 +331,12 @@ This room is lined with shelves and cabinets; it could be easily mistaken for a
 				<div style="text-align:right">
 					<<if $researchLab.speed >= 300 && $prosthetics[_p].research > 0>> /* max speed */
 						<<if $prosthetics[_p].amount > 0>>
-							<<link "From storage: <<= cashFormat(setup.prosthetics[_p].adjust * 50)>>" "Prosthetics Configuration">>
-								<<set cashX(forceNeg(setup.prosthetics[_p].costs * 1.5), "slaveMod", getSlave($AS)), addProsthetic(getSlave($AS), _p)>>
+							<<link "From storage: <<= cashFormat(App.Data.prosthetics[_p].adjust * 50)>>" "Prosthetics Configuration">>
+								<<set cashX(forceNeg(App.Data.prosthetics[_p].costs * 1.5), "slaveMod", getSlave($AS)), addProsthetic(getSlave($AS), _p)>>
 							<</link>>
 						<<else>>
-							<<link "<<= cashFormat(setup.prosthetics[_p].costs + setup.prosthetics[_p].adjust * 100)>>" "Prosthetics Configuration">>
-								<<set cashX(forceNeg(setup.prosthetics[_p].costs + setup.prosthetics[_p].adjust * 100), "slaveMod", getSlave($AS)), addProsthetic(getSlave($AS), _p)>>
+							<<link "<<= cashFormat(App.Data.prosthetics[_p].costs + App.Data.prosthetics[_p].adjust * 100)>>" "Prosthetics Configuration">>
+								<<set cashX(forceNeg(App.Data.prosthetics[_p].costs + App.Data.prosthetics[_p].adjust * 100), "slaveMod", getSlave($AS)), addProsthetic(getSlave($AS), _p)>>
 							<</link>>
 						<</if>>
 					<</if>>
@@ -509,7 +509,7 @@ This room is lined with shelves and cabinets; it could be easily mistaken for a
 			<br><br>Since you already have prepared limbs for $him you might as well attach them while you are working on $him:<br>
 			<<set _first = 0>>
 		<</if>>
-		<<link "Attach <<= addA(setup.prosthetics.basicL.name)>>">>
+		<<link "Attach <<= addA(App.Data.prosthetics.basicL.name)>>">>
 			<<set removeLimbs(getSlave($AS), "all"), attachLimbs(getSlave($AS), "all", 2), $prostheticsConfig = "basicPLimbs">>
 			<<replace #attach>><br><br><<include "Prosthetics Configuration">><<set $nextLink = "Remote Surgery">><</replace>>
 		<</link>>
@@ -520,7 +520,7 @@ This room is lined with shelves and cabinets; it could be easily mistaken for a
 			<br><br>Since you already have prepared limbs for $him you might as well attach them while you are working on $him:<br>
 			<<set _first = 0>>
 		<</if>>
-		<<link "Attach <<= addA(setup.prosthetics.sexL.name)>>">>
+		<<link "Attach <<= addA(App.Data.prosthetics.sexL.name)>>">>
 			<<set removeLimbs(getSlave($AS), "all"), attachLimbs(getSlave($AS), "all", 3), $prostheticsConfig = "sexPLimbs">>
 			<<replace #attach>><br><br><<include "Prosthetics Configuration">><<set $nextLink = "Remote Surgery">><</replace>>
 		<</link>>
@@ -531,7 +531,7 @@ This room is lined with shelves and cabinets; it could be easily mistaken for a
 			<br><br>Since you already have prepared limbs for $him you might as well attach them while you are working on $him:<br>
 			<<set _first = 0>>
 		<</if>>
-		<<link "Attach <<= addA(setup.prosthetics.beautyL.name)>>">>
+		<<link "Attach <<= addA(App.Data.prosthetics.beautyL.name)>>">>
 			<<set removeLimbs(getSlave($AS), "all"), attachLimbs(getSlave($AS), "all", 4), $prostheticsConfig = "beautyPLimbs">>
 			<<replace #attach>><br><br><<include "Prosthetics Configuration">><<set $nextLink = "Remote Surgery">><</replace>>
 		<</link>>
@@ -542,7 +542,7 @@ This room is lined with shelves and cabinets; it could be easily mistaken for a
 			<br><br>Since you already have prepared limbs for $him you might as well attach them while you are working on $him:<br>
 			<<set _first = 0>>
 		<</if>>
-		<<link "Attach <<= addA(setup.prosthetics.combatL.name)>>">>
+		<<link "Attach <<= addA(App.Data.prosthetics.combatL.name)>>">>
 			<<set removeLimbs(getSlave($AS), "all"), attachLimbs(getSlave($AS), "all", 5), $prostheticsConfig = "combatPLimbs">>
 			<<replace #attach>><br><br><<include "Prosthetics Configuration">><<set $nextLink = "Remote Surgery">><</replace>>
 		<</link>>
@@ -554,7 +554,7 @@ This room is lined with shelves and cabinets; it could be easily mistaken for a
 				<br><br>Since you already have prepared limbs for $him you might as well attach them while you are working on $him:<br>
 				<<set _first = 0>>
 			<</if>>
-			<<link "Attach <<= addA(setup.prosthetics.cyberneticL.name)>>" "Prosthetics Configuration">>
+			<<link "Attach <<= addA(App.Data.prosthetics.cyberneticL.name)>>" "Prosthetics Configuration">>
 				<<set removeLimbs(getSlave($AS), "all"), attachLimbs(getSlave($AS), "all", 6), $prostheticsConfig = "cyberPLimbs">>
 				<<replace #attach>><br><br><<include "Prosthetics Configuration">><<set $nextLink = "Remote Surgery">><</replace>>
 			<</link>>
diff --git a/src/interaction/prostheticLab.tw b/src/interaction/prostheticLab.tw
index d79406219171cdbe75c9cb7732cc43e0a8073730..2335fd2f8a1ed2f2937cfde19f31bf17da4c2c6b 100644
--- a/src/interaction/prostheticLab.tw
+++ b/src/interaction/prostheticLab.tw
@@ -13,7 +13,7 @@
 	<<for _p range $adjustProsthetics>>
 		<<if _p.workLeft > 0>>
 			<div class="indent">
-				<<= capFirstChar(setup.prosthetics[_p.id].name)>> for <<= SlaveFullName($slaves[$slaveIndices[_p.slaveID]])>>
+				<<= capFirstChar(App.Data.prosthetics[_p.id].name)>> for <<= SlaveFullName($slaves[$slaveIndices[_p.slaveID]])>>
 			</div>
 		<</if>>
 	<</for>>
@@ -161,7 +161,7 @@
 				@@.error;Error: Unknown $researchLab.tasks[].type: $researchLab.tasks[_i].type@@
 			<</switch>>
 			<<set _j += $researchLab.tasks[_i].workLeft>>
-			@@.noteworthy;<<= capFirstChar(setup.prosthetics[$researchLab.tasks[_i].id].name)>>@@.
+			@@.noteworthy;<<= capFirstChar(App.Data.prosthetics[$researchLab.tasks[_i].id].name)>>@@.
 			<<if $researchLab.speed > 0>>
 				Finished in approximately <<= (Math.floor(_j / $researchLab.speed) + 1)>> week(s).
 			<</if>>
@@ -188,19 +188,19 @@
 	<h3>Research</h3>
 
 	Available research projects:
-	<<for _p range setup.prostheticIDs>>
+	<<for _p range App.Data.prostheticIDs>>
 		<<if $prosthetics[_p].research == 0>>
 			<<if _p != "erectile">> /*excludes erectile*/
 			<div class="indent">
-			<<if setup.prosthetics[_p].level <= $prostheticsUpgrade>>
+			<<if App.Data.prosthetics[_p].level <= $prostheticsUpgrade>>
 				<<capture _p>>
-				<<link "Reverse engineer <<= addA(setup.prosthetics[_p].name)>>" "Prosthetic Lab">>
-					<<set cashX(forceNeg(setup.prosthetics[_p].costs), "labResearch"), $prosthetics[_p].research = -1, $researchLab.tasks.push({type: "research", id: _p, workLeft: setup.prosthetics[_p].research})>>
+				<<link "Reverse engineer <<= addA(App.Data.prosthetics[_p].name)>>" "Prosthetic Lab">>
+					<<set cashX(forceNeg(App.Data.prosthetics[_p].costs), "labResearch"), $prosthetics[_p].research = -1, $researchLab.tasks.push({type: "research", id: _p, workLeft: App.Data.prosthetics[_p].research})>>
 				<</link>>
 				<</capture>>
-					//Costs <<= cashFormat(setup.prosthetics[_p].costs)>> of initial investment.//
+					//Costs <<= cashFormat(App.Data.prosthetics[_p].costs)>> of initial investment.//
 			<<else>>
-				//You need better contracts to get the required research material for reverse engineering <<= addA(setup.prosthetics[_p].name)>>.//
+				//You need better contracts to get the required research material for reverse engineering <<= addA(App.Data.prosthetics[_p].name)>>.//
 			<</if>>
 			</div>
 			<</if>>
@@ -210,13 +210,13 @@
 	<h3>Manufacture</h3>
 
 	Available building projects:
-	<<for _p range setup.prostheticIDs>>
+	<<for _p range App.Data.prostheticIDs>>
 		<<if $prosthetics[_p].research == 1>>
 			<<if _p != "erectile">> /*excludes erectile*/
 			<div class="indent">
 			<<capture _p>>
-			<<link "Build <<= addA(setup.prosthetics[_p].name)>>" "Prosthetic Lab">>
-				<<set $researchLab.tasks.push({type: "craft", id: _p, workLeft: setup.prosthetics[_p].craft})>>
+			<<link "Build <<= addA(App.Data.prosthetics[_p].name)>>" "Prosthetic Lab">>
+				<<set $researchLab.tasks.push({type: "craft", id: _p, workLeft: App.Data.prosthetics[_p].craft})>>
 			<</link>>
 			<</capture>>
 			</div>
diff --git a/src/js/SlaveState.js b/src/js/SlaveState.js
index 879e7b183a43f00e64cc41cb84f82cd8048677e5..a17231211b49c87fe7148ca4e46c2a79127a8755 100644
--- a/src/js/SlaveState.js
+++ b/src/js/SlaveState.js
@@ -2488,7 +2488,7 @@ App.Entity.SlaveState = class SlaveState {
 		 * Array that holds a slaves fitted prosthetics. Objects are used to ensure easier expansion later (tattoos for limbs and similar).
 		 *
 		 * Elements of the array should be objects.
-		 * * .id: ID of the prosthetic, see setup.prostheticIDs
+		 * * .id: ID of the prosthetic, see App.Data.prostheticIDs
 		 * @type {Array.<{id:string}>} */
 		this.readyProsthetics = [];
 		/** */
diff --git a/src/npc/children/ChildState.js b/src/npc/children/ChildState.js
index 3451fbc14378d62a84630ab428ceb4f5c49a8f6a..8694e2f4ae32de76817984da7aa489f580f354a8 100644
--- a/src/npc/children/ChildState.js
+++ b/src/npc/children/ChildState.js
@@ -1810,7 +1810,7 @@ App.Facilities.Nursery.ChildState = class ChildState {
 		 * Array that holds a slaves fitted prosthetics. Objects are used to ensure easier expansion later (tattoos for limbs and similar).
 		 *
 		 * Elements of the array should be objects.
-		 * * .id: ID of the prosthetic, see setup.prostheticIDs
+		 * * .id: ID of the prosthetic, see App.Data.prostheticIDs
 		 * @type {Array.<{id:string}>} */
 		this.readyProsthetics = [];
 		/**  */
diff --git a/src/uncategorized/multiImplant.tw b/src/uncategorized/multiImplant.tw
index edf763e58a6842ec8f3d79c8ee84cdacb8dd70f0..efea5291c3ccd01f0287538b5602b6aeeccc1c9c 100644
--- a/src/uncategorized/multiImplant.tw
+++ b/src/uncategorized/multiImplant.tw
@@ -95,34 +95,34 @@ that are ready be sent down.
 					<<set surgeryDamage(getSlave($AS), 20), $surgeryType = "ocular implant">>
 					<<includeDOM App.UI.SlaveInteract.surgeryDegradation(getSlave($AS))>>
 				<<else>>
-					//Since $he has working eyes the <<= setup.prosthetics.ocular.name>> will be put into storage.//
+					//Since $he has working eyes the <<= App.Data.prosthetics.ocular.name>> will be put into storage.//
 				<</if>>
 			<<case "cochlear">>
 				<<if getSlave($AS).hears != 0>>
 					<<set getSlave($AS).earImplant = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 20), $surgeryType = "cochlear implant">>
 					<<includeDOM App.UI.SlaveInteract.surgeryDegradation(getSlave($AS))>>
 				<<else>>
-					//Since $he has working ears the <<= setup.prosthetics.cochlear.name>> will be put into storage.//
+					//Since $he has working ears the <<= App.Data.prosthetics.cochlear.name>> will be put into storage.//
 				<</if>>
 			<<case "electrolarynx">>
 				<<if getSlave($AS).voice <= 0>>
 					<<set getSlave($AS).electrolarynx = 1, getSlave($AS).voice = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 20), $surgeryType = "electrolarynx">>
 					<<includeDOM App.UI.SlaveInteract.surgeryDegradation(getSlave($AS))>>
 				<<else>>
-					//Since $he has a voice the <<= setup.prosthetics.electrolarynx.name>> will be put into storage.//
+					//Since $he has a voice the <<= App.Data.prosthetics.electrolarynx.name>> will be put into storage.//
 				<</if>>
 			<<case "interfaceP1">>
 				<<if hasAnyNaturalLimbs(getSlave($AS))>>
-					//Since $he has at least one healthy limb the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.//
+					//Since $he has at least one healthy limb the <<= App.Data.prosthetics.interfaceP1.name>> will be put into storage.//
 				<<elseif getSlave($AS).PLimb == 2>>
-					//Since $he already has <<= addA(setup.prosthetics.interfaceP2.name)>> installed the <<= setup.prosthetics.interfaceP1.name>> will be put into storage.//
+					//Since $he already has <<= addA(App.Data.prosthetics.interfaceP2.name)>> installed the <<= App.Data.prosthetics.interfaceP1.name>> will be put into storage.//
 				<<else>>
 					<<set getSlave($AS).PLimb = 1, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 20), $surgeryType = "PLimb interface1">>
 					<<includeDOM App.UI.SlaveInteract.surgeryDegradation(getSlave($AS))>>
 				<</if>>
 			<<case "interfaceP2">>
 				<<if hasAllNaturalLimbs(getSlave($AS))>>
-					//Since $he has no amputated limbs the <<= setup.prosthetics.interfaceP2.name>> will be put into storage.//
+					//Since $he has no amputated limbs the <<= App.Data.prosthetics.interfaceP2.name>> will be put into storage.//
 				<<elseif getSlave($AS).PLimb == 1>>
 					<<set getSlave($AS).PLimb = 2, cashX(forceNeg($surgeryCost), "slaveSurgery", getSlave($AS)), surgeryDamage(getSlave($AS), 5), $surgeryType = "PLimb interface3">>
 					<<includeDOM App.UI.SlaveInteract.surgeryDegradation(getSlave($AS))>>
@@ -132,39 +132,39 @@ that are ready be sent down.
 				<</if>>
 			<<case "basicL" "sexL" "beautyL" "combatL" "cyberneticL">>
 				<<if getSlave($AS).fuckdoll != 0>>
-					//Since a Fuckdoll can't use prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
+					//Since a Fuckdoll can't use prosthetic limbs the <<= App.Data.prosthetics[_p.id].name>> will be put into storage.//
 				<<elseif hasAllNaturalLimbs(getSlave($AS))>>
-					//Since $he needs an amputated limb to attach prosthetics the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
+					//Since $he needs an amputated limb to attach prosthetics the <<= App.Data.prosthetics[_p.id].name>> will be put into storage.//
 				<<elseif getSlave($AS).PLimb == 0>>
-					//Since $he must have a prosthetic interface installed to attach prosthetic limbs the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
+					//Since $he must have a prosthetic interface installed to attach prosthetic limbs the <<= App.Data.prosthetics[_p.id].name>> will be put into storage.//
 				<<else>>
 					<<if _p.id == "basicL">>
 						<<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 2)>>
 						<<if _change>>
 							<<= App.Desc.limbChange().reaction(getSlave($AS), _state)>>
 						<<else>>
-							//Since $he already has more advanced prosthetic limbs attached the <<= setup.prosthetics.basicL.name>> will be put into storage.//
+							//Since $he already has more advanced prosthetic limbs attached the <<= App.Data.prosthetics.basicL.name>> will be put into storage.//
 						<</if>>
 					<<elseif _p.id == "sexL">>
 						<<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 3)>>
 						<<if _change>>
 							<<= App.Desc.limbChange().reaction(getSlave($AS), _state)>>
 						<<else>>
-							//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.sexL.name>> will be put into storage.//
+							//Since $he already has advanced prosthetic limbs attached the <<= App.Data.prosthetics.sexL.name>> will be put into storage.//
 						<</if>>
 					<<elseif _p.id == "beautyL">>
 						<<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 4)>>
 						<<if _change>>
 							<<= App.Desc.limbChange().reaction(getSlave($AS), _state)>>
 						<<else>>
-							//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.beautyL.name>> will be put into storage.//
+							//Since $he already has advanced prosthetic limbs attached the <<= App.Data.prosthetics.beautyL.name>> will be put into storage.//
 						<</if>>
 					<<elseif _p.id == "combatL">>
 						<<set _state = App.Desc.limbChange().currentLimbs(getSlave($AS)), _change = upgradeLimbs(getSlave($AS), 5)>>
 						<<if _change>>
 							<<= App.Desc.limbChange().reaction(getSlave($AS), _state)>>
 						<<else>>
-							//Since $he already has advanced prosthetic limbs attached the <<= setup.prosthetics.combatL.name>> will be put into storage.//
+							//Since $he already has advanced prosthetic limbs attached the <<= App.Data.prosthetics.combatL.name>> will be put into storage.//
 						<</if>>
 					<<else>>
 						<<if getSlave($AS).PLimb == 2>>
@@ -173,7 +173,7 @@ that are ready be sent down.
 								<<= App.Desc.limbChange().reaction(getSlave($AS), _state)>>
 							<</if>>
 						<<else>>
-							//Since $he must have <<= addA(setup.prosthetics.interfaceP2.name)>> installed to attach cybernetic limbs the <<= setup.prosthetics.cyberneticL.name>> will be put into storage.//
+							//Since $he must have <<= addA(App.Data.prosthetics.interfaceP2.name)>> installed to attach cybernetic limbs the <<= App.Data.prosthetics.cyberneticL.name>> will be put into storage.//
 						<</if>>
 					<</if>>
 				<</if>>
@@ -182,11 +182,11 @@ that are ready be sent down.
 				<<includeDOM App.UI.SlaveInteract.surgeryDegradation(getSlave($AS))>>
 			<<case "modT" "sexT" "combatT">>
 				<<if getSlave($AS).PTail == 0>>
-					//Since $he must have <<= addA(setup.prosthetics.interfaceTail.name)>> installed to attach tails the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
+					//Since $he must have <<= addA(App.Data.prosthetics.interfaceTail.name)>> installed to attach tails the <<= App.Data.prosthetics[_p.id].name>> will be put into storage.//
 				<<elseif getSlave($AS).tail != "none">>
-					//Since $he currently has a tail attached the <<= setup.prosthetics[_p.id].name>> will be put into storage.//
+					//Since $he currently has a tail attached the <<= App.Data.prosthetics[_p.id].name>> will be put into storage.//
 				<<elseif _p.id == "modT">>
-					//Since installing <<= addA(setup.prosthetics.modT.name)>> is complicated it can't be automated.//
+					//Since installing <<= addA(App.Data.prosthetics.modT.name)>> is complicated it can't be automated.//
 					/*Reason: there are different designs player can choose from.*/
 				<<elseif _p.id == "combatT">>
 					<<set $prostheticsConfig = "attachTail", getSlave($AS).tail = "combat", getSlave($AS).tailColor = "jet black">>
@@ -196,7 +196,7 @@ that are ready be sent down.
 					<<include "Prosthetics Configuration">>
 				<</if>>
 			<<default>>
-				//Since there is no automated procedure to implant/attach <<= setup.prosthetics[_p.id].name>> it will be put into storage.//
+				//Since there is no automated procedure to implant/attach <<= App.Data.prosthetics[_p.id].name>> it will be put into storage.//
 			<</switch>>
 			<br>
 		<</if>>