diff --git a/CHANGELOG.md b/CHANGELOG.md
index 19ba1147def5d74b0710e3d69aa2392ad224d989..a422617ad8b134281fb8e123e2848e01d4868965 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
 
 ## Unreleased
 
+* Fixes.
+* New Security Expansion features (boost rep gain and both relationship with the peacekeeper General as an alternative to selling slaves).
+* c-section option available during report birth.
+* Updated slave art.
+* Edo or Chinese revivalist slave's name now follow the surname-name order.
+* Can purchase larger slave capacity slots for some facilities.
+* Move Special Force deployment focuses from AfterActionReport to Firebase.
+* Bodyguard's sword can now reflect some Future Societies.
+
 ## 0.10.7.1-4.0.0-alpha.14 - 2022-03-25
 
 * added loans
diff --git a/src/data/backwardsCompatibility/buildingsBC.js b/src/Mods/SecExp/buildings/SecExpBuildingsBC.js
similarity index 100%
rename from src/data/backwardsCompatibility/buildingsBC.js
rename to src/Mods/SecExp/buildings/SecExpBuildingsBC.js
diff --git a/src/Mods/SecExp/js/Unit.js b/src/Mods/SecExp/js/Unit.js
index 19042f35501f383921a324396b8a6f2c30692732..76b01e3197cfe0f0e1e0467353bf3b8db72d53ad 100644
--- a/src/Mods/SecExp/js/Unit.js
+++ b/src/Mods/SecExp/js/Unit.js
@@ -159,17 +159,16 @@ App.Mods.SecExp.unit = (function() {
 			}
 			));
 		}
-
-		linkArray.push(bulkUpgrade(V.SecExp.units[type].squads));
+		if (bulkUpgrade(V.SecExp.units[type].squads) !== "N/A") {
+			linkArray.push(bulkUpgrade(V.SecExp.units[type].squads));
+		}
 		App.UI.DOM.appendNewElement("div", list, App.UI.DOM.generateLinksStrip(linkArray));
