diff --git a/src/pregmod/farmyard.tw b/src/pregmod/farmyard.tw
index 18e5c4b2edf3b898b6ff1f87ce8c91fda8e8a3ca..8eb797fd2ab8516ce454e4563696c9f5b174bd03 100644
--- a/src/pregmod/farmyard.tw
+++ b/src/pregmod/farmyard.tw
@@ -6,56 +6,114 @@
 	<<set $farmyardNameCaps = $farmyardName.replace("the ", "The ")>>
 <</if>>
 
+<<set _hooved = {species: "horse", type: "hooved", dickSize: "huge", ballType: "horse"}>>
+
+<<switch $continent>>
+<<case "North America">>
+	<<set _canine = {species: "wolf", type: "canine", dickSize: "large", ballType: "wolf"}>>
+<<case "South America" "Brazil">>
+	<<set _canine = {species: "fox", type: "canine", dickSize: "large", ballType: "fox"}>>
+<<case "Europe" "the Middle East" "Africa" "Asia" "Japan">>
+	<<set _canine = {species: "jackal", type: "canine", dickSize: "large", ballType: "jackal"}>>
+<<case "Australia">>
+	<<set _canine = {species: "dingo", type: "canine", dickSize: "large", ballType: "dingo"}>>
+<</switch>>
+
+<<switch $continent>>
+<<case "North America">>
+	<<set _feline = {species: "cougar", type: "feline", dickSize: "large", ballType: "cougar"}>>
+<<case "South America">>
+	<<set _feline = {species: "jaguar", type: "feline", dickSize: "large", ballType: "jaguar"}>>
+<<case "Brazil">>
+	<<set _feline = {species: "puma", type: "feline", dickSize: "large", ballType: "puma"}>>
+<<case "Europe">>
+	<<set _feline = {species: "lynx", type: "feline", dickSize: "large", ballType: "lynx"}>>
+<<case "the Middle East" "Australia">>  /*Australia doesn't actually have a native big cat, so it's assumed they imported some*/
+	<<set _feline = {species: "leopard", type: "feline", dickSize: "large", ballType: "leopard"}>>
+<<case "Africa">>
+	<<set _feline = {species: "lion", type: "feline", dickSize: "large", ballType: "lion"}>>
+<<case "Asia" "Japan">>
+	<<set _feline = {species: "tiger", type: "feline", dickSize: "large", ballType: "tiger"}>>
+<</switch>>
+
 $farmyardNameCaps is not dissimilar to a warehouse in its basic size and form, but most warehouses don't contain the huge, dense, banks of crop-growing machinery this one does. Here, fruits and vegetables of all shapes and sizes are grown; from exotic, succulent Old World fruits to the average, everyday, vegetables. This is where the majority of the food in $arcologies[0].name comes from, making this one of the more critical facilities in your arcology.
 
 <br><br>
 
-/*TODO: Upkeep costs need to be added to these, but I'm not sure of the best way to do that*/
-/*TODO: Potentailly add more upgrades, to make this facility a little less useless without bestiality*/
-<<if ($farmyardCrops == 0)>>
-	[[Upgrade the machinery to increase the yield of crops|Farmyard][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $farmyardCrops = 1]]
-	//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>> and decreases upkeep costs. This description is temporary and will be changed.//
+<<if $farmyardUpgrade == 0>>
+	[[Upgrade the water pump|Farmyard][$cash -= Math.trunc(1000*$upgradeMultiplierArcology),$farmyardUpgrade += 1,$farmyardUpgradeList.push("The water pump in $farmyardName is a more efficient model, slightly improving the amount of crops $farmyardName produces.")]]
+	//Costs <<print cashFormat(Math.trunc(1000*$upgradeMultiplierArcology))>> and slightly increases crop yield.//
 	<br>
-<</if>>
-<<if ($farmyardCrops == 1)>>
-	The machinery has been upgraded and is producing crops at a much higher rate.
+<<elseif $farmyardUpgrade == 1>>
+	[[Use a higher-quality fertilizer|Farmyard][$cash -= Math.trunc(2000*$upgradeMultiplierArcology),$farmyardUpgrade += 1,$farmyardUpgradeList.push("$farmyardNameCaps is using a higher-quality fertilizer, increasing the amount of crops it produces.")]]
+	//Costs <<print cashFormat(Math.trunc(2000*$upgradeMultiplierArcology))>> and slightly increases upkeep costs and crop yield.//
+	<br>
+	<<print $farmyardUpgradeList>>
+<<elseif $farmyardUpgrade == 2>>
+	[[Purchase a hydroponics system|Farmyard][$cash -= Math.trunc(5000*$upgradeMultiplierArcology),$farmyardUpgrade += 1,$farmyardUpgradeList.push("$farmyardNameCaps is outfitted with an advanced hydroponics system, slightly reducing the amount of water your crops consume.")]]
+	//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>> and slightly decreases upkeep costs.//
+	<br>
+	<<print $farmyardUpgradeList>>
+<<elseif $farmyardUpgrade == 3>>
+	[[Upgrade the machinery to increase the yield of crops|Farmyard][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $farmyardUpgrade += 1,$farmyardUpgradeList.push("The machinery in $farmyardName has been upgraded, and is more efficient.")]]
+	//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>> and moderately decreases upkeep costs.//
+	<br>
+	<<print $farmyardUpgradeList>>
+<<elseif $farmyardUpgrade == 4>>
+	[[Purchase genetically modified seeds|Farmyard][$cash -= Math.trunc(20000*$upgradeMultiplierArcology),$farmyardUpgrade += 1,$farmyardUpgradeList.push("$farmyardNameCaps is using genetically modified seeds, moderately increasing the amount of crops it produces.")]]
+	//Costs <<print cashFormat(Math.trunc(20000*$upgradeMultiplierArcology))>> and moderately increases crop yield.//
 	<br>
