diff --git a/src/005-passages/interactPassages.js b/src/005-passages/interactPassages.js
index df3b388188cb2ea6703e49f7a657638143464077..f462029f6084158d7eb11d8cc6d7630bd706b926 100644
--- a/src/005-passages/interactPassages.js
+++ b/src/005-passages/interactPassages.js
@@ -30,3 +30,27 @@ new App.DomPassage("Fat Grafting",
 		return App.UI.SlaveInteract.fatGraft(getSlave(V.AS));
 	}
 );
+
+new App.DomPassage(
+	"Slave Slave Swap Workaround",
+	() => {
+		V.nextButton = "Abort Operation";
+		V.nextLink = "Main";
+		return bodySwapSelection(getSlave(V.AS));
+	}
+);
+
+new App.DomPassage(
+	"Husk Slave Swap Workaround",
+	() => {
+		V.nextButton = "Abort Operation";
+		if (V.activeSlave.tankBaby !== 3) {
+			V.nextLink = "Scheduled Event";
+			V.returnTo = "Scheduled Event";
+		} else {
+			V.nextLink = "Main";
+			V.returnTo = "Incubator";
+		}
+		return bodySwapSelection(getSlave(V.AS));
+	}
+);
diff --git a/src/facilities/incubator/incubatorRetrievalWorkaround.tw b/src/facilities/incubator/incubatorRetrievalWorkaround.tw
index ba3b56c0f2596d1547b6206c6e4da61a9e55bfc2..b5b886d376c5e9ca7529f534384f90917f24cb9a 100644
--- a/src/facilities/incubator/incubatorRetrievalWorkaround.tw
+++ b/src/facilities/incubator/incubatorRetrievalWorkaround.tw
@@ -25,14 +25,14 @@
 		<</if>>
 		<<includeDOM App.UI.newChildIntro($readySlave)>>
 	<<else>>
-		<<set $activeSlave = $readySlave>> /* $activeSlave is used by husk Slave Swap Workaround */
+		<<set $activeSlave = $readySlave>> /* $activeSlave is used by Husk Slave Swap Workaround */
 		A husk is ready to be used.
 		<br>
 		//As expected, $he is a complete vegetable, but that is what you wanted after all. You lack the facilities to care for $him in this state, so you should do what you are planning quickly. Or you could sell $him to the Flesh Heap.//
 		<<set _price = Math.trunc(slaveCost($readySlave)/3)>>
 		<span id="result">
 		<<if $cash >= $surgeryCost>>
-			<br>[[Contact the bodyswap surgeon.|husk Slave Swap Workaround]] //Will significantly increase the selected slave's upkeep.//
+			<br>[[Contact the bodyswap surgeon.|Husk Slave Swap Workaround]] //Will significantly increase the selected slave's upkeep.//
 			<br>[[Sell the husk to Flesh Heap.|Main][cashX(_price, "slaveTransfer")]]
 			//This body can be bought by the Flesh Heap for <<print cashFormat(_price)>>//.
 		<<else>>
