diff --git a/src/npc/surgery/organFarm.js b/src/npc/surgery/organFarm.js
index 1148e486468c7a8e3271253347cf02224a9c5f9e..29679aea6e2241b58e8ebd38fc9854d31123a895 100644
--- a/src/npc/surgery/organFarm.js
+++ b/src/npc/surgery/organFarm.js
@@ -1,6 +1,6 @@
 /**
  * @param {App.Entity.SlaveState} slave
- * @returns {HTMLDivElement}
+ * @returns {DocumentFragment}
  */
 App.Medicine.OrganFarm.growActions = function(slave) {
 	const el = new DocumentFragment();
@@ -32,7 +32,7 @@ App.Medicine.OrganFarm.growActions = function(slave) {
 		}
 	}
 
-	let div = document.createElement("div");
+	const div = document.createElement("div");
 	div.classList.add("grid-2columns-auto");
 
 	// create entries for each organ
@@ -41,18 +41,10 @@ App.Medicine.OrganFarm.growActions = function(slave) {
 	O.forEach((organ, key) => {
 		if (slaveOrgans[key] === 0) {
 			if (organ.canGrow(slave)) {
-				const array = [];
-				array.push(App.UI.DOM.makeElement("div", App.UI.DOM.passageLink(organ.name, "Remote Surgery", () => {
-					App.Medicine.OrganFarm.growOrgan(slave, key);
-				})));
-
-				const tooltip = typeof organ.tooltip === "string" ? organ.tooltip : organ.tooltip(slave);
-				array.push(App.UI.DOM.makeElement("div", `Costs ${cashFormat(organ.cost)}${tooltip !== "" ? ` and ${tooltip}` : ""}.`, "detail"));
-
 				if (organ.implantActions.some((o) => { return o.canImplant(slave); })) {
-					canImplant.push(...array);
+					canImplant.push(key);
 				} else {
-					cantImplant.push(...array);
+					cantImplant.push(key);
 				}
 			}
 			any = true;
@@ -75,23 +67,54 @@ App.Medicine.OrganFarm.growActions = function(slave) {
 			App.UI.DOM.appendNewElement("div", div, growing[i].text);
 		}
 	}
+	const chosenOption = App.UI.DOM.makeElement("div");
 	if (canImplant.length > 0) {
-		App.UI.DOM.appendNewElement("div", div, "Can implant immediately", "bold");
-		App.UI.DOM.appendNewElement("div", div);
-		canImplant.forEach(c => div.append(c));
+		App.UI.DOM.appendNewElement("div", div, "Can implant immediately");
+		div.append(makePulldown(canImplant));
 	}
 	if (cantImplant.length > 0) {
-		App.UI.DOM.appendNewElement("div", div, "Can't implant immediately", "bold");
-		App.UI.DOM.appendNewElement("div", div);
-		cantImplant.forEach(c => div.append(c));
+		App.UI.DOM.appendNewElement("div", div, "Can't implant immediately");
+		div.append(makePulldown(cantImplant));
 	}
 	el.append(div);
+	el.append(chosenOption);
 
 	if (any) {
-		return div;
+		return el;
 	} else {
 		return null;
 	}
+
+	function makePulldown(array) {
+		const selDiv = document.createElement("div");
+		const select = App.UI.DOM.appendNewElement("select", selDiv);
+		array.forEach(key => {
+			const option = App.UI.DOM.appendNewElement("option", select);
+			option.textContent = O.get(key).name;
+			option.value = key;
+		});
+		select.onchange = () => {
+			const O = select.options[select.selectedIndex];
+			const organ = App.Medicine.OrganFarm.Organs.get(O.value);
+			const frag = new DocumentFragment();
+			const tooltip = typeof organ.tooltip === "string" ? organ.tooltip : organ.tooltip(slave);
+
+			App.UI.DOM.appendNewElement(
+				"div",
+				frag,
+				App.UI.DOM.passageLink(
+					organ.name, "Remote Surgery", () => {
+						App.Medicine.OrganFarm.growOrgan(slave, O.value);
+					}
+				)
+			);
+
+			App.UI.DOM.appendNewElement("div", frag, `Costs ${cashFormat(organ.cost)}${tooltip !== "" ? ` and ${tooltip}` : ""}.`, "detail");
+			jQuery(chosenOption).empty().append(frag);
+		};
+		select.selectedIndex = -1;
+		return selDiv;
+	}
 };
 
 /**
@@ -319,8 +342,7 @@ App.Medicine.OrganFarm.currentlyGrowing = function() {
 			if (o.weeksToCompletion <= 0) {
 				finishLines.push(`${tank.slaveName}'s ${App.Medicine.OrganFarm.Organs.get(o.type).name}.`);
 			} else {
-				growLines.push(`${tank.slaveName}'s ${App.Medicine.OrganFarm.Organs.get(o.type).name}, ${
-					weeksToCompletion(o.weeksToCompletion)} week(s) left.`);
+				growLines.push(`${tank.slaveName}'s ${App.Medicine.OrganFarm.Organs.get(o.type).name}, ${weeksToCompletion(o.weeksToCompletion)} week(s) left.`);
 			}
 		} else {
 			growLines.push(App.UI.DOM.makeElement("span", `ERROR: No tank with ID ${o.ID} found.`, "error"));