+	<<print $farmyardUpgradeList>>
+<<elseif $farmyardUpgrade == 5>>
+	[[Purchase an R&D lab to experiment on different plant types|Farmyard][$cash -= Math.trunc(50000*$upgradeMultiplierArcology),$farmyardUpgrade += 1,$farmyardLab = 1,$farmyardUpgradeList.push("A high-tech metal door, complete with retinal and fingerprint scanners, stands at the far end of $farmyardName.")]]
+	//Costs <<print cashFormat(Math.trunc(50000*$upgradeMultiplierArcology))>> and unlocks the Research Lab.//
+	<br>
+	<<print $farmyardUpgradeList>>
+<<elseif $farmyardUpgrade == 6>>
+	<<print $farmyardUpgradeList>>
 <</if>>
 
 <<if $seeBestiality == 1>>
+<br><br>
 	<<if ($farmyardKennels == 0)>>
 		[[Add kennels|Farmyard][$cash -= Math.trunc(5000*$upgradeMultiplierArcology), $farmyardKennels = 1]]
-		//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>> and allows you to keep dogs. This description is temporary and will be changed.//
+		//Costs <<print cashFormat(Math.trunc(5000*$upgradeMultiplierArcology))>> and allows you to keep <<print _canine.species>>s. This description is temporary and will be changed.//
 		<br>
 	<</if>>
 	<<if ($farmyardKennels == 1)>>
-		Kennels have been built in one corner of $farmyardName, and are currently occupied by dogs of various breeds. //This description is temporary and will be changed.//
+		Kennels have been built in one corner of $farmyardName, and are currently occupied by <<print _canine.species>>s. //This description is temporary and will be changed.//
 		<br>
 	<</if>>
 
 	<<if ($farmyardStable == 0)>>
 		[[Add a stable|Farmyard][$cash -= Math.trunc(10000*$upgradeMultiplierArcology), $farmyardStable = 1]]
-		//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>> and allows you to keep horses. This description is temporary and will be changed.//
+		//Costs <<print cashFormat(Math.trunc(10000*$upgradeMultiplierArcology))>> and allows you to keep <<print "horse">>s. This description is temporary and will be changed.//
 		<br>
 	<</if>>
 	<<if ($farmyardStable == 1)>>
-		A large stable has been built at the far end of $farmyardName, and currently holds a decent amount of large horses. //This description is temporary and will be changed.//
+		A large stable has been built at the far end of $farmyardName, and currently holds a decent amount of large <<print "horse">>s. //This description is temporary and will be changed.//
 		<br>
 	<</if>>
 
 	<<if ($farmyardCages == 0)>>
-		[[Add lion cages|Farmyard][$cash -= Math.trunc(25000*$upgradeMultiplierArcology), $farmyardCages = 1]]
-		//Costs <<print cashFormat(Math.trunc(25000*$upgradeMultiplierArcology))>> and allows you to keep lions. This description is temporary and will be changed.//
+		[[Add cages|Farmyard][$cash -= Math.trunc(25000*$upgradeMultiplierArcology), $farmyardCages = 1]]
+		//Costs <<print cashFormat(Math.trunc(25000*$upgradeMultiplierArcology))>> and allows you to keep <<print _feline.species>>s. This description is temporary and will be changed.//
 		<br>
 	<</if>>
 	<<if ($farmyardCages == 1)>>
-		Large cages have been set up along one wall of $farmyardName, and are currently occupied by large lions. //This description is temporary and will be changed.//
+		Large cages have been set up along one wall of $farmyardName, and are currently occupied by large <<print(_feline.species)>>s. //This description is temporary and will be changed.//
+	<</if>>
 <</if>>
 
-<br>
+<<if $farmyardLab == 1>>
+	<br><br>
+	A <<link "research and development lab">><</link>> has been built at one end of $farmyardName. @@.red;ALPHA CONTENT!@@
+<</if>>
+
+<br><br>
 
 <<link "Decommission $farmyardName and return this sector to manufacturing">>
-	<<set $farmyardName = "the Farmyard", $farmyard = 0, $farmyardCrops = 0, $farmyardKennels = 0, $farmyardStable = 0>>
+	<<set $farmyardName = "the Farmyard", $farmyard = 0, $farmyardUpgrade = 0, $farmyardUpgradeList = [], $farmyardLab = 0, $farmyardCrops = 0, $farmyardKennels = 0, $farmyardStable = 0>>
 	<<for _i = 0; _i < $sectors.length; _i++>>
 		<<if $sectors[_i].type == "Farmyard">><<set $sectors[_i].type = "Manufacturing">><<break>><</if>>
 	<</for>>