-
 		if (type === "slaves") {
 			App.UI.DOM.appendNewElement("div", list, App.UI.market({menialWorkersOnly: true}));
 		}
 
 		for (const unit of V.SecExp.units[type].squads) {
 			linkArray = [];
-
 			App.UI.DOM.appendNewElement("div", unitDetail, describe(unit, false));
 			linkArray.push(App.UI.DOM.makeTextBox(unit.platoonName, str => { unit.platoonName = str; App.UI.reload(); }));
 			linkArray.push(App.UI.DOM.link(`Disband the unit`, () => {
@@ -215,7 +214,22 @@ App.Mods.SecExp.unit = (function() {
 					));
 				}
 			}
-			linkArray.push(bulkUpgrade(unit));
+			if (bulkUpgrade(unit) !== "N/A") {
+				linkArray.push(bulkUpgrade(unit));
+			}
+			if (V.peacekeepers.state === 3 && type !== "bots") {
+				const unitAdjust = Math.ceil((unit.troops / 10) + (unit.maxTroops / 10) + (unit.training / 10) + unit.equip + unit.commissars + unit.cyber + unit.medics + unit.SF);
+				const cost = forceNeg(25000 * (1.5 + unitAdjust));
+				linkArray.push(App.UI.DOM.link(`Send this unit to improve your relationship with General ${V.peacekeepers.generalName}. Costs ${cashFormat(cost)}.`, () => { 
+					V.peacekeepers.attitude += Math.ceil(unitAdjust / 5);
+					cashX(cost, "securityExpansion");
+					unitFree(type).add(unit.troops);
+					V.SecExp.units[type].squads.deleteAt(unit);
+					V.SecExp.battles.lastSelection.deleteAt(unit);
+					App.UI.reload();
+				}
+				));
+			}
 			App.UI.DOM.appendNewElement("div", unitDetail, App.UI.DOM.generateLinksStrip(linkArray));
 
 			if (V.SecExp.settings.showStats === 1) {
@@ -363,7 +377,6 @@ App.Mods.SecExp.unit = (function() {
 			}
 			App.UI.DOM.appendNewElement("p", list, unitDetail);
 		}
-
 		return list;
 
 		/** Creates a bulk upgrade link for the unit that is passed.
@@ -371,8 +384,19 @@ App.Mods.SecExp.unit = (function() {
 		 */
 		function bulkUpgrade(unit) {
 			unit = Array.isArray(unit) ? unit : [unit];
-			let el = document.createElement("a");
-
+			const el = document.createElement("a");
+			const price = unit.map(getCost).reduce((acc, cur) => acc + cur, 0);
+			if (price !== 0) {
+				el.append(App.UI.DOM.link(`Bulk upgrade for ${cashFormat(price)}`, () => {
+					unit.map(upgradeUnit).reduce((acc, cur) => acc + cur, 0);
+					cashX(price, "securityExpansion");
+					App.UI.reload();
+				}
+				));
+				return el;
+			} else {
+				return "N/A";
+			}
 			/**
 			 * @param {FC.SecExp.PlayerHumanUnitData} x
 			 */
@@ -392,7 +416,6 @@ App.Mods.SecExp.unit = (function() {
 					}
 				}
 			}
-
 			/**
 			 * @param {FC.SecExp.PlayerHumanUnitData} x
 			 */
@@ -418,17 +441,6 @@ App.Mods.SecExp.unit = (function() {
 				}
 				return Math.ceil(cost * 1.1);
 			}
-
-			const price = unit.map(getCost).reduce((acc, cur) => acc + cur, 0);
-			if (price !== 0) {
-				el.append(App.UI.DOM.link(`Bulk upgrade for ${cashFormat(price)}`, () => {
-					unit.map(upgradeUnit).reduce((acc, cur) => acc + cur, 0);
-					cashX(price, "securityExpansion");
-					App.UI.reload();
-				}
-				));
-			}
-			return el;
 		}
 
 		/**
@@ -438,7 +450,7 @@ App.Mods.SecExp.unit = (function() {
 		function upgradeCost(upgrade, unit) {
 			let cost = 0;
 			const isBots = checkID(unit.ID) === "bots";
-			switch(upgrade) {
+			switch (upgrade) {
 				case "squadSize":
 					if (isBots) {
 						if (unit.maxTroops < 80) {
@@ -528,7 +540,7 @@ App.Mods.SecExp.unit = (function() {
 			));
 		}
 
-		App.UI.DOM.appendNewElement("span", el, `${input.platoonName}`, "bold");
+		App.UI.DOM.appendNewElement("span", el, `${input.platoonName}`, ["bold"]);
 		App.UI.DOM.appendNewElement("span", el, `${!brief ? ``:`. `} `);
 		if (unitType !== "bots") {
 			if (brief === 0) {
@@ -646,7 +658,7 @@ App.Mods.SecExp.unit = (function() {
 				el.append(`Training: `);
 				if (input.training <= 33) {
 					el.append(`low. `);
-				} else if(input.training <= 66) {
+				} else if (input.training <= 66) {
 					el.append(`medium. `);
 				} else {
 					el.append(`high. `);
@@ -693,7 +705,7 @@ App.Mods.SecExp.unit = (function() {
 	 */
 	function squads(type = '') {
 		let array = Object.values(V.SecExp.units).map(s => s.squads).flatten();
-		switch(type) {
+		switch (type) {
 			case "human": return array.filter(s => checkID(s.ID) !== "bots");
 		}
 		return array;
@@ -740,7 +752,7 @@ App.Mods.SecExp.unit = (function() {
 		 * @returns {number}
 		 */
 		function print() {
-			switch(type) {
+			switch (type) {
 				case "slaves": return V.menials;
 				case "militia":
 				case "mercs":
@@ -752,7 +764,7 @@ App.Mods.SecExp.unit = (function() {
 		 * @returns {boolean}
 		 */
 		function canUpgrade() {
-			switch(type) {
+			switch (type) {
 				case "bots": return V.cash >= secBotsCost;
 				case "slaves": return V.menials > 0;
 				case "militia":
@@ -766,7 +778,7 @@ App.Mods.SecExp.unit = (function() {
 		 * @returns {void}
 		 */
 		function add(value) {
-			switch(type) {
+			switch (type) {
 				case "slaves": V.menials += value; break;
 				case "militia":
 				case "mercs":
@@ -779,7 +791,7 @@ App.Mods.SecExp.unit = (function() {
 		 * @returns {void}
 		 */
 		function remove(value) {
-			switch(type) {
+			switch (type) {
 				case "slaves": V.menials -= value; break;
 				case "militia":
 				case "mercs":
@@ -792,7 +804,7 @@ App.Mods.SecExp.unit = (function() {
 		 * @returns {void}
 		 */
 		function set(value) {
-			switch(type) {
+			switch (type) {
 				case "slaves": V.menials = value; break;
 				case "militia":
 				case "mercs":
diff --git a/src/Mods/SecExp/potentialToDo.txt b/src/Mods/SecExp/potentialToDo.txt
index a53ae5135b300109486c44a4428438ae2a0271c8..67146f66eadf907043ce82daa957c15c0f589b24 100644
--- a/src/Mods/SecExp/potentialToDo.txt
+++ b/src/Mods/SecExp/potentialToDo.txt
@@ -3,10 +3,6 @@ Hexall90's last merged commit: 52dde0b3
 - Can other Arcologies assist with the attacks from your Arcology?
 	Like if you're being attacked by raiders they send some rapid-deployment forces and help you but when it's the Old world they wouldn't in fear of being criticize or something
 - Or sending your troops to help other arcologies to earn reputation, POW as menials and captured military assets for cash, to boost cultural exchange and economic development. Or choosing not to send troops (if rival) to lower its value and to preserve your cultural independence.
-- While at it something for barracks(general? commissar?) and riot center([Insert player title there]'s Will?? Big Sister? ) too would be nice
-- While at it decoupling of propaganda slave and recruiter when?
-- Would it be possible to add option for assigning hacker to security HQ that would work similarly to giving office for recruiter in propaganda hub? Preferably with smiling man slave giving extra bonuses there
-- Does having a large standing army give any bonus to authority/reputation growth?
 
 	Fine, I'll Do It Myself
 	Pirates? Enemy navies? - 328279
@@ -27,6 +23,5 @@ Hexall90's last merged commit: 52dde0b3
 - So would be taking slaves from slave units as personal ones. The slave units would pretty much be menial slaves I'd imagine, not sex slaves.
 - If I think about it having a squad of personal slaves that you equip in whatever gear you want and send out to capture new slaves, raid caravans and cities and shit would be pretty sweet, I would even call it special forces but that's taken, also the combat skill is still a binary thing which makes the whole thing pointless.
 	How about to start off with option to send one or two of your combat trained slaves to assist the merc's when they are on a raid with the possibility of receiving battle wounds.
-- How about to start off with option to send one or two of your combat trained slaves to assist the merc's when they are on a raid with the possibility of receiving battle wounds.
 - If there are choices, they should be along the lines of "higher risk, higher reward" (defeating the enemy with fewer casualties and damage if it goes right, but suffering higher casualties and damage if it goes wrong), or things like accepting more/less military casualties for better/worse protection of economic assets (costing money/damaging economy) and civilians (costing reputation/damaging population).
-- The ability to send units to the general to increase relationship as an alternative to sending slaves.
\ No newline at end of file
+- Support Neo-Imperial Warhounds in battles.
diff --git a/src/endWeek/economics/reputation.js b/src/endWeek/economics/reputation.js
index 5c71d91a13a87165d42aae5a8366fe1a2e2febdb..de6e1493a4ca0e41a0a756c893cd8154ba4436f8 100644
--- a/src/endWeek/economics/reputation.js
+++ b/src/endWeek/economics/reputation.js
@@ -315,30 +315,35 @@ App.EndWeek.reputation = function() {
 			r.push(`The grim statue of the Smiling Man outside your arcology <span class="green">reminds the world of who managed to eliminate such a threat.</span>`);
 			repX(100, "architecture");
 		}
-
 		if (V.SecExp.edicts.weaponsLaw === 3) {
 			r.push(`The absence of any kind of restriction on weaponry within your arcology is <span class="green">welcomed by your citizens</span> as sign of your respect for the ideals the Free Cities stand for.`);
 			repX(20, "edicts");
 		}
+		if (V.SecExp.buildings.propHub && V.SecExp.buildings.propHub.upgrades.fakeNews > 0) {
+			r.push(`The authenticity department produces and distributes copious amounts of plausible enough news and reports, <span class="green">increasing your reputation.</span>`);
+			repX(10 * V.SecExp.buildings.propHub.upgrades.fakeNews, "policies");
+		}
+		const activeUnits = App.Mods.SecExp.battle.activeUnits();
+		if (activeUnits >= 4) {
+			r.push(`Your military is`);
+			if (activeUnits >= 9) {
+				r.push(`<span class="green">massive; commanding so many troops greatly</span>`);
+			} else if (activeUnits >= 7) {
+				r.push(`<span class="green">huge; commanding such a number of soldiers</span>`);
+			} else if (activeUnits >= 4) {
+				r.push(`<span class="green">at a decent size; commanding a small army</span>`);
+			}
+			r.push(`increases your reputation.`);
+			repX(12 * activeUnits, "securityExpansion");
+		}
 	}
 
 	if (V.SF.Toggle && V.SF.Active >= 1 && V.SF.UC.Assign > 0) {
 		const sfArray = [];
-		sfArray.push(`Assigning a`);
-		if (V.SF.UC.Assign === 1) {
-			sfArray.push(`small`);
-		} else {
-			sfArray.push(`large`);
-		}
+		sfArray.push(`Assigning a ${V.SF.UC.Assign === 1 ? 'small' : 'large'}`);
 		sfArray.push(`portion of ${V.SF.Lower} to <span class="green">undercover work, slightly boosts your reputation.</span>`);
 		App.Events.addNode(el, sfArray, "div");
-		let value;
-		if (V.SF.UC.Assign === 1) {
-			value = V.SF.ArmySize * 0.05;
-		} else {
-			value = V.SF.ArmySize * 0.25;
-		}
-		repX(value, "specialForces");
+		repX(V.SF.ArmySize * (V.SF.UC.Assign === 1 ? 0.05 : 0.25), "specialForces");
 	} else if (V.SF.FS.BadOutcome === "ISOLATION") {
 		r.push(App.UI.DOM.makeElement("div", `Your citizens are <span class="red">very displeased</span> that you are hosting a legion of heavily armed squatters in your basement.`));
 		repX(forceNeg(V.SF.ArmySize + App.Mods.SF.upgrades.total()), "specialForces");
@@ -904,11 +909,6 @@ App.EndWeek.reputation = function() {
 		repX(500, "policies");
 	}
 
-	if (V.secExpEnabled > 0 && V.SecExp.buildings.propHub && V.SecExp.buildings.propHub.upgrades.fakeNews > 0) {
-		r.push(`The authenticity department produces and distributes copious amounts of plausible enough news and reports, <span class="green">increasing your reputation.</span>`);
-		repX(10 * V.SecExp.buildings.propHub.upgrades.fakeNews, "policies");
-	}
-
 	App.Events.addParagraph(el, r);
 	r = [];
 	const repGain = hashSum(V.lastWeeksRepIncome);