diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index ae7afb42f844554612fa4de6d66879dbcff81c6f..59e3f09dfa27e72740b7882b23a4e8eb1e2f3539 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -188,9 +188,9 @@ window.rulesAssistantOptions = (function() {
 			/** @protected */
 			this._allowNullValue = allowNullValue;
 			if (allowNullValue) {
-				this.appendChild(new ListItem("no default setting", null));
+				this.appendChild(new ListItem("No default setting", null));
 			}
-			data.forEach(item => this.appendChild(new ListItem(...item)));
+			data.forEach(item => this.appendChild(this._createListItem(...item)));
 		}
 
 		createEditor(...args) { return null; }
@@ -239,6 +239,16 @@ window.rulesAssistantOptions = (function() {
 				this.onchange(this.getData());
 			}
 		}
+
+		/**
+		 * @private
+		 * @param {string} display
+		 * @param {any} data
+		 * @returns {ListItem}
+		 */
+		_createListItem(display, data) {
+			return new ListItem(display, data);
+		}
 	}
 
 	// a clickable item of a list
@@ -271,6 +281,15 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
+	/**
+	 * Automatically capitalizes shortcut labels
+	 */
+	class EditorWithShortcutsCapitalized extends EditorWithShortcuts {
+		_createListItem(display, data) {
+			return super._createListItem(capFirstChar(display), data);
+		}
+	}
+
 	class List extends EditorWithShortcuts {
 		constructor(prefix, data = [], allowNullValue = true,  textinput = false) {
 			super(prefix, data, allowNullValue, textinput);
@@ -307,7 +326,16 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class NumberRange extends EditorWithShortcuts {
+	/**
+	 * Automatically capitalizes shortcut labels
+	 */
+	class ListCapitalized extends List {
+		_createListItem(display, data) {
+			return super._createListItem(capFirstChar(display), data);
+		}
+	}
+
+	class NumberRange extends EditorWithShortcutsCapitalized {
 		/**
 		 * @param {string} prefix
 		 * @param {Array} [data=[]]
@@ -980,12 +1008,12 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class SpecialInclusion extends List {
+	class SpecialInclusion extends ListCapitalized {
 		constructor() {
 			const items = [
-				["Include", -1],
-				["Exclude", 0],
-				["Only", 1]
+				["include", -1],
+				["exclude", 0],
+				["only", 1]
 			];
 			super("Special slaves", items);
 			this.setValue(current_rule.condition.specialSlaves);
@@ -1448,12 +1476,12 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class LeggingsList extends List {
+	class LeggingsList extends ListCapitalized {
 		constructor() {
 			const items = [
-				["None", "none"],
-				["Short stockings", "short stockings"],
-				["Long stockings", "long stockings"],
+				["none"],
+				["short stockings"],
+				["long stockings"],
 			];
 			super("Leg accessory", items);
 			this.setValue(current_rule.set.legAccessory);
@@ -1461,11 +1489,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class VagChastityList extends List {
+	class VagChastityList extends ListCapitalized {
 		constructor() {
 			const chaste = [
-				["None", 0],
-				["Chastity", 1],
+				["none", 0],
+				["chastity", 1],
 			];
 			super("Vaginal chastity", chaste);
 			this.setValue(current_rule.set.chastityVagina);
@@ -1537,11 +1565,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class DickChastityList extends List {
+	class DickChastityList extends ListCapitalized {
 		constructor() {
 			const items = [
-				["None", 0],
-				["Chastity cage", 1],
+				["none", 0],
+				["chastity cage", 1],
 			];
 			super("Penile chastity", items);
 			this.setValue(current_rule.set.chastityPenis);
@@ -1565,11 +1593,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class AnalChastityList extends List {
+	class AnalChastityList extends ListCapitalized {
 		constructor() {
 			const items = [
-				["None", 0],
-				["Chastity", 1],
+				["none", 0],
+				["chastity", 1],
 			];
 			super("Anal chastity", items);
 			this.setValue(current_rule.set.chastityAnus);
@@ -1625,21 +1653,21 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class ImplantVolumeList extends List {
+	class ImplantVolumeList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["No changes", -1],
-				["Empty implant", 0],
-				["Early pregnancy", 1500],
-				["Second trimester pregnancy", 5000],
-				["Full-term pregnancy", 15000],
-				["Full-term with twins", 30000],
-				["Full-term with triplets", 45000],
-				["Full-term with quadruplets", 60000],
-				["Full-term with quintuplets", 75000],
-				["Full-term with sextuplets", 90000],
-				["Full-term with septuplets", 105000],
-				["Full-term with octuplets", 120000]
+				["no changes", -1],
+				["empty implant", 0],
+				["early pregnancy", 1500],
+				["second trimester pregnancy", 5000],
+				["full-term pregnancy", 15000],
+				["full-term with twins", 30000],
+				["full-term with triplets", 45000],
+				["full-term with quadruplets", 60000],
+				["full-term with quintuplets", 75000],
+				["full-term with sextuplets", 90000],
+				["full-term with septuplets", 105000],
+				["full-term with octuplets", 120000]
 			];
 			super("Belly implant target volume (if present)", pairs, false);
 			this.setValue(current_rule.set.bellyImplantVol);
@@ -1647,11 +1675,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class AutosurgerySwitch extends List {
+	class AutosurgerySwitch extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Activate", 1],
-				["Off", 0],
+				["on", 1],
+				["off", 0],
 			];
 			super("Assistant-applied implants (Autosurgery global switch)", pairs, false);
 			this.setValue(current_rule.set.autoSurgery);
@@ -1659,11 +1687,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class IntensiveGrowthSwitch extends List {
+	class IntensiveGrowthSwitch extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["No", 0],
-				["Yes", 1],
+				["no", 0],
+				["yes", 1],
 			];
 			super("Use intensive growth drugs for healthy slaves", pairs, false);
 			this.setValue(current_rule.set.growth.intensity);
@@ -1671,11 +1699,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class HyperGrowthSwitch extends List {
+	class HyperGrowthSwitch extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["No", 0],
-				["Yes", 1],
+				["no", 0],
+				["yes", 1],
 			];
 			super("Use hyper growth drugs", pairs, false);
 			this.setValue(current_rule.set.hyper_drugs);
@@ -1775,9 +1803,9 @@ window.rulesAssistantOptions = (function() {
 			const pairs = [
 				["B-Cup", 350],
 				["D-Cup", 1000],
-				["Monstrous", 9000],
-				["Unlimited", 48000],
-				["None", 0]
+				["monstrous", 9000],
+				["unlimited", 48000],
+				["none", 0]
 			];
 			super("Breasts", pairs, true, 0, 48000, true);
 			this.setValue(current_rule.set.growth.boobs);
@@ -1788,11 +1816,11 @@ window.rulesAssistantOptions = (function() {
 	class ButtGrowthList extends NumberRange {
 		constructor() {
 			const pairs = [
-				["Cute", 2],
-				["Big", 4],
-				["Huge", 6],
-				["Unlimited", 20],
-				["None", 0]
+				["cute", 2],
+				["big", 4],
+				["huge", 6],
+				["unlimited", 20],
+				["none", 0]
 			];
 			super("Butts", pairs, true, 0, 20, true);
 			this.setValue(current_rule.set.growth.butt);
@@ -1803,10 +1831,10 @@ window.rulesAssistantOptions = (function() {
 	class LipGrowthList extends NumberRange {
 		constructor() {
 			const pairs = [
-				["Plump", 25],
-				["Beestung", 45],
-				["Facepussy", 100],
-				["None", 0]
+				["plump", 25],
+				["beestung", 45],
+				["facepussy", 100],
+				["none", 0]
 			];
 			super("Lips", pairs, true, 0, 100, true);
 			this.setValue(current_rule.set.growth.lips);
@@ -1817,10 +1845,10 @@ window.rulesAssistantOptions = (function() {
 	class DickGrowthList extends NumberRange {
 		constructor() {
 			const pairs = [
-				["Above average", 4],
-				["Pornstar", 6],
-				["Unlimited", 30],
-				["None", 0]
+				["above average", 4],
+				["pornstar", 6],
+				["unlimited", 30],
+				["none", 0]
 			];
 			super("Dicks, if present", pairs, true, 0, 30, true);
 			this.setValue(current_rule.set.growth.dick);
@@ -1831,10 +1859,10 @@ window.rulesAssistantOptions = (function() {
 	class BallGrowthList extends NumberRange {
 		constructor() {
 			const pairs = [
-				["Sizable", 4],
-				["Cumslave", 6],
-				["Unlimited", 125],
-				["None", 0]
+				["sizable", 4],
+				["cumslave", 6],
+				["unlimited", 125],
+				["none", 0]
 			];
 			super("Balls, if present", pairs, true, 0, 125, true);
 			this.setValue(current_rule.set.growth.balls);
@@ -1842,12 +1870,12 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class CurrativesList extends List {
+	class CurrativesList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["None", 0],
-				["Preventatives", 1],
-				["Curatives", 2],
+				["none", 0],
+				["preventatives", 1],
+				["curatives", 2],
 			];
 			super("Health drugs", pairs);
 			this.setValue(current_rule.set.curatives);
@@ -1855,13 +1883,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class AphrodisiacList extends List {
+	class AphrodisiacList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["None", 0],
-				["Standard", 1],
-				["Extreme", 2],
-				["Anaphrodisiacs", -1]
+				["none", 0],
+				["standard", 1],
+				["extreme", 2],
+				["anaphrodisiacs", -1]
 			];
 			super("Aphrodisiacs", pairs);
 			this.setValue(current_rule.set.aphrodisiacs);
@@ -1869,11 +1897,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class ContraceptiveList extends List {
+	class ContraceptiveList extends ListCapitalized {
 		constructor() {
 			const drugs = [
-				["Contraceptives", true],
-				["Fertile", false],
+				["contraceptives", true],
+				["fertile", false],
 			];
 			super("Contraceptives for fertile slaves", drugs);
 			this.setValue(current_rule.set.preg);
@@ -1881,14 +1909,14 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class AbortionList extends List {
+	class AbortionList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Abort all", "all"],
+				["abort all", "all"],
 			];
 			if (V.pregnancyMonitoringUpgrade === 1 && V.geneticMappingUpgrade === 1) {
-				pairs.push(["Abort boys", "male"]);
-				pairs.push(["Abort girls", "female"]);
+				pairs.push(["abort boys", "male"]);
+				pairs.push(["abort girls", "female"]);
 			}
 			super("Pregnancy termination", pairs);
 			this.setValue(current_rule.set.abortion);
@@ -1896,14 +1924,14 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class PregDrugsList extends List {
+	class PregDrugsList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["None", "none"],
-				["Fast gestation", "fast"],
-				["Slow gestation", "slow"],
-				["Birth suppressors", "suppress"],
-				["Birth stimulators", "stimulate"]
+				["none"],
+				["fast gestation", "fast"],
+				["slow gestation", "slow"],
+				["birth suppressors", "suppress"],
+				["birth stimulators", "stimulate"]
 			];
 			super("Pregnancy control agents for pregnant slaves", pairs);
 			this.setValue(current_rule.set.pregSpeed);
@@ -1956,15 +1984,15 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class OtherDrugsList extends List {
+	class OtherDrugsList extends ListCapitalized {
 		constructor() {
 			const drugs = [
-				["None", "none"],
-				["Fertility drugs", "fertility drugs"],
-				["Psychosuppressants", "psychosuppressants"],
-				["Steroids", "steroids"],
+				["none"],
+				["fertility drugs"],
+				["psychosuppressants"],
+				["steroids"],
 				["Natural hormone enhancers", "hormone enhancers"],
-				["Hormone blockers", "hormone blockers"],
+				["hormone blockers"],
 				["Erectile dysfunction circumvention", "priapism agents"],
 				["breast injections"],
 				["intensive breast injections"],
@@ -2016,17 +2044,17 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class EnemaList extends List {
+	class EnemaList extends ListCapitalized {
 		constructor() {
 			const enemas = [
-				["None", "none"],
-				["Water", "water"]
+				["none"],
+				["water"]
 			];
 			if (V.medicalEnema === 1) {
 				enemas.push(
-					["Aphrodisiac", "aphrodisiac"],
-					["Curative", "curative"],
-					["Tightener", "tightener"]
+					["aphrodisiac"],
+					["curative"],
+					["tightener"]
 				);
 			}
 			super("Enemas", enemas);
@@ -2035,32 +2063,32 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class DietList extends List {
+	class DietList extends ListCapitalized {
 		constructor() {
 			const diets = [
 				["Healthy diet", "healthy"],
-				["Fix fat and skinny slaves", "attractive"],
-				["Curvy", 30],
-				["Average", 0],
-				["Thin", -30]
+				["fix fat and skinny slaves", "attractive"],
+				["curvy", 30],
+				["average", 0],
+				["thin", -30]
 			];
 			if (V.feeder === 1) {
 				diets.push(
-					["Feminine", "XX"],
-					["Masculine", "XY"]
+					["feminine", "XX"],
+					["masculine", "XY"]
 				);
 				if (V.dietXXY === 1) {
-					diets.push(["Futanari", "XXY"]);
+					diets.push(["futanari", "XXY"]);
 				}
 			}
 			if (V.dietCleanse === 1) {
-				diets.push(["Cleansing", "cleansing"]);
+				diets.push(["cleansing"]);
 			}
 			if (V.dietFertility === 1) {
-				diets.push(["Fertility", "fertility"]);
+				diets.push(["fertility"]);
 			}
 			if (V.cumProDiet === 1) {
-				diets.push(["Cum production", "cum production"]);
+				diets.push(["cum production"]);
 			}
 
 			super("Slave diets", diets, true, true);
@@ -2069,11 +2097,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class DietGrowthList extends List {
+	class DietGrowthList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["On", 1],
-				["Off", 0]
+				["on", 1],
+				["off", 0]
 			];
 			super("Diet support for growth drugs", pairs, false);
 			this.setValue(current_rule.set.dietGrowthSupport);
@@ -2107,11 +2135,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class DietSolidFoodList extends List {
+	class DietSolidFoodList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Permitted", 0],
-				["Forbidden", 1],
+				["permitted", 0],
+				["forbidden", 1],
 			];
 			super("Solid food access", pairs);
 			this.setValue(current_rule.set.onDiet);
@@ -2122,11 +2150,11 @@ window.rulesAssistantOptions = (function() {
 	class MuscleList extends NumberRange {
 		constructor() {
 			const pairs = [
-				["None", 0],
-				["Toned", 20],
-				["Ripped", 50],
-				["Massive", 100],
-				["Weak", -20]
+				["none", 0],
+				["toned", 20],
+				["ripped", 50],
+				["massive", 100],
+				["weak", -20]
 			];
 			super("Muscles", pairs, true, -20, 100, true);
 			this.setValue(current_rule.set.muscles);
@@ -2134,12 +2162,12 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class BraceList extends List {
+	class BraceList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["None", "none"],
-				["Straighten", "straighten"],
-				["Universal", "universal"]
+				["none"],
+				["straighten"],
+				["universal"]
 			];
 			super("Braces", pairs);
 			this.setValue(current_rule.set.teeth);
@@ -2147,12 +2175,12 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class LivingStandardList extends List {
+	class LivingStandardList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Luxurious", "luxurious"],
-				["Normal", "normal"],
-				["Spare", "spare"]
+				["luxurious"],
+				["normal"],
+				["spare"]
 			];
 			super("Living standard", pairs);
 			this.setValue(current_rule.set.livingRules);
@@ -2160,13 +2188,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class PunishmentList extends List {
+	class PunishmentList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Confinement", "confinement"],
-				["Whipping", "whipping"],
-				["Chastity", "chastity"],
-				["Situational", "situational"]
+				["confinement"],
+				["whipping"],
+				["chastity"],
+				["situational"]
 			];
 			super("Typical punishment", pairs);
 			this.setValue(current_rule.set.standardPunishment);
@@ -2174,13 +2202,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class RewardList extends List {
+	class RewardList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Relaxation", "relaxation"],
-				["Drugs", "drugs"],
-				["Orgasm", "orgasm"],
-				["Situational", "situational"]
+				["relaxation"],
+				["drugs"],
+				["orgasm"],
+				["situational"]
 			];
 			super("Typical reward", pairs);
 			this.setValue(current_rule.set.standardReward);
@@ -2188,14 +2216,14 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class ReleaseList extends List {
+	class ReleaseList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Permissive", "permissive"],
-				["Sapphic", "sapphic"],
-				["Masturbation", "masturbation"],
-				["Restrictive", "restrictive"],
-				["Chastity", "chastity"]
+				["permissive"],
+				["sapphic"],
+				["masturbation"],
+				["restrictive"],
+				["chastity"]
 			];
 			super("Release rules", pairs);
 			this.setValue(current_rule.set.releaseRules);
@@ -2203,15 +2231,15 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class ToyHoleList extends List {
+	class ToyHoleList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["All her holes", "all her holes"],
-				["Mouth", "mouth"],
-				["Boobs", "boobs"],
-				["Pussy", "pussy"],
-				["Ass", "ass"],
-				["Dick", "dick"]
+				["all her holes"],
+				["mouth"],
+				["boobs"],
+				["pussy"],
+				["ass"],
+				["dick"]
 			];
 			super("Fucktoy use preference", pairs);
 			this.setValue(current_rule.set.toyHole);
@@ -2219,16 +2247,16 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class SmartFetishList extends List {
+	class SmartFetishList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Vanilla", "vanilla"],
-				["Oral", "oral"],
-				["Anal", "anal"],
-				["Boobs", "boobs"],
+				["vanilla"],
+				["oral"],
+				["anal"],
+				["boobs"],
 				["Sub", "submissive"],
-				["Dom", "dom"],
-				["Humiliation", "humiliation"],
+				["dom"],
+				["humiliation"],
 				["Preg", "pregnancy"],
 				["Pain", "masochist"],
 				["Sadism", "sadist"]
@@ -2239,13 +2267,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class SmartXYAttractionList extends List {
+	class SmartXYAttractionList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Passionate", 100],
-				["Attracted", 75],
-				["Indifferent", 45],
-				["None", 0]
+				["passionate", 100],
+				["attracted", 75],
+				["indifferent", 45],
+				["none", 0]
 			];
 			super("Smart piercing XY attraction target", pairs);
 			this.setValue(current_rule.set.clitSettingXY);
@@ -2253,13 +2281,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class SmartXXAttractionList extends List {
+	class SmartXXAttractionList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Passionate", 100],
-				["Attracted", 75],
-				["Indifferent", 45],
-				["None", 0]
+				["passionate", 100],
+				["attracted", 75],
+				["indifferent", 45],
+				["none", 0]
 			];
 			super("Smart piercing XX attraction target", pairs);
 			this.setValue(current_rule.set.clitSettingXX);
@@ -2267,15 +2295,15 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class SmartEnergyList extends List {
+	class SmartEnergyList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Nympho", 100],
-				["Sex Addict", 85],
-				["Powerful", 65],
-				["Healthy", 45],
-				["Weak", 25],
-				["Frigid", 0]
+				["nympho", 100],
+				["sex addict", 85],
+				["powerful", 65],
+				["healthy", 45],
+				["weak", 25],
+				["frigid", 0]
 			];
 			super("Smart piercing sex drive target", pairs);
 			this.setValue(current_rule.set.clitSettingEnergy);
@@ -2283,12 +2311,12 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class SpeechList extends List {
+	class SpeechList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Permissive", "permissive"],
-				["Suppress accents", "accent elimination"],
-				["Restrictive", "restrictive"]
+				["permissive"],
+				["suppress accents", "accent elimination"],
+				["restrictive"]
 			];
 			super("Speech rules", pairs);
 			this.setValue(current_rule.set.speechRules);
@@ -2296,12 +2324,12 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class RelationshipList extends List {
+	class RelationshipList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Permissive", "permissive"],
-				["Just friends", "just friends"],
-				["Restrictive", "restrictive"]
+				["permissive"],
+				["just friends"],
+				["restrictive"]
 			];
 			super("Relationship rules", pairs);
 			this.setValue(current_rule.set.relationshipRules);
@@ -2309,11 +2337,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class PornBroadcastStatus extends List {
+	class PornBroadcastStatus extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Disabled", 0],
-				["Enabled", 1]
+				["disabled", 0],
+				["enabled", 1]
 			];
 			super("Porn Broadcasting Status", pairs);
 			this.setValue(current_rule.set.pornFeed);
@@ -2321,11 +2349,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class PornList extends List {
+	class PornList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				/* ["No broadcasting", -1], **This has changed, it would now use .pornFeed** */
-				["No subsidy", 0],
+				["no subsidy", 0],
 				["1000", 1000],
 				["2000", 2000],
 				["3000", 3000],
@@ -2338,7 +2366,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class EyewearList extends List {
+	class EyewearList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["none"],
@@ -2443,7 +2471,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class EarwearList extends List {
+	class EarwearList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["none"],
@@ -2457,7 +2485,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class MakeupList extends List {
+	class MakeupList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["makeup-free", 0],
@@ -2472,7 +2500,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class NailsList extends List {
+	class NailsList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["clipped", 0],
@@ -2492,7 +2520,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class HairLengthList extends List {
+	class HairLengthList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["very short", 5],
@@ -2508,7 +2536,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class HaircutsList extends List {
+	class HaircutsList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["maintain hair length", 1],
@@ -2520,7 +2548,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class HairColorList extends List {
+	class HairColorList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["blonde"],
@@ -2563,7 +2591,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class HairStyleList extends List {
+	class HairStyleList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["neat"],
@@ -2592,7 +2620,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class EyebrowColorList extends List {
+	class EyebrowColorList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["blonde"],
@@ -2635,7 +2663,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class EyebrowStyleList extends List {
+	class EyebrowStyleList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["shaved"],
@@ -2655,7 +2683,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class EyebrowFullnessList extends List {
+	class EyebrowFullnessList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["pencil-thin"],
@@ -2672,7 +2700,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class MarkingsList extends List {
+	class MarkingsList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["remove beauty marks"],
@@ -2685,7 +2713,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class PubicHairColorList extends List {
+	class PubicHairColorList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["blonde"],
@@ -2728,7 +2756,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class PubicHairStyleList extends List {
+	class PubicHairStyleList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["waxed"],
@@ -2744,7 +2772,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class ArmpitHairColorList extends List {
+	class ArmpitHairColorList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["blonde"],
@@ -2787,7 +2815,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class ArmpitHairStyleList extends List {
+	class ArmpitHairStyleList extends ListCapitalized {
 		constructor() {
 			const pairs = [
 				["waxed"],
@@ -2801,76 +2829,63 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class EarPiercingList extends List {
+	function piercingTypes(smartEnabled = false) {
+		let res = [
+			["none", 0],
+			["light", 1],
+			["heavy", 2]
+		];
+		if (smartEnabled) {
+			res.push(["Smart (expensive)", 3]);
+		}
+		return res;
+	}
+
+	class EarPiercingList extends ListCapitalized {
 		constructor() {
-			const pairs = [
-				["None", 0],
-				["Light", 1],
-				["Heavy", 2]
-			];
-			super("Ear piercings", pairs);
+			super("Ear piercings", piercingTypes());
 			this.setValue(current_rule.set.earPiercing);
 			this.onchange = (value) => current_rule.set.earPiercing = value;
 		}
 	}
 
-	class NosePiercingList extends List {
+	class NosePiercingList extends ListCapitalized {
 		constructor() {
-			const pairs = [
-				["None", 0],
-				["Light", 1],
-				["Heavy", 2]
-			];
-			super("Nasal piercings", pairs);
+			super("Nasal piercings", piercingTypes());
 			this.setValue(current_rule.set.nosePiercing);
 			this.onchange = (value) => current_rule.set.nosePiercing = value;
 		}
 	}
 
-	class EyebrowPiercingList extends List {
+	class EyebrowPiercingList extends ListCapitalized {
 		constructor() {
-			const pairs = [
-				["None", 0],
-				["Light", 1],
-				["Heavy", 2]
-			];
-			super("Eyebrow piercings", pairs);
+			super("Eyebrow piercings", piercingTypes());
 			this.setValue(current_rule.set.eyebrowPiercing);
 			this.onchange = (value) => current_rule.set.eyebrowPiercing = value;
 		}
 	}
 
-	class NavelPiercingList extends List {
+	class NavelPiercingList extends ListCapitalized {
 		constructor() {
-			const pairs = [
-				["None", 0],
-				["Light", 1],
-				["Heavy", 2]
-			];
-			super("Navel piercings", pairs);
+			super("Navel piercings", piercingTypes());
 			this.setValue(current_rule.set.navelPiercing);
 			this.onchange = (value) => current_rule.set.navelPiercing = value;
 		}
 	}
 
-	class NipplePiercingList extends List {
+	class NipplePiercingList extends ListCapitalized {
 		constructor() {
-			const pairs = [
-				["None", 0],
-				["Light", 1],
-				["Heavy", 2]
-			];
-			super("Nipple piercings", pairs);
+			super("Nipple piercings", piercingTypes());
 			this.setValue(current_rule.set.nipplesPiercing);
 			this.onchange = (value) => current_rule.set.nipplesPiercing = value;
 		}
 	}
 
-	class AreolaPiercingList extends List {
+	class AreolaPiercingList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["None", 0],
-				["Studded", 1]
+				["none", 0],
+				["studded", 1]
 			];
 			super("Areola studs", pairs);
 			this.setValue(current_rule.set.areolaePiercing);
@@ -2878,90 +2893,59 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class LipPiercingList extends List {
+	class LipPiercingList extends ListCapitalized {
 		constructor() {
-			const pairs = [
-				["None", 0],
-				["Light", 1],
-				["Heavy", 2]
-			];
-			super("Lip piercings", pairs);
+			super("Lip piercings", piercingTypes());
 			this.setValue(current_rule.set.lipsPiercing);
 			this.onchange = (value) => current_rule.set.lipsPiercing = value;
 		}
 	}
 
-	class TonguePiercingList extends List {
+	class TonguePiercingList extends ListCapitalized {
 		constructor() {
-			const pairs = [
-				["None", 0],
-				["Light", 1],
-				["Heavy", 2]
-			];
-			super("Tongue piercing", pairs);
+			super("Tongue piercing", piercingTypes());
 			this.setValue(current_rule.set.tonguePiercing);
 			this.onchange = (value) => current_rule.set.tonguePiercing = value;
 		}
 	}
 
-	class ClitPiercingList extends List {
+	class ClitPiercingList extends ListCapitalized {
 		constructor() {
-			const pairs = [
-				["None", 0],
-				["Light", 1],
-				["Heavy", 2],
-				["Smart (expensive)", 3]
-			];
-			super("Clit piercing", pairs);
+			super("Clit piercing", piercingTypes(true));
 			this.setValue(current_rule.set.clitPiercing);
 			this.onchange = (value) => current_rule.set.clitPiercing = value;
 		}
 	}
 
-	class LabiaPiercingList extends List {
+	class LabiaPiercingList extends ListCapitalized {
 		constructor() {
-			const pairs = [
-				["None", 0],
-				["Light", 1],
-				["Heavy", 2]
-			];
-			super("Pussylips piercings", pairs);
+			super("Pussylips piercings", piercingTypes());
 			this.setValue(current_rule.set.vaginaPiercing);
 			this.onchange = (value) => current_rule.set.vaginaPiercing = value;
 		}
 	}
 
-	class ShaftPiercingList extends List {
+	class ShaftPiercingList extends ListCapitalized {
 		constructor() {
-			const pairs = [
-				["None", 0],
-				["Light", 1],
-				["Heavy", 2]
-			];
-			super("Shaft piercings", pairs);
+			super("Shaft piercings", piercingTypes());
 			this.setValue(current_rule.set.dickPiercing);
 			this.onchange = (value) => current_rule.set.dickPiercing = value;
 		}
 	}
 
-	class PerineumPiercingList extends List {
+	class PerineumPiercingList extends ListCapitalized {
 		constructor() {
-			const pairs = [
-				["None", 0],
-				["Light", 1],
-				["Heavy", 2]
-			];
-			super("Perianal piercings", pairs);
+			super("Perianal piercings", piercingTypes());
 			this.setValue(current_rule.set.anusPiercing);
 			this.onchange = (value) => current_rule.set.anusPiercing = value;
 		}
 	}
 
-	class CorsetPiercingList extends List {
+	class CorsetPiercingList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["None", 0],
-				["Apply", 1]
+				["none", 0],
+				["applied", 1]
 			];
 			super("Corset piercings", pairs);
 			this.setValue(current_rule.set.corsetPiercing);
@@ -2969,11 +2953,11 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class AutoBrandingList extends List {
+	class AutoBrandingList extends ListCapitalized {
 		constructor() {
 			const pairs = [
-				["Activate", 1],
-				["Off", 0],
+				["on", 1],
+				["off", 0],
 			];
 			super("Automatic branding", pairs, false);
 			this.setValue(current_rule.set.autoBrand);
@@ -3213,269 +3197,114 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class FaceTattooList extends List {
+	function commonTattoos() {
+		return [
+			["none", 0],
+			["tribal patterns"],
+			["flowers"],
+			["counting"],
+			["advertisements"],
+			["rude words"],
+			["degradation"],
+			["bovine patterns"],
+			["Asian art"],
+			["permanent makeup"],
+			["sacrament"],
+			["sacrilege"],
+			["possessive"],
+			["paternalist"]
+		];
+	}
+
+	class FaceTattooList extends ListCapitalized {
 		constructor() {
-			const items = [
-				["none", 0],
-				["tribal patterns"],
-				["flowers"],
-				["counting"],
-				["advertisements"],
-				["rude words"],
-				["degradation"],
-				["bovine patterns"],
-				["Asian art"],
-				["permanent makeup"],
-				["sacrament"],
-				["sacrilege"],
-				["possessive"],
-				["paternalist"]
-			];
-			super("Facial tattoos", items);
+			super("Facial tattoos", commonTattoos());
 			this.setValue(current_rule.set.lipsTat);
 			this.onchange = (value) => current_rule.set.lipsTat = value;
 		}
 	}
 
-	class ShoulderTattooList extends List {
+	class ShoulderTattooList extends ListCapitalized {
 		constructor() {
-			const items = [
-				["none", 0],
-				["tribal patterns"],
-				["flowers"],
-				["counting"],
-				["advertisements"],
-				["rude words"],
-				["degradation"],
-				["bovine patterns"],
-				["Asian art"],
-				["scenes"],
-				["sacrament"],
-				["sacrilege"],
-				["possessive"],
-				["paternalist"]
-			];
-			super("Shoulder tattoos", items);
+			super("Shoulder tattoos", commonTattoos());
 			this.setValue(current_rule.set.shouldersTat);
 			this.onchange = (value) => current_rule.set.shouldersTat = value;
 		}
 	}
 
-	class ChestTattooList extends List {
+	class ChestTattooList extends ListCapitalized {
 		constructor() {
-			const items = [
-				["none", 0],
-				["tribal patterns"],
-				["flowers"],
-				["counting"],
-				["advertisements"],
-				["rude words"],
-				["degradation"],
-				["bovine patterns"],
-				["Asian art"],
-				["scenes"],
-				["sacrament"],
-				["sacrilege"],
-				["possessive"],
-				["paternalist"]
-			];
-			super("Chest tattoos", items);
+			super("Chest tattoos", commonTattoos());
 			this.setValue(current_rule.set.boobsTat);
 			this.onchange = (value) => current_rule.set.boobsTat = value;
 		}
 	}
 
-	class ArmTattooList extends List {
+	class ArmTattooList extends ListCapitalized {
 		constructor() {
-			const items = [
-				["none", 0],
-				["tribal patterns"],
-				["flowers"],
-				["counting"],
-				["advertisements"],
-				["rude words"],
-				["degradation"],
-				["bovine patterns"],
-				["Asian art"],
-				["scenes"],
-				["sacrament"],
-				["sacrilege"],
-				["possessive"],
-				["paternalist"]
-			];
-			super("Arm tattoos", items);
+			super("Arm tattoos", commonTattoos());
 			this.setValue(current_rule.set.armsTat);
 			this.onchange = (value) => current_rule.set.armsTat = value;
 		}
 	}
 
-	class UpperBackTattooList extends List {
+	class UpperBackTattooList extends ListCapitalized {
 		constructor() {
-			const items = [
-				["none", 0],
-				["tribal patterns"],
-				["flowers"],
-				["counting"],
-				["advertisements"],
-				["rude words"],
-				["degradation"],
-				["bovine patterns"],
-				["Asian art"],
-				["scenes"],
-				["sacrament"],
-				["sacrilege"],
-				["possessive"],
-				["paternalist"],
-			];
-			super("Upper back tattoos", items);
+			super("Upper back tattoos", commonTattoos());
 			this.setValue(current_rule.set.backTat);
 			this.onchange = (value) => current_rule.set.backTat = value;
 		}
 	}
 
-	class LowerBackTattooList extends List {
+	class LowerBackTattooList extends ListCapitalized {
 		constructor() {
-			const items = [
-				["none", 0],
-				["tribal patterns"],
-				["flowers"],
-				["counting"],
-				["advertisements"],
-				["rude words"],
-				["degradation"],
-				["bovine patterns"],
-				["Asian art"],
-				["scenes"],
-				["sacrament"],
-				["sacrilege"],
-				["possessive"],
-				["paternalist"]
-			];
-			super("Lower back tattoos", items);
+			super("Lower back tattoos", commonTattoos());
 			this.setValue(current_rule.set.stampTat);
 			this.onchange = (value) => current_rule.set.stampTat = value;
 		}
 	}
 
-	class AbdomenTattooList extends List {
+	class AbdomenTattooList extends ListCapitalized {
 		constructor() {
-			const items = [
-				["none", 0],
-				["tribal patterns"],
-				["flowers"],
-				["counting"],
-				["advertisements"],
-				["rude words"],
-				["degradation"],
-				["bovine patterns"],
-				["Asian art"],
-				["scenes"],
-				["sacrament"],
-				["sacrilege"],
-				["possessive"],
-				["paternalist"],
-			];
-			super("Abdomen tattoos", items);
+			super("Abdomen tattoos", commonTattoos());
 			this.setValue(current_rule.set.vaginaTat);
 			this.onchange = (value) => current_rule.set.vaginaTat = value;
 		}
 	}
 
-	class DickTattooList extends List {
+	class DickTattooList extends ListCapitalized {
 		constructor() {
-			const items = [
-				["none", 0],
-				["tribal patterns"],
-				["flowers"],
-				["counting"],
-				["advertisements"],
-				["rude words"],
-				["degradation"],
-				["bovine patterns"],
-				["Asian art"],
-				["sacrament"],
-				["sacrilege"],
-				["possessive"],
-				["paternalist"],
-			];
-			super("Dick tattoos", items);
+			super("Dick tattoos", commonTattoos());
 			this.setValue(current_rule.set.dickTat);
 			this.onchange = (value) => current_rule.set.dickTat = value;
 		}
 	}
 
-	class ButtockTattooList extends List {
+	class ButtockTattooList extends ListCapitalized {
 		constructor() {
-			const items = [
-				["none", 0],
-				["tribal patterns"],
-				["flowers"],
-				["counting"],
-				["advertisements"],
-				["rude words"],
-				["degradation"],
-				["bovine patterns"],
-				["Asian art"],
-				["scenes"],
-				["sacrament"],
-				["sacrilege"],
-				["possessive"],
-				["paternalist"],
-			];
-			super("Buttock tattoos:", items);
+			super("Buttock tattoos:", commonTattoos());
 			this.setValue(current_rule.set.buttTat);
 			this.onchange = (value) => current_rule.set.buttTat = value;
 		}
 	}
 
-	class AnalTattooList extends List {
+	class AnalTattooList extends ListCapitalized {
 		constructor() {
-			const items = [
-				["none", 0],
-				["tribal patterns"],
-				["flowers"],
-				["counting"],
-				["advertisements"],
-				["rude words"],
-				["degradation"],
-				["bovine patterns"],
-				["bleached"],
-				["sacrament"],
-				["sacrilege"],
-				["possessive"],
-				["paternalist"],
-			];
-			super("Anal tattoo or bleaching", items);
+			super("Anal tattoo or bleaching", commonTattoos());
 			this.setValue(current_rule.set.anusTat);
 			this.onchange = (value) => current_rule.set.anusTat = value;
 		}
 	}
 
-	class LegTattooList extends List {
+	class LegTattooList extends ListCapitalized {
 		constructor() {
-			const items = [
-				["none", 0],
-				["tribal patterns"],
-				["flowers"],
-				["counting"],
-				["advertisements"],
-				["rude words"],
-				["degradation"],
-				["bovine patterns"],
-				["Asian art"],
-				["scenes"],
-				["sacrament"],
-				["sacrilege"],
-				["possessive"],
-				["paternalist"],
-			];
-			super("Leg tattoos", items);
+			super("Leg tattoos", commonTattoos());
 			this.setValue(current_rule.set.legsTat);
 			this.onchange = (value) => current_rule.set.legsTat = value;
 		}
 	}
 
-	class VisionSurgeryList extends List {
+	class VisionSurgeryList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["fixed", 1],
@@ -3487,7 +3316,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class HearingSurgeryList extends List {
+	class HearingSurgeryList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["fixed", 0],
@@ -3499,7 +3328,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class SmellSurgeryList extends List {
+	class SmellSurgeryList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["fixed", 0],
@@ -3511,7 +3340,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class TasteSurgeryList extends List {
+	class TasteSurgeryList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["fixed", 0],
@@ -3523,7 +3352,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class LactationSurgeryList extends List {
+	class LactationSurgeryList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["implanted", 1],
@@ -3535,7 +3364,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class SemenSurgeryList extends List {
+	class SemenSurgeryList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["implanted", 1],
@@ -3547,7 +3376,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class VasectomyList extends List {
+	class VasectomyList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["apply vasectomy", true],
@@ -3559,7 +3388,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class CosmeticSurgeryList extends List {
+	class CosmeticSurgeryList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["none", 0],
@@ -3618,7 +3447,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class TighteningSurgeryList extends List {
+	class TighteningSurgeryList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["tightening", 1],
@@ -3630,7 +3459,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class TummyTuckSurgeryList extends List {
+	class TummyTuckSurgeryList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["tuck", 1],
@@ -3642,7 +3471,7 @@ window.rulesAssistantOptions = (function() {
 	}
 
 
-	class BodyHairSurgeryList extends List {
+	class BodyHairSurgeryList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["keep", 1],
@@ -3654,7 +3483,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class HairSurgeryList extends List {
+	class HairSurgeryList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["keep", 1],
@@ -3725,7 +3554,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class BellyImplantList extends List {
+	class BellyImplantList extends ListCapitalized {
 		constructor() {
 			const items = [
 				["install", "install"],