diff --git a/Source/Harmony/patch_races.cs b/Source/Harmony/patch_races.cs
new file mode 100644
index 0000000000000000000000000000000000000000..8bd1c71ae822d994d18334518525318442db4e63
--- /dev/null
+++ b/Source/Harmony/patch_races.cs
@@ -0,0 +1,52 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using Harmony;
+using RimWorld;
+using Verse;
+using System.Collections;
+
+namespace rjw
+{
+	/// <summary>
+	/// Patch all races into rjw genitals recipes
+	/// </summary>
+
+	[StaticConstructorOnStartup]
+	public static class HarmonyPatches
+	{
+		static HarmonyPatches()
+		{
+			foreach (RecipeDef x in
+					DefDatabase<RecipeDef>.AllDefsListForReading.Where(x => x.IsSurgery && (x.targetsBodyPart || !x.appliedOnFixedBodyParts.NullOrEmpty())))
+			{
+				try
+				{
+					if (x.appliedOnFixedBodyParts.Contains(DefDatabase<BodyPartDef>.GetNamed("Genitals"))
+						|| x.appliedOnFixedBodyParts.Contains(DefDatabase<BodyPartDef>.GetNamed("Chest"))
+						|| x.appliedOnFixedBodyParts.Contains(DefDatabase<BodyPartDef>.GetNamed("Anus"))
+						)
+
+						//Log.Message("2 " + x.defName);
+						foreach (ThingDef thingDef in DefDatabase<ThingDef>.AllDefs)
+						{
+							if (thingDef.race == null)
+								continue;
+
+							//filter something?
+							//if (thingDef.race. == "Human")
+							//	continue;
+
+							if (!x.recipeUsers.Contains(thingDef))
+								x.recipeUsers.Add(item: thingDef);
+						}
+				}
+				catch
+				{ }
+			}
+		}
+	}
+}