diff --git a/src/events/RESS/review/inconvenientLabia.js b/src/events/RESS/review/inconvenientLabia.js
new file mode 100644
index 0000000000000000000000000000000000000000..c659b94ed24a58165c48632449fe7c1a08f804a9
--- /dev/null
+++ b/src/events/RESS/review/inconvenientLabia.js
@@ -0,0 +1,185 @@
+App.Events.RESSInconvenientLabia = class RESSInconvenientLabia extends App.Events.BaseEvent {
+	eventPrerequisites() {
+		return []; // always valid if sufficient actors can be cast successfully
+	}
+
+	actorPrerequisites() {
+		return [
+			[ // single event slave
+				s => s.fetish !== "mindbroken",
+				hasAnyArms,
+				hasAnyLegs,
+				s => s.labia > 1,
+				s => s.vagina >= 0,
+				s => s.muscles > 5 || s.diet === "muscle building",
+				s => s.belly < 10000,
+				s => s.devotion > 20,
+				s => s.trust > 20,
+			]
+		];
+	}
+
+	execute(node) {
+		/** @type {Array<App.Entity.SlaveState>} */
+		let [eventSlave] = this.actors.map(a => getSlave(a));
+		const {
+			He, he, his, him, girl, hers
+		} = getPronouns(eventSlave);
+		const {title: Master} = getEnunciation(eventSlave);
+
+		V.nextLink = "Next Week";
+
+		/* "pulling down the compression shorts $he was wearing" */
+		if (isItemAccessible.entry("sport shorts", "clothes")) {
+			if (eventSlave.boobs >= 650) {
+				App.Events.drawEventArt(node, eventSlave, "sport shorts and a sports bra");
+			} else {
+				App.Events.drawEventArt(node, eventSlave, "sport shorts");
+			}
+		} else {
+			App.Events.drawEventArt(node, eventSlave, "spats and a tank top");
+		}
+
+		let r = [];
+		App.Events.addParagraph(node, [
+			`You see`,
+			contextualIntro(V.PC, eventSlave, "DOM"),
+			`moving gingerly as ${he} heads out of the workout room, as though ${he}'s suffering some pain in ${his} groin. Since ${he}'s coming off a workout rather than any duty that would explain a sore pussy, you head over to ${him} to investigate. ${He} greets you properly, looking a little rueful.`
+		]);
+		if (!canTalk(eventSlave)) {
+			r.push(`${He} gestures impatiently at ${his} pussy, pulling down the compression shorts ${he} was wearing to display ${his} generous labia. ${He} humorously pantomimes them moving about as ${he} exercises and indicates pain.`);
+		} else {
+			if (eventSlave.lips > 70) {
+				r.push(`${He} lisps through ${his} massive lips,`);
+			} else if (eventSlave.lipsPiercing+eventSlave.tonguePiercing > 2) {
+				r.push(`${He} lisps through ${his} huge piercings,`);
+			}
+			r.push(
+				Spoken(eventSlave, `"${Master}, my pussylips are really big. They make running on the treadmill really painful, even wearing my compression shorts"`),
+				`${he} explains.`,
+				Spoken(eventSlave, `"They just kind of get in the way."`)
+			);
+		}
+		r.push(`${He} looks doubtful, as though ${he}'s wondering whether to make a request. Finally ${he} makes up ${his} mind to ask:`);
+		if (!canTalk(eventSlave)) {
+			r.push(`${he} waves towards the surgery, and gestures about the labiaplasty ${he} knows some slaves receive, asking you if ${he} can have ${hers} reduced.`);
+		} else {
+			r.push(Spoken(eventSlave, `"May I have labiaplasty, ${Master}? It would make working out so much easier on my poor pussy."`));
+		}
+
+		App.Events.addParagraph(node, r);
+		App.Events.addResponses(node, [
+			new App.Events.Result(`Let ${him} have labiaplasty to resolve the issue`, labiaplasty),
+			canDoVaginal(eventSlave)
+				? new App.Events.Result(`Let ${him} know ${he}'s got a wonderful vagina`, reassure, eventSlave.vagina === 0 ? `This option will take ${his} virginity` : null)
+				: new App.Events.Result()
+		]);
+
+		function labiaplasty() {
+			r = [];
+			r.push(`When you assent, ${he} cheers up immediately, looking remarkably happy for a ${girl} who's just learned ${his} vagina is about to have a surgical operation performed on it. Then again, having those huge pussylips constantly getting in ${his} way when ${he} runs must be extremely uncomfortable, so it's not shocking ${he} would consider a radical solution to ${his} problem. When ${he} exits the remote surgery, ${he} looks <span class="health.dec">sorer than ever,</span> of course, but ${he} <span class="devotion inc">smiles gratefully</span> at you the next time ${he}`);
+			if (canSee(eventSlave)) {
+				r.push(`sees`);
+			} else {
+				r.push(`meets`);
+			}
+			r.push(`you, and lets you know ${he}'s really looking forward to recovering enough for ${him} to take ${his} beloved ${getWrittenTitle(eventSlave)} into ${his} <span class="orange">newly streamlined cunt.</span>`);
+			eventSlave.devotion += 4;
+			eventSlave.labia = 0;
+			surgeryDamage(eventSlave, 10);
+			return r;
+		}
+
+		function reassure() {
+			r = [];
+			r.push(`By way of an answer, you embrace ${him} and give ${him} a deep kiss on ${his}`);
+			if (eventSlave.lips > 70) {
+				r.push(`enormous`);
+			} else if (eventSlave.lips > 40) {
+				r.push(`pillowlike`);
+			} else if (eventSlave.lips > 20) {
+				r.push(`big`);
+			} else {
+				r.push(`pretty`);
+			}
+			r.push(`lips, spreading a blush across ${his} ${eventSlave.skin} cheeks. Your hands rove down ${his}`);
+			if (eventSlave.belly >= 1500) {
+				if (eventSlave.bellyPreg >= 1500) {
+					r.push(`pregnant`);
+				} else {
+					r.push(`swollen`);
+				}
+			} else if (eventSlave.weight > 190) {
+				r.push(`expansive`);
+			} else if (eventSlave.weight > 160) {
+				r.push(`ponderous`);
+			} else if (eventSlave.weight > 130) {
+				r.push(`big, soft`);
+			} else if (eventSlave.weight > 95) {
+				r.push(`plump`);
+			} else if (eventSlave.weight > 10) {
+				r.push(`plush`);
+			} else if (eventSlave.weight < -10) {
+				r.push(`thin`);
+			} else {
+				r.push(`nice`);
+			}
+			r.push(`body, coming to rest on ${his}`);
+			if (eventSlave.butt > 15) {
+				r.push(`immeasurable`);
+			} else if (eventSlave.butt > 10) {
+				r.push(`mind-blowing`);
+			} else if (eventSlave.butt > 7) {
+				r.push(`spectacular`);
+			} else if (eventSlave.butt > 5) {
+				r.push(`magnificent`);
+			} else if (eventSlave.butt > 3) {
+				r.push(`rounded`);
+			} else {
+				r.push(`tight`);
+			}
+			r.push(`butt. You hug ${him} up and into you, crushing ${his}`);
+			if (eventSlave.boobs > 2000) {
+				r.push(`titanic`);
+			} else if (eventSlave.boobs > 800) {
+				r.push(`big`);
+			} else {
+				r.push(`small`);
+			}
+			r.push(`breasts against`);
+			const bust = V.PC.boobsImplant !== 0 ? "balloons" : "bust";
+			if (V.PC.boobs >= 1400) {
+				r.push(`your enormous ${bust}.`);
+			} else if (V.PC.boobs >= 1200) {
+				r.push(`your huge ${bust}.`);
+			} else if (V.PC.boobs >= 1000) {
+				r.push(`your big ${bust}.`);
+			} else if (V.PC.boobs >= 300) {
+				r.push(`yours.`);
+			} else if (V.PC.title === 0) {
+				r.push(`your flat ones.`);
+			} else {
+				r.push(`your manly chest.`);
+			}
+			r.push(`Before long being kissed and held by ${his} beloved ${getWrittenTitle(eventSlave)} has ${him} playing the slut in your arms, and ${he} backs against the wall before wrapping ${his} legs around your middle to bring ${his} pussy against your`);
+			const body = eventSlave.bellyPreg >= 3000 ? "gravid bulk" : "distended body";
+			if (V.PC.dick === 0) {
+				r.push(`own.`);
+				if (eventSlave.belly >= 5000) {
+					r.push(`You move your hands under ${him} to better support ${his} ${body}.`);
+				}
+				r.push(`${He} moans in pain as you scissor against ${his} sore pussy,`);
+			} else {
+				r.push(`stiff prick.`);
+				if (eventSlave.preg > eventSlave.pregData.normalBirth/2) {
+					r.push(`You move your hands under ${him} to better support ${his} ${body}.`);
+				}
+				r.push(`${He} gasps in pain as you press past ${his} sore pussylips,`);
+			}
+			r.push(`but before long ${he}'s grinding against you with ${his} back propped against the wall, using the embrace of ${his} strong legs to provide the power for a vigorous fuck. When ${he} finally slides down the wall to stand again, a look of <span class="devotion inc">profound pleasure</span> on ${his} face, ${he} lets you know that ${he} understands your meaning and that ${he}'ll put up with sore petals, since ${his} ${getWrittenTitle(eventSlave)} prefers ${him} that way.`);
+			r.push(VCheck.Vaginal(eventSlave, 1));
+			eventSlave.devotion += 4;
+			return r;
+		}
+	}
+};
diff --git a/src/events/randomEvent.js b/src/events/randomEvent.js
index ae0998fbfce22f1c2c330d172a0d2a47c28bec5a..57a3014cc0d044e74128c93ad480692471c909c6 100644
--- a/src/events/randomEvent.js
+++ b/src/events/randomEvent.js
@@ -35,6 +35,7 @@ App.Events.getIndividualEvents = function() {
 		new App.Events.RESSHotPC(),
 		new App.Events.RESSImpregnationPlease(),
 		new App.Events.RESSImScared(),
+		new App.Events.RESSInconvenientLabia(),
 		new App.Events.RESSInjectionsPlease(),
 		new App.Events.RESSKitchenMolestation(),
 		new App.Events.RESSLanguageLesson(),
diff --git a/src/js/eventSelectionJS.js b/src/js/eventSelectionJS.js
index d8635e6204005d78427a77e64a50ca677b24e857..ff4745726574a9b88eb25b2dbe6b463627c7899e 100644
--- a/src/js/eventSelectionJS.js
+++ b/src/js/eventSelectionJS.js
@@ -562,18 +562,6 @@ if(eventSlave.drugs === "breast injections") {
 				}
 			}
 
