diff --git a/src/facilities/nursery/longChildDescription.tw b/src/facilities/nursery/longChildDescription.tw
index 9c6b3dd183d0877d4f17b8ecb81583a4d138401a..7ce18eb896f99d7ef458432160e4b792b566f93d 100644
--- a/src/facilities/nursery/longChildDescription.tw
+++ b/src/facilities/nursery/longChildDescription.tw
@@ -1119,9 +1119,7 @@ $He is
 	$activeChild.counter.pitKills slaves have died by $his hand in pit fights.
 <</if>>
 
-<<if $activeChild.corsetPiercing > 0>>
-	<<CorsetPiercingDescription>>
-<</if>>
+<<= App.Desc.piercing($activeChild, "corset")>>
 
 <<pregnancyDescription>>
 
@@ -1282,9 +1280,9 @@ $He is
 			The piercings on $his head run through $his suit, helping secure the material to $his head.
 		<</if>>
 	<<else>>
-		<<earPiercingDescription>>
-		<<nosePiercingDescription>>
-		<<eyebrowPiercingDescription>>
+		<<= App.Desc.mods($activeChild, "ear")>>
+		<<= App.Desc.mods($activeChild, "nose")>>
+		<<= App.Desc.mods($activeChild, "eyebrow")>>
 		<<if ($activeChild.custom.tattoo != "") && (def $activeChild.custom.tattoo)>>
 			<<print $activeChild.custom.tattoo>>
 		<</if>>
@@ -1317,12 +1315,13 @@ $He is
 
 <<if $activeChild.fuckdoll == 0>>
 	<<nailsDescription>>
-	<<if $showBodyMods == 1>>
-		<<backTatDescription>>
-		<<shouldersTatDescription>>
-		<<armsTatDescription>>
-	<</if>>
 <</if>>
+<<= App.Desc.mods($activeChild, "back")>>
+<<= App.Desc.mods($activeChild, "shoulder")>>
+<<= App.Desc.mods($activeChild, "upper arm")>>
+<<= App.Desc.mods($activeChild, "lower arm")>>
+<<= App.Desc.mods($activeChild, "hand")>>
+<<= App.Desc.mods($activeChild, "wrist")>>
 
 <<if $activeChild.fuckdoll == 0>>
 	<<if $activeChild.minorInjury != 0>>
@@ -1338,15 +1337,11 @@ $He is
 <<BoobsDescription>>
 <<boobsShapeDescription>>
 <<boobsExtraDescription>>
-<<if $showBodyMods == 1>>
-	<<boobsTatDescription>>
-<</if>>
-<<boobBrandDescription>>
+<<= App.Desc.mods($activeChild, "chest")>>
+<<= App.Desc.mods($activeChild, "breast")>>
 <<shouldersDescription>>
 <<nipplesDescription>>
-<<if $showBodyMods == 1>>
-	<<nipplesPiercingDescription>>
-<</if>>
+<<= App.Desc.mods($activeChild, "nipple")>>
 <<areolaeDescription>>
 
 <<if $activeChild.inflation > 0>> /* to be obsoleted with phase 4 */
