From 4089d2df61d7c12171cdbc0e804727c2180b237b Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Mon, 30 Nov 2020 01:35:03 -0500
Subject: [PATCH] move careers into their own space in data

---
 devTools/types/SugarCubeExtensions.d.ts       |  24 ---
 js/003-data/careers.js                        |  50 ++++++
 js/003-data/miscData.js                       |  48 ------
 src/Mods/SecExp/attackHandler.tw              |  12 +-
 src/Mods/SecExp/attackReport.tw               |  12 +-
 src/endWeek/healthFunctions.js                |   6 +-
 src/endWeek/reports/brothelReport.js          |   2 +-
 src/endWeek/reports/cellblockReport.js        |   2 +-
 src/endWeek/reports/clinicReport.js           |   2 +-
 src/endWeek/reports/clubReport.js             |   2 +-
 src/endWeek/reports/dairyReport.js            |   2 +-
 src/endWeek/reports/farmyardReport.js         |   4 +-
 src/endWeek/reports/nurseryReport.js          |   2 +-
 src/endWeek/reports/penthouseReport.js        |   2 +-
 src/endWeek/reports/schoolroomReport.js       |   2 +-
 src/endWeek/reports/servantsQuartersReport.js |   2 +-
 src/endWeek/reports/spaReport.js              |   2 +-
 src/endWeek/saBeYourHeadGirl.js               |   2 +-
 src/endWeek/saDiet.js                         |   2 +-
 src/endWeek/saGuardYou.js                     |   2 +-
 src/endWeek/saLongTermMentalEffects.js        |   4 +-
 src/endWeek/saNanny.js                        |   2 +-
 src/endWeek/saRecruitGirls.js                 |   2 +-
 src/endWeek/saServant.js                      |   2 +-
 src/endWeek/saServeThePublic.js               |   4 +-
 src/endWeek/saTakeClasses.js                  |   2 +-
 src/endWeek/saWhore.js                        |   4 +-
 src/facilities/armory/armoryFramework.js      |   2 +-
 src/facilities/brothel/brothelFramework.js    |   2 +-
 .../cellblock/cellblockFramework.js           |   2 +-
 src/facilities/clinic/clinicFramework.js      |   2 +-
 src/facilities/club/clubFramework.js          |   2 +-
 src/facilities/dairy/dairyFramework.js        |   2 +-
 src/facilities/farmyard/farmyardFramework.js  |   2 +-
 src/facilities/farmyard/food/foodAmount.js    |   2 +-
 .../farmyard/shows/farmShowsIncome.js         |   4 +-
 .../farmyard/shows/saFarmyardShows.js         |   6 +-
 .../headGirlSuite/headGirlSuiteFramework.js   |   2 +-
 src/facilities/nursery/nurseryFramework.js    |   2 +-
 .../penthouse/penthouseFramework.js           |   2 +-
 .../schoolroom/schoolroomFramework.js         |   2 +-
 .../servantsQuartersFramework.js              |   2 +-
 src/facilities/spa/spaFramework.js            |   2 +-
 src/gui/Encyclopedia/encyclopedia.tw          | 144 +++++++++---------
 src/js/assayJS.js                             |   2 +-
 src/js/birth/birth.js                         |   2 +-
 src/js/economyJS.js                           |   8 +-
 src/js/slaveCostJS.js                         |  72 ++++-----
 src/js/utilsFC.js                             |   8 +-
 src/neighbor/neighborInteract.js              |   2 +-
 src/npc/descriptions/career.js                |  40 ++---
 src/npc/generate/generateLeadershipSlave.js   |  24 +--
 src/npc/generate/generateMarketSlave.js       |   2 +-
 src/npc/generate/generateNewSlaveJS.js        |  16 +-
 src/npc/startingGirls/startingGirls.js        |  16 +-
 src/npc/startingGirls/startingGirls.tw        |   2 +-
 src/uncategorized/reFSAcquisition.tw          |  12 +-
 .../reFSEgyptianRevivalistAcquisition.tw      |   6 +-
 src/uncategorized/reMalefactor.tw             |   4 +-
 src/uncategorized/reRecruit.tw                |   8 +-
 src/uncategorized/recETS.tw                   |   4 +-
 src/uncategorized/seCoursing.tw               |   2 +-
 src/uncategorized/sellSlave.tw                |  40 ++---
 63 files changed, 316 insertions(+), 338 deletions(-)
 create mode 100644 js/003-data/careers.js

