diff --git a/src/js/useSlave.JS b/src/js/useSlave.JS
new file mode 100644
index 0000000000000000000000000000000000000000..6e138b27103ee54394811fb2c4cbe724ce96c42b
--- /dev/null
+++ b/src/js/useSlave.JS
@@ -0,0 +1,741 @@
+window.useSlaveDisplay = function(slave) {
+	// Goal: Be able to write the entire "use her" block with only dom fragments.
+	let el = document.createElement('div');
+
+	const
+		{
+			// eslint-disable-next-line no-unused-vars
+			he, him, his, hers, himself, boy, He, His
+		} = getPronouns(slave);
+
+	/*
+	Array of objects.  Each object follows the form: {
+		text: "Link text",
+		scene: "scene to include",
+		goto: if another passage is needed
+		updateSlave: update slave itself if needed, like {trust: 2},
+		update: updates V.,
+		note: if a note must appear after the link
+	}
+	*/
+	const sexOptions = [];
+	const fillFaceOptions = [];
+	const fillAssOptions = [];
+	// if no scene, it's just text, no link.  Italicize it.
+
+	if (slave.fuckdoll === 0) {
+		if (slave.vagina > -1) {
+			if (canDoVaginal(slave)) {
+				sexOptions.push({text: `Fuck ${him}`, scene: `FVagina`});
+				if (canDoAnal(slave)) {
+					sexOptions.push({text: `Use ${his} holes`, scene: `FButt`});
+				}
+				if (slave.bellyPreg >= 300000) {
+					sexOptions.push({text: `Fuck ${him} on ${his} belly`, scene: `FBellyFuck`});
+				}
+				if (slave.bellyPreg >= 300000 && V.pregInventions >= 1) {
+					sexOptions.push({text: `Fuck ${him} in ${his} maternity swing`, scene: `FMaternitySwing`});
+				}
+				if (slave.bellyPreg >= 300000 && V.pregInventions >= 1) {
+					sexOptions.push({text: `Fuck ${him} with the help of ${his} assistants`, scene: `FAssistedSex`});
+				}
+				if (slave.bellyPreg >= 300000 && V.pregInventions >= 1) {
+					sexOptions.push({text: `Fuck ${him} in your goo pool`, scene: `FPoolSex`});
+				}
+			} else {
+				sexOptions.push({text: `Remove ${his} chastity belt if you wish to fuck ${him}`});
+			}
+		}
+		if (slave.bellyPreg >= 300000) {
+			if (canDoVaginal(slave) || canDoAnal(slave)) {
+				sexOptions.push({text: `Fuck ${him} on ${his} belly`, scene: `FBellyFuck`});
+				if (V.pregInventions >= 1) {
+					sexOptions.push({text: `Fuck ${him} in ${his} maternity swing`, scene: `FMaternitySwing`});
+					sexOptions.push({text: `Fuck ${him} with the help of ${his} assistants`, scene: `FAssistedSex`});
+					sexOptions.push({text: `Fuck ${him} in your goo pool`, scene: `FPoolSex`});
+				}
+			}
+		}
+
+		if (canDoAnal(slave)) {
+			sexOptions.push({text: `Fuck ${his} ass`, scene: `FAnus`});
+		} else {
+			sexOptions.push({text: `Remove ${his} chastity belt if you wish to fuck ${his} ass`});
+		}
+		sexOptions.push({text: `Use ${his} mouth`, scene: `FLips`});
+		sexOptions.push({text: `Kiss ${him}`, scene: `FKiss`});
+		if (hasAnyLegs(slave)) {
+			sexOptions.push({text: `Have ${him} dance for you`, scene: `FDance`});
+		}
+
+		sexOptions.push({text: `Play with ${his} tits`, scene: `FBoobs`});
+
+		sexOptions.push({text: `Caress ${him}`, scene: `FCaress`});
+
+		sexOptions.push({text: `Give ${him} a hug`, scene: `FEmbrace`});
+		if (V.cheatMode === 1) {
+			sexOptions.push({text: `Pat ${his} head`, scene: `FPat`});
+		}
+
+		sexOptions.push({text: `Grope ${his} boobs`, scene: `FondleBoobs`});
+		if (slave.nipples === "fuckable" && V.PC.dick > 0) {
+			sexOptions.push({text: `Fuck ${his} nipples`, scene: `FNippleFuck`});
+		}
+		if (slave.lactation > 0 && slave.boobs >= 2000 && slave.belly < 60000 && hasAnyArms(slave)) {
+			sexOptions.push({text: `Drink ${his} milk`, scene: `FSuckle`});
+		}
+
+		if (canDoAnal(slave)) {
+			sexOptions.push({text: `Grope ${his} butt`, scene: `FondleButt`});
+		}
+
+
+		if (slave.vagina > -1) {
+			if (canDoVaginal(slave)) {
+				sexOptions.push({text: `Grope ${his} pussy`, scene: `FondleVagina`});
+			}
+		}
+
+		if (slave.dick > 0) {
+			if (!(slave.chastityPenis)) {
+				sexOptions.push({text: `Grope ${his} dick`, scene: `FondleDick`});
+				if (canPenetrate(slave)) {
+					if (V.sexualOpeness === 1 || slave.toyHole === "dick") {
+						sexOptions.push({text: `Ride ${his} dick`, scene: `FDick`});
+					}
+				}
+			} else {
+				sexOptions.push({text: `Remove ${his} dick chastity belt if you wish to play with ${his} cock`});
+			}
+		}
+
+		if (hasAnyLegs(slave) && V.PC.dick > 0) {
+			sexOptions.push({text: `Get a footjob`, scene: `FFeet`});
+		}
+
+		if (canGetPregnant(slave) && (slave.geneticQuirks.superfetation !== 2 || V.geneticMappingUpgrade !== 0) && (slave.fuckdoll === 0) && V.seePreg !== 0) {
+			if (canImpreg(slave, V.PC)) {
+				sexOptions.push({text: `Impregnate ${him} yourself`, scene: `FPCImpreg`});
+			}
+			if (canImpreg(slave, slave)) {
+				sexOptions.push({text: `Use ${his} own seed to impregnate ${him}`, scene: `FSlaveSelfImpreg`});
+			}
+			sexOptions.push({text: `Use another slave to impregnate ${him}`, scene: `FSlaveImpreg`});
+		}
+		if (slave.assignment !== "work in the dairy" && slave.assignment !== "be confined in the arcade" && slave.assignment !== "be confined in the cellblock") {
+			if (V.dairyPiping === 1) {
+				if ((V.milkPipeline > 88 && V.milkPipeline !== 0) || V.arcologies[0].FSPastoralistLaw === 1) {
+					if ((slave.inflation < 3 && slave.pregKnown === 0 && slave.bellyImplant < 1500) || slave.inflation < 1) {
+						if (slave.inflationType === "milk" || slave.inflationType === "none") {
+							fillAssOptions.push({text: `Milk`, scene: `FillUpButt`, updateSlave: {inflationType: "milk", inflationMethod: 2}});
+							fillFaceOptions.push({text: `Milk`, scene: `FillUpFace`, updateSlave: {inflationType: "milk", inflationMethod: 1}});
+						}
+					}
+				} else {
+					sexOptions.push({text: `${V.dairyNameCaps} is not producing enough milk to pump through the pipes`});
+				}
+				if ((V.cumPipeline > 88 && V.cumPipeline !== 0) || V.arcologies[0].FSPastoralistLaw === 1) {
+					if ((slave.inflation < 3 && slave.pregKnown === 0 && slave.bellyImplant < 1500) || slave.inflation < 1) {
+						if (slave.inflationType === "cum" || slave.inflationType === "none") {
+							fillAssOptions.push({text: `Cum`, scene: `FillUpButt`, updateSlave: {inflationType: "cum", inflationMethod: 2}});
+							fillFaceOptions.push({text: `Cum`, scene: `FillUpFace`, updateSlave: {inflationType: "cum", inflationMethod: 1}});
+						}
+					}
+				} else {
+					sexOptions.push({text: `${V.dairyNameCaps} is not producing enough cum to pump through the pipes`});
+				}
+			} /* dairyPiping === 1 */
+			if (V.enema === 1) {
+				if ((slave.inflation < 3 && slave.pregKnown === 0 && slave.bellyImplant < 1500) || slave.inflation < 1) {
+					if (slave.inflationType === "water" || slave.inflationType === "none") {
+						fillAssOptions.push({text: `Water`, scene: `FillUpButt`, updateSlave: {inflationType: "water", inflationMethod: 2}});
+					}
+					if (V.medicalEnema === 1) {
+						if (slave.inflationType === "aphrodisiac" || slave.inflationType === "none") {
+							fillAssOptions.push({text: `Aphrodisiacs`, scene: `FillUpButt`, updateSlave: {inflationType: "aphrodisiac", inflationMethod: 2}});
+						}
+						if (slave.inflationType === "curative" || slave.inflationType === "none") {
+							fillAssOptions.push({text: `Curatives`, scene: `FillUpButt`,  updateSlave: {inflationType: "curative", inflationMethod: 2}});
+						}
+						if (slave.inflationType === "tightener" || slave.inflationType === "none") {
+							fillAssOptions.push({text: `Rectal tighteners`, scene: `FillUpButt`,  updateSlave: {inflationType: "tightener", inflationMethod: 2}});
+						}
+					}
+				} /* inflation < 3 */
+			} /* enema === 1 */
+			if (V.wcPiping === 1) {
+				if ((slave.inflation < 3 && slave.pregKnown === 0 && slave.bellyImplant < 1500) || slave.inflation < 1) {
+					if (slave.inflationType === "urine" || slave.inflationType === "none") {
+						fillAssOptions.push({text: `Urine`, scene: `FillUpButt`, updateSlave: {inflationType: "urine", inflationMethod: 2}});
+					}
+				}
+			} /* wcPiping === 1 */
+		} /* assigned to dairy or arcade */
+		if (slave.inflation === 0 && slave.bellyImplant < 1500) {
+			if (slave.assignment !== "work in the dairy" && slave.assignment !== "be confined in the arcade" && slave.assignment !== "be confined in the cellblock") {
+				if (V.buckets === 1) {
+					fillFaceOptions.push({text: `Two liters of slave food`, scene: `forceFeeding`, updateSlave: {inflation: 1, inflationType: "food", inflationMethod: 1}});
+					if (slave.pregKnown === 0) {
+						fillFaceOptions.push({text: `A gallon of slave food`, scene: `forceFeeding`, updateSlave: {inflation: 2, inflationType: "food", inflationMethod: 1}});
+						fillFaceOptions.push({text: `Two gallons of slave food`, scene: `forceFeeding`, updateSlave: {inflation: 3, inflationType: "food", inflationMethod: 1}});
+					}
+				}
+				fillFaceOptions.push({text: `Get another slave to do it`, goto: `SlaveOnSlaveFeedingWorkAround`});
+			}
+		}
+		if (canDoVaginal(slave)) {
+			sexOptions.push({text: `Have another slave fuck ${his} pussy`, scene: `FSlaveSlaveVag`});
+		}
+		if (canPenetrate(slave)) {
+			sexOptions.push({text: `Have another slave ride ${his} cock`, scene: `FSlaveSlaveDick`});
+		}else if (slave.clit >= 4) {
+			sexOptions.push({text: `Have another slave ride ${his} clit-dick`, scene: `FSlaveSlaveDick`});
+		}
+		if (V.seeBestiality === 1 && V.cheatMode === 1) {
+			if (V.farmyardKennels > 0 && V.activeCanine !== 0) {
+				sexOptions.push({text: `Have a ${V.activeCanine.species} mount ${him}`, scene: `BeastFucked`, update: {animalType: "canine"}});
+			}
+			if (V.farmyardStable > 0 && V.activeHooved !== 0) {
+				sexOptions.push({text: `Let a ${V.activeHooved.species} mount ${him}`, scene: `BeastFucked`, update: {animalType: "hooved"}});
+			}
+			if (V.farmyardCages > 0 && V.activeFeline !== 0) {
+				sexOptions.push({text: `Have a ${V.activeFeline.species} mount ${him}`, scene: `BeastFucked`, update: {animalType: "feline"}});
+			}
+		}
+		sexOptions.push({text: `Abuse ${him}`, scene: `FAbuse`});
+		if (V.seeIncest === 1) {
+			if (V.familyTesting === 1) {
+				const availRelatives = availableRelatives(slave);
+				if (availRelatives.mother) {
+					sexOptions.push({text: `Fuck ${him} with ${his} mother`, scene: `FRelation`, update: {partner: "mother"}});
+				} else if (availRelatives.motherName !== null) {
+					sexOptions.push({text: `${His} mother, ${availRelatives.motherName}, is unavailable`});
+				}
+				/*
+				if (availRelatives.father) {
+					sexOptions.push({text: `Fuck ${him} with ${his} father`, scene: `FRelation`, update: {partner: "father"}});
+				} else if (availRelatives.fatherName !== null) {
+					sexOptions.push({text: `${His} father, ${availRelatives.motherName}, is unavailable`});
+				}
+				*/
+				if (slave.daughters > 0) {
+					if (availRelatives.daughters === 0) {
+						if (slave.daughters === 1) {
+							sexOptions.push({text: `${His} ${availRelatives.oneDaughterRel} is unavailable`});
+						} else {
+							sexOptions.push({text: `${His} daughters are unavailable`});
+						}
+					} else {
+						if (slave.daughters === 1) {
+							sexOptions.push({text: `Fuck ${him} with ${his} ${availRelatives.oneDaughterRel}`, scene: `FRelation`, update: {partner: "daughter"}});
+						} else {
+							sexOptions.push({text: `Fuck ${him} with one of ${his} daughters`, scene: `FRelation`, update: {partner: "daughter"}});
+						}
+						/*
+						if (availRelatives.daughters > 1) {
+							sexOptions.push({text: `Fuck ${him} with ${his} daughters`, scene: `FRelation`, update: {partner: "daughter"}});
+						}
+						*/
+					}
+				}
+				if (slave.sisters > 0) {
+					if (availRelatives.sisters === 0) {
+						if (slave.sisters === 1) {
+							sexOptions.push({text: `${His} ${availRelatives.oneSisterRel} is unavailable`});
+						} else {
+							sexOptions.push({text: `${His} sisters are unavailable`});
+						}
+					} else {
+						if (slave.sisters === 1) {
+							sexOptions.push({text: `Fuck ${him} with ${his} ${availRelatives.oneSisterRel}`, scene: `FRelation`, update: {partner: "sister"}});
+						} else {
+							sexOptions.push({text: `Fuck ${him} with one of ${his} sisters`, scene: `FRelation`, update: {partner: "sister"}});
+						}
+						/*
+						if (availRelatives.sisters > 1) {
+							sexOptions.push({text: `Fuck ${him} with ${his} sisters`, scene: `FRelation`, update: {partner: "sisters}});
+						}
+						*/
+					}
+				}
+			} else {
+				if (slave.relation !== 0) {
+					let assayedSlave = getSlave(slave.relationTarget);
+					const
+					{
+						daughter: daughter2, mother: mother2
+					} = getPronouns(assayedSlave);
+					if (isSlaveAvailable(assayedSlave)) {
+						if (slave.relation === "mother") {
+							sexOptions.push({text: `Fuck ${him} with ${his} ${daughter2}`, scene: `FRelation`, update: {partner: "relation"}});
+						} else if (slave.relation === "daughter") {
+							sexOptions.push({text: `Fuck ${him} with ${his} ${mother2}`, scene: `FRelation`, update: {partner: "relation"}});
+						} else if (slave.relation === "sister") {
+							sexOptions.push({text: `Fuck ${him} with ${his} ${sister2}`, scene: `FRelation`, update: {partner: "relation"}});
+						} else if (slave.relation === "twin") {
+							sexOptions.push({text: `Fuck ${him} with ${his} twin`, scene: `FRelation`, update: {partner: "relation"}});
+						}
+					} else {
+						sexOptions.push({text: `${assayedSlave.slaveName} is unavailable`});
+					}
+				}
+			}
+		}
+		if (slave.relationship > 0) {
+			const lover = getSlave(slave.relationshipTarget);
+			if (isSlaveAvailable(lover)) {
+				sexOptions.push({text: `Fuck ${him} with ${his} ${relationshipTermShort(slave)} ${SlaveFullName(lover)}`, scene: `FRelation`, update: {partner: "relationship"}});
+			} else {
+				if (lover.assignment === "be your agent") {
+					if (slave.broodmother < 2) {
+						sexOptions.push({text: `Send ${him} to live with your agent ${SlaveFullName(lover)}`, goto: `Agent Company`, update: {subSlave: lover}});
+					} else {
+						sexOptions.push({text: `A hyper-broodmother cannot be sent to live with your agent`});
+					}
+				} else {
+					sexOptions.push({text: `${SlaveFullName(lover)} is unavailable`});
+				}
+			}
+		}
+		if (slave.rivalryTarget !== 0 && hasAllLimbs(slave)) {
+			const rival = getSlave(slave.relationshipTarget);
+			if (isSlaveAvailable(rival) && hasAnyLegs(rival)) {
+				sexOptions.push({text: `Abuse ${his} rival with ${him}`, scene: `FRival`});
+			}
+		}
+		if (slave.fetish !== "mindbroken" && (canTalk(slave) || hasAnyArms(slave))) {
+			sexOptions.push({text: `Ask ${him} about ${his} feelings`, scene: `FFeelings`});
+			if (V.PC.dick > 0) {
+				sexOptions.push({text: `Make ${him} beg`, scene: `FBeg`});
+			}
+		}
+		if (slave.devotion >= 100 && slave.relationship < 0 && slave.relationship > -3) {
+			sexOptions.push({text: `Talk to ${him} about relationships`, goto: `Matchmaking`, update: {subSlave: 0, eventSlave: slave}});
+		}
+		let ML = V.marrying.length;
+		if ((V.MixedMarriage === 1 || V.cheatMode === 1) && slave.relationship !== 5 && slave.relationship !== -3) {
+			if (V.marrying.includes(slave.ID)) {
+				sexOptions.push({text: `You are already marrying ${him} this weekend`});
+			} else {
+				if (ML < 2) {
+					if (V.cheatMode === 1 || ML === 0) {
+						sexOptions.push({text: `Marry ${him}`, goto: "FMarry"});
+					} else {
+						sexOptions.push({text: `You already have a wedding planned for this weekend`});
+					}
+				} else {
+					sexOptions.push({text: `You can only marry up to two slaves per week`});
+				}
+			}
+		}
+		if (V.cheatMode === 1) {
+			sexOptions.push({text: `Check ${his} stats`, scene: `Slave Stats`});
+		}
+	} else { /* IS A FUCKDOLL */
+		sexOptions.push({text: `Fuck ${his} face hole`, scene: `FFuckdollOral`});
+		if (canDoVaginal(slave)) {
+			sexOptions.push({text: `Fuck ${his} front hole`, scene: `FFuckdollVaginal`});
+		}
+		if (canGetPregnant(slave) && (slave.geneticQuirks.superfetation !== 2 || V.geneticMappingUpgrade !== 0) && V.seePreg !== 0) {
+			if (canImpreg(slave, V.PC)) {
+				sexOptions.push({text: `Put a baby in ${him}`, scene: `FFuckdollImpreg`});
+			}
+		}
+		if (canDoAnal(slave)) {
+			sexOptions.push({text: `Fuck ${his} rear hole`, scene: `FFuckdollAnal`});
+		}
+	}
+	let activeSlaveRepSacrifice = repGainSacrifice(slave, V.arcologies[0]);
+	if (activeSlaveRepSacrifice > 0 && V.arcologies[0].FSPaternalist === "unset" && (slave.breedingMark === 0 || V.propOutcome === 0 || V.eugenicsFullControl === 1 || V.arcologies[0].FSRestart === "unset")) {
+		sexOptions.push({
+	text: `Sacrifice ${him} on the altar`, goto: `Aztec Slave Sacrifice`, note: `This will kill ${him} and gain you ${activeSlaveRepSacrifice} reputation`, update: {sacrificeType: "life"}
+		});
+	}
+	el.append(`Or use ${him} here: `);
+	el.appendChild(generateRow(sexOptions));
+	if (!jQuery.isEmptyObject(fillFaceOptions)) {
+		let fill = document.createElement('div');
+		fill.appendChild(document.createTextNode(` Fill ${his} mouth with: `));
+		fill.appendChild(generateRow(fillFaceOptions));
+		el.appendChild(fill);
+	}
+	if (!jQuery.isEmptyObject(fillAssOptions)) {
+		let fill = document.createElement('div');
+		fill.appendChild(document.createTextNode(` Fill ${his} ass with: `));
+		fill.appendChild(generateRow(fillAssOptions));
+		el.appendChild(fill);
+	}
+
+	function generateRow(sexArray) {
+		let row = document.createElement('span');
+		for (let i = 0; i < sexArray.length; i++) {
+			let link;
+			const separator  = document.createTextNode(` | `);
+			const keys = Object.keys(sexArray[i]);
+
+			// Test to see if there was a problem with the key
+			for (let j = 0; j < keys.length; j++) {
+				if (["text", "scene", "goto", "updateSlave", "update", "note"].includes(keys[j])) {
+					continue;
+				} else {
+					sexArray[i].text += " ERROR, THIS SCENE WAS NOT ENTERED CORRECTLY";
+					console.log("Trash found while generateRow() was running: " + keys[j] + ": " + sexArray[i][keys[j]]);
+					break;
+				}
+			}
+			// is it just text?
+			if (keys.length === 1) {
+				if (sexArray[i].text) {
+					link = document.createTextNode(sexArray[i].text);
+				} else {
+					console.log(`expected 'text' only, got: ${sexArray[i]}`);
+					link = document.createTextNode("error, text not found");
+				}
+			} else {
+				let passage = "";
+				if (sexArray[i].goto) {
+					passage = sexArray[i].goto;
+				}
+
+				// Set up the link
+				link = App.UI.DOM.link(
+					sexArray[i].text,
+					() => { click(sexArray[i]); },
+					[],
+					passage
+				);
+
+				// add a note node if required
+				if (sexArray[i].note) {
+					let note  = document.createTextNode(sexArray[i].note);
+					note.className = "note";
+					link.appendChild(note);
+				}
+			}
+			row.appendChild(link);
+			if (i < sexArray.length-1) {
+				row.appendChild(separator);
+			}
+		}
+
+		return row;
+
+		function click(sexOption) {
+			if (sexOption.updateSlave) {
+				Object.assign(slave, sexOption.updateSlave);
+			}
+			if (sexOption.update) {
+				Object.assign(V, sexOption.update);
+			}
+
+			if (sexOption.scene) {
+				App.UI.replace('#miniscene', `<<include "${sexOption.scene}">>`);
+			} else if (sexOption.goto) {
+				App.UI.replace('#miniscene', `<<goto "${sexOption.goto}">>`);
+			}
+
+			SlaveInteractRefreshAll(slave);
+			return;
+		}
+	}
+	return jQuery('#useSlave').empty().append(el);
+};
+
+window.SlaveInteractBloating = function(slave) {
+	const
+		{
+			// eslint-disable-next-line no-unused-vars
+			he, him, his, hers, himself, boy, He, His
+		} = getPronouns(slave);
+	let bloating = document.createElement('div');
+	if (slave.inflation > 0) {
+		let intro = document.createElement('span');
+		intro.textContent = "Required Bloating";
+		intro.style.textDecoration = "underline";
+		bloating.append(intro);
+
+		bloating.append(": ");
+
+		let requirement = document.createElement('span');
+		requirement.style.fontWeight = "bold";
+		requirement.id = "inflate";
+		if (slave.inflation === 3) {
+			requirement.textContent = `${He} is required to keep 2 gallons of ${slave.inflationType} in ${him} at all times`;
+		} else if (slave.inflation === 2) {
+			requirement.textContent = `${He} is required to keep 4 liters of ${slave.inflationType} in ${him} at all times`;
+		} else if (slave.inflation === 1) {
+			requirement.textContent = `${He} is required to keep 2 liters of ${slave.inflationType} in ${him} at all times`;
+		}
+		bloating.append(requirement);
+		bloating.append(". ");
+
+		if (slave.inflationMethod === 3) {
+			let link = App.UI.DOM.link(
+				`Let ${him} deflate`,
+				() => {
+					slave.inflation = 0,
+					slave.inflationType = "none",
+					slave.inflationMethod = 0,
+					slave.cumSource = 0,
+					slave.milkSource = 0,
+					SetBellySize(slave),
+					SlaveInteractRefreshAll(slave);
+				},
+			);
+			bloating.append(link);
+		} else {
+			let link = App.UI.DOM.link(
+				`Let ${him} deflate`,
+				() => {
+					slave.inflation = 0,
+					slave.inflationType = "none",
+					slave.inflationMethod = 0,
+					SetBellySize(slave),
+					SlaveInteractRefreshAll(slave);
+				},
+			);
+			bloating.append(link);
+		}
+	}
+	// make sure it updates itself after run
+	return jQuery('#bloating').empty().append(bloating);
+};
+
+
+window.SlaveInteractFertility = function(slave) {
+	const
+		{
+			// eslint-disable-next-line no-unused-vars
+			he, him, his, hers, himself, boy, He, His
+		} = getPronouns(slave);
+	const separator  = document.createTextNode(` | `);
+	let fertilityblock = document.createElement('span');
+	if (slave.ovaries === 1 || slave.mpreg === 1 || slave.preg > 0) {
+		let note = document.createTextNode(``);
+		note.className = "note";
+		if (slave.preg < -1) {
+			note.textContent += `${He} is sterile`;
+		} else if (slave.pubertyXX === 0 && slave.preg < 1) {
+			note.textContent += `${He} is not yet fertile`;
+		} else if (slave.ovaryAge >= 47 && slave.preg < 1) {
+			note.textContent += `${He} is too old to become pregnant`;
+			if (slave.preg === -1) {
+				slave.preg = 0;
+				SetBellySize(slave);
+			}
+		} else if (slave.broodmotherOnHold === 1) {
+			note.textContent += `${His} pregnancy implant is turned off`;
+			if (slave.broodmotherCountDown > 0) {
+				note.textContent += `${he} is expected to be completely emptied of ${his} remaining brood in ${slave.broodmotherCountDown} week`;
+				if (slave.broodmotherCountDown > 1){
+					note.textContent += `s`;
+				}
+				note.textContent += `.`;
+				let link = App.UI.DOM.link(
+					`Turn on implant`,
+					() => {
+						slave.broodmotherOnHold = 0,
+						slave.broodmotherCountDown = 0;
+					},
+					[],
+					"Slave Interact"
+				);
+				fertilityblock.append(link);
+			}
+		} else if (slave.preg >= -1) {
+			fertilityblock.append("Contraception: ");
+			let fertility = document.createElement('span');
+			fertility.id = "fertility";
+			fertility.style.fontWeight = "bold";
+				if (slave.preg === -1) {
+					fertility.textContent = "using contraceptives";
+				} else if (slave.pregWeek < 0) {
+					fertility.textContent = "postpartum";
+				} else if (slave.preg === 0) {
+					fertility.textContent = "fertile";
+				} else if (slave.preg < 4) {
+					fertility.textContent = "may be pregnant";
+				} else {
+					fertility.textContent = `${slave.preg} weeks pregnant`;
+				}
+			fertility.textContent += ". ";
+			if (slave.preg > 0 && V.pregnancyMonitoringUpgrade === 1) {
+				fertilityblock.append(App.UI.DOM.passageLink("Inspect pregnancy", "Analyze Pregnancy"));
+				fertilityblock.append(` | `);
+			}
+			if (slave.preg === 0) {
+				let link = App.UI.DOM.link(
+					`Use contraceptives`,
+					() => {
+						slave.preg = -1,
+						SlaveInteractRefreshAll(slave);
+					},
+				);
+				fertilityblock.append(link);
+			} else if (slave.preg === -1) {
+				let link = App.UI.DOM.link(
+					`Let ${him} get pregnant`,
+					() => {
+						slave.preg = 0,
+						SlaveInteractRefreshAll(slave);
+					},
+				);
+				fertilityblock.append(link);
+			} else if (slave.induce === 1) {
+				note.textContent += `Hormones are being slipped into ${his} food; ${he} will give birth suddenly and rapidly this week`;
+			} else if (slave.preg > slave.pregData.normalBirth-2 && slave.preg > slave.pregData.minLiveBirth && slave.broodmother === 0 && slave.labor === 0) {
+				let link = App.UI.DOM.link(
+					`Induce labor`,
+					() => {
+						slave.labor = 1,
+						slave.induce = 1,
+						V.birthee = 1;
+					},
+					[],
+					"Slave Interact"
+				);
+				fertilityblock.append(link);
+				fertilityblock.appendChild(separator);
+				fertilityblock.append(App.UI.DOM.passageLink(`Give ${him} a cesarean section`, "csec"));
+			} else if (slave.broodmother > 0) {
+				if (slave.broodmotherOnHold !== 1) {
+					let link = App.UI.DOM.link(
+						`Turn off implant`,
+						() => {
+							slave.broodmotherOnHold = 1,
+							slave.broodmotherCountDown = 38-WombMinPreg(slave);
+						},
+					);
+					fertilityblock.append(link);
+				}
+				if (slave.broodmotherOnHold !== 1 && slave.preg >= 36) {
+					fertilityblock.appendChild(separator);
+				}
+				fertilityblock.appendChild(separator);
+				if (slave.preg > 37) {
+					fertilityblock.append(App.UI.DOM.passageLink(`Induce mass childbirth`, "BirthStorm"));
+				}
+			} else if (slave.preg > slave.pregData.minLiveBirth) {
+				let link = App.UI.DOM.link(
+					`Give  ${him} a cesarean section`,
+					() => {
+						slave.broodmotherOnHold = 0,
+						slave.broodmotherCountDown = 0;
+					},
+					[],
+					"csec"
+				);
+				fertilityblock.append(link);
+			} else if (slave.preg > 0 && slave.breedingMark === 1 && V.propOutcome === 1 && V.arcologies[0].FSRestart !== "unset" && V.eugenicsFullControl !== 1 && (slave.pregSource === -1 || slave.pregSource === -6)) {
+				note.textContent += "You are forbidden from aborting an Elite child";
+			} else if (slave.preg > 0) {
+				let link = App.UI.DOM.link(
+					`Abort ${his} pregnancy`,
+					() => {
+						slave.broodmotherOnHold = 0,
+						slave.broodmotherCountDown = 0;
+					},
+					[],
+					"Abort"
+				);
+				fertilityblock.append(link);
+			}
+		fertilityblock.append(note);
+		}
+	}
+	if (
+		(slave.pregKnown === 1) &&
+		(V.pregSpeedControl === 1) &&
+		(
+			slave.breedingMark !== 1 ||
+			V.propOutcome === 0 ||
+			V.eugenicsFullControl === 1 ||
+			V.arcologies[0].FSRestart === "unset"
+		) &&
+		(slave.indentureRestrictions < 1) &&
+		(slave.broodmother === 0) &&
+		V.seePreg !== 0
+	) {
+		let control = document.createElement('div');
+		let underline = document.createElement('span');
+
+		underline.style.textDecoration = "underline";
+		underline.textContent = "Pregnancy control";
+		control.append(underline);
+		control.append(": ");
+
+		if (slave.pregControl === "labor suppressors") {
+			control.append("Labor is suppressed. ");
+		} else if (slave.pregControl === "slow gestation") {
+			control.append("Slowed gestation speed. ");
+		} else if (slave.pregControl === "speed up") {
+			control.append("Faster gestation speed, staffed clinic recommended. ");
+		} else {
+			control.append("Normal gestation and birth. ");
+		}
+		fertilityblock.append(control);
+		control = document.createElement('div');
+		if (slave.preg >= slave.pregData.minLiveBirth) {
+			if (slave.pregControl === "labor suppressors") {
+				let link = App.UI.DOM.link(
+					`Normal Birth`,
+					() => {
+						slave.pregControl = "none",
+						SlaveInteractFertility(slave);
+					},
+				);
+				control.append(link);
+			} else {
+				let link = App.UI.DOM.link(
+					`Suppress Labor`,
+					() => {
+						slave.pregControl = "labor suppressors",
+						SlaveInteractFertility(slave);
+					},
+				);
+				control.append(link);
+			}
+		} else if (slave.preg < slave.pregData.normalBirth) {
+			if (slave.pregControl !== "none") {
+				let link = App.UI.DOM.link(
+					`Normal Gestation`,
+					() => {
+						slave.pregControl = "none",
+						SlaveInteractFertility(slave);
+					},
+				);
+				control.append(link);
+			}
+			if (slave.pregControl !== "slow gestation") {
+				control.append(separator);
+				let link = App.UI.DOM.link(
+					`Slow Gestation`,
+					() => {
+						slave.pregControl = "slow gestation",
+						SlaveInteractFertility(slave);
+					},
+				);
+				control.append(link);
+			}
+			if (slave.pregControl !== "speed up") {
+				control.append(separator);
+				let link = App.UI.DOM.link(
+					`Fast Gestation`,
+					() => {
+						slave.pregControl = "speed up",
+						SlaveInteractFertility(slave);
+					},
+				);
+				control.append(link);
+			}
+		}
+		fertilityblock.append(control);
+	}
+	return jQuery('#fertilityblock').empty().append(fertilityblock);
+};
+
+window.SlaveInteractRefreshAll = function(slave) {
+	SlaveInteractBloating(slave);
+	SlaveInteractFertility(slave);
+	useSlaveDisplay(slave);
+};
diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw
index c0d465dd481d94929a96c0259aefd7aaac2f1806..00de0b3bc901bd06dbe4c66467f7a715820d6b9a 100644
--- a/src/uncategorized/slaveInteract.tw
+++ b/src/uncategorized/slaveInteract.tw
@@ -66,338 +66,15 @@
 <<if $prostheticsUpgrade > 0>>| [[Configure cybernetics|Prosthetics Configuration][$prostheticsConfig = "main"]]<</if>>
 
 