diff --git a/src/js/describePiercings.js b/src/js/describePiercings.js
new file mode 100644
index 0000000000000000000000000000000000000000..a527cf0037197db03853a5d3a5ec61a8e1de851e
--- /dev/null
+++ b/src/js/describePiercings.js
@@ -0,0 +1,76 @@
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @returns {string} Relevant slave tattoo, if present
+ */
+App.Desc.piercing = function(slave, surface) {
+	"use strict";
+	const V = State.variables;
+	let r = ``;
+	/* eslint-disable no-unused-vars*/
+	const {
+		he, him, his, hers, himself, boy, He, His
+	} = getPronouns(slave);
+	/* eslint-enable */
+	if (V.showBodyMods !== 1) {
+		return;
+	}
+	switch (surface) {
+		case "ear": {
+			r += `<<earPiercingDescription>>`;
+			break;
+		}
+		case "nose": {
+			r += `<<nosePiercingDescription>>`;
+			break;
+		}
+		case "eyebrow": {
+			r += `<<eyebrowPiercingDescription>>`;
+			break;
+		}
+		case "lips": {
+			r += `<<lipsPiercingDescription>>`;
+			break;
+		}
+		case "tongue": {
+			r += `<<tonguePiercingDescription>>`;
+			break;
+		}
+		case "nipple": {
+			r += `<<nipplesPiercingDescription>>`;
+			break;
+		}
+		case "areolae": {
+			r += `<<areolaePiercingDescription>>`;
+			break;
+		}
+		case "navel": {
+			r += `<<navelPiercingDescription>>`;
+			break;
+		}
+		case "clit": {
+			r += `<<clitPiercingDescription>>`;
+			break;
+		}
+		case "vagina": {
+			r += `<<vaginaPiercingDescription>>`;
+			break;
+		}
+		case "dick": {
+			r += `<<dickPiercingDescription>>`;
+			break;
+		}
+		case "anus": {
+			r += `<<anusPiercingDescription>>`;
+			break;
+		}
+		case "corset": { // non anatomical
+			r += `<<CorsetPiercingDescription>>`;
+			break;
+		}
+		case "chastity": { // non anatomical
+			r += `<<chastityPiercingDescription>>`;
+			break;
+		}
+	}
+	return r;
+};
diff --git a/src/js/describeTattoos.js b/src/js/describeTattoos.js
new file mode 100644
index 0000000000000000000000000000000000000000..fad61cceddf5116594f764e40019cd0b8fbbd01c
--- /dev/null
+++ b/src/js/describeTattoos.js
@@ -0,0 +1,64 @@
+/**
+ * @param {App.Entity.SlaveState} slave
+ * @returns {string} Relevant slave tattoo, if present
+ */
+App.Desc.tattoo = function(slave, surface) {
+	"use strict";
+	const V = State.variables;
+	let r = ``;
+	/* eslint-disable no-unused-vars*/
+	const {
+		he, him, his, hers, himself, boy, He, His
+	} = getPronouns(slave);
+	/* eslint-enable */
+	if (V.showBodyMods !== 1) {
+		return;
+	}
+	switch (surface) {
+		case "shoulder": {
+			r += `<<shouldersTatDescription>>`;
+			break;
+		}
+		case "lips": {
+			r += `<<lipsTatDescription>>`;
+			break;
+		}
+		case "breast": {
+			r += `<<boobsTatDescription>>`;
+			break;
+		}
+		case "upper arm": { /* technically the old widget describes the ENTIRE arm, but we are going to display it here to preserve order */
+			r += `<<armsTatDescription>>`;
+			break;
+		}
+		case "back": {
+			r += `<<backTatDescription>>`;
+			break;
+		}
+		case "lower back": {
+			r += `<<stampTatDescription>>`;
+			break;
+		}
+		case "buttock": {
+			r += `<<buttTatDescription>>`;
+			break;
+		}
+		case "vagina": {
+			r += `<<vaginaTatDescription>>`;
+			break;
+		}
+		case "dick": {
+			r += `<<dickTatDescription>>`;
+			break;
+		}
+		case "anus": {
+			r += `<<anusTatDescription>>`;
+			break;
+		}
+		case "thigh": { /* technically the old widget describes the ENTIRE leg, but we are going to display it here to preserve order */
+			r += `<<legsTatDescription>>`;
+			break;
+		}
+	}
+	return r;
+};
diff --git a/src/js/descriptionWidgets.js b/src/js/descriptionWidgets.js
index 3322ea84ec84046e6e274827524f643bcd8b38e4..a61343d53ec2d9d5de5958e03827e7c8818e800c 100644
--- a/src/js/descriptionWidgets.js
+++ b/src/js/descriptionWidgets.js
@@ -581,7 +581,19 @@ App.Desc.ageAndHealth = function(slave) {
  * @returns {string} Slave's mods.
  */
 App.Desc.mods = function(slave, surface) {
-	return App.Desc.brand(slave, surface) + App.Desc.scar(slave, surface);
+	const V = State.variables;
+	if (V.showBodyMods !== 1) {
+		return;
+	}
+	if (slave.fuckdoll !== 0 && !["vagina", "anus", "lips"].includes(surface)) { /* Fuckdoll vulva and anus alone are visibile, plus enormus lips */
+		return;
+	}
+	return (
+		App.Desc.piercing(slave, surface) +
+		App.Desc.tattoo(slave, surface) +
+		App.Desc.brand(slave, surface) +
+		App.Desc.scar(slave, surface)
+	);
 };
 
 /**
diff --git a/src/npc/descriptions/boobs/boobs.js b/src/npc/descriptions/boobs/boobs.js
index b3f7eeadbaa29bc741b0473586a20e1cbf11dd8e..6deaacde6c94877c00313dd70134a629c64ef4ea 100644
--- a/src/npc/descriptions/boobs/boobs.js
+++ b/src/npc/descriptions/boobs/boobs.js
@@ -1479,18 +1479,6 @@ App.Desc.boobsExtra = function(slave, pronouns) {
 	return r.join(' ');
 };
 
-/**
- * @param {App.Entity.SlaveState} slave
- * @returns {string}
- */
-App.Desc.boobsBrand = function(slave) {
-	if (State.variables.showBodyMods === 1) {
-		if (slave.fuckdoll === 0) {
-			return(App.Desc.mods(slave, "chest") + App.Desc.mods(slave, "breast"));
-		}
-	}
-};
-
 /**
  * @param {App.Entity.SlaveState} slave
  * @param {App.Utils.Pronouns} pronouns
@@ -1715,9 +1703,9 @@ App.Desc.areola = function(slave, pronouns) {
 						r.push(`${His} motherly boobs point downward, though, leaving only the top of each ${slave.areolaeShape} visible.`);
 					}
 				}
-			} else {
+			} /* else {
 				r.push(this.areolaePiercing(slave, pronouns));
-			}
+			}*/
 		}
 		if ((V.showClothing === 1) && (V.saleDescription === 0)) {
 			if (slave.areolae > 1) {
diff --git a/src/uncategorized/bodyModification.tw b/src/uncategorized/bodyModification.tw
index 759b8a7ee50dad5a3597e18a66cbee019bd7e527..aee6e814ea371fba6b2faa395a918168eb77a89c 100644
--- a/src/uncategorized/bodyModification.tw
+++ b/src/uncategorized/bodyModification.tw
@@ -404,36 +404,21 @@ Piercings:
 	$His smooth $activeSlave.skin skin is completely unpierced.
 <</if>>
 
-<<if $activeSlave.earPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<earPiercingDescription>><</if>>
-<<if $activeSlave.nosePiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<nosePiercingDescription>><</if>>
-<<if $activeSlave.eyebrowPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<eyebrowPiercingDescription>><</if>>
-<<if $activeSlave.lipsPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<lipsPiercingDescription>><</if>>
-<<if $activeSlave.tonguePiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<tonguePiercingDescription>><</if>>
-<<if $activeSlave.nipplesPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<nipplesPiercingDescription>><</if>>
-<<if $activeSlave.areolaePiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<areolaePiercingDescription>><</if>>
-<<if $activeSlave.navelPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<navelPiercingDescription>><</if>>
-<<if $activeSlave.corsetPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<CorsetPiercingDescription>><</if>>
-<<if $activeSlave.clitPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<clitPiercingDescription>><</if>>
-<<if $activeSlave.vaginaPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<vaginaPiercingDescription>><</if>>
-<<if $activeSlave.dickPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<dickPiercingDescription>><</if>>
-<<if $activeSlave.anusPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<anusPiercingDescription>><</if>>
-
-<br><<chastityPiercingDescription>>
-
-/*<<earPiercingDescription>>
-<<nosePiercingDescription>>
-<<eyebrowPiercingDescription>>
-<<lipsPiercingDescription>>
-<<tonguePiercingDescription>>
-<<nipplesPiercingDescription>>
-<<areolaePiercingDescription>>
-<<navelPiercingDescription>>
-<<CorsetPiercingDescription>>
-<<clitPiercingDescription>>
-<<vaginaPiercingDescription>>
-<<dickPiercingDescription>>
-<<anusPiercingDescription>>
-<<chastityPiercingDescription>>*/
+<<if $activeSlave.earPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "ear")>><</if>>
+<<if $activeSlave.nosePiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "nose")>><</if>>
+<<if $activeSlave.eyebrowPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "eyebrow")>><</if>>
+<<if $activeSlave.lipsPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "lips")>><</if>>
+<<if $activeSlave.tonguePiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "tongue")>><</if>>
+<<if $activeSlave.nipplesPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "nipple")>><</if>>
+<<if $activeSlave.areolaePiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "areolae")>><</if>>
+<<if $activeSlave.navelPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "navel")>><</if>>
+<<if $activeSlave.corsetPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "corset")>><</if>>
+<<if $activeSlave.clitPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "clit")>><</if>>
+<<if $activeSlave.vaginaPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "vagina")>><</if>>
+<<if $activeSlave.dickPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "dick")>><</if>>
+<<if $activeSlave.anusPiercing > 0 >><br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.piercing($activeSlave, "anus")>><</if>>
+
+<br><<= App.Desc.piercing($activeSlave, "chastity")>>
 
 /* Apply piercings */
 
