diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index ef9e6a044f..8dc7464230 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -50,7 +50,7 @@
#define isgolem(A) (is_species(A, /datum/species/golem))
#define islizard(A) (is_species(A, /datum/species/lizard))
#define isplasmaman(A) (is_species(A, /datum/species/plasmaman))
-#define ispodperson(A) (is_species(A, /datum/species/podperson))
+#define ispodperson(A) (is_species(A, /datum/species/pod))
#define isflyperson(A) (is_species(A, /datum/species/fly))
#define isjellyperson(A) (is_species(A, /datum/species/jelly))
#define isslimeperson(A) (is_species(A, /datum/species/jelly/slime))
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index 6ad0ed6d95..6143047275 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -117,6 +117,7 @@
#define BIOWARE_NERVES "nerves"
#define BIOWARE_CIRCULATION "circulation"
#define BIOWARE_LIGAMENTS "ligaments"
+#define BIOWARE_DISSECTION "dissected"
//Health hud screws for carbon mobs
#define SCREWYHUD_NONE 0
diff --git a/code/modules/antagonists/abductor/equipment/abduction_surgery.dm b/code/modules/antagonists/abductor/equipment/abduction_surgery.dm
index 819dbafd6a..98164de099 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_surgery.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_surgery.dm
@@ -1,5 +1,5 @@
/datum/surgery/organ_extraction
- name = "experimental dissection"
+ name = "experimental organ replacement"
steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/incise, /datum/surgery_step/extract_organ, /datum/surgery_step/gland_insert)
possible_locs = list(BODY_ZONE_CHEST)
ignore_clothes = 1
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index 82549fb5f3..f1ec26d699 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -713,6 +713,13 @@
research_icon = 'icons/obj/surgery.dmi'
research_icon_state = "surgery_any"
var/surgery
+
+/datum/design/surgery/experimental_dissection
+ name = "Experimental Dissection"
+ desc = "A surgical procedure which deeply analyzes the biology of a corpse, and automatically adds new findings to the research database."
+ id = "surgery_exp_dissection"
+ surgery = /datum/surgery/advanced/bioware/experimental_dissection
+ research_icon_state = "surgery_chest"
/datum/design/surgery/lobotomy
name = "Lobotomy"
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index d6b33e2ebd..b8cec29255 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -115,7 +115,7 @@
display_name = "Advanced Surgery"
description = "When simple medicine doesn't cut it."
prereq_ids = list("adv_biotech")
- design_ids = list("surgery_lobotomy", "surgery_reconstruction", "surgery_toxinhealing", "organbox")
+ design_ids = list("surgery_lobotomy", "surgery_reconstruction", "surgery_toxinhealing", "organbox", "surgery_exp_dissection")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
diff --git a/code/modules/surgery/advanced/bioware/experimental_dissection.dm b/code/modules/surgery/advanced/bioware/experimental_dissection.dm
new file mode 100644
index 0000000000..a5f554bc43
--- /dev/null
+++ b/code/modules/surgery/advanced/bioware/experimental_dissection.dm
@@ -0,0 +1,66 @@
+/datum/surgery/advanced/bioware/experimental_dissection
+ name = "Experimental Dissection"
+ desc = "A surgical procedure which deeply analyzes the biology of a corpse, and automatically adds new findings to the research database."
+ steps = list(/datum/surgery_step/incise,
+ /datum/surgery_step/retract_skin,
+ /datum/surgery_step/clamp_bleeders,
+ /datum/surgery_step/incise,
+ /datum/surgery_step/dissection,
+ /datum/surgery_step/close)
+ possible_locs = list(BODY_ZONE_CHEST)
+ bioware_target = BIOWARE_DISSECTION
+
+/datum/surgery/advanced/bioware/experimental_dissection/can_start(mob/user, mob/living/carbon/target)
+ . = ..()
+ if(iscyborg(user))
+ return FALSE //robots cannot be creative
+ //(also this surgery shouldn't be consistently successful, and cyborgs have a 100% success rate on surgery)
+ if(target.stat != DEAD)
+ return FALSE
+
+/datum/surgery_step/dissection
+ name = "dissection"
+ implements = list(/obj/item/scalpel = 60, /obj/item/kitchen/knife = 30, /obj/item/shard = 15)
+ time = 125
+
+/datum/surgery_step/dissection/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
+ user.visible_message("[user] starts dissecting [target].", "You start dissecting [target].")
+
+/datum/surgery_step/dissection/proc/check_value(mob/living/carbon/target)
+ if(isalienroyal(target))
+ return 10000
+ else if(isalienadult(target))
+ return 5000
+ else if(ismonkey(target))
+ return 1000
+ else if(ishuman(target))
+ var/mob/living/carbon/human/H = target
+ if(H.dna && H.dna.species)
+ if(isabductor(H))
+ return 8000
+ if(isgolem(H) || iszombie(H))
+ return 4000
+ if(isjellyperson(H) || ispodperson(H))
+ return 3000
+ return 2000
+
+/datum/surgery_step/dissection/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
+ user.visible_message("[user] dissects [target]!", "You dissect [target], and add your discoveries to the research database!")
+ SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = check_value(target)))
+ var/obj/item/bodypart/L = target.get_bodypart(BODY_ZONE_CHEST)
+ target.apply_damage(80, BRUTE, L)
+ new /datum/bioware/dissected(target)
+ return TRUE
+
+/datum/surgery_step/dissection/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
+ user.visible_message("[user] dissects [target]!", "You dissect [target], but do not find anything particularly interesting.")
+ SSresearch.science_tech.add_point_list(list(TECHWEB_POINT_TYPE_GENERIC = (check_value(target) * 0.2)))
+ var/obj/item/bodypart/L = target.get_bodypart(BODY_ZONE_CHEST)
+ target.apply_damage(80, BRUTE, L)
+ new /datum/bioware/dissected(target)
+ return TRUE
+
+/datum/bioware/dissected
+ name = "Dissected"
+ desc = "This body has been dissected and analyzed. It is no longer worth experimenting on."
+ mod_type = BIOWARE_DISSECTION
\ No newline at end of file
diff --git a/tgstation.dme b/tgstation.dme
index 497c171ec5..2c76ad6dc1 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2776,6 +2776,7 @@
#include "code\modules\surgery\advanced\bioware\bioware_surgery.dm"
#include "code\modules\surgery\advanced\bioware\ligament_hook.dm"
#include "code\modules\surgery\advanced\bioware\ligament_reinforcement.dm"
+#include "code\modules\surgery\advanced\bioware\experimental_dissection.dm"
#include "code\modules\surgery\advanced\bioware\nerve_grounding.dm"
#include "code\modules\surgery\advanced\bioware\nerve_splicing.dm"
#include "code\modules\surgery\advanced\bioware\vein_threading.dm"