-<br>&nbsp;&nbsp;&nbsp;&nbsp;
-<span id="miniscene">//Or use $him here://</span>
-<<if $activeSlave.fuckdoll == 0>>
-	<span id="sexoption">
-	<<if ($activeSlave.vagina > -1)>>
-		<<if canDoVaginal($activeSlave)>>
-			<<link "Fuck $him">><<replace "#miniscene">><<include "FVagina">><br><</replace>><</link>>
-			<<if canDoAnal($activeSlave)>>
-				| <<link "Use $his holes">><<replace "#miniscene">><<include "FButt">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-			<</if>>
-		<<else>>
-			//Remove $his chastity belt if you wish to fuck $him//
-		<</if>>
-	<</if>>
-	<<if $activeSlave.bellyPreg >= 300000>>
-		<<if canDoVaginal($activeSlave) || canDoAnal($activeSlave)>>
-			| <<link "Fuck $him on $his belly">><<replace "#miniscene">><<include "FBellyFuck">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-			<<if $pregInventions >= 1>>
-				| <<link "Fuck $him in $his maternity swing">><<replace "#miniscene">><<include "FMaternitySwing">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-				| <<link "Fuck $him with the help of $his assistants">><<replace "#miniscene">><<include "FAssistedSex">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-				| <<link "Fuck $him in your goo pool">><<replace "#miniscene">><<include "FPoolSex">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-			<</if>>
-		<</if>>
-	<</if>>
-	</span>
-	<span id="analsexoption">
-	<<if canDoAnal($activeSlave)>>
-		| <<link "Fuck $his ass">><<replace "#miniscene">><<include "FAnus">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	<<else>>
-		| //Remove $his chastity belt if you wish to fuck $his ass//
-	<</if>>
-	</span>
-	| <<link "Use $his mouth">><<replace "#miniscene">><<include "FLips">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	| <<link "Kiss $him">><<replace "#miniscene">><<include "FKiss">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	<<if hasAnyLegs($activeSlave)>>
-		| <<link "Have $him dance for you">><<replace "#miniscene">><<include "FDance">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	<</if>>
-	| <<link "Play with $his tits">><<replace "#miniscene">><<include "FBoobs">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	| <<link "Caress $him">><<replace "#miniscene">><<include "FCaress">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	| <<link "Give $him a hug">><<replace "#miniscene">><<include "FEmbrace">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	<<if $cheatMode == 1>>
-		| <<link "Pat $his head">><<replace "#miniscene">><<include "FPat">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	<</if>>
-	| <<link "Grope $his boobs">><<replace "#miniscene">><<include "FondleBoobs">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	<<if $activeSlave.nipples == "fuckable" && $PC.dick > 0>>
-		| <<link "Fuck $his nipples">><<replace "#miniscene">><<include "FNippleFuck">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	<</if>>
-	<<if $activeSlave.lactation > 0 && $activeSlave.boobs >= 2000 && $activeSlave.belly < 60000 && hasAnyArms($activeSlave)>>
-		| <<link "Drink $his milk">><<replace "#miniscene">><<include "FSuckle">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	<</if>>
-	<span id="analgropeoption">
-	<<if canDoAnal($activeSlave)>>
-		| <<link "Grope $his butt">><<replace "#miniscene">><<include "FondleButt">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	<</if>>
-	</span>
-	<span id="gropeoption">
-	<<if ($activeSlave.vagina > -1)>>
-		<<if canDoVaginal($activeSlave)>>
-			| <<link "Grope $his pussy">><<replace "#miniscene">><<include "FondleVagina">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-			| <<link "Eat $him out">><<replace "#miniscene">><<include "FLickPussy">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-		<</if>>
-	<</if>>
-	</span>
-	<span id="dickgropeoption">
-	<<if ($activeSlave.dick > 0)>>
-		<<if !($activeSlave.chastityPenis)>>
-			| <<link "Grope $his dick">><<replace "#miniscene">><<include "FondleDick">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-			<<if canPenetrate($activeSlave)>>
-				<<if $sexualOpeness == 1 || $activeSlave.toyHole == "dick">>
-					| <<link "Ride $his dick">><<replace "#miniscene">><<include "FDick">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-				<</if>>
-			<</if>>
-		<<else>>
-			| //Remove $his dick chastity belt if you wish to play with $his cock//
-		<</if>>
-	<</if>>
-	</span>
-	<<if hasAnyLegs($activeSlave) && $PC.dick > 0>>
-		| <<link "Get a footjob">><<replace "#miniscene">><<include "FFeet">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-	<</if>>
-	<span id = "impreg">
-	<<if (canGetPregnant($activeSlave)) && ($activeSlave.geneticQuirks.superfetation != 2 || $geneticMappingUpgrade != 0) && ($activeSlave.fuckdoll == 0) && $seePreg != 0>>
-		<<if canImpreg($activeSlave, $PC)>>
-			| <<link "Impregnate $him yourself">><<replace "#miniscene">><<include "FPCImpreg">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-		<</if>>
-		<<if canImpreg($activeSlave, $activeSlave)>>
-			| <<link "Use $his own seed to impregnate $him">><<replace "#miniscene">><<include "FSlaveSelfImpreg">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-		<</if>>
-		| <<link "Use another slave to impregnate $him" "FSlaveImpreg">><</link>>
-		<<if ($activeSlave.eggType != "human") && (_CL > 0 || _HL > 0 || _FL > 0) && ($cheatMode == 1)>>
-			| <<link "Use an animal to impregnate $him" "FAnimalImpreg">><</link>>
-		<</if>>
-	<</if>>
-	<<if $activeSlave.assignment != "work in the dairy" && $activeSlave.assignment != "be confined in the arcade" && $activeSlave.assignment != "be confined in the cellblock">>
-		<<if $enema == 1>>
-			<<if ($activeSlave.inflation < 3 && $activeSlave.pregKnown == 0 && $activeSlave.bellyImplant < 1500) || ($activeSlave.inflation < 1)>>
-				<<if $activeSlave.inflationType == "water" || $activeSlave.inflationType == "none">>
-					| <<link "Fill $his ass with water">><<set $activeSlave.inflationType = "water">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-				<</if>>
-				<<if $medicalEnema == 1>>
-					<<if $activeSlave.inflationType == "aphrodisiac" || $activeSlave.inflationType == "none">>
-						| <<link "Fill $his ass with aphrodisiacs">><<set $activeSlave.inflationType = "aphrodisiac">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					<</if>>
-					<<if $activeSlave.inflationType == "curative" || $activeSlave.inflationType == "none">>
-						| <<link "Fill $his ass with curatives">><<set $activeSlave.inflationType = "curative">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					<</if>>
-					<<if $activeSlave.inflationType == "tightener" || $activeSlave.inflationType == "none">>
-						| <<link "Fill $his ass with rectal tighteners">><<set $activeSlave.inflationType = "tightener">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					<</if>>
-				<</if>>
-			<</if>>
-		<</if>>
-		<<if $dairyPiping == 1>>
-			<<if ($milkPipeline > 88 && $milkPipeline != 0) || $arcologies[0].FSPastoralistLaw == 1>>
-				<<if ($activeSlave.inflation < 3 && $activeSlave.pregKnown == 0 && $activeSlave.bellyImplant < 1500) || ($activeSlave.inflation < 1)>>
-					<<if $activeSlave.inflationType == "milk" || $activeSlave.inflationType == "none">>
-						| <<link "Fill $his ass with milk">><<set $activeSlave.inflationType = "milk">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-						| <<link "Force-feed $him milk">><<set $activeSlave.inflationType = "milk">><<set $activeSlave.inflationMethod = 1>><<replace "#miniscene">><<include "FillUpFace">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					<</if>>
-				<</if>>
-			<<else>>
-				| //$dairyNameCaps is not producing enough milk to pump through the pipes//
-			<</if>>
-			<<if ($cumPipeline > 88 && $cumPipeline != 0) || $arcologies[0].FSPastoralistLaw == 1>>
-				<<if ($activeSlave.inflation < 3 && $activeSlave.pregKnown == 0 && $activeSlave.bellyImplant < 1500) || ($activeSlave.inflation < 1)>>
-					<<if $activeSlave.inflationType == "cum" || $activeSlave.inflationType == "none">>
-						| <<link "Fill $his ass with cum">><<set $activeSlave.inflationType = "cum">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-						| <<link "Force-feed $him cum">><<set $activeSlave.inflationType = "cum">><<set $activeSlave.inflationMethod = 1>><<replace "#miniscene">><<include "FillUpFace">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					<</if>>
-				<</if>>
-			<<else>>
-				| //$dairyNameCaps is not producing enough cum to pump through the pipes//
-			<</if>>
-		<</if>>
-		<<if $wcPiping == 1>>
-			<<if ($activeSlave.inflation < 3 && $activeSlave.pregKnown == 0 && $activeSlave.bellyImplant < 1500) || ($activeSlave.inflation < 1)>>
-				<<if $activeSlave.inflationType == "urine" || $activeSlave.inflationType == "none">>
-					| <<link "Fill $his ass with urine">><<set $activeSlave.inflationType = "urine">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-				<</if>>
-			<</if>>
-		<</if>>
-	<</if>>
-	<<if $activeSlave.inflation == 0 && $activeSlave.bellyImplant < 1500>>
-		<<if $activeSlave.assignment != "work in the dairy" && $activeSlave.assignment != "be confined in the arcade" && $activeSlave.assignment != "be confined in the cellblock">>
-			| <<link "Use another slave to force-feed $him" "SlaveOnSlaveFeedingWorkAround">><</link>>
-			<<if $buckets == 1>>
-				| <<link "Make $him consume two liters of slave food">><<set $activeSlave.inflationType = "food">><<set $activeSlave.inflationMethod = 1>><<set $activeSlave.inflation = 1>><<replace "#miniscene">><<include "forceFeeding">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-				<<if $activeSlave.pregKnown == 0>>
-					| <<link "Force $him to consume a gallon of slave food">><<set $activeSlave.inflationType = "food">><<set $activeSlave.inflationMethod = 1>><<set $activeSlave.inflation = 2>><<replace "#miniscene">><<include "forceFeeding">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					| <<link "Force two gallons of slave food into $him">><<set $activeSlave.inflationType = "food">><<set $activeSlave.inflationMethod = 1>><<set $activeSlave.inflation = 3>><<replace "#miniscene">><<include "forceFeeding">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-				<</if>>
-			<</if>>
-		<</if>>
-	<</if>>
-	</span>
-	<<if canDoVaginal($activeSlave)>>
-		| <<link "Have another slave fuck $his pussy" "FSlaveSlaveVag">><</link>>
-	<</if>>
-	<<if canPenetrate($activeSlave)>>
-		| <<link "Have another slave ride $his cock" "FSlaveSlaveDick">><</link>>
-	<<elseif $activeSlave.clit >= 4>>
-		| <<link "Have another slave ride $his clit-dick" "FSlaveSlaveDick">><</link>>
-	<</if>>
-	<<if $seeBestiality == 1 && $cheatMode == 1>>
-		<<if $farmyardKennels > 0 && $activeCanine != 0>>
-			| <<link "Have a $activeCanine.species mount $him">><<set $animalType = "canine">><<replace "#miniscene">><<include "BeastFucked">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-		<</if>>
-		<<if $farmyardStable > 0 && $activeHooved != 0>>
-			| <<link "Let a $activeHooved.species mount $him">><<set $animalType = "hooved">><<replace "#miniscene">><<include "BeastFucked">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-		<</if>>
-		<<if $farmyardCages > 0 && $activeFeline != 0>>
-			| <<link "Have a $activeFeline.species mount $him">><<set $animalType = "feline">><<replace "#miniscene">><<include "BeastFucked">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-		<</if>>
-	<</if>>
-	| <<link "Abuse $him">><<replace "#miniscene">><<include "FAbuse">><</replace>><</link>>
-	<<if $seeIncest == 1>>
-		<<if $familyTesting == 1>>
-			<<set _availRelatives = availableRelatives($activeSlave)>>
-			<<if _availRelatives.mother>>
-				| <<link "Fuck $him with $his mother">><<replace "#miniscene">><<set $partner = "mother">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-			<<elseif _availRelatives.motherName !== null>>
-				//$His mother, _availRelatives.motherName, is unavailable//
-			<</if>>
-			/*
-			<<if _availRelatives.father>>
-				| <<link "Fuck $him with $his father">><<replace "#miniscene">><<set $partner = "father">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-			<<elseif _availRelatives.fatherName !== null>>
-				//$His father, _availRelatives.fatherName, is unavailable//
-			<</if>>
-			*/
-			<<if $activeSlave.daughters > 0>>
-				<<if _availRelatives.daughters == 0>>
-					<<if $activeSlave.daughters == 1>>
-						//$His _availRelatives.oneDaughterRel is unavailable//
-					<<else>>
-						//$His daughters are unavailable//
-					<</if>>
-				<<else>>
-					<<if $activeSlave.daughters == 1>>
-						| <<link "Fuck $him with $his _availRelatives.oneDaughterRel">><<replace "#miniscene">><<set $partner = "daughter">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<<else>>
-						| <<link "Fuck $him with one of $his daughters">><<replace "#miniscene">><<set $partner = "daughter">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<</if>>
-					/*
-					<<if _availRelatives.daughters > 1>>
-						| <<link "Fuck $him with $his daughters">><<replace "#miniscene">><<set $partner = "daughters">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<</if>>
-					*/
-				<</if>>
-			<</if>>
-			<<if $activeSlave.sisters > 0>>
-				<<if _availRelatives.sisters == 0>>
-					<<if $activeSlave.sisters == 1>>
-						//$His _availRelatives.oneSisterRel is unavailable//
-					<<else>>
-						//$His sisters are unavailable//
-					<</if>>
-				<<else>>
-					<<if $activeSlave.sisters == 1>>
-						| <<link "Fuck $him with $his _availRelatives.oneSisterRel">><<replace "#miniscene">><<set $partner = "sister">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<<else>>
-						| <<link "Fuck $him with one of $his sisters">><<replace "#miniscene">><<set $partner = "sister">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<</if>>
-					/*
-					<<if _availRelatives.sisters > 1>>
-						| <<link "Fuck $him with $his sisters">><<replace "#miniscene">><<set $partner = "sisters">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<</if>>
-					*/
-				<</if>>
-			<</if>>
-		<<else>>
-			<<if ($activeSlave.relation != 0)>>
-				<<set _assayedSlave = getSlave($activeSlave.relationTarget)>>
-				<<setLocalPronouns _assayedSlave 2>>
-				<<if isSlaveAvailable(_assayedSlave)>>
-					<<if ($activeSlave.relation == "mother")>>
-						| <<link "Fuck $him with $his _daughter2">><<replace "#miniscene">><<set $partner = "relation">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<<elseif ($activeSlave.relation == "daughter")>>
-						| <<link "Fuck $him with $his mother">><<replace "#miniscene">><<set $partner = "relation">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<<elseif ($activeSlave.relation == "sister")>>
-						| <<link "Fuck $him with $his _sister2">><<replace "#miniscene">><<set $partner = "relation">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<<elseif ($activeSlave.relation == "twin")>>
-						| <<link "Fuck $him with $his twin">><<replace "#miniscene">><<set $partner = "relation">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-					<</if>>
-				<<else>>
-					//_assayedSlave.slaveName is unavailable//
-				<</if>>
-			<</if>>
-		<</if>>
-	<</if>>
-	<<if ($activeSlave.relationship > 0)>>
-		<<set _si = $slaveIndices[$activeSlave.relationshipTarget]>>
-		<<if isSlaveAvailable($slaves[_si])>>
-			| <<link `"Fuck $him with $his <<print relationshipTermShort($activeSlave)>> <<= SlaveFullName($slaves[_si])>>"`>><<replace "#miniscene">><<set $partner = "relationship">><<include "FRelation">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-		<<else>>
-			<<if $slaves[_si].assignment == "be your agent">>
-				<<if $activeSlave.broodmother < 2>>
-					| <<link `"Send $him to live with your agent <<= SlaveFullName($slaves[_si])>>"`>>
-						<<set $subSlave = $slaves[_si]>>
-						<<goto "Agent Company">>
-					<</link>>
-				<<else>>
-					| //A hyper-broodmother cannot be sent to live with your agent//
-				<</if>>
-			<<else>>
-				| //<<= SlaveFullName($slaves[_si])>> is unavailable//
-			<</if>>
-		<</if>>
-	<</if>>
-	<<if $activeSlave.rivalryTarget != 0 && hasAllLimbs($activeSlave)>>
-		<<set _rsi = $slaveIndices[$activeSlave.rivalryTarget]>>
-		<<if isSlaveAvailable($slaves[_rsi]) && hasAnyLegs($slaves[_rsi])>>
-			| <<link "Abuse $his rival with $him">><<replace "#miniscene">><<include "FRival">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-		<</if>>
-	<</if>>
-	<<if ($activeSlave.fetish != "mindbroken") && (canTalk($activeSlave) || hasAnyArms($activeSlave))>>
-		| <<link "Ask $him about $his feelings">><<replace "#miniscene">><<include "FFeelings">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-		<<if $PC.dick > 0>>
-			| <<link "Make $him beg">><<replace "#miniscene">><<include "FBeg">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-		<</if>>
-	<</if>>
-	<<if $activeSlave.devotion >= 100 && $activeSlave.relationship < 0 && $activeSlave.relationship > -3>>
-		| <<link "Talk to $him about relationships" "Matchmaking">><<set $subSlave = 0, $eventSlave = $activeSlave>><</link>>
-	<</if>>
-	<<set _ML = $marrying.length>>
-	<<if (($MixedMarriage == 1 || $cheatMode == 1) && $activeSlave.relationship != 5 && $activeSlave.relationship != -3)>>
-		<<set _eligible = 1>>
-		<<if $marrying.includes($activeSlave.ID)>>
-			<<set _eligible = 0>>
-		<</if>>
-		<<if _eligible != 0>>
-			<<if (_ML < 2)>>
-				<<if ($cheatMode == 1) || (_ML == 0)>>
-					| <<link "Marry $him" "FMarry">><</link>>
-				<<else>>
-					| //You already have a wedding planned for this weekend//
-				<</if>>
-			<<else>>
-				| //You can only marry up to two slaves per week//
-			<</if>>
-		<<else>>
-			| //You are already marrying $him this weekend//
-		<</if>>
-	<</if>>
-	<<if $cheatMode == 1>>
-		| <<link "Check $his stats">><<replace "#miniscene">><<include "Slave Stats">><</replace>><</link>>
-	<</if>>
-<<else>> /* IS A FUCKDOLL */
-	<<link "Fuck $his face hole">><<replace "#miniscene">><<FFuckdollOral>><br><</replace>><</link>>
-	<<if canDoVaginal($activeSlave)>>
-		| <<link "Fuck $his front hole">><<replace "#miniscene">><<FFuckdollVaginal>><br><</replace>><</link>>
-	<</if>>
-	<<if canDoAnal($activeSlave)>>
-		| <<link "Fuck $his rear hole">><<replace "#miniscene">><<FFuckdollAnal>><br><</replace>><</link>>
-	<</if>>
-	<span id = "impreg">
-	<<if (canGetPregnant($activeSlave)) && ($activeSlave.geneticQuirks.superfetation != 2 || $geneticMappingUpgrade != 0) && $seePreg != 0>>
-		<<if canImpreg($activeSlave, $PC)>>
-			| <<link "Put a baby in $him">><<replace "#miniscene">><<FFuckdollImpreg>><br><</replace>><</link>>
-		<</if>>
-	<</if>>
-	</span>
-<</if>>
-<<set _activeSlaveRepSacrifice = repGainSacrifice($activeSlave, $arcologies[0])>>
-<<if _activeSlaveRepSacrifice > 0 && $arcologies[0].FSPaternalist == "unset" && ($activeSlave.breedingMark == 0 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset")>>
-	| <<link "Sacrifice $him on the altar" "Aztec Slave Sacrifice">><<set $sacrificeType = "life">><</link>>//This will kill $him and gain you _activeSlaveRepSacrifice reputation//
-<</if>>
+<div id="miniscene"></div>
+<span id="useSlave"></span>
+<script>
+	useSlaveDisplay(V.activeSlave)
+</script>
 
 /* pregmod start */
 <<if $familyTesting == 1>>
-	<br><br>
-	<span id="family">
+	<p id="family">
 		<div id="familyTree"></div>
 		<span id="familyTreeLink">
 			<<link "Pull up the file on $his family tree.">>
@@ -406,20 +83,20 @@
 				<</replace>>
 			<</link>>
 		</span>
-	</span>
+	</p>
 <</if>>
 
+<p>
 <<if $universalRulesImpregnation == "HG" && $seePreg != 0>>
-	<br><br>
 	<<if $activeSlave.HGExclude == 0>>
 		Will be bred by the Head Girl when fertile. <<link "Exempt $him" "Slave Interact">><<set $activeSlave.HGExclude = 1>><</link>>
 	<<else>>
 		Will not be bred by the Head Girl when fertile. <<link "Include $him" "Slave Interact">><<set $activeSlave.HGExclude = 0>><</link>>
 	<</if>>
 <</if>>
+</p>
 /* pregmod end */
 
-<br><br>
 <<if $activeSlave.useRulesAssistant == 0>>
 	@@.gray;''Not subject'' to the Rules Assistant.@@
 	<<link "Include $him" "Slave Interact">><<set $activeSlave.useRulesAssistant = 1>><</link>>
@@ -951,7 +628,7 @@
 
 	<<if $activeSlave.vagina > -1>>
 		<br>Vaginal accessory: ''<span id="vaginalAccessory">$activeSlave.vaginalAccessory</span>.''
-		<<link "None">><<set $activeSlave.vaginalAccessory = "none">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><<SlaveInteractSexOption>><<SlaveInteractAnalSexOption>><<SlaveInteractGropeOption>><<SlaveInteractDickGropeOption>><<SlaveInteractAnalGropeOption>><</link>>
+		<<link "None">><<set $activeSlave.vaginalAccessory = "none">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><<run SlaveInteractRefreshAll($activeSlave)>><</link>>
 		<<if isItemAccessible("bullet vibrator")>>
 			| <<link "Bullet vibrator">><<set $activeSlave.vaginalAccessory = "bullet vibrator">><<replace "#vaginalAccessory">>$activeSlave.vaginalAccessory<</replace>><</link>>
 		<</if>>
@@ -983,7 +660,7 @@
 
 	<<if $activeSlave.dick > 0>>
 		<br>Dick accessory: ''<span id="dickAccessory">$activeSlave.dickAccessory</span>.''
-		<<link "None">><<set $activeSlave.dickAccessory = "none">><<replace "#dickAccessory">>$activeSlave.dickAccessory<</replace>><<SlaveInteractSexOption>><<SlaveInteractAnalSexOption>><<SlaveInteractGropeOption>><<SlaveInteractDickGropeOption>><<SlaveInteractAnalGropeOption>><</link>>
+		<<link "None">><<set $activeSlave.dickAccessory = "none">><<replace "#dickAccessory">>$activeSlave.dickAccessory<</replace>><<run SlaveInteractRefreshAll($activeSlave)>><</link>>
 		<<if isItemAccessible("bullet vibrator") && $toysBoughtVaginalAttachments == 1>>
 			| <<link "Bullet vibrator">><<set $activeSlave.dickAccessory = "bullet vibrator">><<replace "#dickAccessory">>$activeSlave.dickAccessory<</replace>><</link>>
 		<</if>>
@@ -993,18 +670,18 @@
 	<</if>>
 
 	<br>Chastity device: ''<span id="chastity"><<if $activeSlave.chastityAnus == 1 && $activeSlave.chastityPenis == 1 && $activeSlave.chastityVagina == 1>>full chastity<<elseif $activeSlave.chastityPenis == 1 && $activeSlave.chastityVagina == 1>>genital chastity<<elseif $activeSlave.chastityAnus == 1 && $activeSlave.chastityPenis == 1>>combined chastity cage<<elseif $activeSlave.chastityAnus == 1 && $activeSlave.chastityVagina == 1>>combined chastity belt<<elseif $activeSlave.chastityVagina == 1>>chastity belt<<elseif $activeSlave.chastityPenis == 1>>chastity cage<<elseif $activeSlave.chastityAnus == 1>>anal chastity<<elseif $activeSlave.chastityAnus == 0 && $activeSlave.chastityPenis == 0 && $activeSlave.chastityVagina == 0>>none<<else>>THERE HAS BEEN AN ERROR<</if>></span>.''
-	<<link "None">><<set $activeSlave.chastityAnus = 0>><<set $activeSlave.chastityPenis = 0>><<set $activeSlave.chastityVagina = 0>><<replace "#chastity">>none<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
-	| <<link "Anal chastity">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 1>><<set $activeSlave.chastityPenis = 0>><<set $activeSlave.chastityVagina = 0>><<replace "#chastity">>anal chastity<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
+	<<link "None">><<set $activeSlave.chastityAnus = 0>><<set $activeSlave.chastityPenis = 0>><<set $activeSlave.chastityVagina = 0>><<replace "#chastity">>none<</replace>><<run SlaveInteractRefreshAll($activeSlave)>><</link>>
+	| <<link "Anal chastity">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 1>><<set $activeSlave.chastityPenis = 0>><<set $activeSlave.chastityVagina = 0>><<replace "#chastity">>anal chastity<</replace>><<run SlaveInteractRefreshAll($activeSlave)>><</link>>
 	<<if $activeSlave.vagina > -1>>
-		| <<link "Chastity belt">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 0>><<set $activeSlave.chastityPenis = 0>><<set $activeSlave.chastityVagina = 1>><<replace "#chastity">>Chastity belt<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
-		| <<link "Combined chastity belt">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 1>><<set $activeSlave.chastityPenis = 0>><<set $activeSlave.chastityVagina = 1>><<replace "#chastity">>Combined chastity belt<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
+		| <<link "Chastity belt">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 0>><<set $activeSlave.chastityPenis = 0>><<set $activeSlave.chastityVagina = 1>><<replace "#chastity">>Chastity belt<</replace>><<run SlaveInteractRefreshAll($activeSlave)>><</link>>
+		| <<link "Combined chastity belt">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 1>><<set $activeSlave.chastityPenis = 0>><<set $activeSlave.chastityVagina = 1>><<replace "#chastity">>Combined chastity belt<</replace>><<run SlaveInteractRefreshAll($activeSlave)>><</link>>
 	<</if>>
 	<<if $activeSlave.dick > 0>>
-		| <<link "Chastity cage">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 0>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 0>><<replace "#chastity">>Chastity cage<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
-		| <<link "Combined chastity cage">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 1>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 0>><<replace "#chastity">>Combined Chastity cage<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
+		| <<link "Chastity cage">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 0>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 0>><<replace "#chastity">>Chastity cage<</replace>><<run SlaveInteractRefreshAll($activeSlave)>><</link>>
+		| <<link "Combined chastity cage">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 1>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 0>><<replace "#chastity">>Combined Chastity cage<</replace>><<run SlaveInteractRefreshAll($activeSlave)>><</link>>
 		<<if $activeSlave.vagina > -1>>
-			| <<link "Genital chastity">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 0>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 1>><<replace "#chastity">>Genital chastity<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
-			| <<link "Full chastity">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 1>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 1>><<replace "#chastity">>Full chastity<</replace>><<SlaveInteractAnalGropeOption>><<SlaveInteractAnalSexOption>><<SlaveInteractDickGropeOption>><<SlaveInteractFertility>><<SlaveInteractGropeOption>><<SlaveInteractImpreg>><<SlaveInteractSexOption>><</link>>
+			| <<link "Genital chastity">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 0>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 1>><<replace "#chastity">>Genital chastity<</replace>><<run SlaveInteractRefreshAll($activeSlave)>><</link>>
+			| <<link "Full chastity">><<set $activeSlave.choosesOwnChastity = 0>><<set $activeSlave.chastityAnus = 1>><<set $activeSlave.chastityPenis = 1>><<set $activeSlave.chastityVagina = 1>><<replace "#chastity">>Full chastity<</replace>><<run SlaveInteractRefreshAll($activeSlave)>><</link>>
 		<</if>>
 	<</if>>
 
@@ -1229,89 +906,8 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1
 	| <<link "Extreme">><<set $activeSlave.aphrodisiacs = 2>><<replace "#aphrodisiacs">><strong>extreme</strong><</replace>><</link>>
 	| <<link "Anaphrodisiacs">><<set $activeSlave.aphrodisiacs = -1>><<replace "#aphrodisiacs">><strong>anaphrodisiacs</strong><</replace>><</link>>
 <br>
-<span id="fertilityblock">
-<<if ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1 || $activeSlave.preg > 0)>>
-	<<if ($activeSlave.preg < -1)>>
-		//$He is sterile//
-	<<elseif ($activeSlave.pubertyXX == 0) && $activeSlave.preg < 1>>
-		//$He is not yet fertile//
-	<<elseif $activeSlave.ovaryAge >= 47 && $activeSlave.preg < 1>>
-		//$He is too old to become pregnant//
-		<<if $activeSlave.preg == -1>>
-			<<set $activeSlave.preg = 0>>
-			<<run SetBellySize($activeSlave)>>
-		<</if>>
-	<<elseif $activeSlave.broodmotherOnHold == 1>>
-		//$His pregnancy implant is turned off<<if $activeSlave.broodmotherCountDown > 0>>; $he is expected to be completely emptied of $his remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>><<else>>.<</if>>//
-		[[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]]
-	<<elseif $activeSlave.preg >= -1>>
-		Contraception: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>.
-		<<if ($activeSlave.preg > 0 && $pregnancyMonitoringUpgrade == 1)>>
-			[[Inspect pregnancy|Analyze Pregnancy]] |
-		<</if>>
-		<<if ($activeSlave.preg == 0)>>
-			<<link "Use contraceptives">>
-				<<set $activeSlave.preg = -1>>
-				<<SlaveInteractFertility>>
-				<<SlaveInteractImpreg>>
-			<</link>>
-		<<elseif $activeSlave.preg == -1>>
-			<<link "Let $him get pregnant">>
-				<<set $activeSlave.preg = 0>>
-				<<SlaveInteractFertility>>
-				<<SlaveInteractImpreg>>
-			<</link>>
-		<<elseif $activeSlave.induce == 1>>
-			//Hormones are being slipped into $his food; $he will give birth suddenly and rapidly this week//
-		<<elseif ($activeSlave.preg > $activeSlave.pregData.normalBirth-2 && $activeSlave.preg > $activeSlave.pregData.minLiveBirth) && ($activeSlave.broodmother == 0) && ($activeSlave.labor == 0)>>
-			[[Induce labor|Slave Interact][$activeSlave.labor = 1,$activeSlave.induce = 1,$birthee = 1]]
-			| <<link "Give $him a cesarean section" "csec">><</link>>
-		<<elseif ($activeSlave.broodmother > 0)>>
-			<<if $activeSlave.broodmotherOnHold != 1>>
-				[[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]]
-			<</if>>
-			<<if ($activeSlave.broodmotherOnHold != 1) && ($activeSlave.preg >= 36)>>
-				|
-			<</if>>
-			<<if ($activeSlave.preg >= 37)>>
-				[[Induce mass childbirth|BirthStorm]]
-			<</if>>
-		<<elseif ($activeSlave.preg > $activeSlave.pregData.minLiveBirth)>>
-			<<link "Give $him a cesarean section" "csec">><</link>>
-		<<elseif ($activeSlave.preg > 0) && $activeSlave.breedingMark == 1 && $propOutcome == 1 && $arcologies[0].FSRestart != "unset" && $eugenicsFullControl != 1 && ($activeSlave.pregSource == -1 || $activeSlave.pregSource == -6)>>
-			//You are forbidden from aborting an Elite child//
-		<<elseif ($activeSlave.preg > 0)>>
-			<<link "Abort $his pregnancy" "Abort">><</link>>
-		<</if>>
-		<<if $activeSlave.preg >= 0 && ($activeSlave.ovaries == 1 || $activeSlave.mpreg == 1) && $activeSlave.eggType == "human" && $activeSlave.ovaryAge < 47>>
-			| [[Harvest and implant an egg|Surrogacy Workaround][$donatrix = $activeSlave, $impregnatrix = "Undecided", $receptrix = "Undecided", $nextLink = "Slave Interact"]]
-		<</if>>
-	<</if>>
-<</if>>
-<<if ($activeSlave.pregKnown == 1) && ($pregSpeedControl == 1) && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset") && ($activeSlave.indentureRestrictions < 1) && ($activeSlave.broodmother == 0) && $seePreg != 0>>
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;
-	__Pregnancy control__: <<if $activeSlave.pregControl == "labor suppressors">>Labor is suppressed<<elseif $activeSlave.pregControl == "slow gestation">>Slowed gestation speed<<elseif $activeSlave.pregControl == "speed up">>Faster gestation speed, staffed clinic recommended<<else>>Normal gestation and birth<</if>>.
-	<<if ($activeSlave.preg >= $activeSlave.pregData.minLiveBirth)>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		<<if $activeSlave.pregControl == "labor suppressors">>
-			<<link "Normal Birth">><<set $activeSlave.pregControl = "none">><<SlaveInteractFertility>><</link>>
-		<<else>>
-			<<link "Suppress Labor">><<set $activeSlave.pregControl = "labor suppressors">><<SlaveInteractFertility>><</link>>
-		<</if>>
-	<<elseif ($activeSlave.preg < $activeSlave.pregData.normalBirth)>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		<<if $activeSlave.pregControl != "none">>
-			<<link "Normal Gestation">><<set $activeSlave.pregControl = "none">><<SlaveInteractFertility>><</link>> |
-		<</if>>
-		<<if $activeSlave.pregControl != "slow Gestation">>
-			<<link "Slow Gestation">><<set $activeSlave.pregControl = "slow gestation">><<SlaveInteractFertility>><</link>> |
-		<</if>>
-		<<if $activeSlave.pregControl != "speed up">>
-			<<link "Fast Gestation">><<set $activeSlave.pregControl = "speed up">><<SlaveInteractFertility>><</link>>
-		<</if>>
-	<</if>>
-<</if>>
-</span>
+<span id="fertilityblock"></span>
+<script>SlaveInteractFertility(V.activeSlave)</script>
 <<set $reservedChildren = FetusGlobalReserveCount("incubator")>>
 <<set $reservedChildrenNursery = FetusGlobalReserveCount("nursery")>>
 <<set _reservedIncubator = WombReserveCount($activeSlave, "incubator")>>