@@ -616,17 +601,17 @@ Choose piercing style:
 /* TATTOOS */
 
 Tattoos:
-<<if $activeSlave.shouldersTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<shouldersTatDescription>><<set _hasTat = 1>><</if>>
-<<if $activeSlave.lipsTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<lipsTatDescription>><<set _hasTat = 1>><</if>>
-<<if $activeSlave.boobsTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<boobsTatDescription>><<set _hasTat = 1>><</if>>
-<<if $activeSlave.armsTat != 0 && $activeSlave.amp != 1>>	<br>&nbsp;&nbsp;&nbsp;&nbsp;<<armsTatDescription>><<set _hasTat = 1>><</if>>
-<<if $activeSlave.backTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<backTatDescription>><<set _hasTat = 1>><</if>>
-<<if $activeSlave.stampTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<stampTatDescription>><<set _hasTat = 1>><</if>>
-<<if $activeSlave.buttTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<buttTatDescription>><<set _hasTat = 1>><</if>>
-<<if $activeSlave.vaginaTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<vaginaTatDescription>><<set _hasTat = 1>><</if>>
-<<if $activeSlave.dickTat != 0 && $activeSlave.dick > 0>>	<br>&nbsp;&nbsp;&nbsp;&nbsp;<<dickTatDescription>><<set _hasTat = 1>><</if>>
-<<if $activeSlave.anusTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<anusTatDescription>><<set _hasTat = 1>><</if>>
-<<if $activeSlave.legsTat != 0 && $activeSlave.amp != 1>>	<br>&nbsp;&nbsp;&nbsp;&nbsp;<<legsTatDescription>><<set _hasTat = 1>><</if>>
+<<if $activeSlave.shouldersTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.tattoo($activeSlave, "shoulder")>><<set _hasTat = 1>><</if>>
+<<if $activeSlave.lipsTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.tattoo($activeSlave, "lips")>><<set _hasTat = 1>><</if>>
+<<if $activeSlave.boobsTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.tattoo($activeSlave, "breast")>><<set _hasTat = 1>><</if>>
+<<if $activeSlave.armsTat != 0 && $activeSlave.amp != 1>>	<br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.tattoo($activeSlave, "upper arm")>><<set _hasTat = 1>><</if>>
+<<if $activeSlave.backTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.tattoo($activeSlave, "back")>><<set _hasTat = 1>><</if>>
+<<if $activeSlave.stampTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.tattoo($activeSlave, "lower back")>><<set _hasTat = 1>><</if>>
+<<if $activeSlave.buttTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.tattoo($activeSlave, "buttock")>><<set _hasTat = 1>><</if>>
+<<if $activeSlave.vaginaTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.tattoo($activeSlave, "vagina")>><<set _hasTat = 1>><</if>>
+<<if $activeSlave.dickTat != 0 && $activeSlave.dick > 0>>	<br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.tattoo($activeSlave, "dick")>><<set _hasTat = 1>><</if>>
+<<if $activeSlave.anusTat != 0>>							<br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.tattoo($activeSlave, "anus")>><<set _hasTat = 1>><</if>>
+<<if $activeSlave.legsTat != 0 && $activeSlave.amp != 1>>	<br>&nbsp;&nbsp;&nbsp;&nbsp;<<= App.Desc.tattoo($activeSlave, "thigh")>><<set _hasTat = 1>><</if>>
 
 <br>&nbsp;&nbsp;&nbsp;&nbsp;
 Choose a tattoo style:
diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw
index a44ccee34901868783081e710115e6d4d63a91aa..4db8ac2a928c45453841e60bca829846400e0347 100644
--- a/src/uncategorized/longSlaveDescription.tw
+++ b/src/uncategorized/longSlaveDescription.tw
@@ -1926,9 +1926,7 @@ $He is
 	$activeSlave.counter.pitKills slaves have died by $his hand in pit fights.
 <</if>>
 
-<<if $activeSlave.corsetPiercing > 0>>
-	<<CorsetPiercingDescription>>
-<</if>>
+<<= App.Desc.piercing($activeSlave, "corset")>>
 
 <<pregnancyDescription>>
 
@@ -1957,7 +1955,10 @@ $He is
 	<</if>>
 <</if>>
 
-<<legsTatDescription>>
+<<= App.Desc.mods($activeSlave, "thigh")>>
+<<= App.Desc.mods($activeSlave, "calf")>>
+<<= App.Desc.mods($activeSlave, "ankle")>>
+<<= App.Desc.mods($activeSlave, "foot")>>
 <<heelDescription>>
 <<skinDescription>>
 
@@ -2079,9 +2080,9 @@ $He is
 			The piercings on $his head run through $his suit, helping secure the material to $his head.
 		<</if>>
 	<<else>>
-		<<earPiercingDescription>>
-		<<nosePiercingDescription>>
-		<<eyebrowPiercingDescription>>
+		<<= App.Desc.mods($activeSlave, "ear")>>
+		<<= App.Desc.mods($activeSlave, "nose")>>
+		<<= App.Desc.mods($activeSlave, "eyebrow")>>
 		<<if ($activeSlave.custom.tattoo != "") && (def $activeSlave.custom.tattoo)>>
 			<<print $activeSlave.custom.tattoo>>
 		<</if>>
