diff --git a/baystation12.dme b/baystation12.dme
index bf50b75cc7..83a200fc15 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -372,11 +372,9 @@
#include "code\game\machinery\doors\shutters.dm"
#include "code\game\machinery\doors\unpowered.dm"
#include "code\game\machinery\doors\windowdoor.dm"
-#include "code\game\machinery\embedded_controller\access_controller.dm"
-#include "code\game\machinery\embedded_controller\airlock_controller.dm"
+#include "code\game\machinery\embedded_controller\airlock_controllers.dm"
+#include "code\game\machinery\embedded_controller\airlock_program.dm"
#include "code\game\machinery\embedded_controller\embedded_controller_base.dm"
-#include "code\game\machinery\embedded_controller\simple_vent_controller.dm"
-#include "code\game\machinery\embedded_controller\smart_airlock_controller.dm"
#include "code\game\machinery\kitchen\gibber.dm"
#include "code\game\machinery\kitchen\juicer.dm"
#include "code\game\machinery\kitchen\microwave.dm"
diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm
deleted file mode 100644
index a0d9c847b2..0000000000
--- a/code/game/machinery/embedded_controller/access_controller.dm
+++ /dev/null
@@ -1,214 +0,0 @@
-//States for airlock_control
-#define ACCESS_STATE_INTERNAL -1
-#define ACCESS_STATE_LOCKED 0
-#define ACCESS_STATE_EXTERNAL 1
-
-datum/computer/file/embedded_program/access_controller
- var/id_tag
- var/exterior_door_tag
- var/interior_door_tag
-
- state = ACCESS_STATE_LOCKED
- var/target_state = ACCESS_STATE_LOCKED
-
- receive_signal(datum/signal/signal, receive_method, receive_param)
- var/receive_tag = signal.data["tag"]
- if(!receive_tag) return
-
- if(receive_tag==exterior_door_tag)
- if(signal.data["door_status"] == "closed")
- if(signal.data["lock_status"] == "locked")
- memory["exterior_status"] = "locked"
- else
- memory["exterior_status"] = "closed"
- else
- memory["exterior_status"] = "open"
-
- else if(receive_tag==interior_door_tag)
- if(signal.data["door_status"] == "closed")
- if(signal.data["lock_status"] == "locked")
- memory["interior_status"] = "locked"
- else
- memory["interior_status"] = "closed"
- else
- memory["interior_status"] = "open"
-
- else if(receive_tag==id_tag)
- switch(signal.data["command"])
- if("cycle_interior")
- target_state = ACCESS_STATE_INTERNAL
- if("cycle_exterior")
- target_state = ACCESS_STATE_EXTERNAL
- if("cycle")
- if(state < ACCESS_STATE_LOCKED)
- target_state = ACCESS_STATE_EXTERNAL
- else
- target_state = ACCESS_STATE_INTERNAL
-
- receive_user_command(command)
- switch(command)
- if("cycle_closed")
- target_state = ACCESS_STATE_LOCKED
- if("cycle_exterior")
- target_state = ACCESS_STATE_EXTERNAL
- if("cycle_interior")
- target_state = ACCESS_STATE_INTERNAL
-
- process()
- var/process_again = 1
- while(process_again)
- process_again = 0
- switch(state)
- if(ACCESS_STATE_INTERNAL) // state -1
- if(target_state > state)
- if(memory["interior_status"] == "locked")
- state = ACCESS_STATE_LOCKED
- process_again = 1
- else
- var/datum/signal/signal = new
- signal.data["tag"] = interior_door_tag
- if(memory["interior_status"] == "closed")
- signal.data["command"] = "lock"
- else
- signal.data["command"] = "secure_close"
- post_signal(signal)
-
- if(ACCESS_STATE_LOCKED)
- if(target_state < state)
- if(memory["exterior_status"] != "locked")
- var/datum/signal/signal = new
- signal.data["tag"] = exterior_door_tag
- if(memory["exterior_status"] == "closed")
- signal.data["command"] = "lock"
- else
- signal.data["command"] = "secure_close"
- post_signal(signal)
- else
- if(memory["interior_status"] == "closed" || memory["interior_status"] == "open")
- state = ACCESS_STATE_INTERNAL
- process_again = 1
- else
- var/datum/signal/signal = new
- signal.data["tag"] = interior_door_tag
- signal.data["command"] = "secure_open"
- post_signal(signal)
- else if(target_state > state)
- if(memory["interior_status"] != "locked")
- var/datum/signal/signal = new
- signal.data["tag"] = interior_door_tag
- if(memory["interior_status"] == "closed")
- signal.data["command"] = "lock"
- else
- signal.data["command"] = "secure_close"
- post_signal(signal)
- else
- if(memory["exterior_status"] == "closed" || memory["exterior_status"] == "open")
- state = ACCESS_STATE_EXTERNAL
- process_again = 1
- else
- var/datum/signal/signal = new
- signal.data["tag"] = exterior_door_tag
- signal.data["command"] = "secure_open"
- post_signal(signal)
- else
- if(memory["interior_status"] != "locked")
- var/datum/signal/signal = new
- signal.data["tag"] = interior_door_tag
- if(memory["interior_status"] == "closed")
- signal.data["command"] = "lock"
- else
- signal.data["command"] = "secure_close"
- post_signal(signal)
- else if(memory["exterior_status"] != "locked")
- var/datum/signal/signal = new
- signal.data["tag"] = exterior_door_tag
- if(memory["exterior_status"] == "closed")
- signal.data["command"] = "lock"
- else
- signal.data["command"] = "secure_close"
- post_signal(signal)
-
- if(ACCESS_STATE_EXTERNAL) //state 1
- if(target_state < state)
- if(memory["exterior_status"] == "locked")
- state = ACCESS_STATE_LOCKED
- process_again = 1
- else
- var/datum/signal/signal = new
- signal.data["tag"] = exterior_door_tag
- if(memory["exterior_status"] == "closed")
- signal.data["command"] = "lock"
- else
- signal.data["command"] = "secure_close"
- post_signal(signal)
-
-
- return 1
-
-
-obj/machinery/embedded_controller/radio/access_controller
- icon = 'icons/obj/airlock_machines.dmi'
- icon_state = "access_control_standby"
-
- name = "Access Console"
- density = 0
- power_channel = ENVIRON
- unacidable = 1
-
- frequency = 1449
-
- // Setup parameters only
- var/id_tag
- var/exterior_door_tag
- var/interior_door_tag
-
- initialize()
- ..()
-
- var/datum/computer/file/embedded_program/access_controller/new_prog = new
-
- new_prog.id_tag = id_tag
- new_prog.exterior_door_tag = exterior_door_tag
- new_prog.interior_door_tag = interior_door_tag
-
- new_prog.master = src
- program = new_prog
-
- update_icon()
- if(on && program)
- if(program.memory["processing"])
- icon_state = "access_control_process"
- else
- icon_state = "access_control_standby"
- else
- icon_state = "access_control_off"
-
-
- return_text()
- var/state_options = null
-
- var/state = 0
- var/exterior_status = "----"
- var/interior_status = "----"
- if(program)
- state = program.state
- exterior_status = program.memory["exterior_status"]
- interior_status = program.memory["interior_status"]
-
- switch(state)
- if(ACCESS_STATE_INTERNAL)
- state_options = {"Lock Interior Airlock
-Cycle to Exterior Airlock
"}
- if(ACCESS_STATE_LOCKED)
- state_options = {"Unlock Interior Airlock
-Unlock Exterior Airlock
"}
- if(ACCESS_STATE_EXTERNAL)
- state_options = {"Cycle to Interior Airlock
-Lock Exterior Airlock
"}
-
- var/output = {"Access Control Console