diff --git a/devTools/types/SugarCubeExtensions.d.ts b/devTools/types/SugarCubeExtensions.d.ts
index 25848dea721..52eaed4fd5f 100644
--- a/devTools/types/SugarCubeExtensions.d.ts
+++ b/devTools/types/SugarCubeExtensions.d.ts
@@ -20,30 +20,6 @@ declare module "twine-sugarcube" {
 		whiteAmericanSlaveNames: string[];
 		whiteAmericanSlaveSurnames: string[];
 
-		attendantCareers: string[];
-		bodyguardCareers: string[];
-		DJCareers: string[];
-		educatedCareers: string[];
-		entertainmentCareers: string[];
-		facilityCareers: string[];
-		farmerCareers: string[];
-		gratefulCareers: string[];
-		HGCareers: string[];
-		madamCareers: string[];
-		matronCareers: string[];
-		menialCareers: string[];
-		milkmaidCareers: string[];
-		nurseCareers: string[];
-		recruiterCareers: string[];
-		schoolteacherCareers: string[];
-		servantCareers: string[];
-		stewardessCareers: string[];
-		uneducatedCareers: string[];
-		veryYoungCareers: string[];
-		wardenessCareers: string[];
-		whoreCareers: string[];
-		youngCareers: string[];
-
 		fakeBellies: string[];
 		filterRaces: string[];
 		filterRacesLowercase: FC.Race[];
diff --git a/js/003-data/careers.js b/js/003-data/careers.js
new file mode 100644
index 00000000000..8764824377c
--- /dev/null
+++ b/js/003-data/careers.js
@@ -0,0 +1,50 @@
+App.Data.Careers = {
+	General: {
+		veryYoung: ["a babysitter", "a beggar", "a beggar", "a bully hunter", "a bully", "a camp counselor", "a cheerleader", "a child actress", "a child prodigy", "a child prostitute", "a child prostitute", "a child soldier", "a child soldier", "a club manager", "a club recruiter", "a club treasurer", "a cum dump", "a dropout", "a dropout", "a drug mule", "a farmer's daughter", "a girl scout", "a girl scout", "a hall monitor", "a handmaiden", "a hospital volunteer", "a housesitter", "a juvenile delinquent", "a juvenile delinquent", "a latchkey kid", "a lemonade stand operator", "a marching band leader", "a meat toilet", "a military brat", "a model-UN star", "a model", "a noblewoman", "a pageant star", "a paper girl", "a part-time farm laborer", "a pick-pocket", "a refugee", "a refugee", "a refugee", "a school nurse's assistant", "a shrine maiden", "a street thug", "a street urchin", "a street urchin", "a street urchin", "a student council president", "a student from a boarding school", "a student from a private school", "a student from a public school", "a student from a public school", "a student from a public school", "a student from a public school", "a student from a public school", "a sweatshop worker", "a sweatshop worker", "a sweatshop worker", "a sweatshop worker", "a teacher's pet", "an apprentice", "an aspiring pop star", "an idol", "an orphan", "an orphan", "an orphan", "an orphan", "an orphan", "being homeschooled by her parents", "captain of the kendo club", "from a lower class family", "from a lower class family", "from a lower class family", "from a middle class family", "from a middle class family", "from an upper class family", "homeless", "homeless", "homeless"],
+
+		young: ["a babysitter", "a ballerina", "a barista", "a bartender", "a beggar", "a blogger", "a butler", "a camgirl", "a camp counselor", "a camwhore", "a cashier", "a cheerleader", "a cocktail waitress", "a comedian", "a con artist", "a cook", "a courier", "a cowgirl", "a criminal", "a croupier", "a cum dump", "a dairy worker", "a dancer", "a delivery woman", "a dominatrix", "a drug mule", "a factory worker", "a farm laborer", "a farm laborer", "a farmer's daughter", "a florist", "a gang member", "a gang member", "a gardener", "a groomer", "a gymnast", "a handmaiden", "a house DJ", "a housesitter", "a housewife", "a law enforcement officer", "a lifeguard", "a magician's assistant", "a maid", "a mail-order bride", "a masseuse", "a meat toilet", "a mechanic", "a medical student", "a mistress", "a model", "a musician", "a noblewoman", "a nun", "a nurse", "a paramedic", "a party girl", "a personal assistant", "a personal trainer", "a pirate", "a political activist", "a porn star", "a prisoner", "a programmer", "a prostitute", "a racing driver", "a reality show star", "a receptionist", "a refugee", "a ride attendant", "a saleswoman", "a school nurse", "a secretary", "a security guard", "a service worker", "a shrine maiden", "a shut-in", "a soldier", "a street performer", "a street vendor", "a stripper", "a student", "a student", "a student", "a switchboard operator", "a teaching assistant", "a tour guide", "a trophy wife", "a truck driver", "a video game streamer", "a waitress", "a wet nurse", "a yoga instructor", "an actress", "an air hostess", "an apprentice", "an arcade attendant", "an artist", "an aspiring pop star", "an assassin", "an athlete", "an au pair", "an escort", "an exotic dancer", "an idol", "an installation technician", "an intern", "an office worker", "homeless", "in a militia", "unemployed", "unemployed", "unemployed", "unemployed", "unemployed"],
+
+		educated: ["a ballerina", "a banker", "a bureaucrat", "a business owner", "a businessman", "a captain", "a chemist", "a chief of police", "a classical dancer", "a classical musician", "a coach", "a college scout", "a concierge", "a coroner", "a corporate executive", "a cosmetologist", "a counselor", "a criminal", "a critic", "a cult leader", "a dean", "a dentist", "a dentist", "a director", "a dispatch officer", "a doctor", "a historian", "a housekeeper", "a journalist", "a journalist", "a judge", "a lawyer", "a librarian", "a lobbyist", "a madam", "a manager", "a mechanic", "a mediator", "a medical student", "a mercenary", "a military officer", "a military recruiter", "a nanny", "a noblewoman", "a nun", "a painter", "a paramedic", "a personal assistant", "a pharmacist", "a photographer", "a physician", "a pilot", "a poet", "a police detective", "a police negotiator", "a police officer", "a political activist", "a politician", "a practitioner", "a principal", "a prison warden", "a private detective", "a private instructor", "a procuress", "a producer", "a professional bartender", "a professor", "a programmer", "a prostitute", "a psychologist", "a refugee", "a scholar", "a scientist", "a sculptor", "a secretary", "a serial divorcee", "a shut-in", "a stockbroker", "a surgeon", "a teacher", "a teaching assistant", "a therapist", "a train conductor", "a transporter", "a veterinarian", "a wedding planner", "a writer", "a zookeeper", "an actress", "an air hostess", "an animator", "an archaeologist", "an architect", "an artist", "an assassin", "an astronaut", "an economist", "an editor", "an engineer", "an escort", "an estate agent", "an investor", "an MS pilot", "an office worker", "an orchestra conductor", "retired", "unemployed"],
+
+		uneducated: ["a baker", "a barber", "a barista", "a bartender", "a beekeeper", "a beggar", "a blacksmith", "a blogger", "a bodyguard", "a bouncer", "a bounty hunter", "a boxer", "a brewer", "a bullfighter", "a bus driver", "a butcher", "a butler", "a camgirl", "a camp counselor", "a camwhore", "a candlestick maker", "a caregiver", "a carpenter", "a cashier", "a charity worker", "a chauffeur", "a cheerleader", "a chiropractor", "a clown", "a cobbler", "a cocktail waitress", "a comedian", "a con artist", "a construction worker", "a cook", "a cowgirl", "a criminal", "a croupier", "a cum dump", "a dairy worker", "a dancer", "a delivery woman", "a dominatrix", "a driller", "a drug mule", "a factory worker", "a farm laborer", "a farmer's daughter", "a farmer", "a firefighter", "a fisherwoman", "a florist", "a fortune teller", "a gang leader", "a gang member", "a gardener", "a gravedigger", "a groomer", "a gymnast", "a handmaiden", "a hotel manager", "a house DJ", "a housewife", "a hunter", "a janitor", "a landlady", "a launderer", "a law enforcement officer", "a lifeguard", "a local news anchor", "a lumberjack", "a magician's assistant", "a maid", "a mail carrier", "a mail-order bride", "a masseuse", "a masseuse", "a meat toilet", "a medic", "a medic", "a medium", "a messenger", "a midwife", "a milkmaid", "a mime", "a miner", "a missionary", "a mistress", "a model", "a mortician", "a musician", "a nanny", "a nurse", "a paramedic", "a park ranger", "a party girl", "a peddler", "a personal trainer", "a pimp", "a pirate", "a plumber", "a political activist", "a prison guard", "a prisoner", "a procuress", "a prostitute", "a racing driver", "a radio show host", "a rancher", "a receptionist", "a referee", "a refugee", "a repairman", "a revolutionary", "a ride attendant", "a roadie", "a rodeo star", "a sailor", "a saleswoman", "a school nurse", "a seamstress", "a secretary", "a security guard", "a service worker", "a shepherd", "a shrine maiden", "a soldier", "a stage magician", "a street performer", "a street vendor", "a stripper", "a student", "a student athlete", "a stuntwoman", "a switchboard operator", "a tailor", "a talent scout", "a taxi driver", "a teacher", "a tour guide", "a trophy wife", "a truck driver", "a waitress", "a weathergirl", "a welder", "a wet nurse", "a whaler", "a wrestler", "a zookeeper", "an acrobat", "an actress", "an arcade attendant", "an artist", "an aspiring pop star", "an athlete", "an electrician", "an enforcer", "an enforcer", "an escort", "an exotic dancer", "an exterminator", "an innkeeper", "an installation technician", "an office worker", "an orderly", "homeless", "in a militia", "retired", "unemployed", "unemployed", "unemployed", "unemployed", "unemployed"],
+
+		grateful: ["a beggar", "a drug mule", "a peddler", "a pick-pocket", "a prisoner", "a refugee", "a shut-in", "a street urchin", "a student from a boarding school", "a sweatshop worker", "a thief", "an orphan", "from a lower class family", "homeless", "unemployed"],
+
+		menial: ["a baker", "a blacksmith", "a bus driver", "a butcher", "a candlestick maker", "a carpenter", "a cashier", "a chauffeur", "a cobbler", "a construction worker", "a courier", "a croupier", "a delivery woman", "a driller", "a dropout", "a factory worker", "a farm laborer", "a firefighter", "a fisherwoman", "a florist", "a gardener", "a gravedigger", "a janitor", "a launderer", "a lumberjack", "a mail carrier", "a mechanic", "a messenger", "a miner", "a nun", "a paper girl", "a part-time farm laborer", "a pilot", "a plumber", "a private", "a programmer", "a receptionist", "a referee", "a repairman", "a ride attendant", "a roadie", "a sailor", "a seamstress", "a service worker", "a street vendor", "a student from a private school", "a student from a public school", "a student", "a switchboard operator", "a tailor", "a taxi driver", "a terrorist", "a tour guide", "a train conductor", "a truck driver", "a welder", "a whaler", "an apprentice", "an arcade attendant", "an electrician", "an engineer", "an exterminator", "an installation technician", "an intern"],
+
+		entertainment: ["a ballerina", "a blogger", "a camgirl", "a camwhore", "a cheerleader", "a child actress", "a clown", "a cocktail waitress", "a comedian", "a gymnast", "a journalist", "a local news anchor", "a magician's assistant", "a medium", "a mime", "a painter", "a party girl", "a photographer", "a poet", "a racing driver", "a sculptor", "a stage magician", "a street performer", "a student athlete", "a stuntwoman", "a video game streamer", "a waitress", "a weathergirl", "a wrestler", "a writer", "an acrobat", "an actress", "an animator", "an artist", "an athlete"],
+
+		whore: ["a bimbo", "a child prostitute", "a criminal", "a cum dump", "a Futanari Sister", "a juvenile delinquent", "a mail-order bride", "a meat toilet", "a mistress", "a model", "a pageant star", "a pirate", "a porn star", "a prostitute", "a reality show star", "a saleswoman", "a serial divorcee", "a stripper", "a trophy wife", "an escort", "an exotic dancer"],
+
+		/* 	otherCareers: ["a producer", "being homeschooled by her parents", "from a middle class family", "from an upper class family"]>> */
+	},
+	Leader: {
+		HG: ["a captain", "a corporate executive", "a director", "a dominatrix", "a gang leader", "a judge", "a lawyer", "a leading arcology citizen", "a military officer", "a model-UN star", "a noblewoman", "a politician", "a Queen", "a slaver", "a student council president"],
+
+		madam: ["a banker", "a business owner", "a businessman", "a camp counselor", "a club manager", "a hotel manager", "a landlady", "a madam", "a manager", "a park ranger", "a pimp", "a procuress", "a stockbroker", "an innkeeper"],
+
+		DJ: ["a classical dancer", "a classical musician", "a dancer", "a house DJ", "a marching band leader", "a musician", "a radio show host", "an aspiring pop star", "an idol", "an orchestra conductor"],
+
+		bodyguard: ["a bodyguard", "a boxer", "a bully hunter", "a child soldier", "a hitman", "a kunoichi", "a law enforcement officer", "a military brat", "a prince", "a revolutionary", "a sniper", "a soldier", "a transporter", "an assassin", "an MS pilot", "captain of the kendo club", "in a militia", "spec ops"],
+
+		wardeness: ["a bouncer", "a bounty hunter", "a bully", "a chief of police", "a gang member", "a hall monitor", "a mercenary", "a police detective", "a police officer", "a prison guard", "a prison warden", "a private detective", "a security guard", "a street thug", "an enforcer", "an orderly"],
+
+		nurse: ["a chemist", "a chiropractor", "a coroner", "a dentist", "a doctor", "a hospital volunteer", "a medic", "a medical student", "a midwife", "a mortician", "a nurse", "a paramedic", "a pharmacist", "a physician", "a school nurse's assistant", "a school nurse", "a surgeon"],
+
+		attendant: ["a barber", "a cosmetologist", "a counselor", "a dispatch officer", "a fortune teller", "a groomer", "a latchkey kid", "a lifeguard", "a masseuse", "a mediator", "a personal trainer", "a police negotiator", "a psychologist", "a therapist", "a yoga instructor"],
+
+		matron: ["a babysitter", "a nanny", "a practitioner", "a wet nurse", "an au pair"],
+
+		milkmaid: ["a cowgirl", "a dairy worker", "a farmer's daughter", "a milkmaid", "a shepherd", "a veterinarian"],
+
+		farmer: ["a beekeeper", "a bullfighter", "a farmer", "a farmhand", "a rancher", "a rodeo star", "a zookeeper"],
+
+		stewardess: ["a barista", "a bartender", "a brewer", "a bureaucrat", "a caregiver", "a charity worker", "a club treasurer", "a concierge", "a critic", "a housekeeper", "a housesitter", "a lemonade stand operator", "a personal assistant", "a professional bartender", "a secretary", "a wedding planner", "an air hostess", "an architect", "an editor", "an estate agent", "an investor", "an office worker"],
+
+		schoolteacher: ["a child prodigy", "a coach", "a dean", "a historian", "a librarian", "a principal", "a private instructor", "a professor", "a scholar", "a scientist", "a teacher's pet", "a teacher", "a teaching assistant", "an archaeologist", "an astronaut", "an economist"],
+
+		recruiter: ["a club recruiter", "a college scout", "a con artist", "a cult leader", "a girl scout", "a hunter", "a lobbyist", "a military recruiter", "a missionary", "a political activist", "a princess", "a spy", "a talent scout", "retired"],
+
+		servant: ["a butler", "a cook", "a handmaiden", "a housewife", "a maid", "a shrine maiden"],
+	},
+};
diff --git a/js/003-data/miscData.js b/js/003-data/miscData.js
index 4c801e2fe0d..0c8a7ae7e12 100644
--- a/js/003-data/miscData.js
+++ b/js/003-data/miscData.js
@@ -1564,54 +1564,6 @@ App.Data.misc = {
 	highHeels: ["boots", "extreme heels", "extreme platform heels", "heels", "platform heels"],
 	heightBoostingShoes: ["extreme heels", "extreme platform heels", "heels", "platform heels", "platform shoes", "pumps"],
 
-	veryYoungCareers: ["a babysitter", "a beggar", "a beggar", "a bully hunter", "a bully", "a camp counselor", "a cheerleader", "a child actress", "a child prodigy", "a child prostitute", "a child prostitute", "a child soldier", "a child soldier", "a club manager", "a club recruiter", "a club treasurer", "a cum dump", "a dropout", "a dropout", "a drug mule", "a farmer's daughter", "a girl scout", "a girl scout", "a hall monitor", "a handmaiden", "a hospital volunteer", "a housesitter", "a juvenile delinquent", "a juvenile delinquent", "a latchkey kid", "a lemonade stand operator", "a marching band leader", "a meat toilet", "a military brat", "a model-UN star", "a model", "a noblewoman", "a pageant star", "a paper girl", "a part-time farm laborer", "a pick-pocket", "a refugee", "a refugee", "a refugee", "a school nurse's assistant", "a shrine maiden", "a street thug", "a street urchin", "a street urchin", "a street urchin", "a student council president", "a student from a boarding school", "a student from a private school", "a student from a public school", "a student from a public school", "a student from a public school", "a student from a public school", "a student from a public school", "a sweatshop worker", "a sweatshop worker", "a sweatshop worker", "a sweatshop worker", "a teacher's pet", "an apprentice", "an aspiring pop star", "an idol", "an orphan", "an orphan", "an orphan", "an orphan", "an orphan", "being homeschooled by her parents", "captain of the kendo club", "from a lower class family", "from a lower class family", "from a lower class family", "from a middle class family", "from a middle class family", "from an upper class family", "homeless", "homeless", "homeless"],
-	/* pregmod */
-
-	youngCareers: ["a babysitter", "a ballerina", "a barista", "a bartender", "a beggar", "a blogger", "a butler", "a camgirl", "a camp counselor", "a camwhore", "a cashier", "a cheerleader", "a cocktail waitress", "a comedian", "a con artist", "a cook", "a courier", "a cowgirl", "a criminal", "a croupier", "a cum dump", "a dairy worker", "a dancer", "a delivery woman", "a dominatrix", "a drug mule", "a factory worker", "a farm laborer", "a farm laborer", "a farmer's daughter", "a florist", "a gang member", "a gang member", "a gardener", "a groomer", "a gymnast", "a handmaiden", "a house DJ", "a housesitter", "a housewife", "a law enforcement officer", "a lifeguard", "a magician's assistant", "a maid", "a mail-order bride", "a masseuse", "a meat toilet", "a mechanic", "a medical student", "a mistress", "a model", "a musician", "a noblewoman", "a nun", "a nurse", "a paramedic", "a party girl", "a personal assistant", "a personal trainer", "a pirate", "a political activist", "a porn star", "a prisoner", "a programmer", "a prostitute", "a racing driver", "a reality show star", "a receptionist", "a refugee", "a ride attendant", "a saleswoman", "a school nurse", "a secretary", "a security guard", "a service worker", "a shrine maiden", "a shut-in", "a soldier", "a street performer", "a street vendor", "a stripper", "a student", "a student", "a student", "a switchboard operator", "a teaching assistant", "a tour guide", "a trophy wife", "a truck driver", "a video game streamer", "a waitress", "a wet nurse", "a yoga instructor", "an actress", "an air hostess", "an apprentice", "an arcade attendant", "an artist", "an aspiring pop star", "an assassin", "an athlete", "an au pair", "an escort", "an exotic dancer", "an idol", "an installation technician", "an intern", "an office worker", "homeless", "in a militia", "unemployed", "unemployed", "unemployed", "unemployed", "unemployed"],
-
-	educatedCareers: ["a ballerina", "a banker", "a bureaucrat", "a business owner", "a businessman", "a captain", "a chemist", "a chief of police", "a classical dancer", "a classical musician", "a coach", "a college scout", "a concierge", "a coroner", "a corporate executive", "a cosmetologist", "a counselor", "a criminal", "a critic", "a cult leader", "a dean", "a dentist", "a dentist", "a director", "a dispatch officer", "a doctor", "a historian", "a housekeeper", "a journalist", "a journalist", "a judge", "a lawyer", "a librarian", "a lobbyist", "a madam", "a manager", "a mechanic", "a mediator", "a medical student", "a mercenary", "a military officer", "a military recruiter", "a nanny", "a noblewoman", "a nun", "a painter", "a paramedic", "a personal assistant", "a pharmacist", "a photographer", "a physician", "a pilot", "a poet", "a police detective", "a police negotiator", "a police officer", "a political activist", "a politician", "a practitioner", "a principal", "a prison warden", "a private detective", "a private instructor", "a procuress", "a producer", "a professional bartender", "a professor", "a programmer", "a prostitute", "a psychologist", "a refugee", "a scholar", "a scientist", "a sculptor", "a secretary", "a serial divorcee", "a shut-in", "a stockbroker", "a surgeon", "a teacher", "a teaching assistant", "a therapist", "a train conductor", "a transporter", "a veterinarian", "a wedding planner", "a writer", "a zookeeper", "an actress", "an air hostess", "an animator", "an archaeologist", "an architect", "an artist", "an assassin", "an astronaut", "an economist", "an editor", "an engineer", "an escort", "an estate agent", "an investor", "an MS pilot", "an office worker", "an orchestra conductor", "retired", "unemployed"],
-
-	uneducatedCareers: ["a baker", "a barber", "a barista", "a bartender", "a beekeeper", "a beggar", "a blacksmith", "a blogger", "a bodyguard", "a bouncer", "a bounty hunter", "a boxer", "a brewer", "a bullfighter", "a bus driver", "a butcher", "a butler", "a camgirl", "a camp counselor", "a camwhore", "a candlestick maker", "a caregiver", "a carpenter", "a cashier", "a charity worker", "a chauffeur", "a cheerleader", "a chiropractor", "a clown", "a cobbler", "a cocktail waitress", "a comedian", "a con artist", "a construction worker", "a cook", "a cowgirl", "a criminal", "a croupier", "a cum dump", "a dairy worker", "a dancer", "a delivery woman", "a dominatrix", "a driller", "a drug mule", "a factory worker", "a farm laborer", "a farmer's daughter", "a farmer", "a firefighter", "a fisherwoman", "a florist", "a fortune teller", "a gang leader", "a gang member", "a gardener", "a gravedigger", "a groomer", "a gymnast", "a handmaiden", "a hotel manager", "a house DJ", "a housewife", "a hunter", "a janitor", "a landlady", "a launderer", "a law enforcement officer", "a lifeguard", "a local news anchor", "a lumberjack", "a magician's assistant", "a maid", "a mail carrier", "a mail-order bride", "a masseuse", "a masseuse", "a meat toilet", "a medic", "a medic", "a medium", "a messenger", "a midwife", "a milkmaid", "a mime", "a miner", "a missionary", "a mistress", "a model", "a mortician", "a musician", "a nanny", "a nurse", "a paramedic", "a park ranger", "a party girl", "a peddler", "a personal trainer", "a pimp", "a pirate", "a plumber", "a political activist", "a prison guard", "a prisoner", "a procuress", "a prostitute", "a racing driver", "a radio show host", "a rancher", "a receptionist", "a referee", "a refugee", "a repairman", "a revolutionary", "a ride attendant", "a roadie", "a rodeo star", "a sailor", "a saleswoman", "a school nurse", "a seamstress", "a secretary", "a security guard", "a service worker", "a shepherd", "a shrine maiden", "a soldier", "a stage magician", "a street performer", "a street vendor", "a stripper", "a student", "a student athlete", "a stuntwoman", "a switchboard operator", "a tailor", "a talent scout", "a taxi driver", "a teacher", "a tour guide", "a trophy wife", "a truck driver", "a waitress", "a weathergirl", "a welder", "a wet nurse", "a whaler", "a wrestler", "a zookeeper", "an acrobat", "an actress", "an arcade attendant", "an artist", "an aspiring pop star", "an athlete", "an electrician", "an enforcer", "an enforcer", "an escort", "an exotic dancer", "an exterminator", "an innkeeper", "an installation technician", "an office worker", "an orderly", "homeless", "in a militia", "retired", "unemployed", "unemployed", "unemployed", "unemployed", "unemployed"],
-
-	gratefulCareers: ["a beggar", "a drug mule", "a peddler", "a pick-pocket", "a prisoner", "a refugee", "a shut-in", "a street urchin", "a student from a boarding school", "a sweatshop worker", "a thief", "an orphan", "from a lower class family", "homeless", "unemployed"],
-
-	menialCareers: ["a baker", "a blacksmith", "a bus driver", "a butcher", "a candlestick maker", "a carpenter", "a cashier", "a chauffeur", "a cobbler", "a construction worker", "a courier", "a croupier", "a delivery woman", "a driller", "a dropout", "a factory worker", "a farm laborer", "a firefighter", "a fisherwoman", "a florist", "a gardener", "a gravedigger", "a janitor", "a launderer", "a lumberjack", "a mail carrier", "a mechanic", "a messenger", "a miner", "a nun", "a paper girl", "a part-time farm laborer", "a pilot", "a plumber", "a private", "a programmer", "a receptionist", "a referee", "a repairman", "a ride attendant", "a roadie", "a sailor", "a seamstress", "a service worker", "a street vendor", "a student from a private school", "a student from a public school", "a student", "a switchboard operator", "a tailor", "a taxi driver", "a terrorist", "a tour guide", "a train conductor", "a truck driver", "a welder", "a whaler", "an apprentice", "an arcade attendant", "an electrician", "an engineer", "an exterminator", "an installation technician", "an intern"],
-
-	entertainmentCareers: ["a ballerina", "a blogger", "a camgirl", "a camwhore", "a cheerleader", "a child actress", "a clown", "a cocktail waitress", "a comedian", "a gymnast", "a journalist", "a local news anchor", "a magician's assistant", "a medium", "a mime", "a painter", "a party girl", "a photographer", "a poet", "a racing driver", "a sculptor", "a stage magician", "a street performer", "a student athlete", "a stuntwoman", "a video game streamer", "a waitress", "a weathergirl", "a wrestler", "a writer", "an acrobat", "an actress", "an animator", "an artist", "an athlete"],
-
-	whoreCareers: ["a bimbo", "a child prostitute", "a criminal", "a cum dump", "a Futanari Sister", "a juvenile delinquent", "a mail-order bride", "a meat toilet", "a mistress", "a model", "a pageant star", "a pirate", "a porn star", "a prostitute", "a reality show star", "a saleswoman", "a serial divorcee", "a stripper", "a trophy wife", "an escort", "an exotic dancer"],
-
-	HGCareers: ["a captain", "a corporate executive", "a director", "a dominatrix", "a gang leader", "a judge", "a lawyer", "a leading arcology citizen", "a military officer", "a model-UN star", "a noblewoman", "a politician", "a Queen", "a slaver", "a student council president"],
-
-	madamCareers: ["a banker", "a business owner", "a businessman", "a camp counselor", "a club manager", "a hotel manager", "a landlady", "a madam", "a manager", "a park ranger", "a pimp", "a procuress", "a stockbroker", "an innkeeper"],
-
-	DJCareers: ["a classical dancer", "a classical musician", "a dancer", "a house DJ", "a marching band leader", "a musician", "a radio show host", "an aspiring pop star", "an idol", "an orchestra conductor"],
-
-	bodyguardCareers: ["a bodyguard", "a boxer", "a bully hunter", "a child soldier", "a hitman", "a kunoichi", "a law enforcement officer", "a military brat", "a prince", "a revolutionary", "a sniper", "a soldier", "a transporter", "an assassin", "an MS pilot", "captain of the kendo club", "in a militia", "spec ops"],
-
-	wardenessCareers: ["a bouncer", "a bounty hunter", "a bully", "a chief of police", "a gang member", "a hall monitor", "a mercenary", "a police detective", "a police officer", "a prison guard", "a prison warden", "a private detective", "a security guard", "a street thug", "an enforcer", "an orderly"],
-
-	nurseCareers: ["a chemist", "a chiropractor", "a coroner", "a dentist", "a doctor", "a hospital volunteer", "a medic", "a medical student", "a midwife", "a mortician", "a nurse", "a paramedic", "a pharmacist", "a physician", "a school nurse's assistant", "a school nurse", "a surgeon"],
-
-	attendantCareers: ["a barber", "a cosmetologist", "a counselor", "a dispatch officer", "a fortune teller", "a groomer", "a latchkey kid", "a lifeguard", "a masseuse", "a mediator", "a personal trainer", "a police negotiator", "a psychologist", "a therapist", "a yoga instructor"],
-
-	matronCareers: ["a babysitter", "a nanny", "a practitioner", "a wet nurse", "an au pair"],
-
-	milkmaidCareers: ["a cowgirl", "a dairy worker", "a farmer's daughter", "a milkmaid", "a shepherd", "a veterinarian"],
-
-	farmerCareers: ["a beekeeper", "a bullfighter", "a farmer", "a farmhand", "a rancher", "a rodeo star", "a zookeeper"],
-
-	stewardessCareers: ["a barista", "a bartender", "a brewer", "a bureaucrat", "a caregiver", "a charity worker", "a club treasurer", "a concierge", "a critic", "a housekeeper", "a housesitter", "a lemonade stand operator", "a personal assistant", "a professional bartender", "a secretary", "a wedding planner", "an air hostess", "an architect", "an editor", "an estate agent", "an investor", "an office worker"],
-
-	schoolteacherCareers: ["a child prodigy", "a coach", "a dean", "a historian", "a librarian", "a principal", "a private instructor", "a professor", "a scholar", "a scientist", "a teacher's pet", "a teacher", "a teaching assistant", "an archaeologist", "an astronaut", "an economist"],
-
-	recruiterCareers: ["a club recruiter", "a college scout", "a con artist", "a cult leader", "a girl scout", "a hunter", "a lobbyist", "a military recruiter", "a missionary", "a political activist", "a princess", "a spy", "a talent scout", "retired"],
-	/* pregmod */
-
-	servantCareers: ["a butler", "a cook", "a handmaiden", "a housewife", "a maid", "a shrine maiden"],
-
-	/* 	otherCareers: ["a producer", "being homeschooled by her parents", "from a middle class family", "from an upper class family"]>> */
-
 	paraphiliaList: ["abusive", "anal addict", "attention whore", "breast growth", "breeder", "cum addict", "malicious", "neglectful", "self hating"],
 
 	baseNationalities: ["Afghan", "Albanian", "Algerian", "American", "Andorran", "Angolan", "Antiguan", "Argentinian", "Armenian", "Aruban", "Australian", "Austrian", "Azerbaijani", "Bahamian", "Bahraini", "Bangladeshi", "Barbadian", "Belarusian", "Belgian", "Belizean", "Beninese", "Bermudian", "Bhutanese", "Bissau-Guinean", "Bolivian", "Bosnian", "Brazilian", "British", "Bruneian", "Bulgarian", "Burkinabé", "Burmese", "Burundian", "Cambodian", "Cameroonian", "Canadian", "Cape Verdean", "Catalan", "Central African", "Chadian", "Chilean", "Chinese", "Colombian", "Comorian", "Congolese", "a Cook Islander", "Costa Rican", "Croatian", "Cuban", "Curaçaoan", "Cypriot", "Czech", "Danish", "Djiboutian", "Dominican", "Dominiquais", "Dutch", "East Timorese", "Ecuadorian", "Egyptian", "Emirati", "Equatoguinean", "Eritrean", "Estonian", "Ethiopian", "Fijian", "Filipina", "Finnish", "French", "French Guianan", "French Polynesian", "Gabonese", "Gambian", "Georgian", "German", "Ghanan", "Greek", "Greenlandic", "Grenadian", "Guamanian", "Guatemalan", "Guinean", "Guyanese", "Haitian", "Honduran", "Hungarian", "I-Kiribati", "Icelandic", "Indian", "Indonesian", "Iranian", "Iraqi", "Irish", "Israeli", "Italian", "Ivorian", "Jamaican", "Japanese", "Jordanian", "Kazakh", "Kenyan", "Kittitian", "Korean", "Kosovan", "Kurdish", "Kuwaiti", "Kyrgyz", "Laotian", "Latvian", "Lebanese", "Liberian", "Libyan", "a Liechtensteiner", "Lithuanian", "Luxembourgian", "Macedonian", "Malagasy", "Malawian", "Malaysian", "Maldivian", "Malian", "Maltese", "Marshallese", "Mauritanian", "Mauritian", "Mexican", "Micronesian", "Moldovan", "Monégasque", "Mongolian", "Montenegrin", "Moroccan", "Mosotho", "Motswana", "Mozambican", "Namibian", "Nauruan", "Nepalese", "New Caledonian", "a New Zealander", "Ni-Vanuatu", "Nicaraguan", "Nigerian", "Nigerien", "Niuean", "Norwegian", "Omani", "Pakistani", "Palauan", "Palestinian", "Panamanian", "Papua New Guinean", "Paraguayan", "Peruvian", "Polish", "Portuguese", "Puerto Rican", "Qatari", "Romanian", "Russian", "Rwandan", "Sahrawi", "Saint Lucian", "Salvadoran", "Sammarinese", "Samoan", "São Toméan", "Saudi", "Scottish", "Senegalese", "Serbian", "Seychellois", "Sierra Leonean", "Singaporean", "Slovak", "Slovene", "a Solomon Islander", "Somali", "South African", "South Sudanese", "Spanish", "Sri Lankan", "Sudanese", "Surinamese", "Swazi", "Swedish", "Swiss", "Syrian", "Taiwanese", "Tajik", "Tanzanian", "Thai", "Tibetan", "Togolese", "Tongan", "Trinidadian", "Tunisian", "Turkish", "Turkmen", "Tuvaluan", "Ugandan", "Ukrainian", "Uruguayan", "Uzbek", "Vatican", "Venezuelan", "Vietnamese", "Vincentian", "Yemeni", "Zairian", "Zambian", "Zimbabwean"],
diff --git a/src/Mods/SecExp/attackHandler.tw b/src/Mods/SecExp/attackHandler.tw
index 7c3f87ef870..38c12b64779 100644
--- a/src/Mods/SecExp/attackHandler.tw
+++ b/src/Mods/SecExp/attackHandler.tw
@@ -206,7 +206,7 @@
 			<<set _mercMod += 0.10>>
 			<<set _SFMod += 0.10>>
 		<</if>>
-		<<set _BGCareerGivesBonus = setup.bodyguardCareers.includes(_S.Bodyguard.career) || setup.HGCareers.includes(_S.Bodyguard.career) || setup.secExCombatPrestige.includes(_S.Bodyguard.prestigeDesc)>>
+		<<set _BGCareerGivesBonus = App.Data.Careers.Leader.bodyguard.includes(_S.Bodyguard.career) || App.Data.Careers.Leader.HG.includes(_S.Bodyguard.career) || setup.secExCombatPrestige.includes(_S.Bodyguard.prestigeDesc)>>
 		<<set _BGTotalIntelligence = _S.Bodyguard.intelligence+_S.Bodyguard.intelligenceImplant>>
 		<<if _BGCareerGivesBonus && _BGTotalIntelligence > 95>>
 			<<set _atkMod += 0.25>>
@@ -315,7 +315,7 @@
 			<<set _mercMod += 0.10>>
 			<<set _SFMod += 0.10>>
 		<</if>>
-		<<if (setup.bodyguardCareers.includes(_S.HeadGirl.career) || setup.HGCareers.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 95>>
+		<<if (App.Data.Careers.Leader.bodyguard.includes(_S.HeadGirl.career) || App.Data.Careers.Leader.HG.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 95>>
 			<<set _atkMod += 0.25>>
 			<<set _defMod += 0.25>>
 			<<set _tacChance += 0.50>>
@@ -323,7 +323,7 @@
 			<<set _atkMod += 0.20>>
 			<<set _defMod += 0.15>>
 			<<set _tacChance += 0.35>>
-		<<elseif (setup.bodyguardCareers.includes(_S.HeadGirl.career) || setup.HGCareers.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 50>>
+		<<elseif (App.Data.Careers.Leader.bodyguard.includes(_S.HeadGirl.career) || App.Data.Careers.Leader.HG.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 50>>
 			<<set _atkMod += 0.15>>
 			<<set _defMod += 0.10>>
 			<<set _tacChance += 0.25>>
@@ -331,7 +331,7 @@
 			<<set _atkMod += 0.10>>
 			<<set _defMod += 0.10>>
 			<<set _tacChance += 0.20>>
-		<<elseif (setup.bodyguardCareers.includes(_S.HeadGirl.career) || setup.HGCareers.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 15>>
+		<<elseif (App.Data.Careers.Leader.bodyguard.includes(_S.HeadGirl.career) || App.Data.Careers.Leader.HG.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 15>>
 			<<set _atkMod += 0.10>>
 			<<set _defMod += 0.05>>
 			<<set _tacChance += 0.15>>
@@ -339,7 +339,7 @@
 			<<set _atkMod += 0.05>>
 			<<set _defMod += 0.05>>
 			<<set _tacChance += 0.10>>
-		<<elseif !(setup.bodyguardCareers.includes(_S.HeadGirl.career) && setup.HGCareers.includes(_S.HeadGirl.career) && setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) || _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant < -50>>
+		<<elseif !(App.Data.Careers.Leader.bodyguard.includes(_S.HeadGirl.career) && App.Data.Careers.Leader.HG.includes(_S.HeadGirl.career) && setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) || _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant < -50>>
 			<<set _atkMod -= 0.15>>
 			<<set _defMod -= 0.15>>
 			<<set _tacChance -= 0.30>>
@@ -347,7 +347,7 @@
 			<<set _atkMod -= 0.15>>
 			<<set _defMod -= 0.10>>
 			<<set _tacChance -= 0.25>>
-		<<elseif !(setup.bodyguardCareers.includes(_S.HeadGirl.career) && setup.HGCareers.includes(_S.HeadGirl.career) && setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) || _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant < -15>>
+		<<elseif !(App.Data.Careers.Leader.bodyguard.includes(_S.HeadGirl.career) && App.Data.Careers.Leader.HG.includes(_S.HeadGirl.career) && setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) || _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant < -15>>
 			<<set _atkMod -= 0.10>>
 			<<set _defMod -= 0.10>>
 			<<set _tacChance -= 0.20>>
diff --git a/src/Mods/SecExp/attackReport.tw b/src/Mods/SecExp/attackReport.tw
index d065ed12a53..066f182b2c1 100644
--- a/src/Mods/SecExp/attackReport.tw
+++ b/src/Mods/SecExp/attackReport.tw
@@ -920,7 +920,7 @@
 				Your soldiers <<if App.SecExp.battle.deployedUnits('slaves') >= 1>>however,<</if>> are not enthusiastic to have a slave as a commander, but they trust you enough not to question your decision.
 			<</if>>
 		<</if>>
-		<<set _BGCareerGivesBonus = setup.bodyguardCareers.includes(_S.Bodyguard.career) || setup.HGCareers.includes(_S.Bodyguard.career) || setup.secExCombatPrestige.includes(_S.Bodyguard.prestigeDesc)>>
+		<<set _BGCareerGivesBonus = App.Data.Careers.Leader.bodyguard.includes(_S.Bodyguard.career) || App.Data.Careers.Leader.HG.includes(_S.Bodyguard.career) || setup.secExCombatPrestige.includes(_S.Bodyguard.prestigeDesc)>>
 		<<set _BGTotalIntelligence = _S.Bodyguard.intelligence+_S.Bodyguard.intelligenceImplant>>
 		<<if _BGCareerGivesBonus && _BGTotalIntelligence > 95>>
 			With $his experience and $his great intellect, $he is able to exploit the smallest of tactical advantages, making your troops very effective.
@@ -1058,23 +1058,23 @@
 				Your soldiers <<if App.SecExp.battle.deployedUnits('slaves') >= 1>>however<</if>> are not enthusiastic to have a slave as a commander, but they trust you enough not to question your decision.
 			<</if>>
 		<</if>>
-		<<if (setup.bodyguardCareers.includes(_S.HeadGirl.career) || setup.HGCareers.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 95>>
+		<<if (App.Data.Careers.Leader.bodyguard.includes(_S.HeadGirl.career) || App.Data.Careers.Leader.HG.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 95>>
 			With $his experience and $his great intellect, $he is able to exploits the smallest of tactical advantages, making your troops greatly effective.
 		<<elseif _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 95>>
 			While $he lacks experience, $his great intellect allows $him to seize and exploit any tactical advantage the battlefield offers $him.
-		<<elseif (setup.bodyguardCareers.includes(_S.HeadGirl.career) || setup.HGCareers.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 50>>
+		<<elseif (App.Data.Careers.Leader.bodyguard.includes(_S.HeadGirl.career) || App.Data.Careers.Leader.HG.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 50>>
 			Having both the experience and the intelligence, $he performs admirably as your commander. $His competence greatly increases the efficiency of your troops.
 		<<elseif _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 50>>
 			Despite not having a lot of experience as a leader, $his intelligence makes $him a good commander, increasing the efficiency of your troops.
-		<<elseif (setup.bodyguardCareers.includes(_S.HeadGirl.career) || setup.HGCareers.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 15>>
+		<<elseif (App.Data.Careers.Leader.bodyguard.includes(_S.HeadGirl.career) || App.Data.Careers.Leader.HG.includes(_S.HeadGirl.career) || setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) && _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 15>>
 			Thanks to $his experience, $he is a decent commander, competently guiding your troops through the battle.
 		<<elseif _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant > 15>>
 			Lacking experience $his performance as a commander is rather forgettable.
-		<<elseif !(setup.bodyguardCareers.includes(_S.HeadGirl.career) && setup.HGCareers.includes(_S.HeadGirl.career) && setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) || _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant < -50>>
+		<<elseif !(App.Data.Careers.Leader.bodyguard.includes(_S.HeadGirl.career) && App.Data.Careers.Leader.HG.includes(_S.HeadGirl.career) && setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) || _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant < -50>>
 			Despite the experience $he accumulated during $his past career, $his very low intelligence is a great disadvantage for your troops.
 		<<elseif _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant < -50>>
 			Without experience and low intelligence, $he performs horribly as a commander, greatly affecting your troops.
-		<<elseif !(setup.bodyguardCareers.includes(_S.HeadGirl.career) && setup.HGCareers.includes(_S.HeadGirl.career) && setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) || _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant < -15>>
+		<<elseif !(App.Data.Careers.Leader.bodyguard.includes(_S.HeadGirl.career) && App.Data.Careers.Leader.HG.includes(_S.HeadGirl.career) && setup.secExCombatPrestige.includes(_S.HeadGirl.prestigeDesc)) || _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant < -15>>
 			Despite the experience $he accumulated during $his past career, $he lacks the intelligence to apply it quickly and effectively, making for a rather poor performance in the field.
 		<<elseif _S.HeadGirl.intelligence+_S.HeadGirl.intelligenceImplant < -15>>
 			$He lacks the experience and the intelligence to be an effective commander, the performance of your troops suffers because of $his poor leadership.
diff --git a/src/endWeek/healthFunctions.js b/src/endWeek/healthFunctions.js
index aaf650575ee..64b4202b316 100644
--- a/src/endWeek/healthFunctions.js
+++ b/src/endWeek/healthFunctions.js
@@ -85,7 +85,7 @@ globalThis.illness = function(slave) {
 		assignBonus += 20;
 	} else if ((slave.assignment === Job.MASTERSUITE || slave.assignment === Job.FUCKTOY) && V.PC.skill.medicine >= 40) {
 		assignBonus += 10;
-	} else if (setup.nurseCareers.includes(slave.career) || slave.skill.nurse >= 100 || slave.intelligence + slave.intelligenceImplant > 95) { // Let slaves with experience or brains use it
+	} else if (App.Data.Careers.Leader.nurse.includes(slave.career) || slave.skill.nurse >= 100 || slave.intelligence + slave.intelligenceImplant > 95) { // Let slaves with experience or brains use it
 		assignBonus += 10;
 	}
 	if (random < 6) { // There is always a 5% chance of a slave feeling worse or coming in contact with an illness
@@ -215,7 +215,7 @@ globalThis.nurseEffectiveness = function(slave) {
 	const clinicUpgrade = 1; // Creating a purchasable upgrade to increase the amount of slaves the nurse can handle -- TODO
 	const clinicScreening = 1; // Assumes the clinic is set to screening all slaves to improve their chances of staying healthy. Turning it off would allow the nurse to focus on just her patients in the clinic -- TODO
 	if (S.Nurse) {
-		const nurseSkill = setup.nurseCareers.includes(S.Nurse.career) ? 200 : S.Nurse.skill.nurse;
+		const nurseSkill = App.Data.Careers.Leader.nurse.includes(S.Nurse.career) ? 200 : S.Nurse.skill.nurse;
 		let nurseEffectiveness = Math.trunc((nurseSkill * clinicUpgrade / Math.max((App.Entity.facilities.clinic.employeesIDs().size * 10 + (V.slaves.length * 2) * clinicScreening), 1)) * 20);
 		if (H.illness > 1 && slave.assignment === Job.CLINIC) {
 			if (nurseEffectiveness < 20) {
@@ -389,7 +389,7 @@ globalThis.tired = function(slave) {
 			assignment -= 40 * (V.spaUpgrade + 1); // Reduces tired by an average of 40 points while in the spa, double with the upgraded spa
 			if (S.Attendant) {
 				let skillBonus;
-				if (setup.attendantCareers.includes(S.Attendant.career)) {
+				if (App.Data.Careers.Leader.attendant.includes(S.Attendant.career)) {
 					skillBonus = 200;
 				} else {
 					skillBonus = S.Attendant.skill.attendant;
diff --git a/src/endWeek/reports/brothelReport.js b/src/endWeek/reports/brothelReport.js
index 1bd352e3525..cf79c57d336 100644
--- a/src/endWeek/reports/brothelReport.js
+++ b/src/endWeek/reports/brothelReport.js
@@ -90,7 +90,7 @@ App.EndWeek.brothelReport = function() {
 			if (S.Madam.actualAge > 35) {
 				r.push(`${His} age and experience also contribute.`);
 			}
-			if (setup.madamCareers.includes(S.Madam.career)) {
+			if (App.Data.Careers.Leader.madam.includes(S.Madam.career)) {
 				r.push(`${He} has experience from ${his} life before ${he} was a slave that helps ${him} in the seedy business of selling other people's bodies for sex.`);
 			} else if (S.Madam.skill.madam >= V.masteredXP) {
 				r.push(`${He} has experience from working for you that helps ${him} in the seedy business of selling other people's bodies for sex.`);
diff --git a/src/endWeek/reports/cellblockReport.js b/src/endWeek/reports/cellblockReport.js
index 97c4b66ffba..59cb643ca98 100644
--- a/src/endWeek/reports/cellblockReport.js
+++ b/src/endWeek/reports/cellblockReport.js
@@ -74,7 +74,7 @@ App.EndWeek.cellblockReport = function() {
 		} else if (FLsFetish === 2) {
 			r.push(`Being not only allowed but encouraged to get off while punishing prisoners <span class="lightsalmon">deepens ${his} sadism.</span>`);
 		}
-		if (setup.wardenessCareers.includes(S.Wardeness.career)) {
+		if (App.Data.Careers.Leader.wardeness.includes(S.Wardeness.career)) {
 			devBonus++;
 			trustMalus++;
 			idleBonus++;
diff --git a/src/endWeek/reports/clinicReport.js b/src/endWeek/reports/clinicReport.js
index 465047982eb..1073e82bd91 100644
--- a/src/endWeek/reports/clinicReport.js
+++ b/src/endWeek/reports/clinicReport.js
@@ -56,7 +56,7 @@ App.EndWeek.clinicReport = function() {
 			} else if (FLsFetish === 2) {
 				r.push(`Every new patient in the clinic is a new target for ${his} authority. <span class="fetish inc">${He} becomes more dominant.</span>`);
 			}
-			if (setup.nurseCareers.includes(S.Nurse.career)) {
+			if (App.Data.Careers.Leader.nurse.includes(S.Nurse.career)) {
 				r.push(`${He} has experience with medicine from ${his} life before ${he} was a slave, and can often recognize conditions before even the medical scanners can.`);
 				idleBonus++;
 				healthBonus++;
diff --git a/src/endWeek/reports/clubReport.js b/src/endWeek/reports/clubReport.js
index 4020c2fd376..65f83a2e2a9 100644
--- a/src/endWeek/reports/clubReport.js
+++ b/src/endWeek/reports/clubReport.js
@@ -91,7 +91,7 @@ App.EndWeek.clubReport = function() {
 		if (S.DJ.face > 95) {
 			r.push(`${His} great beauty is a further draw, even when ${he}'s in ${his} DJ booth, but especially when ${he} comes out to dance.`);
 		}
-		if (setup.DJCareers.includes(S.DJ.career)) {
+		if (App.Data.Careers.Leader.DJ.includes(S.DJ.career)) {
 			r.push(`${He} has musical experience from ${his} life before ${he} was a slave, a grounding that gives ${his} tracks actual depth.`);
 		} else if (S.DJ.skill.DJ >= V.masteredXP) {
 			r.push(`${He} has musical experience from working for you, giving ${his} tracks actual depth.`);
diff --git a/src/endWeek/reports/dairyReport.js b/src/endWeek/reports/dairyReport.js
index bb8a0e2c4e7..3adda807a77 100644
--- a/src/endWeek/reports/dairyReport.js
+++ b/src/endWeek/reports/dairyReport.js
@@ -246,7 +246,7 @@ App.EndWeek.dairyReport = function() {
 			V.milkmaidTrustBonus++;
 			r.push(`${He}'s funny, and does ${his} best to get the cows to trust ${him} by keeping them laughing.`);
 		}
-		if (setup.milkmaidCareers.includes(S.Milkmaid.career)) {
+		if (App.Data.Careers.Leader.milkmaid.includes(S.Milkmaid.career)) {
 			V.milkmaidHealthBonus++;
 			r.push(`${He} has career experience dealing with milk animals.`);
 		} else if (S.Milkmaid.skill.milkmaid >= V.masteredXP) {
diff --git a/src/endWeek/reports/farmyardReport.js b/src/endWeek/reports/farmyardReport.js
index 17331ca3ce0..10b7d475f9d 100644
--- a/src/endWeek/reports/farmyardReport.js
+++ b/src/endWeek/reports/farmyardReport.js
@@ -64,7 +64,7 @@ App.Facilities.Farmyard.farmyardReport = function farmyardReport() {
 			FarmerCashBonus += 0.05;
 		}
 
-		if (setup.farmerCareers.includes(slave.career)) {
+		if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
 			FarmerCashBonus += 0.05;
 			if (slave.skill.farmer >= V.masteredXP) {
 				FarmerCashBonus += 0.05;
@@ -157,7 +157,7 @@ App.Facilities.Farmyard.farmyardReport = function farmyardReport() {
 	function farmerExperience(slave) {
 		const {he, his, him, He} = getPronouns(slave);
 
-		if (setup.farmerCareers.includes(slave.career)) {
+		if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
 			return `${He} has experience from ${his} life before ${he} was a slave that helps ${him} in the difficult life of managing animals and property.`;
 		} else if (slave.skill.farmer >= V.masteredXP) {
 			return `${He} has experience from working for you that helps ${him} in the difficult life of managing animals and property.`;
diff --git a/src/endWeek/reports/nurseryReport.js b/src/endWeek/reports/nurseryReport.js
index adc28ec01cc..4a4663bf304 100644
--- a/src/endWeek/reports/nurseryReport.js
+++ b/src/endWeek/reports/nurseryReport.js
@@ -70,7 +70,7 @@ App.Facilities.Nursery.nurseryReport = function nurseryReport() {
 				matronBonus += V.nurseryNannies ? 75 : 0;
 			}
 
-			if (setup.matronCareers.includes(S.Matron.career)) {
+			if (App.Data.Careers.Leader.matron.includes(S.Matron.career)) {
 				r.push(`${He} has experience with looking after children from ${his} life before ${he} was a slave.`);
 
 				matronBonus += 25;
diff --git a/src/endWeek/reports/penthouseReport.js b/src/endWeek/reports/penthouseReport.js
index bb4cc92a6c9..450dc08f442 100644
--- a/src/endWeek/reports/penthouseReport.js
+++ b/src/endWeek/reports/penthouseReport.js
@@ -254,7 +254,7 @@ App.EndWeek.penthouseReport = function() {
 			if (S.HeadGirl.career === "an arcology owner") {
 				r.push(`${He} was once an arcology owner ${himself}, making ${him} truly peerless as a Head Girl.`);
 				effectiveness += 50;
-			} else if (setup.HGCareers.includes(S.HeadGirl.career)) {
+			} else if (App.Data.Careers.Leader.HG.includes(S.HeadGirl.career)) {
 				r.push(`${He} was used to giving commands and being obeyed in ${his} life before ${he} was a slave, experience ${he} can call on now.`);
 				effectiveness += 5;
 			} else if (S.HeadGirl.skill.headGirl >= V.masteredXP) {
diff --git a/src/endWeek/reports/schoolroomReport.js b/src/endWeek/reports/schoolroomReport.js
index 7992754a999..e6854c231a8 100644
--- a/src/endWeek/reports/schoolroomReport.js
+++ b/src/endWeek/reports/schoolroomReport.js
@@ -59,7 +59,7 @@ App.EndWeek.schoolroomReport = function() {
 			} else if (FLsFetish === 2) {
 				r.push(`Every new student in class is a new target for ${his} personal educational attention. <span class="lightsalmon">${He} becomes more dominant.</span>`);
 			}
-			if (setup.schoolteacherCareers.includes(S.Schoolteacher.career)) {
+			if (App.Data.Careers.Leader.schoolteacher.includes(S.Schoolteacher.career)) {
 				r.push(`${He} has experience with students and learning from ${his} life before ${he} was a slave, making ${him} more effective.`);
 				idleBonus++;
 			} else if (S.Schoolteacher.skill.teacher >= V.masteredXP) {
diff --git a/src/endWeek/reports/servantsQuartersReport.js b/src/endWeek/reports/servantsQuartersReport.js
index e4b466d8842..3e09cb8b1a2 100644
--- a/src/endWeek/reports/servantsQuartersReport.js
+++ b/src/endWeek/reports/servantsQuartersReport.js
@@ -94,7 +94,7 @@ App.EndWeek.servantsQuartersReport = function() {
 				stewardessBonus += 75;
 				r.push(`${His} perfect health allows ${him} to work exhaustive hours and <span class="yellowgreen">drive</span> the servants very hard.`);
 			}
-			if (setup.stewardessCareers.includes(S.Stewardess.career)) {
+			if (App.Data.Careers.Leader.stewardess.includes(S.Stewardess.career)) {
 				stewardessBonus += 25;
 				r.push(`${He} has applicable experience with daily sums and organizational trifles from ${his} life before ${he} was a slave.`);
 			} else if (S.Stewardess.skill.stewardess >= V.masteredXP) {
diff --git a/src/endWeek/reports/spaReport.js b/src/endWeek/reports/spaReport.js
index bd6b4b14b34..2e70f4714f4 100644
--- a/src/endWeek/reports/spaReport.js
+++ b/src/endWeek/reports/spaReport.js
@@ -61,7 +61,7 @@ App.EndWeek.spaReport = function() {
 		} else if ((FLsFetish === 2)) {
 			r.push(`Every new slave in the spa is a new person ${he} gets to connect with and serve. Sexually. <span class="lightsalmon">${He} becomes more submissive.</span>`);
 		}
-		if (setup.attendantCareers.includes(S.Attendant.career)) {
+		if (App.Data.Careers.Leader.attendant.includes(S.Attendant.career)) {
 			r.push(`${He} has experience with counseling from ${his} life before ${he} was a slave, making ${him} better at building rapport with troubled slaves, and giving ${him} a better chance of softening flaws into beneficial quirks.`);
 			bonusToggle = 1;
 			idleBonus++;
diff --git a/src/endWeek/saBeYourHeadGirl.js b/src/endWeek/saBeYourHeadGirl.js
index c98b8ddb9f4..eef75b7e0cb 100644
--- a/src/endWeek/saBeYourHeadGirl.js
+++ b/src/endWeek/saBeYourHeadGirl.js
@@ -277,7 +277,7 @@ App.SlaveAssignment.beYourHeadGirl = (function() {
 	 *
 	 */
 	function cleanupVars(slave) {
-		if (!setup.HGCareers.includes(slave.career) && slave.skill.headGirl < V.masteredXP) {
+		if (!App.Data.Careers.Leader.HG.includes(slave.career) && slave.skill.headGirl < V.masteredXP) {
 			slave.skill.headGirl += jsRandom(1, Math.ceil((slave.intelligence + slave.intelligenceImplant) / 15) + 8);
 		}
 		slave.health.tired = Math.clamp(slave.health.tired, 0, 1000);
diff --git a/src/endWeek/saDiet.js b/src/endWeek/saDiet.js
index 6662a34521f..cd181294e04 100644
--- a/src/endWeek/saDiet.js
+++ b/src/endWeek/saDiet.js
@@ -299,7 +299,7 @@ App.SlaveAssignment.diet = (function() {
 							} else {
 								r.push(`${he} accepts being overfed.`);
 							}
-						} else if (setup.gratefulCareers.includes(slave.career) && slave.weight < 100) {
+						} else if (App.Data.Careers.General.grateful.includes(slave.career) && slave.weight < 100) {
 							r.push(`<span class="trust inc">${He} appreciates having a belly full of food.</span>`);
 							slave.trust += 1;
 						} else if (slave.devotion <= 20) {
diff --git a/src/endWeek/saGuardYou.js b/src/endWeek/saGuardYou.js
index 55b74d52174..d2115412a92 100644
--- a/src/endWeek/saGuardYou.js
+++ b/src/endWeek/saGuardYou.js
@@ -68,7 +68,7 @@ App.SlaveAssignment.guardYou = (function() {
 			r.push(`${His} combat skills greatly increase ${his} deadliness.`);
 		}
 
-		if (setup.bodyguardCareers.includes(slave.career)) {
+		if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) {
 			r.push(`${He} has experience in personal defense from before ${he} was a slave.`);
 		} else if (slave.skill.bodyguard >= V.masteredXP) {
 			r.push(`${He} has experience in personal defense from working for you.`);
diff --git a/src/endWeek/saLongTermMentalEffects.js b/src/endWeek/saLongTermMentalEffects.js
index 3eaa35a573f..82ae9886005 100644
--- a/src/endWeek/saLongTermMentalEffects.js
+++ b/src/endWeek/saLongTermMentalEffects.js
@@ -1789,7 +1789,7 @@ App.SlaveAssignment.longTermMentalEffects = (function() {
 				break;
 			default:
 				if (slave.trust >= -50) {
-					if (setup.gratefulCareers.includes(slave.career)) {
+					if (App.Data.Careers.General.grateful.includes(slave.career)) {
 						slave.trust += 1;
 						r.push(`${He} remembers how hard ${his} life was before ${he} was a slave, and`);
 						if (slave.trust > 50) {
@@ -1803,7 +1803,7 @@ App.SlaveAssignment.longTermMentalEffects = (function() {
 					}
 				}
 				if (slave.devotion >= -50) {
-					if (setup.menialCareers.includes(slave.career)) {
+					if (App.Data.Careers.General.menial.includes(slave.career)) {
 						slave.devotion += 1;
 						r.push(`${He} took orders a lot before ${he} was a slave, and is subconsciously`);
 						if (slave.trust > 50) {
diff --git a/src/endWeek/saNanny.js b/src/endWeek/saNanny.js
index e2a6c8f7c62..9908fd16433 100644
--- a/src/endWeek/saNanny.js
+++ b/src/endWeek/saNanny.js
@@ -61,7 +61,7 @@ App.SlaveAssignment.nanny = function(slave) {
 		let t = '';
 
 		// TODO:
-		if (setup.servantCareers.includes(slave.career)) {
+		if (App.Data.Careers.Leader.servant.includes(slave.career)) {
 			t += ` ${He} has experience with nannying from ${his} life before ${he} was a slave, making ${him} more effective.`;
 		} else if (slave.skill.servant >= V.masteredXP) {
 			t += ` ${He} has experience with nannying from working for you, making ${him} more effective.`;
diff --git a/src/endWeek/saRecruitGirls.js b/src/endWeek/saRecruitGirls.js
index db0ef59f980..b477133b47d 100644
--- a/src/endWeek/saRecruitGirls.js
+++ b/src/endWeek/saRecruitGirls.js
@@ -800,7 +800,7 @@ App.SlaveAssignment.recruitGirls = (function() {
 			r.push(`${His} imperfect feelings toward you give ${him} little conviction.`);
 		}
 
-		if (setup.recruiterCareers.includes(slave.career)) {
+		if (App.Data.Careers.Leader.recruiter.includes(slave.career)) {
 			r.push(`${He} has experience in recruitment from before ${he} was a slave.`);
 			V.recruiterProgress += 2;
 		} else if (slave.skill.recruiter >= V.masteredXP) {
diff --git a/src/endWeek/saServant.js b/src/endWeek/saServant.js
index 0997c765ab3..9b4d6a1ecd0 100644
--- a/src/endWeek/saServant.js
+++ b/src/endWeek/saServant.js
@@ -145,7 +145,7 @@ App.SlaveAssignment.servant = (function() {
 			r.push(`${He} does ${his} very best to be the perfect house${wife}, making ${him} an outstanding servant.`);
 		}
 
-		if (setup.servantCareers.includes(slave.career)) {
+		if (App.Data.Careers.Leader.servant.includes(slave.career)) {
 			r.push(`${He} has experience with house keeping from ${his} life before ${he} was a slave, making ${him} more effective.`);
 		} else if (slave.skill.servant >= V.masteredXP) {
 			r.push(`${He} has experience with house keeping from working for you, making ${him} more effective.`);
diff --git a/src/endWeek/saServeThePublic.js b/src/endWeek/saServeThePublic.js
index 44521378812..149be8fd13e 100644
--- a/src/endWeek/saServeThePublic.js
+++ b/src/endWeek/saServeThePublic.js
@@ -468,10 +468,10 @@ App.SlaveAssignment.serveThePublic = (function() {
 	 */
 	function slaveSkills(slave) {
 		let skillIncrease;
-		if (!setup.entertainmentCareers.includes(slave.career) && slave.skill.entertainer < V.masteredXP) {
+		if (!App.Data.Careers.General.entertainment.includes(slave.career) && slave.skill.entertainer < V.masteredXP) {
 			slave.skill.entertainer += jsRandom(1, Math.ceil((slave.intelligence + slave.intelligenceImplant) / 15) + 8);
 		}
-		if (setup.entertainmentCareers.includes(slave.career)) {
+		if (App.Data.Careers.General.entertainment.includes(slave.career)) {
 			r += ` ${He} has experience with entertainment from ${his} life before ${he} was a slave, making ${him} more effective.`;
 		} else if (slave.skill.entertainer >= V.masteredXP) {
 			r += ` ${He} has learned to be entertaining from working for you, making ${him} more effective.`;
diff --git a/src/endWeek/saTakeClasses.js b/src/endWeek/saTakeClasses.js
index 7c349a658cf..22495e42116 100644
--- a/src/endWeek/saTakeClasses.js
+++ b/src/endWeek/saTakeClasses.js
@@ -67,7 +67,7 @@ App.SlaveAssignment.takeClasses = (function() {
 				if (S.Schoolteacher.visualAge > 35) {
 					teaching += 10;
 				}
-				if (setup.schoolteacherCareers.includes(S.Schoolteacher.career)) {
+				if (App.Data.Careers.Leader.schoolteacher.includes(S.Schoolteacher.career)) {
 					teaching += 10;
 				} else if (S.Schoolteacher.skill.teacher >= V.masteredXP) {
 					teaching += 10;
diff --git a/src/endWeek/saWhore.js b/src/endWeek/saWhore.js
index e3e467cbae3..92a3aedbb6a 100644
--- a/src/endWeek/saWhore.js
+++ b/src/endWeek/saWhore.js
@@ -531,10 +531,10 @@ App.SlaveAssignment.whore = (function() {
 	 */
 	function slaveSkills(slave) {
 		let skillIncrease;
-		if (!setup.whoreCareers.includes(slave.career) && slave.skill.whore < V.masteredXP) {
+		if (!App.Data.Careers.General.whore.includes(slave.career) && slave.skill.whore < V.masteredXP) {
 			slave.skill.whore += jsRandom(1, Math.ceil((slave.intelligence + slave.intelligenceImplant) / 15) + 8);
 		}
-		if (setup.whoreCareers.includes(slave.career)) {
+		if (App.Data.Careers.General.whore.includes(slave.career)) {
 			r += ` ${He} has sex work experience from ${his} life before ${he} was a slave, making ${him} more effective.`;
 		} else if (slave.skill.whore >= V.masteredXP) {
 			r += ` ${He} has experience as a prostitute from working for you, making ${him} more effective.`;
diff --git a/src/facilities/armory/armoryFramework.js b/src/facilities/armory/armoryFramework.js
index ac077b9815b..c2a595acecf 100644
--- a/src/facilities/armory/armoryFramework.js
+++ b/src/facilities/armory/armoryFramework.js
@@ -7,7 +7,7 @@ App.Data.Facilities.armory = {
 		position: "bodyguard",
 		positionAbbreviation: "BG",
 		assignment: Job.BODYGUARD,
-		careers: App.Data.misc.bodyguardCareers,
+		careers: App.Data.Careers.Leader.bodyguard,
 		skill: "bodyguard",
 		publicSexUse: true,
 		fuckdollAccepted: false,
diff --git a/src/facilities/brothel/brothelFramework.js b/src/facilities/brothel/brothelFramework.js
index c295f6c7d03..1230827d0d5 100644
--- a/src/facilities/brothel/brothelFramework.js
+++ b/src/facilities/brothel/brothelFramework.js
@@ -13,7 +13,7 @@ App.Data.Facilities.brothel = {
 	manager: {
 		position: "madam",
 		assignment: Job.MADAM,
-		careers: App.Data.misc.madamCareers,
+		careers: App.Data.Careers.Leader.madam,
 		skill: null,
 		publicSexUse: true,
 		fuckdollAccepted: false,
diff --git a/src/facilities/cellblock/cellblockFramework.js b/src/facilities/cellblock/cellblockFramework.js
index 6e44aa9628b..e5a7219eb92 100644
--- a/src/facilities/cellblock/cellblockFramework.js
+++ b/src/facilities/cellblock/cellblockFramework.js
@@ -13,7 +13,7 @@ App.Data.Facilities.cellblock = {
 	manager: {
 		position: "wardeness",
 		assignment: Job.WARDEN,
-		careers: App.Data.misc.wardenessCareers,
+		careers: App.Data.Careers.Leader.wardeness,
 		skill: "wardeness",
 		publicSexUse: false,
 		fuckdollAccepted: false,
diff --git a/src/facilities/clinic/clinicFramework.js b/src/facilities/clinic/clinicFramework.js
index c351774e0b3..23dd472c60d 100644
--- a/src/facilities/clinic/clinicFramework.js
+++ b/src/facilities/clinic/clinicFramework.js
@@ -13,7 +13,7 @@ App.Data.Facilities.clinic = {
 	manager: {
 		position: "nurse",
 		assignment: Job.NURSE,
-		careers: App.Data.misc.nurseCareers,
+		careers: App.Data.Careers.Leader.nurse,
 		skill: "nurse",
 		publicSexUse: false,
 		fuckdollAccepted: false,
diff --git a/src/facilities/club/clubFramework.js b/src/facilities/club/clubFramework.js
index efe1827dadb..e34db004dfc 100644
--- a/src/facilities/club/clubFramework.js
+++ b/src/facilities/club/clubFramework.js
@@ -13,7 +13,7 @@ App.Data.Facilities.club = {
 	manager: {
 		position: "DJ",
 		assignment: Job.DJ,
-		careers: App.Data.misc.DJCareers,
+		careers: App.Data.Careers.Leader.DJ,
 		skill: "DJ",
 		publicSexUse: false,
 		fuckdollAccepted: false,
diff --git a/src/facilities/dairy/dairyFramework.js b/src/facilities/dairy/dairyFramework.js
index a6cb48cbaba..1ff08a43913 100644
--- a/src/facilities/dairy/dairyFramework.js
+++ b/src/facilities/dairy/dairyFramework.js
@@ -13,7 +13,7 @@ App.Data.Facilities.dairy = {
 	manager: {
 		position: "milkmaid",
 		assignment: Job.MILKMAID,
-		careers: App.Data.misc.milkmaidCareers,
+		careers: App.Data.Careers.Leader.milkmaid,
 		skill: "milkmaid",
 		publicSexUse: false,
 		fuckdollAccepted: false,
diff --git a/src/facilities/farmyard/farmyardFramework.js b/src/facilities/farmyard/farmyardFramework.js
index f4f6630cc53..b79c787e6c8 100644
--- a/src/facilities/farmyard/farmyardFramework.js
+++ b/src/facilities/farmyard/farmyardFramework.js
@@ -13,7 +13,7 @@ App.Data.Facilities.farmyard = {
 	manager: {
 		position: "farmer",
 		assignment: Job.FARMER,
-		careers: App.Data.misc.farmerCareers,
+		careers: App.Data.Careers.Leader.farmer,
 		skill: "farmer",
 		publicSexUse: false,
 		fuckdollAccepted: false,
diff --git a/src/facilities/farmyard/food/foodAmount.js b/src/facilities/farmyard/food/foodAmount.js
index 3b47b233838..fcb94ca9603 100644
--- a/src/facilities/farmyard/food/foodAmount.js
+++ b/src/facilities/farmyard/food/foodAmount.js
@@ -32,7 +32,7 @@ App.Facilities.Farmyard.foodAmount = function(slave) {
 			food *= 1.2;
 		}
 
-		if (setup.farmerCareers.includes(S.Farmer.career)) {
+		if (App.Data.Careers.Leader.farmer.includes(S.Farmer.career)) {
 			food *= 1.2;
 		}
 	}
diff --git a/src/facilities/farmyard/shows/farmShowsIncome.js b/src/facilities/farmyard/shows/farmShowsIncome.js
index a9ec8eb55a2..d8d51fd2540 100644
--- a/src/facilities/farmyard/shows/farmShowsIncome.js
+++ b/src/facilities/farmyard/shows/farmShowsIncome.js
@@ -311,12 +311,12 @@ App.Facilities.Farmyard.farmShowsIncome = function(slave) {
 
 		// Close FS Effects
 
-		if (setup.entertainmentCareers.includes(slave.career)) {
+		if (App.Data.Careers.General.entertainment.includes(slave.career)) {
 			cash *= 1.1;
 		}
 
 		// FIXME: can slaves' careers overlap categories?
-		if (setup.farmerCareers.includes(slave.career)) {
+		if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
 			cash *= 1.1;
 		}
 
diff --git a/src/facilities/farmyard/shows/saFarmyardShows.js b/src/facilities/farmyard/shows/saFarmyardShows.js
index 89137bb1506..9b863f728ef 100644
--- a/src/facilities/farmyard/shows/saFarmyardShows.js
+++ b/src/facilities/farmyard/shows/saFarmyardShows.js
@@ -254,13 +254,13 @@ App.Facilities.Farmyard.putOnShows = function(slave) {
 
 	// Close FS Subsection
 
-	if (setup.entertainmentCareers.includes(slave.career)) {
+	if (App.Data.Careers.General.entertainment.includes(slave.career)) {
 		r.push(`${He} has experience with putting on shows from ${his} life before ${he} was a slave, making ${him} more effective at putting on shows.`);
 	}
 
 	// FIXME: can slaves' careers overlap categories?
-	if (setup.farmerCareers.includes(slave.career)) {
-		r.push(`${He} ${setup.entertainmentCareers.includes(slave.career) ? `also` : ``} has experience in working with animals from ${his} life before ${he} was a slave, making ${him} more effective at putting on shows.`);
+	if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
+		r.push(`${He} ${App.Data.Careers.General.entertainment.includes(slave.career) ? `also` : ``} has experience in working with animals from ${his} life before ${he} was a slave, making ${him} more effective at putting on shows.`);
 	}
 
 	if (slave.prestige === 1) {
diff --git a/src/facilities/headGirlSuite/headGirlSuiteFramework.js b/src/facilities/headGirlSuite/headGirlSuiteFramework.js
index 13549f2a2bb..cfc1d1c3e3c 100644
--- a/src/facilities/headGirlSuite/headGirlSuiteFramework.js
+++ b/src/facilities/headGirlSuite/headGirlSuiteFramework.js
@@ -13,7 +13,7 @@ App.Data.Facilities.headGirlSuite = {
 	manager: {
 		position: "Head Girl",
 		assignment: Job.HEADGIRL,
-		careers: App.Data.misc.HGCareers,
+		careers: App.Data.Careers.Leader.HG,
 		skill: "headGirl",
 		publicSexUse: false,
 		fuckdollAccepted: false,
diff --git a/src/facilities/nursery/nurseryFramework.js b/src/facilities/nursery/nurseryFramework.js
index 12f33efb971..daa83f65cee 100644
--- a/src/facilities/nursery/nurseryFramework.js
+++ b/src/facilities/nursery/nurseryFramework.js
@@ -13,7 +13,7 @@ App.Data.Facilities.nursery = {
 	manager: {
 		position: "matron",
 		assignment: Job.MATRON,
-		careers: App.Data.misc.matronCareers,
+		careers: App.Data.Careers.Leader.matron,
 		skill: "matron",
 		publicSexUse: false,
 		fuckdollAccepted: false,
diff --git a/src/facilities/penthouse/penthouseFramework.js b/src/facilities/penthouse/penthouseFramework.js
index b64a186b4b4..8d9ba1d62e2 100644
--- a/src/facilities/penthouse/penthouseFramework.js
+++ b/src/facilities/penthouse/penthouseFramework.js
@@ -74,7 +74,7 @@ App.Data.Facilities.penthouse = {
 	manager: {
 		position: "Recruiter",
 		assignment: Job.RECRUITER,
-		careers: App.Data.misc.recruiterCareers,
+		careers: App.Data.Careers.Leader.recruiter,
 		skill: "recruiter",
 		publicSexUse: false,
 		fuckdollAccepted: false,
diff --git a/src/facilities/schoolroom/schoolroomFramework.js b/src/facilities/schoolroom/schoolroomFramework.js
index 9f2b6511143..d27511c7e17 100644
--- a/src/facilities/schoolroom/schoolroomFramework.js
+++ b/src/facilities/schoolroom/schoolroomFramework.js
@@ -13,7 +13,7 @@ App.Data.Facilities.schoolroom = {
 	manager: {
 		position: "schoolteacher",
 		assignment: Job.TEACHER,
-		careers: App.Data.misc.schoolteacherCareers,
+		careers: App.Data.Careers.Leader.schoolteacher,
 		skill: "teacher",
 		publicSexUse: false,
 		fuckdollAccepted: false,
diff --git a/src/facilities/servantsQuarters/servantsQuartersFramework.js b/src/facilities/servantsQuarters/servantsQuartersFramework.js
index 24e00796f48..17c0dbd7c6e 100644
--- a/src/facilities/servantsQuarters/servantsQuartersFramework.js
+++ b/src/facilities/servantsQuarters/servantsQuartersFramework.js
@@ -13,7 +13,7 @@ App.Data.Facilities.servantsQuarters = {
 	manager: {
 		position: "stewardess",
 		assignment: Job.STEWARD,
-		careers: App.Data.misc.stewardessCareers,
+		careers: App.Data.Careers.Leader.stewardess,
 		skill: "stewardess",
 		publicSexUse: false,
 		fuckdollAccepted: false,
diff --git a/src/facilities/spa/spaFramework.js b/src/facilities/spa/spaFramework.js
index 95d8bd88f82..ed4e8fc5215 100644
--- a/src/facilities/spa/spaFramework.js
+++ b/src/facilities/spa/spaFramework.js
@@ -13,7 +13,7 @@ App.Data.Facilities.spa = {
 	manager: {
 		position: "attendant",
 		assignment: Job.ATTENDANT,
-		careers: App.Data.misc.attendantCareers,
+		careers: App.Data.Careers.Leader.attendant,
 		skill: "attendant",
 		publicSexUse: false,
 		fuckdollAccepted: false,
diff --git a/src/gui/Encyclopedia/encyclopedia.tw b/src/gui/Encyclopedia/encyclopedia.tw
index c25ad91e0ed..97011f770b9 100644
--- a/src/gui/Encyclopedia/encyclopedia.tw
+++ b/src/gui/Encyclopedia/encyclopedia.tw
@@ -635,166 +635,166 @@ SLAVE ASSIGNMENTS:
 	Slaves may retain useful experience from their lives before enslavement. Freedom and slavery are so different that the bonuses slaves get are minor. Careers fall into categories, each with its own bonus; these are:
 
 	<br><br><br>__Grateful__ (offering a potential bonus to @@.mediumaquamarine;<<= App.Encyclopedia.Dialog.linkSC("trust", "Trust")>>@@), including slaves who were
-	<<for $i = 0; $i < setup.gratefulCareers.length; $i++>>
-		<<if $i == setup.gratefulCareers.length-1>>
-			and <<print setup.gratefulCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.General.grateful.length; $i++>>
+		<<if $i == App.Data.Careers.General.grateful.length-1>>
+			and <<print App.Data.Careers.General.grateful[$i]>>.
 		<<else>>
-			<<print setup.gratefulCareers[$i]>>,
+			<<print App.Data.Careers.General.grateful[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Menial__ (offering a potential bonus to @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "From Rebellious to Devoted")>>@@), including slaves who were
-	<<for $i = 0; $i < setup.menialCareers.length; $i++>>
-		<<if $i == setup.menialCareers.length-1>>
-			and <<print setup.menialCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.General.menial.length; $i++>>
+		<<if $i == App.Data.Careers.General.menial.length-1>>
+			and <<print App.Data.Careers.General.menial[$i]>>.
 		<<else>>
-			<<print setup.menialCareers[$i]>>,
+			<<print App.Data.Careers.General.menial[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Servant__ (offering a bonus to <<= App.Encyclopedia.Dialog.linkSC("keeping your estate", "Servitude")>>), including slaves who were
-	<<for $i = 0; $i < setup.servantCareers.length; $i++>>
-		<<if $i == setup.servantCareers.length-1>>
-			and <<print setup.servantCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.servant.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.servant.length-1>>
+			and <<print App.Data.Careers.Leader.servant[$i]>>.
 		<<else>>
-			<<print setup.servantCareers[$i]>>,
+			<<print App.Data.Careers.Leader.servant[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Entertainment__ (offering a bonus to <<= App.Encyclopedia.Dialog.linkSC("public service", "Public Service")>>), including slaves who were
-	<<for $i = 0; $i < setup.entertainmentCareers.length; $i++>>
-		<<if $i == setup.entertainmentCareers.length-1>>
-			and <<print setup.entertainmentCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.General.entertainment.length; $i++>>
+		<<if $i == App.Data.Careers.General.entertainment.length-1>>
+			and <<print App.Data.Careers.General.entertainment[$i]>>.
 		<<else>>
-			<<print setup.entertainmentCareers[$i]>>,
+			<<print App.Data.Careers.General.entertainment[$i]>>,
 		<</if>>
 	<</for>>
 	If a slave has been in the arcology for a long time and is intelligent, she can qualify for this bonus without career experience.
 
 	<br><br><br>__Sex work__ (offering a bonus to <<= App.Encyclopedia.Dialog.linkSC("whoring", "Whoring")>>), including slaves who were
-	<<for $i = 0; $i < setup.whoreCareers.length; $i++>>
-		<<if $i == setup.whoreCareers.length-1>>
-			and <<print setup.whoreCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.General.whore.length; $i++>>
+		<<if $i == App.Data.Careers.General.whore.length-1>>
+			and <<print App.Data.Careers.General.whore[$i]>>.
 		<<else>>
-			<<print setup.whoreCareers[$i]>>,
+			<<print App.Data.Careers.General.whore[$i]>>,
 		<</if>>
 	<</for>>
 	If a slave is very sexually experienced, she can qualify for this bonus without career experience.
 
 	<br><br><br>__Leadership__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Head Girl", "Head Girl")>>), including slaves who were
-	<<for $i = 0; $i < setup.HGCareers.length; $i++>>
-		<<if $i == setup.HGCareers.length-1>>
-			and <<print setup.HGCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.HG.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.HG.length-1>>
+			and <<print App.Data.Careers.Leader.HG[$i]>>.
 		<<else>>
-			<<print setup.HGCareers[$i]>>,
+			<<print App.Data.Careers.Leader.HG[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Procuring__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Madam", "Madam")>>), including slaves who were
-	<<for $i = 0; $i < setup.madamCareers.length; $i++>>
-		<<if $i == setup.madamCareers.length-1>>
-			and <<print setup.madamCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.madam.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.madam.length-1>>
+			and <<print App.Data.Careers.Leader.madam[$i]>>.
 		<<else>>
-			<<print setup.madamCareers[$i]>>,
+			<<print App.Data.Careers.Leader.madam[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Musical__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("DJ", "DJ")>>), including slaves who were
-	<<for $i = 0; $i < setup.DJCareers.length; $i++>>
-		<<if $i == setup.DJCareers.length-1>>
-			and <<print setup.DJCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.DJ.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.DJ.length-1>>
+			and <<print App.Data.Careers.Leader.DJ[$i]>>.
 		<<else>>
-			<<print setup.DJCareers[$i]>>,
+			<<print App.Data.Careers.Leader.DJ[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Defensive__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Bodyguard", "Bodyguard")>>), including slaves who were
-	<<for $i = 0; $i < setup.bodyguardCareers.length; $i++>>
-		<<if $i == setup.bodyguardCareers.length-1>>
-			and <<print setup.bodyguardCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.bodyguard.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.bodyguard.length-1>>
+			and <<print App.Data.Careers.Leader.bodyguard[$i]>>.
 		<<else>>
-			<<print setup.bodyguardCareers[$i]>>,
+			<<print App.Data.Careers.Leader.bodyguard[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Convincing__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Recruiter", "Recruiter")>>), including slaves who were
-	<<for $i = 0; $i < setup.recruiterCareers.length; $i++>>
-		<<if $i == setup.recruiterCareers.length-1>>
-			and <<print setup.recruiterCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.recruiter.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.recruiter.length-1>>
+			and <<print App.Data.Careers.Leader.recruiter[$i]>>.
 		<<else>>
-			<<print setup.recruiterCareers[$i]>>,
+			<<print App.Data.Careers.Leader.recruiter[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Security__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Wardeness", "Wardeness")>>), including slaves who were
-	<<for $i = 0; $i < setup.wardenessCareers.length; $i++>>
-		<<if $i == setup.wardenessCareers.length-1>>
-			and <<print setup.wardenessCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.wardeness.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.wardeness.length-1>>
+			and <<print App.Data.Careers.Leader.wardeness[$i]>>.
 		<<else>>
-			<<print setup.wardenessCareers[$i]>>,
+			<<print App.Data.Careers.Leader.wardeness[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Medical__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Nurse", "Nurse")>>), including slaves who were
-	<<for $i = 0; $i < setup.nurseCareers.length; $i++>>
-		<<if $i == setup.nurseCareers.length-1>>
-			and <<print setup.nurseCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.nurse.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.nurse.length-1>>
+			and <<print App.Data.Careers.Leader.nurse[$i]>>.
 		<<else>>
-			<<print setup.nurseCareers[$i]>>,
+			<<print App.Data.Careers.Leader.nurse[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Counseling__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Attendant", "Attendant")>>), including slaves who were
-	<<for $i = 0; $i < setup.attendantCareers.length; $i++>>
-		<<if $i == setup.attendantCareers.length-1>>
-			and <<print setup.attendantCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.attendant.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.attendant.length-1>>
+			and <<print App.Data.Careers.Leader.attendant[$i]>>.
 		<<else>>
-			<<print setup.attendantCareers[$i]>>,
+			<<print App.Data.Careers.Leader.attendant[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Nannying__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Matron", "Matron")>>), including slaves who were
-	<<for $i = 0; $i < setup.matronCareers.length; $i++>>
-		<<if $i == setup.matronCareers.length-1>>
-			and <<print setup.matronCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.matron.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.matron.length-1>>
+			and <<print App.Data.Careers.Leader.matron[$i]>>.
 		<<else>>
-			<<print setup.matronCareers[$i]>>,
+			<<print App.Data.Careers.Leader.matron[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Accounting__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Stewardess", "Stewardess")>>), including slaves who were
-	<<for $i = 0; $i < setup.stewardessCareers.length; $i++>>
-		<<if $i == setup.stewardessCareers.length-1>>
-			and <<print setup.stewardessCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.stewardess.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.stewardess.length-1>>
+			and <<print App.Data.Careers.Leader.stewardess[$i]>>.
 		<<else>>
-			<<print setup.stewardessCareers[$i]>>,
+			<<print App.Data.Careers.Leader.stewardess[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Husbandry__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Milkmaid", "Milkmaid")>>), including slaves who were
-	<<for $i = 0; $i < setup.milkmaidCareers.length; $i++>>
-		<<if $i == setup.milkmaidCareers.length-1>>
-			and <<print setup.milkmaidCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.milkmaid.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.milkmaid.length-1>>
+			and <<print App.Data.Careers.Leader.milkmaid[$i]>>.
 		<<else>>
-			<<print setup.milkmaidCareers[$i]>>,
+			<<print App.Data.Careers.Leader.milkmaid[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Farming__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Farmer", "Farmer")>>), including slaves who were
-	<<for $i = 0; $i < setup.farmerCareers.length; $i++>>
-		<<if $i == setup.farmerCareers.length-1>>
-			and <<print setup.farmerCareers[$i]>>.
+	<<for $i = 0; $i < App.Data.Careers.Leader.farmer.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.farmer.length-1>>
+			and <<print App.Data.Careers.Leader.farmer[$i]>>.
 		<<else>>
-			<<print setup.farmerCareers[$i]>>,
+			<<print App.Data.Careers.Leader.farmer[$i]>>,
 		<</if>>
 	<</for>>
 
 	<br><br><br>__Teaching__ (offering a bonus as <<= App.Encyclopedia.Dialog.linkSC("Schoolteacher", "Schoolteacher")>>, including slaves who were
-	<<for $i = 0; $i < setup.schoolteacherCareers.length; $i++>>
-		<<if $i == setup.schoolteacherCareers.length-1>>
-			and <<print setup.schoolteacherCareers[$i]>>,
+	<<for $i = 0; $i < App.Data.Careers.Leader.schoolteacher.length; $i++>>
+		<<if $i == App.Data.Careers.Leader.schoolteacher.length-1>>
+			and <<print App.Data.Careers.Leader.schoolteacher[$i]>>,
 		<<else>>
-			<<print setup.schoolteacherCareers[$i]>>,
+			<<print App.Data.Careers.Leader.schoolteacher[$i]>>,
 		<</if>>
 	<</for>>
 	<br><br>Slaves who have been in slavery long enough that it is effectively their career get a bonus to @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "Devotion")>>.@@ Slaves can forget their career experience in an industrialized Dairy, but if they do so and remain sane, they will get a special bonus to both @@.hotpink;<<= App.Encyclopedia.Dialog.linkSC("devotion", "Devotion")>>@@ and @@.mediumaquamarine;<<= App.Encyclopedia.Dialog.linkSC("trust", "Trust")>>.@@
diff --git a/src/js/assayJS.js b/src/js/assayJS.js
index 5764907752a..98536871a96 100644
--- a/src/js/assayJS.js
+++ b/src/js/assayJS.js
@@ -1414,7 +1414,7 @@ globalThis.deadliness = function(slave) {
 		deadliness += 2;
 	}
 
-	if (setup.bodyguardCareers.includes(slave.career)) {
+	if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) {
 		deadliness += 1;
 	} else if (slave.skill.bodyguard >= V.masteredXP) {
 		deadliness += 1;
diff --git a/src/js/birth/birth.js b/src/js/birth/birth.js
index 157c3a08045..1332f6d618a 100644
--- a/src/js/birth/birth.js
+++ b/src/js/birth/birth.js
@@ -769,7 +769,7 @@ globalThis.birth = function(slave, {birthStorm = false, cSection = false} = {})
 				birthDamage -= 3;
 			}
 
-			if (App.Data.misc.nurseCareers.includes(slave.career) && slave.fetish !== "mindbroken" && slave.muscles >= -95) {
+			if (App.Data.Careers.Leader.nurse.includes(slave.career) && slave.fetish !== "mindbroken" && slave.muscles >= -95) {
 				r.push([
 					`Thanks to ${his}`,
 					App.UI.DOM.makeElement("span", `previous career,`, ["health", "inc"]),
diff --git a/src/js/economyJS.js b/src/js/economyJS.js
index 28a85dd937d..c321c0d4adc 100644
--- a/src/js/economyJS.js
+++ b/src/js/economyJS.js
@@ -37,7 +37,7 @@ globalThis.DJRepBonus = function() {
 		value += 0.05;
 		// $His great beauty is a further draw, even when $he's in $his DJ booth, but especially when $he comes out to dance.
 	}
-	if (setup.DJCareers.includes(S.DJ.career)) {
+	if (App.Data.Careers.Leader.DJ.includes(S.DJ.career)) {
 		value += 0.05;
 		// $He has musical experience from $his life before $he was a slave, a grounding that gives $his tracks actual depth.
 	} else if (S.DJ.skill.DJ >= V.masteredXP) {
@@ -867,7 +867,7 @@ globalThis.calculateCosts = (function() {
 		if (slave.assignment === Job.QUARTER) {
 			effectiveness *= 1.1;
 		}
-		if (setup.servantCareers.includes(slave.career) || slave.skill.servant >= V.masteredXP) {
+		if (App.Data.Careers.Leader.servant.includes(slave.career) || slave.skill.servant >= V.masteredXP) {
 			effectiveness *= 1.1;
 		}
 		effectiveness = Math.trunc(effectiveness * restEffects(slave) / 10);
@@ -1504,7 +1504,7 @@ globalThis.slaveJobValues = function(lowerClassSexDemandRef, middleClassSexDeman
 		} else if (V.AgePenalty === 0) {
 			App.EndWeek.saVars.madamBonus += 0.05;
 		}
-		if (setup.madamCareers.includes(madam.career)) {
+		if (App.Data.Careers.Leader.madam.includes(madam.career)) {
 			// $He has experience from $his life before $he was a slave that helps $him in the seedy business of selling other people's bodies for sex.
 			App.EndWeek.saVars.madamBonus += 0.05;
 		} else if (madam.skill.madam >= V.masteredXP) {
@@ -2411,7 +2411,7 @@ globalThis.agentBonus = function(arcology) {
 	if (agent.actualAge > 35) {
 		bonus++;
 	}
-	if (agent.career === "an arcology owner" || setup.HGCareers.includes(agent.career)) {
+	if (agent.career === "an arcology owner" || App.Data.Careers.Leader.HG.includes(agent.career)) {
 		bonus++;
 	}
 	if (agent.fetishStrength > 95) {
diff --git a/src/js/slaveCostJS.js b/src/js/slaveCostJS.js
index 1a557772410..86af6b013ca 100644
--- a/src/js/slaveCostJS.js
+++ b/src/js/slaveCostJS.js
@@ -492,7 +492,7 @@ globalThis.BeautyArray = (function() {
 		adjustBeauty(`Skill: Entertainment (${slave.skill.entertainment})`, (slave.skill.entertainment / 10));
 		adjustBeauty(`Skill: Whoring (${slave.skill.whoring})`, (slave.skill.whoring / 10));
 		adjustBeauty(`Age: Visual Age (${slave.visualAge})`, -(3 * slave.visualAge));
-		if (setup.entertainmentCareers.includes(slave.career)) {
+		if (App.Data.Careers.General.entertainment.includes(slave.career)) {
 			adjustBeauty("Career: Entertainment", (20));
 		} else if (V.week - slave.weekAcquired >= 20 && slave.skill.entertainment >= 100) {
 			adjustBeauty("Experience: Entertainment", (10));
@@ -1960,7 +1960,7 @@ globalThis.FResultArray = (function() {
 	 * @param {App.Entity.SlaveState} slave
 	 */
 	function calcCareer(slave) {
-		if (setup.whoreCareers.includes(slave.career)) {
+		if (App.Data.Careers.General.whore.includes(slave.career)) {
 			adjustFResult(`Whore Knowledge: Career`, 1);
 		} else if (slave.counter.oral + slave.counter.anal + slave.counter.vaginal + slave.counter.mammary + slave.counter.penetrative > 1000) {
 			adjustFResult(`Whore Knowledge: Experience`, 1);
@@ -2536,95 +2536,95 @@ globalThis.slaveCostBeauty = (function() {
 		if (slave.career !== 0) {
 			if (slave.career === "a slave") {
 				multiplier += 0.1;
-			} else if (setup.bodyguardCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.wardenessCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.attendantCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.attendant.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.matronCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.matron.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.schoolteacherCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.stewardessCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.milkmaidCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.farmerCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.madamCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.madam.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.DJCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.DJ.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.HGCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.HG.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.recruiterCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) {
 				multiplier += 0.1;
-			} else if (setup.entertainmentCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.General.entertainment.includes(slave.career)) {
 				multiplier += 0.05;
-			} else if (setup.whoreCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.General.whore.includes(slave.career)) {
 				multiplier += 0.05;
-			} else if (setup.gratefulCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.General.grateful.includes(slave.career)) {
 				multiplier += 0.05;
-			} else if (setup.menialCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.General.menial.includes(slave.career)) {
 				multiplier += 0.05;
-			} else if (setup.servantCareers.includes(slave.career)) {
+			} else if (App.Data.Careers.Leader.servant.includes(slave.career)) {
 				multiplier += 0.05;
 			}
 		}
 		if (V.week - slave.weekAcquired >= 20 && slave.skill.entertainment >= 100) {
-			if (!setup.entertainmentCareers.includes(slave.career)) {
+			if (!App.Data.Careers.General.entertainment.includes(slave.career)) {
 				multiplier += 0.05;
 			}
 		}
 		if (slave.counter.oral + slave.counter.anal + slave.counter.vaginal + slave.counter.mammary + slave.counter.penetrative > 1000) {
-			if (!setup.whoreCareers.includes(slave.career)) {
+			if (!App.Data.Careers.General.whore.includes(slave.career)) {
 				multiplier += 0.05;
 			}
 		}
-		if (!setup.bodyguardCareers.includes(slave.career) && slave.skill.bodyguard >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.bodyguard.includes(slave.career) && slave.skill.bodyguard >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.wardenessCareers.includes(slave.career) && slave.skill.wardeness >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.wardeness.includes(slave.career) && slave.skill.wardeness >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.attendantCareers.includes(slave.career) && slave.skill.attendant >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.attendant.includes(slave.career) && slave.skill.attendant >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.matronCareers.includes(slave.career) && slave.skill.matron >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.matron.includes(slave.career) && slave.skill.matron >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.schoolteacherCareers.includes(slave.career) && slave.skill.teacher >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.schoolteacher.includes(slave.career) && slave.skill.teacher >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.stewardessCareers.includes(slave.career) && slave.skill.stewardess >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.stewardess.includes(slave.career) && slave.skill.stewardess >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.milkmaidCareers.includes(slave.career) && slave.skill.milkmaid >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.milkmaid.includes(slave.career) && slave.skill.milkmaid >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.farmerCareers.includes(slave.career) && slave.skill.farmer >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.farmer.includes(slave.career) && slave.skill.farmer >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.madamCareers.includes(slave.career) && slave.skill.madam >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.madam.includes(slave.career) && slave.skill.madam >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.DJCareers.includes(slave.career) && slave.skill.DJ >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.DJ.includes(slave.career) && slave.skill.DJ >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.HGCareers.includes(slave.career) && slave.skill.headGirl >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.HG.includes(slave.career) && slave.skill.headGirl >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.recruiterCareers.includes(slave.career) && slave.skill.recruiter >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.recruiter.includes(slave.career) && slave.skill.recruiter >= V.masteredXP) {
 			multiplier += 0.1;
 		}
-		if (!setup.servantCareers.includes(slave.career) && slave.skill.servant >= V.masteredXP) {
+		if (!App.Data.Careers.Leader.servant.includes(slave.career) && slave.skill.servant >= V.masteredXP) {
 			multiplier += 0.05;
 		}
-		if (!setup.entertainmentCareers.includes(slave.career) && slave.skill.entertainer >= V.masteredXP) {
+		if (!App.Data.Careers.General.entertainment.includes(slave.career) && slave.skill.entertainer >= V.masteredXP) {
 			multiplier += 0.05;
 		}
-		if (!setup.whoreCareers.includes(slave.career) && slave.skill.whore >= V.masteredXP) {
+		if (!App.Data.Careers.General.whore.includes(slave.career) && slave.skill.whore >= V.masteredXP) {
 			multiplier += 0.05;
 		}
 	}
diff --git a/src/js/utilsFC.js b/src/js/utilsFC.js
index d37a136c761..fcc21db0f89 100644
--- a/src/js/utilsFC.js
+++ b/src/js/utilsFC.js
@@ -2410,13 +2410,13 @@ globalThis.upgradeMultiplier = function(skill) {
  */
 globalThis.randomCareer = function(slave) {
 	if (slave.actualAge < 16) {
-		return setup.veryYoungCareers.random();
+		return App.Data.Careers.General.veryYoung.random();
 	} else if (slave.actualAge <= 24) {
-		return setup.youngCareers.random();
+		return App.Data.Careers.General.young.random();
 	} else if (slave.intelligenceImplant >= 10) {
-		return setup.educatedCareers.random();
+		return App.Data.Careers.General.educated.random();
 	} else {
-		return setup.uneducatedCareers.random();
+		return App.Data.Careers.General.uneducated.random();
 	}
 };
 
diff --git a/src/neighbor/neighborInteract.js b/src/neighbor/neighborInteract.js
index 85b8f77f570..494c2fc4754 100644
--- a/src/neighbor/neighborInteract.js
+++ b/src/neighbor/neighborInteract.js
@@ -203,7 +203,7 @@ App.Neighbor.Interact = (function() {
 			}
 			if (agent.career === "an arcology owner") {
 				r.push(`${His} career as an arcology owner ${himself} is, obviously, useful to ${him}.`);
-			} else if (setup.HGCareers.includes(agent.career)) {
+			} else if (App.Data.Careers.Leader.HG.includes(agent.career)) {
 				r.push(`${His} career in leadership helps ${him}.`);
 			}
 			if (agent.fetishStrength > 95) {
diff --git a/src/npc/descriptions/career.js b/src/npc/descriptions/career.js
index 8a9c7826e1a..25d069597e0 100644
--- a/src/npc/descriptions/career.js
+++ b/src/npc/descriptions/career.js
@@ -27,96 +27,96 @@ App.Desc.career = function(slave) {
 				r.push(`${He} has spent time as a cow in an industrial dairy, an experience that marked ${him} deeply.`);
 			} else {
 				r.push(`Before ${he} was a slave, ${he} was`);
-				if (setup.bodyguardCareers.includes(slave.career)) {
+				if (App.Data.Careers.Leader.bodyguard.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a Bodyguard.`);
-				} else if (setup.wardenessCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.wardeness.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a Wardeness for`);
 					if (V.cellblock === 0) {
 						r.push(`a Cellblock.`);
 					} else {
 						r.push(`${V.cellblockName}.`);
 					}
-				} else if (setup.attendantCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.attendant.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as an Attendant for`);
 					if (V.spa === 0) {
 						r.push(`a Spa.`);
 					} else {
 						r.push(`${V.spaName}.`);
 					}
-				} else if (setup.matronCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.matron.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a Matron for`);
 					if (V.nursery === 0 && V.nurseryNannies === 0) {
 						r.push(`a Nursery.`);
 					} else {
 						r.push(`${V.nurseryName}.`);
 					}
-				} else if (setup.nurseCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.nurse.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a Nurse for`);
 					if (V.clinic === 0) {
 						r.push(`a Clinic.`);
 					} else {
 						r.push(`${V.clinicName}.`);
 					}
-				} else if (setup.schoolteacherCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.schoolteacher.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a Schoolteacher for`);
 					if (V.schoolroom === 0) {
 						r.push(`a Schoolroom.`);
 					} else {
 						r.push(`${V.schoolroomName}.`);
 					}
-				} else if (setup.stewardessCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.stewardess.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a Stewardess for`);
 					if (V.servantsQuarters === 0) {
 						r.push(`a Servant's Quarters.`);
 					} else {
 						r.push(`${V.servantsQuartersName}.`);
 					}
-				} else if (setup.milkmaidCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.milkmaid.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a Milkmaid for`);
 					if (V.dairy === 0) {
 						r.push(`a Dairy.`);
 					} else {
 						r.push(`${V.dairyName}.`);
 					}
-				} else if (setup.farmerCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.farmer.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a Farmer for`);
 					if (V.farmyard === 0) {
 						r.push(`a Farmyard.`);
 					} else {
 						r.push(`${V.farmyardName}.`);
 					}
-				} else if (setup.madamCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.madam.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a Madam for`);
 					if (V.brothel === 0) {
 						r.push(`a Brothel.`);
 					} else {
 						r.push(`${V.brothelName}.`);
 					}
-				} else if (setup.DJCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.DJ.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a DJ for`);
 					if (V.club === 0) {
 						r.push(`a Club.`);
 					} else {
 						r.push(`${V.clubName}.`);
 					}
-				} else if (setup.HGCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.HG.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a Head Girl.`);
-				} else if (setup.recruiterCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.recruiter.includes(slave.career)) {
 					r.push(`${career}, giving ${him} potential as a recruiter.`);
-				} else if (setup.entertainmentCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.General.entertainment.includes(slave.career)) {
 					r.push(`${career}, giving ${him} a slight edge at entertainment.`);
-				} else if (setup.whoreCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.General.whore.includes(slave.career)) {
 					r.push(`${career}, giving ${him} a slight edge at sexual commerce.`);
-				} else if (setup.gratefulCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.General.grateful.includes(slave.career)) {
 					r.push(`${career}, so ${he} can remember what it's like`);
 					if (slave.career === "prisoner") {
 						r.push(`no one looking out for you.`);
 					} else {
 						r.push(`to have the freedom to starve.`);
 					}
-				} else if (setup.menialCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.General.menial.includes(slave.career)) {
 					r.push(`${career}, giving ${him} experience following orders.`);
-				} else if (setup.servantCareers.includes(slave.career)) {
+				} else if (App.Data.Careers.Leader.servant.includes(slave.career)) {
 					r.push(`${career}, giving ${him} a slight edge in housekeeping.`);
 				} else {
 					r.push(`${career}.`);
@@ -124,7 +124,7 @@ App.Desc.career = function(slave) {
 			}
 		}
 		if (V.week - slave.weekAcquired >= 20 && slave.skill.entertainment >= 100) {
-			if (!setup.entertainmentCareers.includes(slave.career)) {
+			if (!App.Data.Careers.General.entertainment.includes(slave.career)) {
 				r.push(`${He} has gotten enough experience to be as charismatic as any professional`);
 				if (slave.counter.oral + slave.counter.anal + slave.counter.vaginal + slave.counter.mammary + slave.counter.penetrative > 1000) {
 					r.push(`entertainer, and has been fucked so many times that a free sex worker could teach ${him} nothing.`);
@@ -133,7 +133,7 @@ App.Desc.career = function(slave) {
 				}
 			}
 		} else if (slave.counter.oral + slave.counter.anal + slave.counter.vaginal + slave.counter.mammary + slave.counter.penetrative > 1000) {
-			if (!setup.whoreCareers.includes(slave.career)) {
+			if (!App.Data.Careers.General.whore.includes(slave.career)) {
 				r.push(`${He} has been fucked so many times that a free sex worker could teach ${him} nothing.`);
 			}
 		}
diff --git a/src/npc/generate/generateLeadershipSlave.js b/src/npc/generate/generateLeadershipSlave.js
index 11f45fad4cd..f8530474b7d 100644
--- a/src/npc/generate/generateLeadershipSlave.js
+++ b/src/npc/generate/generateLeadershipSlave.js
@@ -71,7 +71,7 @@ globalThis.generateLeadershipSlave = function(input, location) {
 			if (jsRandom(0, 2) === 0) {
 				configureLimbs(slave, "all", 5);
 			}
-			slave.career = either(App.Data.misc.bodyguardCareers);
+			slave.career = either(App.Data.Careers.Leader.bodyguard);
 			break;
 		case "Wardeness":
 			slave.energy = jsRandom(80, 100);
@@ -81,7 +81,7 @@ globalThis.generateLeadershipSlave = function(input, location) {
 			slave.muscles = jsRandom(50, 80);
 			slave.skill.combat = 1;
 			applyMaleGenitalia({dick: jsRandom(3, 6), balls: jsRandom(3, 6), prostate: either(1, 1, 1, 2, 2, 3)});
-			slave.career = either(App.Data.misc.wardenessCareers);
+			slave.career = either(App.Data.Careers.Leader.wardeness);
 			break;
 			// Management
 		case "Headgirl":
@@ -94,7 +94,7 @@ globalThis.generateLeadershipSlave = function(input, location) {
 			Object.assign(slave.skill, {entertainment: 100, whoring: 100, anal: 100, oral: 100, vaginal: 100});
 			slave.vagina = jsRandom(3, 4);
 			applyMaleGenitalia({dick: jsRandom(3, 5), balls: jsRandom(3, 6), prostate: either(1, 1, 2)});
-			slave.career = either(App.Data.misc.HGCareers);
+			slave.career = either(App.Data.Careers.Leader.HG);
 			break;
 		case "Teacher":
 			slave.fetish = "dom";
@@ -105,7 +105,7 @@ globalThis.generateLeadershipSlave = function(input, location) {
 			slave.face = jsRandom(41, 90);
 			slave.vagina = jsRandom(3, 4);
 			applyMaleGenitalia({dick: jsRandom(3, 5), balls: jsRandom(3, 6), prostate: either(1, 1, 1, 2, 2, 3)});
-			slave.career = either(App.Data.misc.schoolteacherCareers);
+			slave.career = either(App.Data.Careers.Leader.schoolteacher);
 			break;
 		case "Nurse":
 			slave.fetish = "dom";
@@ -113,7 +113,7 @@ globalThis.generateLeadershipSlave = function(input, location) {
 			slave.muscles = jsRandom(6, 50);
 			slave.face = jsRandom(41, 90);
 			slave.sexualQuirk = "caring";
-			slave.career = either(App.Data.misc.nurseCareers);
+			slave.career = either(App.Data.Careers.Leader.nurse);
 			break;
 		case "Attendant":
 		case "Motherly Attendant":
@@ -131,20 +131,20 @@ globalThis.generateLeadershipSlave = function(input, location) {
 				slave.preg = 0;
 			}
 			eyeSurgery(slave, "both", either(0, 2, 2) === 2 ? "normal" : "blind");
-			slave.career = either(App.Data.misc.attendantCareers);
+			slave.career = either(App.Data.Careers.Leader.attendant);
 			break;
 		case "Matron":
 			slave.sexualQuirk = "caring";
 			slave.counter.birthsTotal = jsRandom(2, 4);
 			slave.vagina = 3;
 			slave.face = jsRandom(60, 90);
-			slave.career = either(App.Data.misc.matronCareers);
+			slave.career = either(App.Data.Careers.Leader.matron);
 			break;
 		case "Stewardess":
 			slave.energy = jsRandom(70, 90);
 			slave.fetish = "dom";
 			slave.fetishStrength = 100;
-			slave.career = either(App.Data.misc.stewardessCareers);
+			slave.career = either(App.Data.Careers.Leader.stewardess);
 			break;
 		case "Milkmaid":
 			slave.muscles = jsRandom(31, 60);
@@ -152,7 +152,7 @@ globalThis.generateLeadershipSlave = function(input, location) {
 			slave.sexualQuirk = "caring";
 			slave.behavioralQuirk = "funny";
 			applyMaleGenitalia({dick: jsRandom(3, 5), balls: jsRandom(4, 9), prostate: either(1, 1, 1, 2)});
-			slave.career = either(App.Data.misc.milkmaidCareers);
+			slave.career = either(App.Data.Careers.Leader.milkmaid);
 			break;
 		case "Farmer":
 			slave.muscles = jsRandom(41, 70);
@@ -160,19 +160,19 @@ globalThis.generateLeadershipSlave = function(input, location) {
 			slave.weight = jsRandom(0, 30);
 			slave.height = Math.round(Height.random(slave, {skew: 3, spread: .2, limitMult: [1, 4]}));
 			applyMaleGenitalia({dick: jsRandom(3, 5), balls: jsRandom(4, 9), prostate: either(1, 1, 1, 2)});
-			slave.career = either(App.Data.misc.farmerCareers);
+			slave.career = either(App.Data.Careers.Leader.farmer);
 			break;
 			// Entertain
 		case "DJ":
 			slave.skill.entertainment = 100;
 			slave.muscles = jsRandom(6, 30);
 			slave.face = 100;
-			slave.career = either(App.Data.misc.DJCareers);
+			slave.career = either(App.Data.Careers.Leader.DJ);
 			break;
 		case "Madam":
 			slave.skill.whoring = 100;
 			applyMaleGenitalia({dick: jsRandom(3, 5), balls: jsRandom(3, 5), prostate: either(1, 1, 1, 2)});
-			slave.career = either(App.Data.misc.madamCareers);
+			slave.career = either(App.Data.Careers.Leader.madam);
 			break;
 		case "Concubine":
 			slave.prestige = 3;
diff --git a/src/npc/generate/generateMarketSlave.js b/src/npc/generate/generateMarketSlave.js
index 785166e73b9..61e336d9a9c 100644
--- a/src/npc/generate/generateMarketSlave.js
+++ b/src/npc/generate/generateMarketSlave.js
@@ -1375,7 +1375,7 @@ globalThis.generateMarketSlave = function(market = "kidnappers", numArcology = 1
 			slave.origin = "You bought $him from the underage raiders' slave market.";
 			slave.trust -= 25;
 			setHealth(slave, jsRandom(-30, 70), Math.max(normalRandInt(10, 4), 0), Math.max(normalRandInt(0, 2), 0), Math.max(normalRandInt(0, 0.7), 0), jsRandom(30, 100));
-			slave.career = setup.veryYoungCareers.random();
+			slave.career = App.Data.Careers.General.veryYoung.random();
 			generateSalonModifications(slave);
 			slave.birthWeek = 0;
 			if (slave.vagina !== -1) {
diff --git a/src/npc/generate/generateNewSlaveJS.js b/src/npc/generate/generateNewSlaveJS.js
index f6c0b212861..ebc7c1822f3 100644
--- a/src/npc/generate/generateNewSlaveJS.js
+++ b/src/npc/generate/generateNewSlaveJS.js
@@ -1404,23 +1404,23 @@ globalThis.GenerateNewSlave = (function() {
 	function generateCareer() {
 		if (V.AgePenalty === 1) {
 			if (slave.actualAge < 16) {
-				slave.career = setup.veryYoungCareers.random();
+				slave.career = App.Data.Careers.General.veryYoung.random();
 			} else if (slave.actualAge <= 24) {
-				slave.career = setup.youngCareers.random();
+				slave.career = App.Data.Careers.General.young.random();
 			} else if (slave.intelligenceImplant >= 15) {
-				slave.career = setup.educatedCareers.random();
+				slave.career = App.Data.Careers.General.educated.random();
 			} else {
-				slave.career = setup.uneducatedCareers.random();
+				slave.career = App.Data.Careers.General.uneducated.random();
 			}
 		} else {
 			if (slave.actualAge < 16) {
-				slave.career = setup.veryYoungCareers.random();
+				slave.career = App.Data.Careers.General.veryYoung.random();
 			} else if (slave.intelligenceImplant >= 15) {
-				slave.career = setup.educatedCareers.random();
+				slave.career = App.Data.Careers.General.educated.random();
 			} else if (slave.actualAge <= 24) {
-				slave.career = setup.youngCareers.random();
+				slave.career = App.Data.Careers.General.young.random();
 			} else {
-				slave.career = setup.uneducatedCareers.random();
+				slave.career = App.Data.Careers.General.uneducated.random();
 			}
 		}
 	}
diff --git a/src/npc/startingGirls/startingGirls.js b/src/npc/startingGirls/startingGirls.js
index 0a0861e8cc5..9e0206d1848 100644
--- a/src/npc/startingGirls/startingGirls.js
+++ b/src/npc/startingGirls/startingGirls.js
@@ -225,30 +225,30 @@ App.StartingGirls.career = function(slave) {
 	if (V.AgePenalty === 1) {
 		if (slave.actualAge < 16) {
 			text = "Very young careers: ";
-			pullDown = render(setup.veryYoungCareers);
+			pullDown = render(App.Data.Careers.General.veryYoung);
 		} else if (slave.actualAge <= 24) {
 			text = "Young careers: ";
-			pullDown = render(setup.youngCareers);
+			pullDown = render(App.Data.Careers.General.young);
 		} else if (slave.intelligenceImplant >= 15) {
 			text = "Educated careers: ";
-			pullDown = render(setup.educatedCareers);
+			pullDown = render(App.Data.Careers.General.educated);
 		} else {
 			text = "Uneducated careers: ";
-			pullDown = render(setup.uneducatedCareers);
+			pullDown = render(App.Data.Careers.General.uneducated);
 		}
 	} else {
 		if (slave.actualAge < 16) {
 			text = "Very young careers: ";
-			pullDown = render(setup.veryYoungCareers);
+			pullDown = render(App.Data.Careers.General.veryYoung);
 		} else if (slave.intelligenceImplant >= 15) {
 			text = "Educated careers: ";
-			pullDown = render(setup.educatedCareers);
+			pullDown = render(App.Data.Careers.General.educated);
 		} else if (slave.actualAge <= 24) {
 			text = "Young careers: ";
-			pullDown = render(setup.youngCareers);
+			pullDown = render(App.Data.Careers.General.young);
 		} else {
 			text = "Uneducated careers: ";
-			pullDown = render(setup.uneducatedCareers);
+			pullDown = render(App.Data.Careers.General.uneducated);
 		}
 	}
 	function render(options) {
diff --git a/src/npc/startingGirls/startingGirls.tw b/src/npc/startingGirls/startingGirls.tw
index 76596a3ee22..5439453d4e8 100644
--- a/src/npc/startingGirls/startingGirls.tw
+++ b/src/npc/startingGirls/startingGirls.tw
@@ -81,7 +81,7 @@
 				<div class="indent">
 					<<link "Head Girl Prospect" "Starting Girls">>
 						<<set $activeSlave = App.StartingGirls.generate({ minAge: 36, maxAge: 44 })>>
-						<<set $activeSlave.career = setup.HGCareers.random(), $activeSlave.intelligence = 70, $activeSlave.intelligenceImplant = 0>>
+						<<set $activeSlave.career = App.Data.Careers.Leader.HG.random(), $activeSlave.intelligence = 70, $activeSlave.intelligenceImplant = 0>>
 					<</link>>
 					<span class="note">
 						Inexpensive potential to become a great right hand woman
diff --git a/src/uncategorized/reFSAcquisition.tw b/src/uncategorized/reFSAcquisition.tw
index 135cb9796ba..80d81b60a50 100644
--- a/src/uncategorized/reFSAcquisition.tw
+++ b/src/uncategorized/reFSAcquisition.tw
@@ -178,7 +178,7 @@
 <<set $oneTimeDisableDisability = 1>>
 <<set $activeSlave = GenerateNewSlave("XX")>>
 <<set $activeSlave.origin = "$He was sold to you as a way of disposing of an inconveniently pregnant young $woman.">>
-<<set $activeSlave.career = setup.youngCareers.random()>>
+<<set $activeSlave.career = App.Data.Careers.General.young.random()>>
 <<run generateSalonModifications($activeSlave)>>
 <<run setHealth($activeSlave, jsRandom(-20, 20), undefined, undefined, 0, 10)>>
 <<set $activeSlave.devotion = random(-45,-25)>>
@@ -223,7 +223,7 @@
 <<set $oneTimeDisableDisability = 1>>
 <<set $activeSlave = GenerateNewSlave()>>
 <<set $activeSlave.origin = "$He was voluntarily enslaved after $he decided that your paternalistic arcology was a better place for advancement than the old world.">>
-<<set $activeSlave.career = setup.educatedCareers.random()>>
+<<set $activeSlave.career = App.Data.Careers.General.educated.random()>>
 <<run setHealth($activeSlave, jsRandom(40, 60), undefined, undefined, 0, 0)>>
 <<set $activeSlave.devotion = random(25,45)>>
 <<set $activeSlave.trust = random(25,45)>>
@@ -578,7 +578,7 @@
 <<set $activeSlave.lips = 15>>
 <<set $activeSlave.devotion = random(25,45)>>
 <<set $activeSlave.trust = random(25,45)>>
-<<set $activeSlave.career = setup.educatedCareers.random()>>
+<<set $activeSlave.career = App.Data.Careers.General.educated.random()>>
 <<run setHealth($activeSlave, jsRandom(20, 40), undefined, undefined, 0, 0)>>
 <<set $activeSlave.intelligence = random(51,95)>>
 <<set $activeSlave.intelligenceImplant = 15>>
@@ -775,7 +775,7 @@
 <<set $activeSlave.lips = 0>>
 <<set $activeSlave.devotion = random(25,45)>>
 <<set $activeSlave.trust = random(25,45)>>
-<<set $activeSlave.career = setup.educatedCareers.random()>>
+<<set $activeSlave.career = App.Data.Careers.General.educated.random()>>
 <<run setHealth($activeSlave, jsRandom(20, 40), undefined, undefined, 0, 0)>>
 <<set $activeSlave.intelligence = random(51,95)>>
 <<set $activeSlave.intelligenceImplant = 15>>
@@ -866,7 +866,7 @@
 <<set $oneTimeDisableDisability = 1>>
 <<set $activeSlave = GenerateNewSlave()>>
 <<set $activeSlave.origin = "$He was voluntarily enslaved after $he decided that your arcology was the best place for $him to get the steroids that $he'd allowed to define $his life.">>
-<<set $activeSlave.career = setup.uneducatedCareers.random()>>
+<<set $activeSlave.career = App.Data.Careers.General.uneducated.random()>>
 <<run generateSalonModifications($activeSlave)>>
 <<run setHealth($activeSlave, jsRandom(20, 40), undefined, undefined, 0, 20)>>
 <<set $activeSlave.muscles = 100>>
@@ -1023,7 +1023,7 @@
 <<set $oneTimeDisableDisability = 1>>
 <<set $activeSlave = GenerateNewSlave("XX")>>
 <<set $activeSlave.origin = "$He sold $himself to you in the hopes that $his body would help keep humanity alive.">>
-<<set $activeSlave.career = setup.youngCareers.random()>>
+<<set $activeSlave.career = App.Data.Careers.General.young.random()>>
 <<run generateSalonModifications($activeSlave)>>
 <<run setHealth($activeSlave, jsRandom(40, 60), undefined, undefined, 0, 0)>>
 <<set $activeSlave.devotion = random(25,35)>>
diff --git a/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw b/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw
index 21f03484a15..d1b7b8b213b 100644
--- a/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw
+++ b/src/uncategorized/reFSEgyptianRevivalistAcquisition.tw
@@ -25,11 +25,11 @@
 <<set $activeSlave.relationshipTarget = _secondSlave.ID>>
 
 <<if (_secondSlave.actualAge <= 22)>>
-	<<set _secondSlave.career = setup.youngCareers.random()>>
+	<<set _secondSlave.career = App.Data.Careers.General.young.random()>>
 <<elseif (_secondSlave.intelligenceImplant >= 15)>>
-	<<set _secondSlave.career = setup.educatedCareers.random()>>
+	<<set _secondSlave.career = App.Data.Careers.General.educated.random()>>
 <<else>>
-	<<set _secondSlave.career = setup.uneducatedCareers.random()>>
+	<<set _secondSlave.career = App.Data.Careers.General.uneducated.random()>>
 <</if>>
 
 /* they've been fucking, obviously, so no virginity */
diff --git a/src/uncategorized/reMalefactor.tw b/src/uncategorized/reMalefactor.tw
index c2152bbb3c0..e0294b2f9f0 100644
--- a/src/uncategorized/reMalefactor.tw
+++ b/src/uncategorized/reMalefactor.tw
@@ -70,7 +70,7 @@
 <<set $oneTimeDisableDisability = 1>>
 <<set $activeSlave = GenerateNewSlave("XX")>>
 <<set $activeSlave.origin = "You sentenced $him to enslavement as a punishment for smuggling slaves within $his body.">>
-<<set $activeSlave.career = setup.uneducatedCareers.random()>>
+<<set $activeSlave.career = App.Data.Careers.General.uneducated.random()>>
 <<set $activeSlave.devotion = random(-75,-50)>>
 <<set $activeSlave.trust = random(-75,-60)>>
 <<set $activeSlave.oldDevotion = $activeSlave.devotion>>
@@ -304,7 +304,7 @@
 <<set $fixedRace = _realRace>>
 <<set $activeSlave = GenerateNewSlave()>>
 <<set $activeSlave.origin = "You sentenced $him to enslavement as a punishment for defying local racial segregation laws.">>
-<<set $activeSlave.career = setup.educatedCareers.random()>>
+<<set $activeSlave.career = App.Data.Careers.General.educated.random()>>
 <<set $activeSlave.devotion = random(-75,-50)>>
 <<set $activeSlave.trust = random(-75,-50)>>
 <<set $activeSlave.oldDevotion = $activeSlave.devotion>>
diff --git a/src/uncategorized/reRecruit.tw b/src/uncategorized/reRecruit.tw
index 0c3d813e840..6471b3ee178 100644
--- a/src/uncategorized/reRecruit.tw
+++ b/src/uncategorized/reRecruit.tw
@@ -1496,7 +1496,7 @@
 <<run setHealth($activeSlave, jsRandom(-70, -60), undefined, undefined, undefined, 0)>>
 <<set $activeSlave.intelligence = random(-50,0)>>
 <<set $activeSlave.intelligenceImplant = 0>>
-<<set $activeSlave.career = setup.uneducatedCareers.random()>>
+<<set $activeSlave.career = App.Data.Careers.General.uneducated.random()>>
 <<set $activeSlave.counter.birthsTotal = 2>>
 
 <<case "spoiled daughter">>
@@ -1700,9 +1700,9 @@
 <<set $activeSlave.lactation = 1>>
 <<set $activeSlave.lactationDuration = 2>>
 <<if $activeSlave.actualAge < 13>>
-	<<set $activeSlave.career = setup.veryYoungCareers.random()>>
+	<<set $activeSlave.career = App.Data.Careers.General.veryYoung.random()>>
 <<else>>
-	<<set $activeSlave.career = setup.uneducatedCareers.random()>>
+	<<set $activeSlave.career = App.Data.Careers.General.uneducated.random()>>
 <</if>>
 <<set $activeSlave.vagina = 3>>
 <<set $activeSlave.anus = 0>>
@@ -1836,7 +1836,7 @@
 <<set $activeSlaveOneTimeMaxAge = 24>>
 <<set $oneTimeDisableDisability = 1>>
 <<set $activeSlave = GenerateNewSlave("XX")>>
-<<set $activeSlave.career = setup.bodyguardCareers.random()>>
+<<set $activeSlave.career = App.Data.Careers.Leader.bodyguard.random()>>
 <<set $activeSlave.origin = "$He is an unsuccessful cyborg experiment that was set free.">>
 <<set $activeSlave.devotion = random(0,20)>>
 <<set $activeSlave.trust = random(0,20)>>
diff --git a/src/uncategorized/recETS.tw b/src/uncategorized/recETS.tw
index a078ae5348a..8775b046f52 100644
--- a/src/uncategorized/recETS.tw
+++ b/src/uncategorized/recETS.tw
@@ -74,7 +74,7 @@
 
 			<<set $activeSlave = GenerateNewSlave("XX")>>
 			<<set $activeSlave.origin = "$He sold $himself into slavery to escape addiction debts.">>
-			<<set $activeSlave.career = setup.uneducatedCareers.random()>>
+			<<set $activeSlave.career = App.Data.Careers.General.uneducated.random()>>
 			<<set $activeSlave.devotion = random(-15,15)>>
 			<<set $activeSlave.trust = random(-15,15)>>
 			<<set $activeSlave.oldDevotion = $activeSlave.devotion>>
@@ -702,7 +702,7 @@
 	<<switch $RecETSevent>>
 		<<case "addict mother daughter">>
 			<<set $activeSlave.origin = "You tricked $his mother into selling $him into slavery to clear addiction debts.">>
-			<<set $activeSlave.career = setup.uneducatedCareers.random()>>
+			<<set $activeSlave.career = App.Data.Careers.General.uneducated.random()>>
 			<<set $activeSlave.slaveName = $activeSlave.birthName>>
 			<<set $activeSlave.ID = $activeSlave.ID + 1000>>
 			<<set $activeSlave.devotion += 10>>
diff --git a/src/uncategorized/seCoursing.tw b/src/uncategorized/seCoursing.tw
index 26264529f57..9ac986fd643 100644
--- a/src/uncategorized/seCoursing.tw
+++ b/src/uncategorized/seCoursing.tw
@@ -141,7 +141,7 @@ You lead your lurcher _activeLurcher.slaveName out on a leash, naked just like t
 	<<set $activeSlave.skill.anal = 0>>
 	<<set $activeSlave.skill.whoring = 0>>
 	<<set $activeSlave.weight = random(-20,100)>>
-	<<set $activeSlave.career = setup.youngCareers.random()>>
+	<<set $activeSlave.career = App.Data.Careers.General.young.random()>>
 <<elseif $origin == "housewife">>
 	<<set $activeSlaveOneTimeMinAge = 35>>
 	<<set $activeSlaveOneTimeMaxAge = 39>>
diff --git a/src/uncategorized/sellSlave.tw b/src/uncategorized/sellSlave.tw
index 7815c4bff94..b27ed6ddbe2 100644
--- a/src/uncategorized/sellSlave.tw
+++ b/src/uncategorized/sellSlave.tw
@@ -257,52 +257,52 @@ A reputable slave appraiser arrives promptly to inspect $him and certify $his qu
 <</if>>
 
 <<if getSlave($AS).career != 0>>
-	<<if setup.bodyguardCareers.includes(getSlave($AS).career)>>
+	<<if App.Data.Careers.Leader.bodyguard.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Bodyguard; that's valuable.
-	<<elseif setup.wardenessCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.wardeness.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Wardeness; that's valuable.
-	<<elseif setup.attendantCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.attendant.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Attendant; that's valuable.
-	<<elseif setup.matronCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.matron.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Matron; that's valuable.
-	<<elseif setup.schoolteacherCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.schoolteacher.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Schoolteacher; that's valuable.
-	<<elseif setup.stewardessCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.stewardess.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Stewardess; that's valuable.
-	<<elseif setup.milkmaidCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.milkmaid.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Milkmaid; that's valuable.
-	<<elseif setup.farmerCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.farmer.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Farmer; that's valuable.
-	<<elseif setup.madamCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.madam.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Madam; that's valuable.
-	<<elseif setup.DJCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.DJ.includes(getSlave($AS).career)>>
 		$His background would help make $him a good DJ; that's valuable.
-	<<elseif setup.HGCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.HG.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Head Girl; that's valuable.
-	<<elseif setup.recruiterCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.recruiter.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Recruiter; that's valuable.
-	<<elseif setup.matronCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.matron.includes(getSlave($AS).career)>>
 		$His background would help make $him a good Matron; that's valuable.
-	<<elseif setup.entertainmentCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.General.entertainment.includes(getSlave($AS).career)>>
 		$His background should help $his flirting a little.
-	<<elseif setup.whoreCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.General.whore.includes(getSlave($AS).career)>>
 		$His background should help $his fucking a little.
-	<<elseif setup.gratefulCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.General.grateful.includes(getSlave($AS).career)>>
 		$His background should make $him a bit more trusting.
-	<<elseif setup.menialCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.General.menial.includes(getSlave($AS).career)>>
 		$His background should make $him a bit more tractable.
-	<<elseif setup.servantCareers.includes(getSlave($AS).career)>>
+	<<elseif App.Data.Careers.Leader.servant.includes(getSlave($AS).career)>>
 		$His background should make $him a good servant.
 	<</if>>
 <</if>>
 <<if ($week-getSlave($AS).weekAcquired >= 20) && (getSlave($AS).skill.entertainment >= 100)>>
-	<<if setup.entertainmentCareers.includes(getSlave($AS).career)>>
+	<<if App.Data.Careers.General.entertainment.includes(getSlave($AS).career)>>
 	<<else>>
 		$He's gotten enough experience as a slave entertainer that $he has the added value of a $girl with a history in entertainment from before $he was a slave.
 	<</if>>
 <</if>>
 <<if (getSlave($AS).counter.oral + getSlave($AS).counter.anal + getSlave($AS).counter.vaginal + getSlave($AS).counter.mammary + getSlave($AS).counter.penetrative > 1000)>>
-	<<if setup.whoreCareers.includes(getSlave($AS).career)>>
+	<<if App.Data.Careers.General.whore.includes(getSlave($AS).career)>>
 	<<else>>
 		I see $he's sexually very experienced; that counts as a stand-in for the usual bonus value from having been a sex worker before enslavement.
 	<</if>>
-- 
GitLab