@@ -1428,23 +1024,9 @@ Aphrodisiacs: <span id="aphrodisiacs"><strong><<if $activeSlave.aphrodisiacs > 1
 	<</if>>
 <</if>>
 
-<span id="bloating">
-<<if $activeSlave.inflation > 0>>
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;
-	__Required Bloating__: <strong><span id="inflate"><<if $activeSlave.inflation == 3>><<print "$He is required to keep 2 gallons of $activeSlave.inflationType in $him at all times">><<elseif $activeSlave.inflation == 2>><<print "$He is required to keep 4 liters of $activeSlave.inflationType in $him at all times">><<elseif $activeSlave.inflation == 1>><<print "$He is required to keep 2 liters of $activeSlave.inflationType in $him at all times">><</if>></span></strong>.
-	<<if $activeSlave.inflationMethod == 3>>
-		<<link "Let $him deflate">><<set $activeSlave.inflation = 0,$activeSlave.inflationType = "none",$activeSlave.inflationMethod = 0,$activeSlave.cumSource = 0,$activeSlave.milkSource = 0, SetBellySize($activeSlave)>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-	<<elseif $activeSlave.inflationType == "milk">>
-		<<link "Let $him deflate">><<set $activeSlave.inflation = 0,$activeSlave.inflationType = "none",$activeSlave.inflationMethod = 0, SetBellySize($activeSlave)>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-	<<elseif $activeSlave.inflationType == "cum">>
-		<<link "Let $him deflate">><<set $activeSlave.inflation = 0,$activeSlave.inflationType = "none",$activeSlave.inflationMethod = 0, SetBellySize($activeSlave)>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-	<<else>>
-		<<link "Let $him deflate">><<set $activeSlave.inflation = 0,$activeSlave.inflationType = "none",$activeSlave.inflationMethod = 0, SetBellySize($activeSlave)>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-	<</if>>
-<</if>>
-</span>
+<span id="bloating"></span>
+<script>SlaveInteractBloating(V.activeSlave)</script>
 