@@ -2115,12 +2116,13 @@ $He is
 
 <<if $activeSlave.fuckdoll == 0>>
 	<<nailsDescription>>
-	<<if $showBodyMods == 1>>
-		<<backTatDescription>>
-		<<shouldersTatDescription>>
-		<<armsTatDescription>>
-	<</if>>
 <</if>>
+<<= App.Desc.mods($activeSlave, "back")>>
+<<= App.Desc.mods($activeSlave, "shoulder")>>
+<<= App.Desc.mods($activeSlave, "upper arm")>>
+<<= App.Desc.mods($activeSlave, "lower arm")>>
+<<= App.Desc.mods($activeSlave, "hand")>>
+<<= App.Desc.mods($activeSlave, "wrist")>>
 
 <<if $activeSlave.fuckdoll == 0>>
 	<<if $activeSlave.minorInjury != 0>>
@@ -2136,16 +2138,13 @@ $He is
 <<BoobsDescription>>
 <<boobsShapeDescription>>
 <<boobsExtraDescription>>
-<<if $showBodyMods == 1>>
-	<<boobsTatDescription>>
-<</if>>
-<<boobBrandDescription>>
+<<= App.Desc.mods($activeSlave, "chest")>>
+<<= App.Desc.mods($activeSlave, "breast")>>
 <<shouldersDescription>>
 <<nipplesDescription>>
-<<if $showBodyMods == 1>>
-	<<nipplesPiercingDescription>>
-<</if>>
+<<= App.Desc.mods($activeSlave, "nipple")>>
 <<areolaeDescription>>
+<<= App.Desc.mods($activeSlave, "areolae")>>
 
 <<if $activeSlave.inflation > 0>> /* to be obsoleted with phase 4 */
 	<<BellyInflationDescription>>
@@ -2154,6 +2153,7 @@ $He is
 <<else>>
 	<<BellyDescription>>
 <</if>>
+<<= App.Desc.mods($activeSlave, "navel")>>
 
 <<ButtDescription>>
 
diff --git a/src/uncategorized/wardrobeUse.tw b/src/uncategorized/wardrobeUse.tw
index 7e5f34bbfcd92b05443562aa881e1de20eae2999..1f0eb75d7cc5d1e15c0c199cfa121cbc790aa264 100644
--- a/src/uncategorized/wardrobeUse.tw
+++ b/src/uncategorized/wardrobeUse.tw
@@ -407,7 +407,7 @@ Collar: ''$activeSlave.collar.''
 
 Torso accessory: ''$activeSlave.bellyAccessory.''
 <br>
