diff --git a/devTools/FC.d.ts b/devTools/FC.d.ts
index 11e6183b2c1279fdd5b98073730d96011e78de4e..eb7ac658dbd241587293bbdc19858b57ad70f37c 100644
--- a/devTools/FC.d.ts
+++ b/devTools/FC.d.ts
@@ -186,6 +186,8 @@ declare namespace App {
 			removeLabel: string;
 			skinColor: string;
 			inflationType: string;
+			brandTarget: string;
+			brandDesign: string;
 		}
 
 		class Rule {
diff --git a/src/js/rulesAssistantOptions.js b/src/js/rulesAssistantOptions.js
index 9a9dd9c6035d16ec87dd4a511a432c0dfab2341f..050e909e70c465d879bd1e039ba2dd9d018a927d 100644
--- a/src/js/rulesAssistantOptions.js
+++ b/src/js/rulesAssistantOptions.js
@@ -178,16 +178,19 @@ window.rulesAssistantOptions = (function() {
 		/**
 		 *
 		 * @param {string} prefix
-		 * @param {Array} [data]
-		 * @param {boolean} [allowNullValue]
-		 * @param {boolean} [editor]
+		 * @param {Array} [data=[]]
+		 * @param {boolean} [allowNullValue=true]
+		 * @param {boolean} [editor=false]
+		 * @param {boolean} [capitalizeShortcuts]
 		 * @param {...any} args
 		 */
-		constructor(prefix, data = [], allowNullValue = true, editor = false, ...args) {
+		constructor(prefix, data = [], allowNullValue = true, editor = false, capitalizeShortcuts = false, ...args) {
 			super(`${prefix}: `, editor, ...args);
 			this.selectedItem = null;
 			/** @protected */
 			this._allowNullValue = allowNullValue;
+			/** @private */
+			this._capitalizeShortcuts = capitalizeShortcuts;
 			if (allowNullValue) {
 				this.appendChild(new ListItem("No default setting", null));
 			}
@@ -248,7 +251,11 @@ window.rulesAssistantOptions = (function() {
 		 * @returns {ListItem}
 		 */
 		_createListItem(display, data) {
-			return new ListItem(display, data);
+			if (this._capitalizeShortcuts) {
+				return new ListItem(capFirstChar(display), data);
+			} else {
+				return new ListItem(display, data);
+			}
 		}
 	}
 
@@ -282,15 +289,6 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	/**
-	 * Automatically capitalizes shortcut labels
-	 */
-	class EditorWithShortcutsCapitalized extends EditorWithShortcuts {
-		_createListItem(display, data) {
-			return super._createListItem(capFirstChar(display), data);
-		}
-	}
-
 	class ListSelector extends Element {
 		constructor(prefix, data = [], allowNullValue = true) {
 			super(`${prefix}: `, data, allowNullValue);
@@ -344,8 +342,8 @@ window.rulesAssistantOptions = (function() {
 	}
 
 	class List extends EditorWithShortcuts {
-		constructor(prefix, data = [], allowNullValue = true, textinput = false) {
-			super(prefix, data, allowNullValue, textinput);
+		constructor(prefix, data = [], allowNullValue = true, textinput = false, capitalizeShortcuts = true) {
+			super(prefix, data, allowNullValue, textinput, capitalizeShortcuts);
 			this.values = new Map();
 			if (allowNullValue) {
 				this.values.set(null, "no default setting");
@@ -388,16 +386,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	/**
-	 * Automatically capitalizes shortcut labels
-	 */
-	class ListCapitalized extends List {
-		_createListItem(display, data) {
-			return super._createListItem(capFirstChar(display), data !== undefined ? data : display);
-		}
-	}
-
-	class NumberRange extends EditorWithShortcutsCapitalized {
+	class NumberRange extends EditorWithShortcuts {
 		/**
 		 * @param {string} prefix
 		 * @param {Array} [data=[]]
@@ -407,7 +396,7 @@ window.rulesAssistantOptions = (function() {
 		 * @param {boolean} [spinBox=false]
 		 */
 		constructor(prefix, data = [], allowNullValue = true, min = 0, max = 100, spinBox = false) {
-			super(prefix, data, allowNullValue, spinBox, min, max);
+			super(prefix, data, allowNullValue, spinBox, true,  min, max);
 		}
 
 		createEditor(min, max) {
@@ -435,7 +424,7 @@ window.rulesAssistantOptions = (function() {
 				this.inputEdited();
 			};
 			this.numEditor.onkeypress = (e) => {
-				if (returnP(e)) this.inputEdited();
+				if (returnP(e)) { this.inputEdited(); }
 			};
 
 			const res = document.createElement("span");
@@ -1068,14 +1057,14 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class SpecialInclusion extends ListCapitalized {
+	class SpecialInclusion extends List {
 		constructor() {
 			const items = [
 				["include", -1],
 				["exclude", 0],
 				["only", 1]
 			];
-			super("Special slaves", items);
+			super("Special slaves", items, true, false, true);
 			this.setValue(current_rule.condition.specialSlaves);
 			this.onchange = (value) => current_rule.condition.specialSlaves = value;
 		}
@@ -1536,26 +1525,26 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class LeggingsList extends ListCapitalized {
+	class LeggingsList extends List {
 		constructor() {
 			const items = [
 				["none"],
 				["short stockings"],
 				["long stockings"],
 			];
-			super("Leg accessory", items);
+			super("Leg accessory", items, true, false, true);
 			this.setValue(current_rule.set.legAccessory);
 			this.onchange = (value) => current_rule.set.legAccessory = value;
 		}
 	}
 
-	class VagChastityList extends ListCapitalized {
+	class VagChastityList extends List {
 		constructor() {
 			const chaste = [
 				["none", 0],
 				["chastity", 1],
 			];
-			super("Vaginal chastity", chaste);
+			super("Vaginal chastity", chaste, true, false, true);
 			this.setValue(current_rule.set.chastityVagina);
 			this.onchange = (value) => current_rule.set.chastityVagina = value;
 		}
@@ -1625,13 +1614,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class DickChastityList extends ListCapitalized {
+	class DickChastityList extends List {
 		constructor() {
 			const items = [
 				["none", 0],
 				["chastity cage", 1],
 			];
-			super("Penile chastity", items);
+			super("Penile chastity", items, true, false, true);
 			this.setValue(current_rule.set.chastityPenis);
 			this.onchange = (value) => current_rule.set.chastityPenis = value;
 		}
@@ -1653,13 +1642,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class AnalChastityList extends ListCapitalized {
+	class AnalChastityList extends List {
 		constructor() {
 			const items = [
 				["none", 0],
 				["chastity", 1],
 			];
-			super("Anal chastity", items);
+			super("Anal chastity", items, true, false, true);
 			this.setValue(current_rule.set.chastityAnus);
 			this.onchange = (value) => current_rule.set.chastityAnus = value;
 		}
@@ -1735,37 +1724,37 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class AutosurgerySwitch extends ListCapitalized {
+	class AutosurgerySwitch extends List {
 		constructor() {
 			const pairs = [
 				["on", 1],
 				["off", 0],
 			];
-			super("Assistant-applied implants (Autosurgery global switch)", pairs, false);
+			super("Assistant-applied implants (Autosurgery global switch)", pairs, false, false, true);
 			this.setValue(current_rule.set.autoSurgery);
 			this.onchange = (value) => current_rule.set.autoSurgery = value;
 		}
 	}
 
-	class IntensiveGrowthSwitch extends ListCapitalized {
+	class IntensiveGrowthSwitch extends List {
 		constructor() {
 			const pairs = [
 				["no", 0],
 				["yes", 1],
 			];
-			super("Use intensive growth drugs for healthy slaves", pairs, false);
+			super("Use intensive growth drugs for healthy slaves", pairs, false, false, true);
 			this.setValue(current_rule.set.growth.intensity);
 			this.onchange = (value) => current_rule.set.growth.intensity = value;
 		}
 	}
 
-	class HyperGrowthSwitch extends ListCapitalized {
+	class HyperGrowthSwitch extends List {
 		constructor() {
 			const pairs = [
 				["no", 0],
 				["yes", 1],
 			];
-			super("Use hyper growth drugs", pairs, false);
+			super("Use hyper growth drugs", pairs, false, false, true);
 			this.setValue(current_rule.set.hyper_drugs);
 			this.onchange = (value) => current_rule.set.hyper_drugs = value;
 		}
@@ -1930,14 +1919,14 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class CurrativesList extends ListCapitalized {
+	class CurrativesList extends List {
 		constructor() {
 			const pairs = [
 				["none", 0],
 				["preventatives", 1],
 				["curatives", 2],
 			];
-			super("Health drugs", pairs);
+			super("Health drugs", pairs, true, false, true);
 			this.setValue(current_rule.set.curatives);
 			this.onchange = (value) => current_rule.set.curatives = value;
 		}
@@ -1957,13 +1946,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class ContraceptiveList extends ListCapitalized {
+	class ContraceptiveList extends List {
 		constructor() {
 			const drugs = [
 				["contraceptives", true],
 				["fertile", false],
 			];
-			super("Contraceptives for fertile slaves", drugs);
+			super("Contraceptives for fertile slaves", drugs, true, false, true);
 			this.setValue(current_rule.set.preg);
 			this.onchange = (value) => current_rule.set.preg = value;
 		}
@@ -2157,13 +2146,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class DietGrowthList extends ListCapitalized {
+	class DietGrowthList extends List {
 		constructor() {
 			const pairs = [
 				["on", 1],
 				["off", 0]
 			];
-			super("Diet support for growth drugs", pairs, false);
+			super("Diet support for growth drugs", pairs, false, false, true);
 			this.setValue(current_rule.set.dietGrowthSupport);
 			this.onchange = (value) => current_rule.set.dietGrowthSupport = value;
 		}
@@ -2195,13 +2184,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class DietSolidFoodList extends ListCapitalized {
+	class DietSolidFoodList extends List {
 		constructor() {
 			const pairs = [
 				["permitted", 0],
 				["forbidden", 1],
 			];
-			super("Solid food access", pairs);
+			super("Solid food access", pairs, true, false, true);
 			this.setValue(current_rule.set.onDiet);
 			this.onchange = (value) => current_rule.set.onDiet = value;
 		}
@@ -2371,39 +2360,39 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class SpeechList extends ListCapitalized {
+	class SpeechList extends List {
 		constructor() {
 			const pairs = [
 				["permissive"],
 				["suppress accents", "accent elimination"],
 				["restrictive"]
 			];
-			super("Speech rules", pairs);
+			super("Speech rules", pairs, true, false, true);
 			this.setValue(current_rule.set.speechRules);
 			this.onchange = (value) => current_rule.set.speechRules = value;
 		}
 	}
 
-	class RelationshipList extends ListCapitalized {
+	class RelationshipList extends List {
 		constructor() {
 			const pairs = [
 				["permissive"],
 				["just friends"],
 				["restrictive"]
 			];
-			super("Relationship rules", pairs);
+			super("Relationship rules", pairs, true, false, true);
 			this.setValue(current_rule.set.relationshipRules);
 			this.onchange = (value) => current_rule.set.relationshipRules = value;
 		}
 	}
 
-	class PornBroadcastStatus extends ListCapitalized {
+	class PornBroadcastStatus extends List {
 		constructor() {
 			const pairs = [
 				["disabled", 0],
 				["enabled", 1]
 			];
-			super("Porn Broadcasting Status", pairs);
+			super("Porn Broadcasting Status", pairs, true, false, true);
 			this.setValue(current_rule.set.pornFeed);
 			this.onchange = (value) => current_rule.set.pornFeed = value;
 		}
@@ -2531,7 +2520,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class EarwearList extends ListCapitalized {
+	class EarwearList extends List {
 		constructor() {
 			const pairs = [
 				["none"],
@@ -2539,7 +2528,7 @@ window.rulesAssistantOptions = (function() {
 				["muffle with ear plugs"],
 				["deafen with ear plugs"]
 			];
-			super("Earwear", pairs);
+			super("Earwear", pairs, true, false, true);
 			this.setValue(current_rule.set.earwear);
 			this.onchange = (value) => current_rule.set.earwear = value;
 		}
@@ -2580,7 +2569,7 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class HairLengthList extends ListCapitalized {
+	class HairLengthList extends List {
 		constructor() {
 			const pairs = [
 				["very short", 5],
@@ -2590,19 +2579,19 @@ window.rulesAssistantOptions = (function() {
 				["very long", 100],
 				["floor length", 150]
 			];
-			super("Hair length", pairs);
+			super("Hair length", pairs, true, false, true);
 			this.setValue(current_rule.set.hLength);
 			this.onchange = (value) => current_rule.set.hLength = value;
 		}
 	}
 
-	class HaircutsList extends ListCapitalized {
+	class HaircutsList extends List {
 		constructor() {
 			const pairs = [
 				["maintain hair length", 1],
 				["do not maintain hair length", 0]
 			];
-			super("Hair length maintenance", pairs);
+			super("Hair length maintenance", pairs, true, false, true);
 			this.setValue(current_rule.set.haircuts);
 			this.onchange = (value) => current_rule.set.haircuts = value;
 		}
@@ -2760,14 +2749,14 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class MarkingsList extends ListCapitalized {
+	class MarkingsList extends List {
 		constructor() {
 			const pairs = [
 				["remove beauty marks"],
 				["remove birthmarks"],
 				["remove both"]
 			];
-			super("Facial markings", pairs);
+			super("Facial markings", pairs, true, false, true);
 			this.setValue(current_rule.set.markings);
 			this.onchange = (value) => current_rule.set.markings = value;
 		}
@@ -2941,13 +2930,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class AreolaPiercingList extends ListCapitalized {
+	class AreolaPiercingList extends List {
 		constructor() {
 			const pairs = [
 				["none", 0],
 				["studded", 1]
 			];
-			super("Areola studs", pairs);
+			super("Areola studs", pairs, true, false, true);
 			this.setValue(current_rule.set.areolaePiercing);
 			this.onchange = (value) => current_rule.set.areolaePiercing = value;
 		}
@@ -3001,25 +2990,25 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class CorsetPiercingList extends ListCapitalized {
+	class CorsetPiercingList extends List {
 		constructor() {
 			const pairs = [
 				["none", 0],
 				["applied", 1]
 			];
-			super("Corset piercings", pairs);
+			super("Corset piercings", pairs, true, false, true);
 			this.setValue(current_rule.set.corsetPiercing);
 			this.onchange = (value) => current_rule.set.corsetPiercing = value;
 		}
 	}
 
-	class AutoBrandingList extends ListCapitalized {
+	class AutoBrandingList extends List {
 		constructor() {
 			const pairs = [
 				["on", 1],
 				["off", 0],
 			];
-			super("Automatic branding", pairs, false);
+			super("Automatic branding", pairs, false, false, true);
 			this.setValue(current_rule.set.autoBrand);
 			this.onchange = (value) => current_rule.set.autoBrand = value;
 		}
@@ -3380,98 +3369,98 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class VisionSurgeryList extends ListCapitalized {
+	class VisionSurgeryList extends List {
 		constructor() {
 			const items = [
 				["fixed", 1],
 				["blurred", -1],
 			];
-			super("Vision correction", items);
+			super("Vision correction", items, true, false, true);
 			this.setValue(current_rule.set.surgery.eyes);
 			this.onchange = (value) => current_rule.set.surgery.eyes = value;
 		}
 	}
 
-	class HearingSurgeryList extends ListCapitalized {
+	class HearingSurgeryList extends List {
 		constructor() {
 			const items = [
 				["fixed", 0],
 				["muffled", -1],
 			];
-			super("Hearing correction", items);
+			super("Hearing correction", items, true, false, true);
 			this.setValue(current_rule.set.surgery.hears);
 			this.onchange = (value) => current_rule.set.surgery.hears = value;
 		}
 	}
 
-	class SmellSurgeryList extends ListCapitalized {
+	class SmellSurgeryList extends List {
 		constructor() {
 			const items = [
 				["fixed", 0],
 				["disabled", -1],
 			];
-			super("Olfactory correction", items);
+			super("Olfactory correction", items, true, false, true);
 			this.setValue(current_rule.set.surgery.smells);
 			this.onchange = (value) => current_rule.set.surgery.smells = value;
 		}
 	}
 
-	class TasteSurgeryList extends ListCapitalized {
+	class TasteSurgeryList extends List {
 		constructor() {
 			const items = [
 				["fixed", 0],
 				["disabled", -1],
 			];
-			super("Gustatory correction", items);
+			super("Gustatory correction", items, true, false, true);
 			this.setValue(current_rule.set.surgery.tastes);
 			this.onchange = (value) => current_rule.set.surgery.tastes = value;
 		}
 	}
 
-	class LactationSurgeryList extends ListCapitalized {
+	class LactationSurgeryList extends List {
 		constructor() {
 			const items = [
 				["implanted", 1],
 				["removed", 0],
 			];
-			super("Lactation drug implants", items);
+			super("Lactation drug implants", items, true, false, true);
 			this.setValue(current_rule.set.surgery.lactation);
 			this.onchange = (value) => current_rule.set.surgery.lactation = value;
 		}
 	}
 
-	class SemenSurgeryList extends ListCapitalized {
+	class SemenSurgeryList extends List {
 		constructor() {
 			const items = [
 				["implanted", 1],
 				["removed", 0],
 			];
-			super("Prostate production enhancing drug implants", items);
+			super("Prostate production enhancing drug implants", items, true, false, true);
 			this.setValue(current_rule.set.surgery.prostate);
 			this.onchange = (value) => current_rule.set.surgery.prostate = value;
 		}
 	}
 
-	class VasectomyList extends ListCapitalized {
+	class VasectomyList extends List {
 		constructor() {
 			const items = [
 				["apply vasectomy", true],
 				["undo vasectomy", false],
 			];
-			super("Apply or undo vasectomy for slaves with testicles", items);
+			super("Apply or undo vasectomy for slaves with testicles", items, true, false, true);
 			this.setValue(current_rule.set.surgery.vasectomy);
 			this.onchange = (value) => current_rule.set.surgery.vasectomy = value;
 		}
 	}
 
-	class CosmeticSurgeryList extends ListCapitalized {
+	class CosmeticSurgeryList extends List {
 		constructor() {
 			const items = [
 				["none", 0],
 				["subtle", 1],
 				["invasive", 2],
 			];
-			super("Cosmetic Surgery", items);
+			super("Cosmetic Surgery", items, true, false, true);
 			this.setValue(current_rule.set.surgery.cosmetic);
 			this.onchange = (value) => current_rule.set.surgery.cosmetic = value;
 		}
@@ -3523,49 +3512,49 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class TighteningSurgeryList extends ListCapitalized {
+	class TighteningSurgeryList extends List {
 		constructor() {
 			const items = [
 				["tightening", 1],
 				["virginity restoration", 2],
 			];
-			super("Orifice Tightening", items);
+			super("Orifice Tightening", items, true, false, true);
 			this.setValue(current_rule.set.surgery.holes);
 			this.onchange = (value) => current_rule.set.surgery.holes = value;
 		}
 	}
 
-	class TummyTuckSurgeryList extends ListCapitalized {
+	class TummyTuckSurgeryList extends List {
 		constructor() {
 			const items = [
 				["tuck", 1],
 			];
-			super("Tummy Tuck", items);
+			super("Tummy Tuck", items, true, false, true);
 			this.setValue(current_rule.set.surgery.tummy);
 			this.onchange = (value) => current_rule.set.surgery.tummy = value;
 		}
 	}
 
 
-	class BodyHairSurgeryList extends ListCapitalized {
+	class BodyHairSurgeryList extends List {
 		constructor() {
 			const items = [
 				["keep", 1],
 				["removal", 2],
 			];
-			super("Body Hair", items);
+			super("Body Hair", items, true, false, true);
 			this.setValue(current_rule.set.surgery.bodyhair);
 			this.onchange = (value) => current_rule.set.surgery.bodyhair = value;
 		}
 	}
 
-	class HairSurgeryList extends ListCapitalized {
+	class HairSurgeryList extends List {
 		constructor() {
 			const items = [
 				["keep", 1],
 				["removal", 2],
 			];
-			super("Hair", items);
+			super("Hair", items, true, false, true);
 			this.setValue(current_rule.set.surgery.hair);
 			this.onchange = (value) => current_rule.set.surgery.hair = value;
 		}
@@ -3630,13 +3619,13 @@ window.rulesAssistantOptions = (function() {
 		}
 	}
 
-	class BellyImplantList extends ListCapitalized {
+	class BellyImplantList extends List {
 		constructor() {
 			const items = [
 				["install", "install"],
 				["remove", "remove"],
 			];
-			super("Belly implant", items);
+			super("Belly implant", items, true, false, true);
 			this.setValue(current_rule.set.surgery.bellyImplant);
 			this.onchange = (value) => current_rule.set.surgery.bellyImplant = value;
 		}