diff --git a/src/004-base/facility.js b/src/004-base/facility.js
index 1dd973e70a88057bd19d78f0f78b8ff100bf1b36..3405bcccaa94fe62d6e09cea63d8eddefa57c54f 100644
--- a/src/004-base/facility.js
+++ b/src/004-base/facility.js
@@ -5,6 +5,7 @@ App.Data.JobDesc = class {
 		this.assignment = "";
 		this.publicSexUse = false;
 		this.fuckdollAccepted = false;
+		this.broodmotherAccepted = false;
 	}
 }
 
@@ -15,6 +16,7 @@ App.Data.ManagerJobDesc = class extends App.Data.JobDesc {
 		this.shouldSee = true;
 		this.shouldHear = true;
 		this.shouldTalk = true;
+		this.shouldThink = true;
 		this.requiredDevotion = 50;
 		/**
 		 * Applicable careers
@@ -62,22 +64,24 @@ App.Entity.Facilities.Job = class {
 	canEmploy(slave) {
 		let r = [];
 		if (this.isEmployed(slave)) {
-			r.push(`${slave.slaveName} is already assigned to ${this.desc.assignment} at ${this.facility.name}`);
+			r.push(`${slave.slaveName} is already assigned to ${this.desc.assignment} at ${this.facility.name}.`);
 			return r;
 		}
 		if (!this._facilityHasFreeSpace) {
-			r.push(`Capacity of ${this.facility.name} exceeded`);
+			r.push(`Capacity of ${this.facility.name} exceeded.`);
 		}
 		if (slave.assignment === this.desc.assignment) {
-			r.push(`${slave.slaveName} is already assigned to ${this.desc.assignment}`);
+			r.push(`${slave.slaveName} is already assigned to ${this.desc.assignment}.`);
 		}
 		if (this.desc.publicSexUse &&
 			(slave.breedingMark === 1 || State.variables.propOutcome === 1)) {
-			r.push(`${slave.slaveName} is for private use only`);
+			r.push(`${slave.slaveName} is for private use only.`);
 		}
-
 		if (!this.desc.fuckdollAccepted && slave.fuckdoll > 0) {
-			r.push(`Fuckdolls can't ${this.desc.assignment} at ${this.facility.name}`);
+			r.push(`Fuckdolls can't ${this.desc.assignment} at ${this.facility.name}.`);
+		}
+		if (!this.desc.broodmotherAccepted && slave.preg > 37 && slave.broodmother === 2) {
+			r.push(`Birthing broodmothers can't ${this.desc.assignment}.`);
 		}
 		return r;
 	}
@@ -139,7 +143,7 @@ App.Entity.Facilities.Job = class {
 	 * @returns {string}
 	 */
 	static _stdBreakageMessage(slave) {
-		return `${slave.slaveName} must be either more fearful of you or devoted to you`;
+		return `${slave.slaveName} must be either more fearful of you or devoted to you.`;
 	}
 
 	/**
@@ -179,6 +183,9 @@ App.Entity.Facilities.ManagingJob = class extends App.Entity.Facilities.Job {
 		if (this.desc.shouldTalk && !canTalk(slave)) {
 			r.push(`${slave.slaveName} must be able to talk.`);
 		}
+		if (this.desc.shouldThink && slave.fetish === "mindbroken") {
+			r.push(`${slave.slaveName} must possess cognition.`);
+		}
 		return r;
 	}
 	/**
@@ -315,11 +322,11 @@ App.Entity.Facilities.Facility = class {
 		job = job || this.desc.defaultJob;
 		const j = this.job(job);
 		if (j === undefined) {
-			console.log(`Can't find job ${job} at ${this.name}`); // eslint-disable-line no-console
+			console.log(`Can't find job ${job} at ${this.name}.`); // eslint-disable-line no-console
 		}
 		// if there are more than one jobs at this facility, test them too
 		if (Object.keys(this.desc.jobs).length > 1 && this.isHosted(slave)) {
-			return [`${slave.slaveName} is already assigned to ${slave.assignment} at ${this.name}`];
+			return [`${slave.slaveName} is already assigned to ${slave.assignment} at ${this.name}.`];
 		}
 		let r = j.canEmploy(slave);
 		return r;
diff --git a/src/facilities/armory/armoryFramework.js b/src/facilities/armory/armoryFramework.js
index a425babcdbe6a0980989afa7748f48deeba4c8d4..01d50b48357cecc4786a0e2019714f009c4e5da6 100644
--- a/src/facilities/armory/armoryFramework.js
+++ b/src/facilities/armory/armoryFramework.js
@@ -10,10 +10,12 @@ App.Data.Facilities.armory = {
 		skill: "bodyguard",
 		publicSexUse: true,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: false,
+		shouldThink: true,
 		requiredDevotion: 51
 	}
 }
diff --git a/src/facilities/brothel/brothelFramework.js b/src/facilities/brothel/brothelFramework.js
index 08b10e5e0571c16108ecfed0dad988e12fd68b75..a816578a5f17e0895b81fdad4dbf596a87822ef7 100644
--- a/src/facilities/brothel/brothelFramework.js
+++ b/src/facilities/brothel/brothelFramework.js
@@ -17,10 +17,12 @@ App.Data.Facilities.brothel = {
 		skill: null,
 		publicSexUse: true,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: true,
 		shouldSee: true,
 		shouldHear: true,
-		shouldTalk: false,
+		shouldTalk: true,
+		shouldThink: true,
 		requiredDevotion: 50
 	}
 }
diff --git a/src/facilities/cellblock/cellblockFramework.js b/src/facilities/cellblock/cellblockFramework.js
index abe34d7f6ddefc714e6e8ee0985c393c7c91bf6a..c07c3473efeb9dae4826f6425358df59f21b8d02 100644
--- a/src/facilities/cellblock/cellblockFramework.js
+++ b/src/facilities/cellblock/cellblockFramework.js
@@ -17,10 +17,12 @@ App.Data.Facilities.cellblock = {
 		skill: "wardeness",
 		publicSexUse: false,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: false,
+		shouldThink: false,
 		requiredDevotion: 51
 
 	}
diff --git a/src/facilities/clinic/clinicFramework.js b/src/facilities/clinic/clinicFramework.js
index 99b07df7ddd1078fca1edb436cce847919335d52..d2192203b0e8b87cfd2398499d619d2466af491a 100644
--- a/src/facilities/clinic/clinicFramework.js
+++ b/src/facilities/clinic/clinicFramework.js
@@ -17,10 +17,12 @@ App.Data.Facilities.clinic = {
 		skill: "nurse",
 		publicSexUse: false,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: true,
 		shouldSee: true,
-		shouldHear: false,
+		shouldHear: true,
 		shouldTalk: false,
+		shouldThink: true,
 		requiredDevotion: 51
 	}
 }
diff --git a/src/facilities/club/clubFramework.js b/src/facilities/club/clubFramework.js
index 1413a05522f71871773b0b736d794d232f4ae4c4..131d99d7e2cdcd1ce51f4d7410cd1741918ed161 100644
--- a/src/facilities/club/clubFramework.js
+++ b/src/facilities/club/clubFramework.js
@@ -17,10 +17,12 @@ App.Data.Facilities.club = {
 		skill: "DJ",
 		publicSexUse: false,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: true,
 		shouldSee: false,
 		shouldHear: true,
 		shouldTalk: true,
+		shouldThink: true,
 		requiredDevotion: 51
 	}
 }
diff --git a/src/facilities/dairy/dairyFramework.js b/src/facilities/dairy/dairyFramework.js
index 880c2fde1074ccd705529ecc6528efbc01598590..9f960df229e9786e8a883c177c354c392d75817e 100644
--- a/src/facilities/dairy/dairyFramework.js
+++ b/src/facilities/dairy/dairyFramework.js
@@ -17,10 +17,12 @@ App.Data.Facilities.dairy = {
 		skill: "milkmaid",
 		publicSexUse: false,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: false,
+		shouldThink: true,
 		requiredDevotion: 21
 	}
 }
diff --git a/src/facilities/farmyard/farmyardFramework.js b/src/facilities/farmyard/farmyardFramework.js
index 83da5ddab33c58e048a472f2ebc1753772fd99d4..79ba34d55359e25ea8bc7ac881b132b47e19b762 100644
--- a/src/facilities/farmyard/farmyardFramework.js
+++ b/src/facilities/farmyard/farmyardFramework.js
@@ -17,10 +17,12 @@ App.Data.Facilities.farmyard = {
 		skill: "farmer",
 		publicSexUse: false,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: false,
+		shouldThink: true,
 		requiredDevotion: 51
 	}
 }
diff --git a/src/facilities/masterSuite/masterSuiteFramework.js b/src/facilities/masterSuite/masterSuiteFramework.js
index 5323992062c969dab3d057d3f4f6a8c87048bbc2..947d9836965a200e6f3d7d006a1a72937f35b152 100644
--- a/src/facilities/masterSuite/masterSuiteFramework.js
+++ b/src/facilities/masterSuite/masterSuiteFramework.js
@@ -17,10 +17,12 @@ App.Data.Facilities.masterSuite = {
 		skill: null,
 		publicSexUse: false,
 		fuckdollAccepted: false,
+		broodmotherAccepted: true,
 		shouldWalk: false,
 		shouldSee: false,
 		shouldHear: false,
 		shouldTalk: false,
+		shouldThink: false,
 		requiredDevotion: 51
 	}
 }
diff --git a/src/facilities/nursery/nurseryFramework.js b/src/facilities/nursery/nurseryFramework.js
index e13ffb6c2aa80e61afda00b09505a532fce00879..83fd33bfba52c947ba0fe3827624164cea302972 100644
--- a/src/facilities/nursery/nurseryFramework.js
+++ b/src/facilities/nursery/nurseryFramework.js
@@ -17,10 +17,12 @@ App.Data.Facilities.nursery = {
 		skill: "matron",
 		publicSexUse: false,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: true,
-		shouldSee: false,
+		shouldSee: true,
 		shouldHear: true,
-		shouldTalk: false,
+		shouldTalk: true,
+		shouldThink: true,
 		requiredDevotion: 51
 	}
 }
diff --git a/src/facilities/penthouse/penthouseFramework.js b/src/facilities/penthouse/penthouseFramework.js
index da735a4c1d29ca7e48e91944062c8a2a34d8e365..9aa441d94bfebad934190450b0b54c9696751442 100644
--- a/src/facilities/penthouse/penthouseFramework.js
+++ b/src/facilities/penthouse/penthouseFramework.js
@@ -72,10 +72,12 @@ App.Data.Facilities.penthouse = {
 		skill: "headGirl",
 		publicSexUse: false,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: true,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: true,
+		shouldThink: true,
 		requiredDevotion: 51
 	}
 }
diff --git a/src/facilities/schoolroom/schoolroomFramework.js b/src/facilities/schoolroom/schoolroomFramework.js
index ecce67e09d6a6451d85b3aa6baf9b033f86caa5d..b3bd82c9fd73cc9bdb4526726015e7e7f8d3e7de 100644
--- a/src/facilities/schoolroom/schoolroomFramework.js
+++ b/src/facilities/schoolroom/schoolroomFramework.js
@@ -17,10 +17,12 @@ App.Data.Facilities.schoolroom = {
 		skill: "teacher",
 		publicSexUse: false,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: false,
 		shouldSee: true,
 		shouldHear: true,
 		shouldTalk: true,
+		shouldThink: true,
 		requiredDevotion: 51
 	}
 }
diff --git a/src/facilities/servantsQuarters/servantsQuartersFramework.js b/src/facilities/servantsQuarters/servantsQuartersFramework.js
index 81667ec56a2389ea378832b213f3dd3b9e58b9bf..8056e30154127b509bcbb1425d1b568fb998be8d 100644
--- a/src/facilities/servantsQuarters/servantsQuartersFramework.js
+++ b/src/facilities/servantsQuarters/servantsQuartersFramework.js
@@ -17,10 +17,12 @@ App.Data.Facilities.servantsQuaters = {
 		skill: "stewardess",
 		publicSexUse: false,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: true,
 		shouldSee: true,
 		shouldHear: true,
-		shouldTalk: false,
+		shouldTalk: true,
+		shouldThink: true,
 		requiredDevotion: 51
 	}
 }
diff --git a/src/facilities/spa/spaFramework.js b/src/facilities/spa/spaFramework.js
index 6260720716c412377db4eb6ca9328c164b40c076..5bfe6ed053ac0cc2872e79b770e382909f65d99c 100644
--- a/src/facilities/spa/spaFramework.js
+++ b/src/facilities/spa/spaFramework.js
@@ -17,10 +17,12 @@ App.Data.Facilities.spa = {
 		skill: "attendant",
 		publicSexUse: false,
 		fuckdollAccepted: false,
+		broodmotherAccepted: false,
 		shouldWalk: true,
 		shouldSee: false,
 		shouldHear: true,
 		shouldTalk: false,
+		shouldThink: true,
 		requiredDevotion: 51
 	}
 }