-//<<waistDescription>><<pregnancyDescription>><<clothingCorsetDescription>><<CorsetPiercingDescription>>//
+//<<waistDescription>><<pregnancyDescription>><<clothingCorsetDescription>><<= App.Desc.piercing($activeSlave, "corset")>>//
 <<options $activeSlave.bellyAccessory>>
 	<<option "none" "None">>
 	<<option "a corset" "Tight corset">>
diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw
index 8ee62efc68f8be5dcc1e3b59dfcbf03e11a48e83..ec8c905f7d02877f8c7daeba567df1d330f07993 100644
--- a/src/utility/descriptionWidgetsFlesh.tw
+++ b/src/utility/descriptionWidgetsFlesh.tw
@@ -294,12 +294,6 @@ $He has
 	<<print App.Desc.boobsExtra($activeSlave)>>
 <</widget>>
 
-
-<<widget "boobBrandDescription">>
-	<<print App.Desc.boobsBrand($activeSlave)>>
-<</widget>>
-
-
 <<widget "nipplesDescription">>
 	<<print App.Desc.nipples($activeSlave)>>
 <</widget>>
@@ -1197,9 +1191,7 @@ $He has
 
 <</if>>
 
-<<if $showBodyMods == 1>>
-	<<stampTatDescription>>
-<</if>>
+<<= App.Desc.mods($activeSlave, "lower back")>>
 
 $He's got a
 <<if $activeSlave.butt <= 1>>
@@ -1398,9 +1390,7 @@ $He's got a
 	<</if>>
 <</if>>
 
-<<if $showBodyMods == 1>>
-	<<buttTatDescription>>
-<</if>>
+<<= App.Desc.mods($activeSlave, "buttock")>>
 
 <</widget>>
 
@@ -1480,10 +1470,7 @@ $He's got a
 
 <<buttplugDescription>>
 
-<<if $showBodyMods == 1>>
-	<<anusPiercingDescription>>
-	<<anusTatDescription>>
-<</if>>
+<<= App.Desc.mods($activeSlave, "anus")>>
 
 <<if $activeSlave.fuckdoll > 0>>
 	As a Fuckdoll,
@@ -3612,14 +3599,8 @@ $He's got a
 	<</if>>
 <</if>>
 
-<<if $activeSlave.fuckdoll == 0>>
-	<<if $showBodyMods == 1>>
-		<<dickTatDescription>>
-		<<dickPiercingDescription>>
-		<<= App.Desc.mods($activeSlave, "penis")>>
-		<<= App.Desc.mods($activeSlave, "testicle")>>
-	<</if>>
-<</if>>
+<<= App.Desc.mods($activeSlave, "dick")>>
+<<= App.Desc.mods($activeSlave, "testicle")>>
 
 <</widget>>
 
@@ -4021,13 +4002,8 @@ $He's got a
 	<</if>>
 <</if>>
 
-<<if $showBodyMods == 1>>
-	<<vaginaPiercingDescription>>
-	<<clitPiercingDescription>>
-	<<if $activeSlave.fuckdoll == 0>>
-		<<vaginaTatDescription>>
-	<</if>>
-<</if>>
+<<= App.Desc.mods($activeSlave, "vagina")>>
+<<= App.Desc.mods($activeSlave, "clit")>>
 
 <<if $activeSlave.fuckdoll == 0>>
 	<<if ($activeSlave.releaseRules == "permissive") || $activeSlave.releaseRules == "masturbation">>
@@ -4396,7 +4372,6 @@ $His
 <<if $showBodyMods == 1>>
 	<<if $activeSlave.fuckdoll == 0>>
 		<<makeupDescription>>
-		<<lipsTatDescription>>
 	<</if>>
 <</if>>
 
@@ -4520,11 +4495,8 @@ $He has
 	$He has no sense of taste, but this isn't immediately obvious just by looking at $his tongue.
 <</if>>
 
-<<if $showBodyMods == 1>>
-	<<lipsPiercingDescription>>
-	<<tonguePiercingDescription>>
-<</if>>
-
+<<= App.Desc.mods($activeSlave, "lips")>>
+<<= App.Desc.mods($activeSlave, "tongue")>>
 
 <<if $activeSlave.fuckdoll > 0>>
 	<<if $PC.dick == 1>>Sticking a dick<<else>>Sliding a dildo<</if>> into $his <<if $activeSlave.lips > 95>>facepussy<<else>>mouth insert<</if>>