-			if (eventSlave.labia > 1 && eventSlave.vagina >= 0) {
-				if (eventSlave.muscles > 5 || eventSlave.diet === "muscle building") {
-					if (eventSlave.belly < 10000) {
-						if (eventSlave.devotion > 20) {
-							if (eventSlave.trust > 20) {
-								V.RESSevent.push("inconvenient labia");
-							}
-						}
-					}
-				}
-			}
-
 			if (eventSlave.devotion <= 50) {
 				if (eventSlave.trust >= -50) {
 					if (eventSlave.behavioralFlaw === "gluttonous") {
diff --git a/src/uncategorized/RESS.tw b/src/uncategorized/RESS.tw
index ff8a58cf66e11705a82ac778cf7271e45c89fc67..192803118b87cc8d2ed1d7df72f4094d18b666bb 100644
--- a/src/uncategorized/RESS.tw
+++ b/src/uncategorized/RESS.tw
@@ -89,17 +89,6 @@
 "used whore",
 "vocal disobedience"].includes($RESSevent)>>
 	<<set $activeSlave.clothes = "no clothing">>
-<<elseif $RESSevent == "inconvenient labia">>
-	/* "pulling down the compression shorts $he was wearing" */
-	<<if isItemAccessible.entry("sport shorts", "clothes")>>
-		<<if $activeSlave.boobs >= 650>>
-			<<set $activeSlave.clothes = "sport shorts and a sports bra">>
-		<<else>>
-			<<set $activeSlave.clothes = "sport shorts">>
-		<</if>>
-	<<else>>
-		<<set $activeSlave.clothes = "spats and a tank top">>
-	<</if>>
 <</if>>
 
 <span id="art-frame">
@@ -1237,27 +1226,6 @@ Late one night, <<= App.UI.slaveDescriptionDialog($activeSlave)>> comes to see y
 <br><br>
 As the Free Cities grow and evolve, slave culture does too. It seems this is a new tradition among obedient sex slaves. $He obviously expects you to do the honors, and it seems the rest of your slaves are looking forward to it.
 
-<<case "inconvenient labia">>
-
-You see <<= App.UI.slaveDescriptionDialog($activeSlave)>> moving gingerly as $he heads out of the workout room, as though $he's suffering some pain in $his groin. Since $he's coming off a workout rather than any duty that would explain a sore pussy, you head over to $him to investigate. $He greets you properly, looking a little rueful.
-<br><br>
-<<if !canTalk($activeSlave)>>
-	$He gestures impatiently at $his pussy, pulling down the compression shorts $he was wearing to display $his generous labia. $He humorously pantomimes them moving about as $he exercises and indicates pain.
-<<else>>
-	<<if ($activeSlave.lips > 70)>>
-		$He lisps through $his massive lips,
-	<<elseif ($activeSlave.lipsPiercing+$activeSlave.tonguePiercing > 2)>>
-		$He lisps through $his huge piercings,
-	<</if>>
-	"<<Master>>, my pu<<ss>>ylip<<s>> are really big. They make running on the treadmill really painful, even wearing my compre<<ss>>ion <<sh>>ort<<s>>," $he explains. "They ju<<s>>t kind of get in the way."
-<</if>>
-$He looks doubtful, as though $he's wondering whether to make a request. Finally $he makes up $his mind to ask:
-<<if !canTalk($activeSlave)>>
-	$he waves towards the surgery, and gestures about the labiaplasty $he knows some slaves receive, asking you if $he can have $hers reduced.
-<<else>>
-	"May I have labiapla<<s>>ty, <<Master>>? It would make working out <<s>>o much ea<<s>>ier on my poor pu<<ss>>y."
-<</if>>
-
 <<case "restricted profession">>
 
 <<set _shoutitoutloud = $enunciate.title.toUpperCase()>>
@@ -7470,91 +7438,6 @@ $He cranes $his neck, glancing over $his shoulder to give you a pleading look.
 	<</replace>>
 <</link>>
 
-<<case "inconvenient labia">>
-
-<<link "Let $him have labiaplasty to resolve the issue">>
-	<<replace "#result">>
-		When you assent, $he cheers up immediately, looking remarkably happy for a $girl who's just learned $his vagina is about to have a surgical operation performed on it. Then again, having those huge pussylips constantly getting in $his way when $he runs must be extremely uncomfortable, so it's not shocking $he would consider a radical solution to $his problem. When $he exits the remote surgery, $he looks @@.health.dec;sorer than ever,@@ of course, but $he @@.hotpink;smiles gratefully@@ at you the next time $he <<if canSee($activeSlave)>>sees<<else>>meets<</if>> you, and lets you know $he's really looking forward to recovering enough for $him to take $his beloved <<= getWrittenTitle($activeSlave)>> into $his @@.orange;newly streamlined cunt.@@
-		<<set $activeSlave.devotion += 4, $activeSlave.labia = 0>>
-		<<run surgeryDamage($activeSlave, 10)>>
-	<</replace>>
-<</link>>
-<<if canDoVaginal($activeSlave)>>
-	<br><<link "Let $him know $he's got a wonderful vagina">>
-		<<replace "#result">>
-			By way of an answer, you embrace $him and give $him a deep kiss on $his
-			<<if $activeSlave.lips > 70>>
-				enormous
-			<<elseif $activeSlave.lips > 40>>
-				pillowlike
-			<<elseif $activeSlave.lips > 20>>
-				big
-			<<else>>
-				pretty
-			<</if>>
-			lips, spreading a blush across $his $activeSlave.skin cheeks. Your hands rove down $his
-			<<if $activeSlave.belly >= 1500>>
-				<<if $activeSlave.bellyPreg >= 1500>>
-					pregnant
-				<<else>>
-					swollen
-				<</if>>
-			<<elseif $activeSlave.weight > 190>>
-				expansive
-			<<elseif $activeSlave.weight > 160>>
-				ponderous
-			<<elseif $activeSlave.weight > 130>>
-				big, soft
-			<<elseif $activeSlave.weight > 95>>
-				plump
-			<<elseif $activeSlave.weight > 10>>
-				plush
-			<<elseif $activeSlave.weight < -10>>
-				thin
-			<<else>>
-				nice
-			<</if>>
-			body, coming to rest on $his
-			<<if $activeSlave.butt > 15>>
-				immeasurable
-			<<elseif $activeSlave.butt > 10>>
-				mind-blowing
-			<<elseif $activeSlave.butt > 7>>
-				spectacular
-			<<elseif $activeSlave.butt > 5>>
-				magnificent
-			<<elseif $activeSlave.butt > 3>>
-				rounded
-			<<else>>
-				tight
-			<</if>>
-			butt. You hug $him up and into you, crushing $his <<if $activeSlave.boobs > 2000>>titanic<<elseif $activeSlave.boobs > 800>>big<<else>>small<</if>> breasts against
-			<<if $PC.boobs >= 1400>>
-				your enormous <<if $PC.boobsImplant != 0>>balloons<<else>>bust<</if>>.
-			<<elseif $PC.boobs >= 1200>>
-				your huge <<if $PC.boobsImplant != 0>>balloons<<else>>bust<</if>>.
-			<<elseif $PC.boobs >= 1000>>
-				your big <<if $PC.boobsImplant != 0>>balloons<<else>>bust<</if>>.
-			<<elseif $PC.boobs >= 300>>
-				yours.
-			<<elseif $PC.title == 0>>
-				your flat ones.
-			<<else>>
-				your manly chest.
-			<</if>>
-			Before long being kissed and held by $his beloved <<= getWrittenTitle($activeSlave)>> has $him playing the slut in your arms, and $he backs against the wall before wrapping $his legs around your middle to bring $his pussy against your
-			<<if $PC.dick == 0>>
-				own.<<if $activeSlave.belly >= 5000>> You move your hands under $him to better support $his <<if $activeSlave.bellyPreg >= 3000>>gravid bulk<<else>>distended body<</if>>.<</if>> $He moans in pain as you scissor against $his sore pussy,
-			<<else>>
-				stiff prick.<<if $activeSlave.preg > $activeSlave.pregData.normalBirth/2>> You move your hands under $him to better support $his <<if $activeSlave.bellyPreg >= 3000>>gravid bulk<<else>>distended body<</if>>.<</if>> $He gasps in pain as you press past $his sore pussylips,
-			<</if>>
-			but before long $he's grinding against you with $his back propped against the wall, using the embrace of $his strong legs to provide the power for a vigorous fuck. When $he finally slides down the wall to stand again, a look of @@.hotpink;profound pleasure@@ on $his face, $he lets you know that $he understands your meaning and that $he'll put up with sore petals, since $his <<= getWrittenTitle($activeSlave)>> prefers $him that way.
-			<<= VCheck.Vaginal($activeSlave, 1)>>
-			<<set $activeSlave.devotion += 4>>
-		<</replace>>
-	<</link>><<if ($activeSlave.vagina == 0)>> //This option will take $his virginity//<</if>>
-<</if>>
-
 <<case "restricted profession">>
 
 <<link "Let $him speak briefly if $he's very quiet">>