diff --git a/src/data/backwardsCompatibility/backwardsCompatibility.js b/src/data/backwardsCompatibility/backwardsCompatibility.js
index 1062daa32fd4bdf621d449e8aeb185f8e3dd53c7..ad7c83469fe2982916991087c0f1795f8cdd7419 100644
--- a/src/data/backwardsCompatibility/backwardsCompatibility.js
+++ b/src/data/backwardsCompatibility/backwardsCompatibility.js
@@ -1,4 +1,4 @@
-App.Update.autoshred = function() {
+App.Update.autoshred = function(node) {
 	const set = new Set(
 		Object.getOwnPropertyNames(App.Data.defaultGameStateVariables).concat(
 			Object.getOwnPropertyNames(App.Data.resetOnNGPlus)
@@ -21,7 +21,7 @@ App.Update.autoshred = function() {
 	if (extraCount !== 0) {
 		console.log(`and ${extraCount} more`);
 	}
-	return `Done!`;
+	node.append(`Done!`);
 };
 
 App.Update.setNonexistantProperties = function(obj, props) {
@@ -59,32 +59,32 @@ App.Update.backwardsCompatibility = function() {
 		div = document.createElement('div');
 		div.append(`Check for old version... `);
 		jQuery('#backwardsCompatibility').append(div);
-		div.append(App.Update.oldVersions());
+		App.Update.oldVersions(div);
 
 		div = document.createElement('div');
 		div.append(`Updating gene pool records... `);
 		jQuery('#backwardsCompatibility').append(div);
-		div.append(App.Update.genePoolRecords());
+		App.Update.genePoolRecords(div);
 
 		div = document.createElement('div');
 		div.append(`Updating global variables... `);
 		jQuery('#backwardsCompatibility').append(div);
-		div.append(App.Update.globalVariables());
+		App.Update.globalVariables(div);
 
 		div = document.createElement('div');
 		div.append(`Updating slave variables... `);
 		jQuery('#backwardsCompatibility').append(div);
-		div.append(App.Update.slaveVariables());
+		App.Update.slaveVariables(div);
 
 		div = document.createElement('div');
 		div.append(`Updating slave records... `);
 		jQuery('#backwardsCompatibility').append(div);
-		div.append(App.Update.slaveRecords());
+		App.Update.slaveRecords(div);
 
 		div = document.createElement('div');
 		div.append(`Updating Rule Assistant data... `);
 		jQuery('#backwardsCompatibility').append(div);
-		div.append(App.Update.RAassistantData());
+		App.Update.RAassistantData(div);
 
 		// Sec Exp
 		div = document.createElement('div');
@@ -94,18 +94,17 @@ App.Update.backwardsCompatibility = function() {
 		if (V.secExpEnabled === 1) {
 			jQuery(div).wiki(`<<include "SecExpBackwardCompatibility">>`);
 		}
-		div.append("Done!");
 
 		div = document.createElement('div');
 		div.append(`Checking for old variables... `);
 		jQuery('#backwardsCompatibility').append(div);
-		div.append(App.Update.autoshred());
+		App.Update.autoshred(div);
 
 		// leave this at the bottom of BC
 		div = document.createElement('div');
 		div.append(`Cleaning up... `);
 		jQuery('#backwardsCompatibility').append(div);
-		div.append(App.Update.cleanUp());
+		App.Update.cleanUp(div);
 	} catch (error) {
 		div = document.createElement('p');
 		div.className = "red";
@@ -117,8 +116,7 @@ App.Update.backwardsCompatibility = function() {
 	return;
 };
 
-App.Update.globalVariables = function() {
-	let r = ``;
+App.Update.globalVariables = function(node) {
 	if (Array.isArray(V.nationalities)) {
 		V.nationalities = weightedArray2HashMap(V.nationalities);
 	}
@@ -1134,12 +1132,10 @@ App.Update.globalVariables = function() {
 	EconomyDatatypeCleanup();
 	ArcologyDatatypeCleanup();
 
-	r += `Done!`;
-	return r;
+	node.append(`Done!`);
 };
 
-App.Update.slaveVariables = function() {
-	let r = ``;
+App.Update.slaveVariables = function(node) {
 	/* Adding a new variable? Consider putting it in datatypeCleanupJS.tw instead of here */
 	for (let bci = 0; bci < V.slaves.length; bci++) {
 		let Slave = V.slaves[bci];
@@ -1153,12 +1149,10 @@ App.Update.slaveVariables = function() {
 
 		V.slaves[bci] = Slave;
 	}
-	r += `Done!`;
-	return r;
+	node.append(`Done!`);
 };
 
-App.Update.slaveRecords = function() {
-	let r = ``;
+App.Update.slaveRecords = function(node) {
 	V.slaves.forEach((slave) => {
 		App.Entity.Utils.SlaveDataSchemeCleanup(slave);
 		SlaveDatatypeCleanup(slave);
@@ -1187,21 +1181,25 @@ App.Update.slaveRecords = function() {
 		App.Entity.Utils.SlaveDataSchemeCleanup(V.traitor);
 		SlaveDatatypeCleanup(V.traitor);
 	}
-	r += `Done!`;
+	node.append(`Done!`);
 
 	if (V.tanks.length > 0) {
-		r += `Checking and fixing records for incubator tanks... `;
+		let incubatorDiv = document.createElement("div");
+		node.append(incubatorDiv);
+		incubatorDiv.append(`Checking and fixing records for incubator tanks... `);
 		V.tanks.forEach((slave) => {
 			App.Update.Slave(slave);
 			App.Entity.Utils.SlaveDataSchemeCleanup(slave);
 			SlaveDatatypeCleanup(slave, true);
 			/* pass second argument as true so that slaveAgeDatatypeCleanup is not run */
 		});
-		r += `Done! `;
+		incubatorDiv.append(`Done!`);
 	}
 
 	if (V.cribs.length > 0) {
-		r += `Checking and fixing records for nursery cribs... `;
+		let nurseryDiv = document.createElement("div");
+		node.append(nurseryDiv);
+		nurseryDiv.append(`Checking and fixing records for nursery cribs... `);
 		V.cribs.forEach((child) => {
 			if (child.actualAge < 3) {
 				App.Facilities.Nursery.InfantDatatypeCleanup(child);
@@ -1217,13 +1215,11 @@ App.Update.slaveRecords = function() {
 				// let _nurseryChild = V.cribs[bci]; TODO: on importing this to JS, what is this even supposed to do?
 			}
 		}
-		r += `Done!`;
+		nurseryDiv.append(`Done!`);
 	}
-	return r;
 };
 
-App.Update.genePoolRecords = function() {
-	let r = ``;
+App.Update.genePoolRecords = function(node) {
 	for (let bci = 0; bci < V.genePool.length; bci++) {
 		App.Update.Slave(V.genePool[bci], true);
 		let slave = V.genePool[bci];
@@ -1311,22 +1307,18 @@ App.Update.genePoolRecords = function() {
 		App.Entity.Utils.GenePoolRecordCleanup(slave);
 		V.genePool[bci] = slave;
 	}
-	r += `Done!`;
-	return r;
+	node.append(`Done!`);
 };
 
-App.Update.RAassistantData = function() {
-	let r = ``;
+App.Update.RAassistantData = function(node) {
 	V.defaultRules = V.defaultRules.map(rule => App.Entity.Utils.RARuleDatatypeCleanup(rule));
-	r += `Done!`;
-	return r;
+	node.append(`Done!`);
 };
 
-App.Update.oldVersions = function() {
+App.Update.oldVersions = function(node) {
 	if (V.releaseID === 1021 || V.releaseID === 1020 || V.releaseID === 1019 || V.releaseID === 2022) {
 		V.releaseID = 1022;
 	}
-	let r = "";
 	if (V.releaseID < 1043) {
 		V.defaultRules.forEach((rule) => {
 			if (rule.condition.excludeSpecialSlaves) {
@@ -1554,7 +1546,9 @@ App.Update.oldVersions = function() {
 		}
 	}
 	if (V.releaseID < 1057) {
-		r += `Standardizing player object... `;
+		let PCdiv = document.createElement("div");
+		node.append(PCdiv);
+		PCdiv.append(`Standardizing player object... `);
 		if (typeof V.PC.actualAge === "undefined") {
 			if (V.PC.age === 1) {
 				V.PC.actualAge = 20;
@@ -1988,25 +1982,24 @@ App.Update.oldVersions = function() {
 			V.PC.faceShape = "normal";
 		}
 
-		r += `Done!`;
+		PCdiv.append(`Done!`);
 	}
 
 	if (V.arcologyUpgrade.spire === 1 && !V.building.usedUpgrades.includes("spire")) {
 		V.building.usedUpgrades.push("spire");
 	}
 
-	r += `Done!`;
-	return r;
+	node.append(`Done!`);
 };
 
-App.Update.cleanUp = function() {
+App.Update.cleanUp = function(node) {
 	/* leave this at the bottom of BC */
 	if (V.releaseID < App.Version.release) {
 		V.releaseID = App.Version.release;
 	}
 	/* reset NaNArray after BC is run */
 	V.NaNArray = findNaN();
-	return `Done!`;
+	node.append(`Done!`);
 };
 
 App.Update.sectorsToBuilding = function() {