-<br>
 Hormones: <strong><span id="hormones">
 <<if $activeSlave.hormones == -2>>intensive male<<elseif $activeSlave.hormones == -1>>male<<elseif $activeSlave.hormones == 2>>intensive female<<elseif $activeSlave.hormones == 1>>female<<else>>none<</if>></span></strong>.
 <<if $activeSlave.indentureRestrictions < 2>>
diff --git a/src/utility/miscWidgets.tw b/src/utility/miscWidgets.tw
index 21a0bdcf29c7721b1da91454e7c7995b3061f325..381134ed64f378cc44a825d4c29ab84be4eeb425 100644
--- a/src/utility/miscWidgets.tw
+++ b/src/utility/miscWidgets.tw
@@ -14,101 +14,7 @@ Allows for dynamic updating of the next button in the storyCaption (left side-ba
 Call as <<SlaveInteractImpreg>>
 %/
 <<widget "SlaveInteractImpreg">>
-<<replace #impreg>>
-	<<if $activeSlave.fuckdoll == 0>>
-	<<if canGetPregnant($activeSlave) && ($activeSlave.geneticQuirks.superfetation != 2 || $geneticMappingUpgrade != 0) && ($activeSlave.fuckdoll == 0) && $seePreg != 0>>
-		<<if canImpreg($activeSlave, $PC)>>
-			| <<link "Impregnate $him yourself">><<replace "#miniscene">><<include "FPCImpreg">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-		<</if>>
-		<<if canImpreg($activeSlave, $activeSlave)>>
-			| <<link "Use $his own seed to impregnate $him">><<replace "#miniscene">><<include "FSlaveSelfImpreg">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-		<</if>>
-		| [["Use another slave to impregnate " + $him|FSlaveImpreg]]
-	<</if>>
-	<<if $activeSlave.assignment != "work in the dairy" && $activeSlave.assignment != "be confined in the arcade" && $activeSlave.assignment != "be confined in the cellblock">>
-		<<if $enema == 1>>
-			<<if ($activeSlave.inflation < 3 && $activeSlave.pregKnown == 0 && $activeSlave.bellyImplant < 1500) || ($activeSlave.inflation < 1)>>
-				<<if $activeSlave.inflationType == "water" || $activeSlave.inflationType == "none">>
-					| <<link "Fill $his ass with water">><<set $activeSlave.inflationType = "water">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-				<</if>>
-				<<if $medicalEnema == 1>>
-					<<if $activeSlave.inflationType == "aphrodisiac" || $activeSlave.inflationType == "none">>
-						| <<link "Fill $his ass with aphrodisiacs">><<set $activeSlave.inflationType = "aphrodisiac">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					<</if>>
-					<<if $activeSlave.inflationType == "curative" || $activeSlave.inflationType == "none">>
-						| <<link "Fill $his ass with curatives">><<set $activeSlave.inflationType = "curative">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					<</if>>
-					<<if $activeSlave.inflationType == "tightener" || $activeSlave.inflationType == "none">>
-						| <<link "Fill $his ass with rectal tighteners">><<set $activeSlave.inflationType = "tightener">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					<</if>>
-				<</if>>
-			<</if>> /* inflation < 3 */
-		<</if>> /* enema == 1 */
-		<<if $dairyPiping == 1>>
-			<<if ($milkPipeline > 88 && $milkPipeline != 0) || $arcologies[0].FSPastoralistLaw == 1>>
-				<<if ($activeSlave.inflation < 3 && $activeSlave.pregKnown == 0 && $activeSlave.bellyImplant < 1500) || ($activeSlave.inflation < 1)>>
-					<<if $activeSlave.inflationType == "milk" || $activeSlave.inflationType == "none">>
-						| <<link "Fill $his ass with milk">><<set $activeSlave.inflationType = "milk">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-						| <<link "Force-feed $him milk">><<set $activeSlave.inflationType = "milk">><<set $activeSlave.inflationMethod = 1>><<replace "#miniscene">><<include "FillUpFace">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					<</if>>
-				<</if>>
-			<<else>>
-				| //$dairyNameCaps is not producing enough milk to pump through the pipes//
-			<</if>>
-			<<if ($cumPipeline > 88 && $cumPipeline != 0) || $arcologies[0].FSPastoralistLaw == 1>>
-				<<if ($activeSlave.inflation < 3 && $activeSlave.pregKnown == 0 && $activeSlave.bellyImplant < 1500) || ($activeSlave.inflation < 1)>>
-					<<if $activeSlave.inflationType == "cum" || $activeSlave.inflationType == "none">>
-						| <<link "Fill $his ass with cum">><<set $activeSlave.inflationType = "cum">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-						| <<link "Force-feed $him cum">><<set $activeSlave.inflationType = "cum">><<set $activeSlave.inflationMethod = 1>><<replace "#miniscene">><<include "FillUpFace">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					<</if>>
-				<</if>>
-			<<else>>
-				| //$dairyNameCaps is not producing enough cum to pump through the pipes//
-			<</if>>
-		<</if>> /* dairyPiping == 1 */
-		<<if $wcPiping == 1>>
-			<<if ($activeSlave.inflation < 3 && $activeSlave.pregKnown == 0 && $activeSlave.bellyImplant < 1500) || ($activeSlave.inflation < 1)>>
-				<<if $activeSlave.inflationType == "urine" || $activeSlave.inflationType == "none">>
-					| <<link "Fill $his ass with urine">><<set $activeSlave.inflationType = "urine">><<set $activeSlave.inflationMethod = 2>><<replace "#miniscene">><<include "FillUpButt">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-				<</if>>
-			<</if>>
-		<</if>> /* wcPiping == 1 */
-	<</if>> /* assigned to dairy or arcade */
-	<<if $activeSlave.inflation == 0 && $activeSlave.bellyImplant < 1500>>
-		<<if $activeSlave.assignment != "work in the dairy" && $activeSlave.assignment != "be confined in the arcade" && $activeSlave.assignment != "be confined in the cellblock">>
-			| [["Use another slave to force-feed " + $him|SlaveOnSlaveFeedingWorkAround]]
-			<<if $buckets == 1>>
-				| <<link "Make $him consume two liters of slave food">><<set $activeSlave.inflationType = "food">><<set $activeSlave.inflationMethod = 1>><<set $activeSlave.inflation = 1>><<replace "#miniscene">><<include "forceFeeding">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-				<<if $activeSlave.pregKnown == 0>>
-					| <<link "Force $him to consume a gallon of slave food">><<set $activeSlave.inflationType = "food">><<set $activeSlave.inflationMethod = 1>><<set $activeSlave.inflation = 2>><<replace "#miniscene">><<include "forceFeeding">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-					| <<link "Force two gallons of slave food into $him">><<set $activeSlave.inflationType = "food">><<set $activeSlave.inflationMethod = 1>><<set $activeSlave.inflation = 3>><<replace "#miniscene">><<include "forceFeeding">><br><</replace>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-				<</if>>
-			<</if>>
-		<</if>>
-	<</if>>
-	<<else>>
-		<<if (canGetPregnant($activeSlave)) && ($activeSlave.geneticQuirks.superfetation != 2 || $geneticMappingUpgrade != 0) && $seePreg != 0>>
-			<<if canImpreg($activeSlave, $PC)>>
-				| <<link "Put a baby in $him">><<replace "#miniscene">><<FFuckdollImpreg>><br><</replace>><</link>>
-			<</if>>
-		<</if>>
-	<</if>>
-	<</replace>>
-<<replace #bloating>>
-	<<if $activeSlave.inflation > 0>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		__Required Bloating__: <strong><span id="inflate"><<if $activeSlave.inflation == 3>><<print "$He is required to keep 2 gallons of $activeSlave.inflationType in $him at all times">><<elseif $activeSlave.inflation == 2>><<print "$He is required to keep 4 liters of $activeSlave.inflationType in $him at all times">><<elseif $activeSlave.inflation == 1>><<print "$He is required to keep 2 liters of $activeSlave.inflationType in $him at all times">><</if>></span></strong>.
-		<<if $activeSlave.inflationMethod == 3>>
-			<<link "Let $him deflate">><<set $activeSlave.inflation = 0,$activeSlave.inflationType = "none",$activeSlave.inflationMethod = 0,$activeSlave.cumSource = 0,$activeSlave.milkSource = 0, SetBellySize($activeSlave)>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-		<<elseif $activeSlave.inflationType == "milk">>
-			<<link "Let $him deflate">><<set $activeSlave.inflation = 0,$activeSlave.inflationType = "none",$activeSlave.inflationMethod = 0, SetBellySize($activeSlave)>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-		<<elseif $activeSlave.inflationType == "cum">>
-			<<link "Let $him deflate">><<set $activeSlave.inflation = 0,$activeSlave.inflationType = "none",$activeSlave.inflationMethod = 0, SetBellySize($activeSlave)>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-		<<else>>
-			<<link "Let $him deflate">><<set $activeSlave.inflation = 0,$activeSlave.inflationType = "none",$activeSlave.inflationMethod = 0, SetBellySize($activeSlave)>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-		<</if>>
-	<</if>>
-<</replace>>
+	<<run SlaveInteractBloating($activeSlave)>>
 <</widget>>
 
 /%
@@ -310,78 +216,7 @@ Call as <<SlaveInteractDrugs>>
 Call as <<SlaveInteractFertility>>
 %/
 <<widget "SlaveInteractFertility">>
-<<replace #fertilityblock>>
-<<if $activeSlave.ovaries == 1 || $activeSlave.mpreg == 1 || $activeSlave.preg > 0>>
-	<<if ($activeSlave.preg < -1)>>
-		//$He is sterile//
-	<<elseif ($activeSlave.pubertyXX == 0) && $activeSlave.preg < 1>>
-		//$He is not yet fertile//
-	<<elseif $activeSlave.ovaryAge >= 47 && $activeSlave.preg < 1>>
-		//$He is too old to become pregnant//
-		<<if $activeSlave.preg == -1>>
-			<<set $activeSlave.preg = 0>>
-			<<run SetBellySize($activeSlave)>>
-		<</if>>
-	<<elseif $activeSlave.broodmotherOnHold == 1>>
-		//$His pregnancy implant is turned off<<if $activeSlave.broodmotherCountDown > 0>>; $he is expected to be completely emptied of $his remaining brood in $activeSlave.broodmotherCountDown week<<if $activeSlave.broodmotherCountDown > 1>>s<</if>><<else>>.<</if>>//
-		[[Turn on implant|Slave Interact][$activeSlave.broodmotherOnHold = 0, $activeSlave.broodmotherCountDown = 0]]
-	<<elseif ($activeSlave.preg >= -1)>>
-		Contraception: <span id="fertility"><strong><<if $activeSlave.preg == -1>><<print "using contraceptives">><<elseif $activeSlave.pregWeek < 0>><<print "postpartum">><<elseif $activeSlave.preg == 0>><<print "fertile">><<elseif $activeSlave.preg < 4>><<print "may be pregnant">><<else>><<print $activeSlave.preg>><<print " weeks pregnant">><</if>></strong></span>.
-		<<if ($activeSlave.preg > 0 && $pregnancyMonitoringUpgrade == 1)>>
-			[[Inspect pregnancy|Analyze Pregnancy]] |
-		<</if>>
-		<<if ($activeSlave.preg == 0)>>
-			<<link "Use contraceptives">><<set $activeSlave.preg = -1>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-		<<elseif ($activeSlave.preg == -1)>>
-			<<link "Let $him get pregnant">><<set $activeSlave.preg = 0>><<SlaveInteractImpreg>><<SlaveInteractFertility>><</link>>
-		<<elseif $activeSlave.induce == 1>>
-			//Hormones are being slipped into $his food; $he will give birth suddenly and rapidly this week//
-		<<elseif ($activeSlave.preg > $activeSlave.pregData.normalBirth-2 && $activeSlave.preg > $activeSlave.pregData.minLiveBirth) && ($activeSlave.broodmother == 0) && ($activeSlave.labor == 0)>>
-			[[Induce labor|Slave Interact][$activeSlave.labor = 1,$activeSlave.induce = 1,$birthee = 1]]
-			| [["Give " + $him + " a cesarean section"|csec]]
-		<<elseif ($activeSlave.broodmother > 0)>>
-			<<if $activeSlave.broodmotherOnHold != 1>>
-				[[Turn off implant|Slave Interact][$activeSlave.broodmotherOnHold = 1, $activeSlave.broodmotherCountDown = 38-WombMinPreg($activeSlave)]]
-			<</if>>
-			<<if ($activeSlave.broodmotherOnHold != 1) && ($activeSlave.preg >= 36)>>
-				|
-			<</if>>
-			<<if ($activeSlave.preg > 37)>>
-				| [[Induce mass childbirth|BirthStorm]]
-			<</if>>
-		<<elseif ($activeSlave.preg > $activeSlave.pregData.minLiveBirth)>>
-			[["Give " + $him + " a cesarean section"|csec]]
-		<<elseif ($activeSlave.preg > 0) && $activeSlave.breedingMark == 1 && $propOutcome == 1 && $arcologies[0].FSRestart != "unset" && $eugenicsFullControl != 1 && ($activeSlave.pregSource == -1 || $activeSlave.pregSource == -6)>>
-			//You are forbidden from aborting an Elite child//
-		<<elseif ($activeSlave.preg > 0)>>
-			[["Abort " + $his + " pregnancy"|Abort]]
-		<</if>>
-	<</if>>
-<</if>>
-<<if ($activeSlave.pregKnown == 1) && ($pregSpeedControl == 1) && ($activeSlave.breedingMark != 1 || $propOutcome == 0 || $eugenicsFullControl == 1 || $arcologies[0].FSRestart == "unset") && ($activeSlave.indentureRestrictions < 1) && ($activeSlave.broodmother == 0) && $seePreg != 0>>
-	<br>&nbsp;&nbsp;&nbsp;&nbsp;
-	__Pregnancy control__: <<if $activeSlave.pregControl == "labor suppressors">>Labor is suppressed<<elseif $activeSlave.pregControl == "slow gestation">>Slowed gestation speed<<elseif $activeSlave.pregControl == "speed up">>Faster gestation speed, staffed clinic recommended<<else>>Normal gestation and birth<</if>>.
-	<<if ($activeSlave.preg >= $activeSlave.pregData.minLiveBirth)>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		<<if $activeSlave.pregControl == "labor suppressors">>
-			<<link "Normal Birth">><<set $activeSlave.pregControl = "none">><<SlaveInteractFertility>><</link>>
-		<<else>>
-			<<link "Suppress Labor">><<set $activeSlave.pregControl = "labor suppressors">><<SlaveInteractFertility>><</link>>
-		<</if>>
-	<<elseif ($activeSlave.preg < $activeSlave.pregData.normalBirth)>>
-		<br>&nbsp;&nbsp;&nbsp;&nbsp;
-		<<if $activeSlave.pregControl != "none">>
-			<<link "Normal Gestation">><<set $activeSlave.pregControl = "none">><<SlaveInteractFertility>><</link>> |
-		<</if>>
-		<<if $activeSlave.pregControl != "slow Gestation">>
-			<<link "Slow Gestation">><<set $activeSlave.pregControl = "slow gestation">><<SlaveInteractFertility>><</link>> |
-		<</if>>
-		<<if $activeSlave.pregControl != "speed up">>
-			<<link "Fast Gestation">><<set $activeSlave.pregControl = "speed up">><<SlaveInteractFertility>><</link>>
-		<</if>>
-	<</if>>
-<</if>>
-<</replace>>
+	<<run SlaveInteractFertility($activeSlave)>>
 <</widget>>
 /%
 Call as <<SlaveInteractSexOption>>
@@ -464,8 +299,10 @@ Call as <<SlaveInteractDickGropeOption>>
 	<<if ($activeSlave.dick > 0)>>
 		<<if !($activeSlave.chastityPenis)>>
 		| <<link "Grope $his dick">><<replace "#miniscene">><<include "FondleDick">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
-			<<if canPenetrate($activeSlave) && $sexualOpeness == 1>>
-				| <<link "Ride $his dick">><<replace "#miniscene">><<include "FDick">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
+			<<if canPenetrate($activeSlave)>>
+				<<if $sexualOpeness == 1 || $activeSlave.toyHole == "dick">>
+					| <<link "Ride $his dick">><<replace "#miniscene">><<include "FDick">><br>&nbsp;&nbsp;&nbsp;&nbsp;<</replace>><</link>>
+				<</if>>
 			<</if>>
 		<<else>>
 			| //Remove $his dick chastity belt if you wish to play with $his cock//