diff --git a/src/js/bodySwap/bodySwap.js b/src/js/bodySwap/bodySwap.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ddecdcff2200e9f4c5b2754ed3eb345745e7b97
--- /dev/null
+++ b/src/js/bodySwap/bodySwap.js
@@ -0,0 +1,361 @@
+/**
+ *
+ * @param {App.Entity.SlaveState} soul
+ * @param {App.Entity.SlaveState} body
+ * @param {boolean} fromGenepool is slave from the genepool?
+ */
+globalThis.bodySwap = function(soul, body, fromGenepool) {
+	WombInit(body); // Just to be sure.
+	soul.genes = body.genes;
+	soul.physicalAge = body.physicalAge;
+	soul.visualAge = body.visualAge;
+	soul.ageImplant = body.ageImplant;
+	soul.health = body.health;
+	soul.weight = body.weight;
+	soul.muscles = body.muscles;
+	soul.height = body.height;
+	soul.heightImplant = body.heightImplant;
+	soul.race = body.race;
+	soul.origRace = body.origRace;
+	soul.pubicHColor = body.pubicHColor;
+	soul.skin = body.skin;
+	soul.origSkin = body.origSkin;
+	soul.markings = body.markings;
+	soul.eye = body.eye;
+	soul.hears = body.hears;
+	soul.earImplant = body.earImplant;
+	soul.earShape = body.earShape;
+	soul.earT = body.earT;
+	soul.earTColor = body.earTColor;
+	soul.smells = body.smells;
+	soul.tastes = body.tastes;
+	soul.horn = body.horn;
+	soul.hornColor = body.hornColor;
+	soul.PTail = body.PTail;
+	soul.tail = body.tail;
+	soul.tailShape = body.tailShape;
+	soul.tailColor = body.tailColor;
+	soul.origHColor = body.origHColor;
+	soul.hColor = body.hColor;
+	soul.hLength = body.hLength;
+	soul.hStyle = body.hStyle;
+	soul.pubicHStyle = body.pubicHStyle;
+	soul.waist = body.waist;
+	soul.corsetPiercing = body.corsetPiercing;
+	soul.arm = body.arm;
+	soul.leg = body.leg;
+	soul.PLimb = body.PLimb;
+	soul.readyProsthetics = body.readyProsthetics;
+	soul.heels = body.heels;
+	soul.voice = body.voice;
+	soul.voiceImplant = body.voiceImplant;
+	soul.shoulders = body.shoulders;
+	soul.shouldersImplant = body.shouldersImplant;
+	soul.boobs = body.boobs;
+	soul.boobsImplant = body.boobsImplant;
+	soul.boobsImplantType = body.boobsImplantType;
+	soul.boobShape = body.boobShape;
+	soul.nipples = body.nipples;
+	soul.nipplesPiercing = body.nipplesPiercing;
+	soul.nipplesAccessory = body.nipplesAccessory;
+	soul.areolae = body.areolae;
+	soul.areolaePiercing = body.areolaePiercing;
+	soul.areolaeShape = body.areolaeShape;
+	soul.boobsTat = body.boobsTat;
+	soul.lactation = body.lactation;
+	soul.lactationDuration = body.lactationDuration;
+	soul.induceLactation = body.induceLactation;
+	soul.boobsMilk = body.boobsMilk;
+	soul.lactationAdaptation = body.lactationAdaptation;
+	soul.hips = body.hips;
+	soul.hipsImplant = body.hipsImplant;
+	soul.butt = body.butt;
+	soul.buttImplant = body.buttImplant;
+	soul.buttImplantType = body.buttImplantType;
+	soul.buttTat = body.buttTat;
+	soul.face = body.face;
+	soul.faceImplant = body.faceImplant;
+	soul.faceShape = body.faceShape;
+	soul.lips = body.lips;
+	soul.lipsImplant = body.lipsImplant;
+	soul.lipsPiercing = body.lipsPiercing;
+	soul.lipsTat = body.lipsTat;
+	soul.teeth = body.teeth;
+	soul.tonguePiercing = body.tonguePiercing;
+	soul.vagina = body.vagina;
+	soul.vaginaLube = body.vaginaLube;
+	soul.vaginaPiercing = body.vaginaPiercing;
+	soul.vaginaTat = body.vaginaTat;
+	soul.fertKnown = body.fertKnown;
+	soul.fertPeak = body.fertPeak;
+	soul.broodmother = body.broodmother;
+	soul.broodmotherFetuses = body.broodmotherFetuses;
+	soul.broodmotherOnHold = body.broodmotherOnHold;
+	soul.broodmotherCountDown = body.broodmotherCountDown;
+	soul.labia = body.labia;
+	soul.clit = body.clit;
+	soul.clitPiercing = body.clitPiercing;
+	soul.dick = body.dick;
+	soul.foreskin = body.foreskin;
+	soul.anus = body.anus;
+	soul.analArea = body.analArea;
+	soul.dickPiercing = body.dickPiercing;
+	soul.dickTat = body.dickTat;
+	soul.prostate = body.prostate;
+	soul.balls = body.balls;
+	soul.scrotum = body.scrotum;
+	soul.ovaries = body.ovaries;
+	soul.anusPiercing = body.anusPiercing;
+	soul.anusTat = body.anusTat;
+	soul.brand = body.brand;
+	soul.nosePiercing = body.nosePiercing;
+	soul.eyebrowPiercing = body.eyebrowPiercing;
+	soul.navelPiercing = body.navelPiercing;
+	soul.shouldersTat = body.shouldersTat;
+	soul.armsTat = body.armsTat;
+	soul.legsTat = body.legsTat;
+	soul.backTat = body.backTat;
+	soul.stampTat = body.stampTat;
+	soul.hormones = body.hormones;
+	soul.chem = body.chem;
+	soul.vaginalAttachment = body.vaginalAttachment;
+	soul.chastityVagina = body.chastityVagina;
+	soul.chastityPenis = body.chastityPenis;
+	soul.chastityAnus = body.chastityAnus;
+	if (soul.custom && body.custom) {
+		soul.custom.tattoo = body.custom.tattoo;
+	}
+	soul.bellyTat = body.bellyTat;
+	soul.abortionTat = body.abortionTat;
+	soul.birthsTat = body.birthsTat;
+	soul.pubertyAgeXX = body.pubertyAgeXX;
+	soul.pubertyXX = body.pubertyXX;
+	soul.pubertyAgeXY = body.pubertyAgeXY;
+	soul.pubertyXY = body.pubertyXY;
+	soul.breedingMark = body.breedingMark;
+	soul.underArmHColor = body.underArmHColor;
+	soul.underArmHStyle = body.underArmHStyle;
+	soul.ballType = body.ballType;
+	soul.eggType = body.eggType;
+	soul.bald = body.bald;
+	soul.hormoneBalance = body.hormoneBalance;
+	soul.breastMesh = body.breastMesh;
+	soul.vasectomy = body.vasectomy;
+	soul.haircuts = body.haircuts;
+	soul.ovaryAge = body.ovaryAge;
+	soul.readyOva = body.readyOva;
+	soul.womb = body.womb; // this is array assigned by reference, if slave body that is ${body} will be still used anywhere in code (not discarded) — it's WRONG (they now technically share one womb object). Please tell me about it then. But if old body body just discarded — it's no problem then.
+	soul.pregAdaptation = body.pregAdaptation;
+	soul.geneMods = body.geneMods;
+	soul.NCSyouthening = body.NCSyouthening;
+	soul.eyebrowHColor = body.eyebrowHColor;
+	soul.eyebrowHStyle = body.eyebrowHStyle;
+	soul.eyebrowFullness = body.eyebrowFullness;
+	soul.wombImplant = body.wombImplant;
+	soul.ovaImplant = body.ovaImplant;
+	soul.geneticQuirks = body.geneticQuirks;
+	soul.albinismOverride = body.albinismOverride;
+	soul.clone = body.clone;
+	soul.cloneID = body.cloneID;
+	soul.inbreedingCoeff = body.inbreedingCoeff;
+
+	soul.canRecruit = 0;
+
+	if (!fromGenepool) { // swapping NOT gene pool records
+		soul.counter.publicUse = body.counter.publicUse;
+		soul.counter.laborCount = body.counter.laborCount;
+		soul.porn = body.porn;
+		soul.aphrodisiacs = body.aphrodisiacs;
+		soul.curatives = body.curatives;
+		soul.drugs = body.drugs;
+		soul.prestige = body.prestige;
+		soul.prestigeDesc = body.prestigeDesc;
+		soul.minorInjury = body.minorInjury;
+		soul.eyewear = body.eyewear;
+		soul.earwear = body.earwear;
+		soul.earPiercing = body.earPiercing;
+		soul.armAccessory = body.armAccessory;
+		soul.legAccessory = body.legAccessory;
+		soul.bellyAccessory = body.bellyAccessory;
+		soul.preg = body.preg;
+		soul.pregSource = body.pregSource;
+		soul.pregType = body.pregType;
+		soul.labor = body.labor;
+		soul.clitSetting = body.clitSetting;
+		soul.diet = body.diet;
+		soul.dietCum = body.dietCum;
+		soul.dietMilk = body.dietMilk;
+		soul.clothes = body.clothes;
+		soul.collar = body.collar;
+		soul.faceAccessory = body.faceAccessory;
+		soul.mouthAccessory = body.mouthAccessory;
+		soul.shoes = body.shoes;
+		soul.makeup = body.makeup;
+		soul.nails = body.nails;
+		soul.vaginalAccessory = body.vaginalAccessory;
+		soul.dickAccessory = body.dickAccessory;
+		soul.buttplug = body.buttplug;
+		soul.buttplugAttachment = body.buttplugAttachment;
+		soul.induce = body.induce;
+		soul.mpreg = body.mpreg;
+		soul.pregKnown = body.pregKnown;
+		soul.pregWeek = body.pregWeek;
+		soul.belly = body.belly;
+		soul.bellyPreg = body.bellyPreg;
+		soul.bellyFluid = body.bellyFluid;
+		soul.bellyImplant = body.bellyImplant;
+		soul.bellySag = body.bellySag;
+		soul.bellySagPreg = body.bellySagPreg;
+		soul.bellyPain = body.bellyPain;
+		soul.cervixImplant = body.cervixImplant;
+		soul.scar = body.scar;
+		soul.pregControl = body.pregControl;
+		deflate(soul);
+	}
+};
+/**
+ *
+ * @param {App.Entity.SlaveState} soul
+ * @param {App.Entity.SlaveState} body
+ */
+globalThis.bodySwapName = function(soul, body) {
+	if (body.bodySwap === 0) {
+		if (body.birthSurname) {
+			if (body.birthName !== "") {
+				soul.origBodyOwner = SlaveFullBirthName(body);
+			} else {
+				soul.origBodyOwner = body.slaveName + " " + body.birthSurname;
+			}
+		} else if (body.birthName) {
+			if (body.slaveSurname) {
+				if (
+					(V.surnameOrder !== 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes(body.nationality)) ||
+					V.surnameOrder === 2
+				) {
+					soul.origBodyOwner = body.slaveSurname + " " + body.birthName;
+				} else {
+					soul.origBodyOwner = body.birthName + " " + body.slaveSurname;
+				}
+			} else {
+				soul.origBodyOwner = body.birthName;
+			}
+		} else if (body.slaveSurname) {
+			soul.origBodyOwner = SlaveFullName(body);
+		} else {
+			soul.origBodyOwner = body.slaveName;
+		}
+	} else {
+		soul.origBodyOwner = body.origBodyOwner;
+	}
+};
+
+/**
+ *
+ * @param {App.Entity.SlaveState} soul
+ * @returns {DocumentFragment}
+ */
+globalThis.bodySwapSelection = function(soul) {
+	const {him} = getPronouns(soul);
+	const el = new DocumentFragment();
+	const cost = 10000;
+	App.UI.DOM.appendNewElement("div", el, `The surgeon awaits the pair of slaves to be strapped into the surgery. So far only ${soul.slaveName} is prepped:`, "scene-intro");
+	App.UI.DOM.appendNewElement("div", el, `Select ${(V.seeExtreme) ? `an eligible slave (any slave who is not a fuckdoll)` : `a slave`} who will be trading bodies with ${him}. This operation will cost ${cashFormat(cost)}.`);
+
+	for (const body of V.slaves) {
+		const slaveDiv = document.createElement("div");
+		slaveDiv.append(
+			App.UI.DOM.link(
+				body.slaveName,
+				() => {
+					V.swappingSlave = body;
+					cashX(forceNeg(cost), "slaveSurgery", body);
+				},
+				[],
+				"Slave Slave Swap"
+			)
+		);
+		const relTerm = relativeTerm(soul, body);
+		if (relTerm) {
+			slaveDiv.append(` ${relTerm}`);
+		}
+		if (body.relationshipTarget === soul.ID) {
+			const {wife} = getPronouns(body);
+			switch (body.relationship) {
+				case 1:
+					slaveDiv.append(` friends`);
+					break;
+				case 2:
+					slaveDiv.append(` best friends`);
+					break;
+				case 3:
+					slaveDiv.append(` friends with benefits`);
+					break;
+				case 4:
+					slaveDiv.append(` lover`);
+					break;
+				case 5:
+					slaveDiv.append(` slave${wife}`);
+					break;
+			}
+		}
+		if (body.rivalryTarget === soul.ID) {
+			switch (body.relationship) {
+				case 1:
+					slaveDiv.append(`dislikes`);
+					break;
+				case 2:
+					slaveDiv.append(`rival`);
+					break;
+				case 3:
+					slaveDiv.append(`bitterly hates`);
+					break;
+			}
+		}
+		el.append(slaveDiv);
+	}
+
+	return el;
+};
+
+/**
+ *
+ * @param {App.Entity.SlaveState} body
+ * @returns {DocumentFragment}
+ */
+globalThis.huskSwapSelection = function(body) {
+	const el = new DocumentFragment();
+	const cost = 10000;
+	App.UI.DOM.appendNewElement("div", el, `"This operation is neither simple nor is it perfected. There are extreme health risks involved and no guarantee of success. Strap a slave into your remote surgery to consent to the operation. Indentured servants${(V.incubator > 0) || (V.nurseryChildren) ? `and slaves with reserved children`:``} are not eligible."
+	`, "scene-intro");
+	App.UI.DOM.appendNewElement("div", el, `Select the slave whose mind will be transferred into the waiting husk. Amputated slaves must not be wearing prosthetics. This operation will cost ${cashFormat(cost)}.`);
+
+	for (const soul of V.slaves) {
+		if (isSlaveAvailable(soul)) {
+			if (soul.fuckdoll === 0) {
+				if (!hasAnyProstheticLimbs(soul)) {
+					if (soul.indenture === -1) {
+						if (soul.breedingMark === 0 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset") {
+							if (WombReserveCount(soul) === 0) {
+								if (soul.ID !== body.ID) {
+									App.UI.DOM.appendNewElement("div", el,
+										App.UI.DOM.link(
+											soul.slaveName,
+											() => {
+												V.swappingSlave = soul;
+												cashX(forceNeg(cost), "slaveSurgery", soul);
+											},
+											[],
+											"Husk Slave Swap"
+										)
+									);
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return el;
+};
diff --git a/src/pregmod/widgets/bodySwapReaction.tw b/src/js/bodySwap/bodySwapReaction.tw
similarity index 100%
rename from src/pregmod/widgets/bodySwapReaction.tw
rename to src/js/bodySwap/bodySwapReaction.tw
diff --git a/src/pregmod/slaveSlaveSwap.tw b/src/js/bodySwap/slaveSlaveSwap.tw
similarity index 84%
rename from src/pregmod/slaveSlaveSwap.tw
rename to src/js/bodySwap/slaveSlaveSwap.tw
index 9ef4e1554ac05b70182a6b3ebeac1b2f7d65ee27..877285090c0dde7186286ae467153c850b8a9a7f 100644
--- a/src/pregmod/slaveSlaveSwap.tw
+++ b/src/js/bodySwap/slaveSlaveSwap.tw
@@ -11,10 +11,10 @@
 <<set _gps2Clone = clone($genePool[_gps2])>>
 
 You strap <<= getSlave($AS).slaveName>> and $swappingSlave.slaveName into the remote surgery and stand back as it goes to work.
-<<BodySwap $slaves[_ss1] _ss2Clone>>
-<<BodySwap $genePool[_gps1] _gps2Clone 1>> /* passing a third argument just to detect if it's a slave from the genepool */
-<<BodySwap $slaves[_ss2] _ss1Clone>>
-<<BodySwap $genePool[_gps2] _gps1Clone 1>> /* passing a third argument just to detect if it's a slave from the genepool */
+<<run bodySwap($slaves[_ss1], _ss2Clone)>>
+<<run bodySwap($genePool[_gps1], _gps2Clone, true)>> /* passing a third argument just to detect if it's a slave from the genepool */
+<<run bodySwap($slaves[_ss2], _ss1Clone)>>
+<<run bodySwap($genePool[_gps2], _gps1Clone, true)>> /* passing a third argument just to detect if it's a slave from the genepool */
 
 <br><br>
 After an honestly impressive procedure, $slaves[_ss1].slaveName is recovering nicely.
@@ -49,8 +49,8 @@ In the neighboring bed, $slaves[_ss2].slaveName rests peacefully.
 
 /* now to handle whose body it is, name-wise */
 
-<<BodySwapName $slaves[_ss1] $slaves[_ss2]>>
-<<BodySwapName $slaves[_ss2] $slaves[_ss1]>>
+<<run bodySwapName($slaves[_ss1], $slaves[_ss2])>>
+<<run bodySwapName($slaves[_ss2], $slaves[_ss1])>>
 
 <<if _ss1Clone.bodySwap > 0>>
 	<<if $slaves[_ss1].origBodyOwnerID == $slaves[_ss1].ID>>
diff --git a/src/pregmod/huskSlaveSwap.tw b/src/pregmod/huskSlaveSwap.tw
index d945e7618334678a1f51cee0f76cd75ccfdc01cf..2c3fd583c71c2a1088d8f5e470758842ae28e4f6 100644
--- a/src/pregmod/huskSlaveSwap.tw
+++ b/src/pregmod/huskSlaveSwap.tw
@@ -5,7 +5,7 @@
 <<set _m = $slaveIndices[$swappingSlave.ID]>>
 
 You strap $slaves[_m].slaveName, and the body to which $he will be transferred, into the remote surgery and stand back as it goes to work.
-<<BodySwap $slaves[_m] $activeSlave>>
+<<run bodySwap($slaves[_m], $activeSlave)>>
 <<set _gps = $genePool.findIndex(function(s) { return s.ID == $slaves[_m].ID; })>>
 <<set $genePool[_gps].race = $slaves[_m].race, $genePool[_gps].origRace = $slaves[_m].origRace, $genePool[_gps].skin = $slaves[_m].skin, $genePool[_gps].markings = $slaves[_m].markings, $genePool[_gps].eye.origColor = $slaves[_m].eye.origColor, $genePool[_gps].origHColor = $slaves[_m].origHColor, $genePool[_gps].origSkin = $slaves[_m].origSkin, $genePool[_gps].face = $slaves[_m].face, $genePool[_gps].pubicHStyle = $slaves[_m].pubicHStyle, $genePool[_gps].underArmHStyle = $slaves[_m].underArmHStyle, $genePool[_gps].eyebrowHStyle = $slaves[_m].eyebrowHStyle>> /* special exception to swap genePool since the temporary body lacks an entry. Otherwise we could just call the widget using the genePool entries */
 
diff --git a/src/pregmod/huskSlaveSwapWorkaround.tw b/src/pregmod/huskSlaveSwapWorkaround.tw
deleted file mode 100644
index 112c4ccb092363baabaf74ad3793c93874941b34..0000000000000000000000000000000000000000
--- a/src/pregmod/huskSlaveSwapWorkaround.tw
+++ /dev/null
@@ -1,34 +0,0 @@
-:: husk Slave Swap Workaround [nobr]
-
-<<if $activeSlave.tankBaby != 3>>
-	<<set $nextButton = "Abort Operation", $nextLink = "Scheduled Event", $returnTo = "Scheduled Event">>
-<<else>>
-	<<set $nextButton = "Abort Operation", $nextLink = "Main", $returnTo = "Incubator">>
-<</if>>
-
-"This operation is neither simple nor is it perfected. There are extreme health risks involved and no guarantee of success. Strap a slave into your remote surgery to consent to the operation. Indentured servants<<if ($incubator > 0) || ($nurseryChildren)>> and slaves with reserved children<</if>> are not eligible."
-<br>
-//Select the slave whose mind will be transferred into the waiting husk. Amputated slaves must not be wearing prosthetics. This operation will cost <<print cashFormat(10000)>>.//
-
-<br><br>
-__Select an eligible slave:__
-<<for _i = 0; _i < $slaves.length; _i++>>
-	<<capture _i>>
-		<<if isSlaveAvailable($slaves[_i])>>
-			<<if $slaves[_i].fuckdoll == 0>>
-				<<if !hasAnyProstheticLimbs($slaves[_i])>>
-					<<if $slaves[_i].indenture == -1>>
-						<<if $slaves[_i].breedingMark == 0 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset">>
-							<<if WombReserveCount($slaves[_i]) == 0>>
-								<<if $slaves[_i].ID != $AS>>
-									<<set _name = SlaveFullName($slaves[_i])>>
-									<br>[[_name|Husk Slave Swap][$swappingSlave = $slaves[_i], cashX(-10000, "slaveSurgery", $slaves[_i])]]
-								<</if>>
-							<</if>>
-						<</if>>
-					<</if>>
-				<</if>>
-			<</if>>
-		<</if>>
-	<</capture>>
-<</for>>
diff --git a/src/pregmod/seHuskSlaveDelivery.tw b/src/pregmod/seHuskSlaveDelivery.tw
index 59a79704dd47a927e67d14874f6b0b11d46f4411..2d8d2c360284f90552626549d426556b457db320 100644
--- a/src/pregmod/seHuskSlaveDelivery.tw
+++ b/src/pregmod/seHuskSlaveDelivery.tw
@@ -73,7 +73,7 @@ A slave came in fitting the description you provided.
 <<if $cash >= $surgeryCost>>
 	<<link "Accept the offered slave and contact the bodyswap surgeon.">>
 		<<set $activeSlave = _husk>>
-		<<goto "husk Slave Swap Workaround">>
+		<<goto "Husk Slave Swap Workaround">>
 	<</link>>
 	//Will significantly increase the selected slave's upkeep.//
 <<else>>
diff --git a/src/pregmod/slaveSlaveSwapWorkaround.tw b/src/pregmod/slaveSlaveSwapWorkaround.tw
deleted file mode 100644
index 72ee529f98f13facdc558e6afab2ce7ee8578f93..0000000000000000000000000000000000000000
--- a/src/pregmod/slaveSlaveSwapWorkaround.tw
+++ /dev/null
@@ -1,22 +0,0 @@
-:: Slave Slave Swap Workaround [nobr]
-
-<<set $nextButton = "Abort Operation", $nextLink = "Main">>
-
-The surgeon awaits the pair of slaves to be strapped into the surgery. So far only <<= getSlave($AS).slaveName>> is prepped:
-<br>
-//Select the slave who will be trading bodies with $him. This operation will cost <<print cashFormat(10000)>>.//
-
-<br><br>
-__Select an eligible slave:__
-<<for _i = 0; _i < $slaves.length; _i++>>
-	<<capture _i>>
-		<<if isSlaveAvailable($slaves[_i])>>
-			<<if $slaves[_i].fuckdoll == 0>>
-				<<if ($slaves[_i].ID != $AS)>>
-					<<set _name = SlaveFullName($slaves[_i])>>
-					<br>[[_name|Slave Slave Swap][$swappingSlave = $slaves[_i], cashX(-10000, "slaveSurgery", $slaves[_i])]]
-				<</if>>
-			<</if>>
-		<</if>>
-	<</capture>>
-<</for>>
\ No newline at end of file
diff --git a/src/pregmod/widgets/bodyswapWidgets.tw b/src/pregmod/widgets/bodyswapWidgets.tw
deleted file mode 100644
index bd5cd97a0e398f7caa1c0675d81c48b203c3fd86..0000000000000000000000000000000000000000
--- a/src/pregmod/widgets/bodyswapWidgets.tw
+++ /dev/null
@@ -1,259 +0,0 @@
-:: bodyswap widgets [nobr widget]
-
-/* It's too fucking big jesus christ */
-
-/* first arg is slave getting swapped, second is body she is being swapped to. The second body's physical traits overwrite the originals */
-<<widget "BodySwap">>
-
-<<set WombInit($args[1])>> /*Just to be sure.*/
-<<set $args[0].genes = $args[1].genes>>
-<<set $args[0].physicalAge = $args[1].physicalAge>>
-<<set $args[0].visualAge = $args[1].visualAge>>
-<<set $args[0].ageImplant = $args[1].ageImplant>>
-<<set $args[0].health.condition = $args[1].health.condition>>
-<<set $args[0].health.shortDamage = $args[1].health.shortDamage>>
-<<set $args[0].health.longDamage = $args[1].health.longDamage>>
-<<set $args[0].health.illness = $args[1].health.illness>>
-<<set $args[0].health.tired = $args[1].health.tired>>
-<<set $args[0].health.health = $args[1].health.health>>
-<<set $args[0].weight = $args[1].weight>>
-<<set $args[0].muscles = $args[1].muscles>>
-<<set $args[0].height = $args[1].height>>
-<<set $args[0].heightImplant = $args[1].heightImplant>>
-<<set $args[0].race = $args[1].race>>
-<<set $args[0].origRace = $args[1].origRace>>
-<<set $args[0].pubicHColor = $args[1].pubicHColor>>
-<<set $args[0].skin = $args[1].skin>>
-<<set $args[0].origSkin = $args[1].origSkin>>
-<<set $args[0].markings = $args[1].markings>>
-<<set $args[0].eye = $args[1].eye>>
-<<set $args[0].hears = $args[1].hears>>
-<<set $args[0].earImplant = $args[1].earImplant>>
-<<set $args[0].earShape = $args[1].earShape>>
-<<set $args[0].earT = $args[1].earT>>
-<<set $args[0].earTColor = $args[1].earTColor>>
-<<set $args[0].smells = $args[1].smells>>
-<<set $args[0].tastes = $args[1].tastes>>
-<<set $args[0].horn = $args[1].horn>>
-<<set $args[0].hornColor = $args[1].hornColor>>
-<<set $args[0].PTail = $args[1].PTail>>
-<<set $args[0].tail = $args[1].tail>>
-<<set $args[0].tailShape = $args[1].tailShape>>
-<<set $args[0].tailColor = $args[1].tailColor>>
-<<set $args[0].origHColor = $args[1].origHColor>>
-<<set $args[0].hColor = $args[1].hColor>>
-<<set $args[0].hLength = $args[1].hLength>>
-<<set $args[0].hStyle = $args[1].hStyle>>
-<<set $args[0].pubicHStyle = $args[1].pubicHStyle>>
-<<set $args[0].waist = $args[1].waist>>
-<<set $args[0].corsetPiercing = $args[1].corsetPiercing>>
-<<set $args[0].arm = $args[1].arm>>
-<<set $args[0].leg = $args[1].leg>>
-<<set $args[0].PLimb = $args[1].PLimb>>
-<<set $args[0].readyProsthetics = $args[1].readyProsthetics>>
-<<set $args[0].heels = $args[1].heels>>
-<<set $args[0].voice = $args[1].voice>>
-<<set $args[0].voiceImplant = $args[1].voiceImplant>>
-<<set $args[0].shoulders = $args[1].shoulders>>
-<<set $args[0].shouldersImplant = $args[1].shouldersImplant>>
-<<set $args[0].boobs = $args[1].boobs>>
-<<set $args[0].boobsImplant = $args[1].boobsImplant>>
-<<set $args[0].boobsImplantType = $args[1].boobsImplantType>>
-<<set $args[0].boobShape = $args[1].boobShape>>
-<<set $args[0].nipples = $args[1].nipples>>
-<<set $args[0].nipplesPiercing = $args[1].nipplesPiercing>>
-<<set $args[0].nipplesAccessory = $args[1].nipplesAccessory>>
-<<set $args[0].areolae = $args[1].areolae>>
-<<set $args[0].areolaePiercing = $args[1].areolaePiercing>>
-<<set $args[0].areolaeShape = $args[1].areolaeShape>>
-<<set $args[0].boobsTat = $args[1].boobsTat>>
-<<set $args[0].lactation = $args[1].lactation>>
-<<set $args[0].lactationDuration = $args[1].lactationDuration>>
-<<set $args[0].induceLactation = $args[1].induceLactation>>
-<<set $args[0].boobsMilk = $args[1].boobsMilk>>
-<<set $args[0].lactationAdaptation = $args[1].lactationAdaptation>>
-<<set $args[0].hips = $args[1].hips>>
-<<set $args[0].hipsImplant = $args[1].hipsImplant>>
-<<set $args[0].butt = $args[1].butt>>
-<<set $args[0].buttImplant = $args[1].buttImplant>>
-<<set $args[0].buttImplantType = $args[1].buttImplantType>>
-<<set $args[0].buttTat = $args[1].buttTat>>
-<<set $args[0].face = $args[1].face>>
-<<set $args[0].faceImplant = $args[1].faceImplant>>
-<<set $args[0].faceShape = $args[1].faceShape>>
-<<set $args[0].lips = $args[1].lips>>
-<<set $args[0].lipsImplant = $args[1].lipsImplant>>
-<<set $args[0].lipsPiercing = $args[1].lipsPiercing>>
-<<set $args[0].lipsTat = $args[1].lipsTat>>
-<<set $args[0].teeth = $args[1].teeth>>
-<<set $args[0].tonguePiercing = $args[1].tonguePiercing>>
-<<set $args[0].vagina = $args[1].vagina>>
-<<set $args[0].vaginaLube = $args[1].vaginaLube>>
-<<set $args[0].vaginaPiercing = $args[1].vaginaPiercing>>
-<<set $args[0].vaginaTat = $args[1].vaginaTat>>
-<<set $args[0].fertKnown = $args[1].fertKnown>>
-<<set $args[0].fertPeak = $args[1].fertPeak>>
-<<set $args[0].broodmother = $args[1].broodmother>>
-<<set $args[0].broodmotherFetuses = $args[1].broodmotherFetuses>>
-<<set $args[0].broodmotherOnHold = $args[1].broodmotherOnHold>>
-<<set $args[0].broodmotherCountDown = $args[1].broodmotherCountDown>>
-<<set $args[0].labia = $args[1].labia>>
-<<set $args[0].clit = $args[1].clit>>
-<<set $args[0].clitPiercing = $args[1].clitPiercing>>
-<<set $args[0].dick = $args[1].dick>>
-<<set $args[0].foreskin = $args[1].foreskin>>
-<<set $args[0].anus = $args[1].anus>>
-<<set $args[0].analArea = $args[1].analArea>>
-<<set $args[0].dickPiercing = $args[1].dickPiercing>>
-<<set $args[0].dickTat = $args[1].dickTat>>
-<<set $args[0].prostate = $args[1].prostate>>
-<<set $args[0].balls = $args[1].balls>>
-<<set $args[0].scrotum = $args[1].scrotum>>
-<<set $args[0].ovaries = $args[1].ovaries>>
-<<set $args[0].anusPiercing = $args[1].anusPiercing>>
-<<set $args[0].anusTat = $args[1].anusTat>>
-<<set $args[0].brand = $args[1].brand>>
-<<set $args[0].nosePiercing = $args[1].nosePiercing>>
-<<set $args[0].eyebrowPiercing = $args[1].eyebrowPiercing>>
-<<set $args[0].navelPiercing = $args[1].navelPiercing>>
-<<set $args[0].shouldersTat = $args[1].shouldersTat>>
-<<set $args[0].armsTat = $args[1].armsTat>>
-<<set $args[0].legsTat = $args[1].legsTat>>
-<<set $args[0].backTat = $args[1].backTat>>
-<<set $args[0].stampTat = $args[1].stampTat>>
-<<set $args[0].hormones = $args[1].hormones>>
-<<set $args[0].chem = $args[1].chem>>
-<<set $args[0].vaginalAttachment = $args[1].vaginalAttachment>>
-<<set $args[0].chastityVagina = $args[1].chastityVagina>>
-<<set $args[0].chastityPenis = $args[1].chastityPenis>>
-<<set $args[0].chastityAnus = $args[1].chastityAnus>>
-<<if (def $args[0].custom) && (def $args[1].custom)>>
-	<<set $args[0].custom.tattoo = $args[1].custom.tattoo>>
-<</if>>
-<<set $args[0].bellyTat = $args[1].bellyTat>>
-<<set $args[0].abortionTat = $args[1].abortionTat>>
-<<set $args[0].birthsTat = $args[1].birthsTat>>
-<<set $args[0].pubertyAgeXX = $args[1].pubertyAgeXX>>
-<<set $args[0].pubertyXX = $args[1].pubertyXX>>
-<<set $args[0].pubertyAgeXY = $args[1].pubertyAgeXY>>
-<<set $args[0].pubertyXY = $args[1].pubertyXY>>
-<<set $args[0].breedingMark = $args[1].breedingMark>>
-<<set $args[0].underArmHColor = $args[1].underArmHColor>>
-<<set $args[0].underArmHStyle = $args[1].underArmHStyle>>
-<<set $args[0].ballType = $args[1].ballType>>
-<<set $args[0].eggType = $args[1].eggType>>
-<<set $args[0].bald = $args[1].bald>>
-<<set $args[0].hormoneBalance = $args[1].hormoneBalance>>
-<<set $args[0].breastMesh = $args[1].breastMesh>>
-<<set $args[0].vasectomy = $args[1].vasectomy>>
-<<set $args[0].haircuts = $args[1].haircuts>>
-<<set $args[0].ovaryAge = $args[1].ovaryAge>>
-<<set $args[0].readyOva = $args[1].readyOva>>
-<<set $args[0].womb = $args[1].womb>> /* this is array assigned by reference, if slave body that is $args[1] will be still used anywhere in code (not discarded) — it's WRONG (they now technically share one womb object). Please tell me about it then. But if old body $args[1] just discarded — it's no problem then.*/
-<<set $args[0].pregAdaptation = $args[1].pregAdaptation>>
-<<set $args[0].geneMods = $args[1].geneMods>>
-<<set $args[0].NCSyouthening = $args[1].NCSyouthening>>
-<<set $args[0].eyebrowHColor = $args[1].eyebrowHColor>>
-<<set $args[0].eyebrowHStyle = $args[1].eyebrowHStyle>>
-<<set $args[0].eyebrowFullness = $args[1].eyebrowFullness>>
-<<set $args[0].wombImplant = $args[1].wombImplant>>
-<<set $args[0].ovaImplant = $args[1].ovaImplant>>
-<<set $args[0].geneticQuirks = $args[1].geneticQuirks>>
-<<set $args[0].albinismOverride = $args[1].albinismOverride>>
-<<set $args[0].clone = $args[1].clone>>
-<<set $args[0].cloneID = $args[1].cloneID>>
-<<set $args[0].inbreedingCoeff = $args[1].inbreedingCoeff>>
-
-<<set $args[0].canRecruit = 0>>
-
-<<if $args[2] != 1>> /* swapping NOT gene pool records */
-	<<set $args[0].counter.publicUse = $args[1].counter.publicUse>>
-	<<set $args[0].counter.laborCount = $args[1].counter.laborCount>>
-	<<set $args[0].porn = $args[1].porn>>
-	<<set $args[0].aphrodisiacs = $args[1].aphrodisiacs>>
-	<<set $args[0].curatives = $args[1].curatives>>
-	<<set $args[0].drugs = $args[1].drugs>>
-	<<set $args[0].prestige = $args[1].prestige>>
-	<<set $args[0].porn.viewerCount = $args[1].porn.viewerCount>>
-	<<set $args[0].porn.prestige = $args[1].porn.prestige>>
-	<<set $args[0].porn.prestigeDesc = $args[1].porn.prestigeDesc>>
-	<<set $args[0].prestigeDesc = $args[1].prestigeDesc>>
-	<<set $args[0].minorInjury = $args[1].minorInjury>>
-	<<set $args[0].eyewear = $args[1].eyewear>>
-	<<set $args[0].earwear = $args[1].earwear>>
-	<<set $args[0].earsPiercing = $args[1].earsPiercing>>
-	<<set $args[0].armAccessory = $args[1].armAccessory>>
-	<<set $args[0].legAccessory = $args[1].legAccessory>>
-	<<set $args[0].bellyAccessory = $args[1].bellyAccessory>>
-	<<set $args[0].preg = $args[1].preg>>
-	<<set $args[0].pregSource = $args[1].pregSource>>
-	<<set $args[0].pregType = $args[1].pregType>>
-	<<set $args[0].labor = $args[1].labor>>
-	<<set $args[0].clitSetting = $args[1].clitSetting>>
-	<<set $args[0].diet = $args[1].diet>>
-	<<set $args[0].dietCum = $args[1].dietCum>>
-	<<set $args[0].dietMilk = $args[1].dietMilk>>
-	<<set $args[0].clothes = $args[1].clothes>>
-	<<set $args[0].collar = $args[1].collar>>
-	<<set $args[0].faceAccessory = $args[1].faceAccessory>>
-	<<set $args[0].mouthAccessory = $args[1].mouthAccessory>>
-	<<set $args[0].shoes = $args[1].shoes>>
-	<<set $args[0].makeup = $args[1].makeup>>
-	<<set $args[0].nails = $args[1].nails>>
-	<<set $args[0].vaginalAccessory = $args[1].vaginalAccessory>>
-	<<set $args[0].dickAccessory = $args[1].dickAccessory>>
-	<<set $args[0].buttplug = $args[1].buttplug>>
-	<<set $args[0].buttplugAttachment = $args[1].buttplugAttachment>>
-	<<set $args[0].induce = $args[1].induce>>
-	<<set $args[0].mpreg = $args[1].mpreg>>
-	<<set $args[0].pregKnown = $args[1].pregKnown>>
-	<<set $args[0].pregWeek = $args[1].pregWeek>>
-	<<set $args[0].belly = $args[1].belly>>
-	<<set $args[0].bellyPreg = $args[1].bellyPreg>>
-	<<set $args[0].bellyFluid = $args[1].bellyFluid>>
-	<<set $args[0].bellyImplant = $args[1].bellyImplant>>
-	<<set $args[0].bellySag = $args[1].bellySag>>
-	<<set $args[0].bellySagPreg = $args[1].bellySagPreg>>
-	<<set $args[0].bellyPain = $args[1].bellyPain>>
-	<<set $args[0].cervixImplant = $args[1].cervixImplant>>
-	<<set $args[0].scar = $args[1].scar>>
-	<<set $args[0].pregControl = $args[1].pregControl>>
-	<<run deflate($args[0])>>
-<</if>>
-/*
-<<if def $args[2]>>
-	<<= assignJob($args[0], "rest")>>
-<</if>>
-*/
-
-<</widget>>
-
-<<widget "BodySwapName">>
-
-<<if $args[1].bodySwap == 0>>
-	<<if $args[1].birthSurname>>
-		<<if $args[1].birthName !== "">>
-			<<set $args[0].origBodyOwner = SlaveFullBirthName($args[1])>>
-		<<else>>
-			<<set $args[0].origBodyOwner = $args[1].slaveName + " " + $args[1].birthSurname>>
-		<</if>>
-	<<elseif $args[1].birthName>>
-		<<if $args[1].slaveSurname>>
-			<<if (($surnameOrder != 1 && ["Cambodian", "Chinese", "Hungarian", "Japanese", "Korean", "Mongolian", "Taiwanese", "Vietnamese"].includes($args[1].nationality)) || ($surnameOrder == 2)>>
-				<<set $args[0].origBodyOwner = $args[1].slaveSurname + " " + $args[1].birthName>>
-			<<else>>
-				<<set $args[0].origBodyOwner = $args[1].birthName + " " + $args[1].slaveSurname>>
-			<</if>>
-		<<else>>
-			<<set $args[0].origBodyOwner = $args[1].birthName>>
-		<</if>>
-	<<elseif $args[1].slaveSurname>>
-		<<set $args[0].origBodyOwner = SlaveFullName($args[1])>>
-	<<else>>
-		<<set $args[0].origBodyOwner = $args[1].slaveName>>
-	<</if>>
-<<else>>
-	<<set $args[0].origBodyOwner = $args[1].origBodyOwner>>
-<</if>>
-
-<</widget>>