diff --git a/src/facilities/farmyard/farmyard.js b/src/facilities/farmyard/farmyard.js
index 1bfc82c73f8a95614afb56a4e79b831550a2c7ec..f3209acfdcbb987cb9b4cd6837207ee58c0f6e7e 100644
--- a/src/facilities/farmyard/farmyard.js
+++ b/src/facilities/farmyard/farmyard.js
@@ -7,12 +7,142 @@ App.Facilities.Farmyard.clearAnimalsBought = function() {
 App.Facilities.Farmyard.rules = function() {
 	const frag = new DocumentFragment();
 
-	if (V.farmyardShows && (V.canines || V.hooved || V.felines)) {
+	if (App.Entity.facilities.farmyard.employeesIDs().size > 0) {	// TODO: redo this with V.farmyardShowgirls
+		if (V.farmyardShows && (V.canines || V.hooved || V.felines)) {
+			const
+				desc = document.createElement("div"),
+				option = document.createElement("span"),
+				bold = document.createElement("span");
+
+				bold.classList.add("bold");
+
+			desc.append(`Slaves `);
+			bold.append(`are`);
+			desc.append(bold, ` putting on shows with animals. `);
+
+			option.append(App.UI.DOM.passageLink("End shows", "Farmyard", () => {
+				V.farmyardShows = 0;
+				V.farmyardBreeding = 0;
+				V.farmyardRestraints = 0;
+			}));
+
+			desc.append(option);
+			frag.append(desc);
+
+			if (V.seeBestiality) {
+				if (V.farmyardBreeding) {
+					const
+						desc = document.createElement("div"),
+						option = document.createElement("span"),
+						bold = document.createElement("span");
+
+					bold.classList.add("bold");
+
+					desc.append(`Slaves `);
+					bold.append(`are`);
+					desc.append(bold, ` being bred with animals. `);
+
+					option.append(App.UI.DOM.passageLink("End breeding", "Farmyard", () => {
+						V.farmyardShows = 1;
+						V.farmyardBreeding = 0;
+						V.farmyardRestraints = 0;
+					}));
+
+					desc.append(option);
+					frag.append(desc);
+
+					if (V.farmyardRestraints) {
+						const
+							desc = document.createElement("div"),
+							option = document.createElement("span"),
+							bold = document.createElement("span");
+
+						bold.classList.add("bold");
+
+						bold.append(`All of the slaves`);
+						desc.append(` are being restrained. `);
+
+						desc.prepend(bold);
+
+						option.append(App.UI.DOM.passageLink("Restrain only disobedient slaves", "Farmyard", () => {
+							V.farmyardShows = 1;
+							V.farmyardBreeding = 1;
+							V.farmyardRestraints = 0;
+						}));
+
+						desc.append(option);
+						frag.append(desc);
+					} else {
+						const
+							desc = document.createElement("div"),
+							option = document.createElement("span"),
+							bold = document.createElement("span");
+
+						bold.classList.add("bold");
 
+						bold.append(`Only disobedient slaves`);
+						desc.append(` are being restrained. `);
+
+						desc.prepend(bold);
+
+						option.append(App.UI.DOM.passageLink("Restrain all slaves", "Farmyard", () => {
+							V.farmyardShows = 1;
+							V.farmyardBreeding = 1;
+							V.farmyardRestraints = 1;
+						}));
+
+						desc.append(option);
+						frag.append(desc);
+					}
+				} else {
+					const
+						desc = document.createElement("div"),
+						option = document.createElement("span"),
+						bold = document.createElement("span");
+
+					bold.classList.add("bold");
+
+					desc.append(`Slaves `);
+					bold.append(`are not`);
+					desc.append(bold, ` being bred with animals. `);
+
+					option.append(App.UI.DOM.passageLink("Begin breeding", "Farmyard", () => {
+						V.farmyardShows = 1;
+						V.farmyardBreeding = 1;
+						V.farmyardRestraints = 0;
+					}));
+
+					desc.append(option);
+					frag.append(desc);
+				}
+			}
+		} else {
+			const
+				desc = document.createElement("div"),
+				option = document.createElement("span"),
+				bold = document.createElement("span");
+
+			bold.classList.add("bold");
+
+			desc.append(`Slaves `);
+			bold.append(`are not`);
+			desc.append(bold, ` putting on shows with animals. `);
+
+			option.append(App.UI.DOM.passageLink("Begin shows", "Farmyard", () => {
+				V.farmyardShows = 1;
+				V.farmyardBreeding = 0;
+				V.farmyardRestraints = 0;
+			}));
+
+			desc.append(option);
+			frag.append(desc);
+		}
 	}
+
+	return frag;
 };
 
-App.Facilities.Farmyard.upgrades = function () {
+App.Facilities.Farmyard.upgrades = function() {
 	const frag = new DocumentFragment(),
 
 		farmyardUpgrades = V.farmyardUpgrades,
diff --git a/src/facilities/farmyard/farmyard.tw b/src/facilities/farmyard/farmyard.tw
index b05f981da858a72dada11eb43bfb02d94d837f20..754e171d6d9ae0dab0414ba6f74e505b6111bbed 100644
--- a/src/facilities/farmyard/farmyard.tw
+++ b/src/facilities/farmyard/farmyard.tw
@@ -190,39 +190,8 @@
 </span>
 
 <span id="rules">
-<<if _FyL > 0>>
 <br><br>
-	<<if $farmyardShows == 1 && (_CL > 0 || _HL > 0 || _FL > 0)>>
-		Slaves ''are'' putting on shows with animals.
-		[[End shows|Farmyard][$farmyardShows = 0, $farmyardBreeding = 0, $farmyardRestraints = 0]]
-		<<if $seeBestiality>>
-			<br>
-			<<if $farmyardBreeding == 1>>
-				Slaves ''are'' being bred with animals.
-				[[End breeding|Farmyard][$farmyardBreeding = 0, $farmyardRestraints = 0]]
-				<br>
-				<<if $farmyardRestraints == 1>>
-					''All of the slaves'' are being restrained.
-					[[Restrain only disobedient slaves|Farmyard][$farmyardRestraints = 0]]
-				<<else>>
-					''Only disobedient slaves'' are being restrained.
-					[[Restrain all of the slaves|Farmyard][$farmyardRestraints = 1]]
-				<</if>>
-			<<else>>
-				Slaves ''are not'' being bred with animals.
-				[[Begin breeding|Farmyard][$farmyardBreeding = 1]]
-				<br>
-			<</if>>
-		<</if>>
-	<<else>>
-		Slaves ''are not'' putting on shows with animals.
-		<<if (_CL > 0 || _HL > 0 || _FL > 0)>>
-			[[Begin shows|Farmyard][$farmyardShows = 1]]
-		<<else>>
-			//You must purchase animals before you can put on shows//
-		<</if>>
-	<</if>>
-<</if>>
+<<includeDOM App.Facilities.Farmyard.rules()>>
 <br><br>
 </span>