diff --git a/src/utility/descriptionWidgetsStyle.tw b/src/utility/descriptionWidgetsStyle.tw
index 7cf0f56afbe28848596bc4a1a823dde6a4e590e5..7ea6398956cf10e1edccc7bf5280abf96496e6cb 100644
--- a/src/utility/descriptionWidgetsStyle.tw
+++ b/src/utility/descriptionWidgetsStyle.tw
@@ -877,7 +877,7 @@ $activeSlave.slaveName is
 		<<footwearDescription>>
 	<</if>>
 
-	<<chastityPiercingDescription>>
+	<<= App.Desc.piercing($activeSlave, "chastity")>>
 
 <<case "a Santa dress">>
 	made of red felt with white fur
@@ -4883,7 +4883,7 @@ $His
 		end at mid-calf, leaving $his feet bare except for a set of jeweled toe-rings.
 	<</switch>>
 
-	<<chastityPiercingDescription>>
+	<<= App.Desc.piercing($activeSlave, "chastity")>>
 
 <<default>>
 	<<switch $activeSlave.shoes>>
diff --git a/src/utility/descriptionWidgetsTattoos.tw b/src/utility/descriptionWidgetsTattoos.tw
index 3b578fee44000876bf3de45477468793951b6016..be380ebb67f407408ff9c1ed9fc8654e27fbdecd 100644
--- a/src/utility/descriptionWidgetsTattoos.tw
+++ b/src/utility/descriptionWidgetsTattoos.tw
@@ -44,7 +44,6 @@
 				$activeSlave.shouldersTat
 		<</switch>>
 	<</if>>
-	<<= App.Desc.mods($activeSlave, "shoulder")>>
 <</if>>
 <</widget>>
 
@@ -91,7 +90,6 @@
 				$activeSlave.lipsTat
 		<</switch>>
 	<</if>>
-	<<= App.Desc.mods($activeSlave, "lips")>>
 <</if>>
 <</widget>>
 
@@ -135,8 +133,6 @@
 				$activeSlave.boobsTat
 		<</switch>>
 	<</if>>
-	/* App.Desc.boobsBrand handles boobBrands */
-	/*<<= App.Desc.mods($activeSlave, "breast")>>*/
 <</if>>
 <</widget>>
 
@@ -224,10 +220,6 @@
 			$activeSlave.armsTat
 		<</switch>>
 	<</if>>
-	<<= App.Desc.mods($activeSlave, "upper arm")>>
-	<<= App.Desc.mods($activeSlave, "lower arm")>>
-	<<= App.Desc.mods($activeSlave, "hand")>>
-	<<= App.Desc.mods($activeSlave, "wrist")>>
 <</if>>
 <</widget>>
 
@@ -309,7 +301,6 @@
 			$activeSlave.backTat
 		<</switch>>
 	<</if>>
-	<<= App.Desc.mods($activeSlave, "back")>>
 <</if>>
 <</widget>>
 
@@ -359,7 +350,6 @@
 			$activeSlave.stampTat
 	<</switch>>
 	<</if>>
-	<<= App.Desc.mods($activeSlave, "lower back")>>
 <</if>>
 <</widget>>
 
@@ -424,7 +414,6 @@
 				$activeSlave.buttTat
 		<</switch>>
 	<</if>>
-<<= App.Desc.mods($activeSlave, "buttock")>>
 <</if>>
 <</widget>>
 
@@ -590,9 +579,6 @@
 			$activeSlave.anusTat
 	<</switch>>
 <</if>>
-/* Just in case someone makes these someday: */
-<<= App.Desc.mods($activeSlave, "anus")>>
-<<= App.Desc.mods($activeSlave, "asshole")>>
 <</widget>>
 
 <<widget "legsTatDescription">>
@@ -633,9 +619,5 @@
 			$activeSlave.legsTat
 		<</switch>>
 	<</if>>
-	<<= App.Desc.mods($activeSlave, "thigh")>>
-	<<= App.Desc.mods($activeSlave, "calf")>>
-	<<= App.Desc.mods($activeSlave, "ankle")>>
-	<<= App.Desc.mods($activeSlave, "foot")>>
 <</if>>
 <</widget>>