diff --git a/baystation12.dme b/baystation12.dme
index 5a9f3512a9..5e5f4b0775 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -1143,14 +1143,13 @@
#include "code\modules\research\xenoarchaeology\geosample.dm"
#include "code\modules\research\xenoarchaeology\misc.dm"
#include "code\modules\research\xenoarchaeology\readme.dm"
-#include "code\modules\research\xenoarchaeology\analysis\analysis.dm"
-#include "code\modules\research\xenoarchaeology\analysis\analysis_accelerator.dm"
-#include "code\modules\research\xenoarchaeology\analysis\analysis_fourier_transform.dm"
-#include "code\modules\research\xenoarchaeology\analysis\analysis_gas_chromatography.dm"
-#include "code\modules\research\xenoarchaeology\analysis\analysis_hyperspectral.dm"
-#include "code\modules\research\xenoarchaeology\analysis\analysis_ion_mobility.dm"
-#include "code\modules\research\xenoarchaeology\analysis\analysis_isotope_ratio.dm"
-#include "code\modules\research\xenoarchaeology\analysis\analysis_scanner.dm"
+#include "code\modules\research\xenoarchaeology\analysis\accelerator.dm"
+#include "code\modules\research\xenoarchaeology\analysis\fourier_transform.dm"
+#include "code\modules\research\xenoarchaeology\analysis\gas_chromatography.dm"
+#include "code\modules\research\xenoarchaeology\analysis\hyperspectral.dm"
+#include "code\modules\research\xenoarchaeology\analysis\ion_mobility.dm"
+#include "code\modules\research\xenoarchaeology\analysis\isotope_ratio.dm"
+#include "code\modules\research\xenoarchaeology\analysis\machinery_base.dm"
#include "code\modules\research\xenoarchaeology\artifact\artifact.dm"
#include "code\modules\research\xenoarchaeology\artifact\artifact_autocloner.dm"
#include "code\modules\research\xenoarchaeology\artifact\artifact_crystal.dm"
@@ -1170,8 +1169,9 @@
#include "code\modules\research\xenoarchaeology\tools\tools_depthscanner.dm"
#include "code\modules\research\xenoarchaeology\tools\tools_locater.dm"
#include "code\modules\research\xenoarchaeology\tools\tools_pickaxe.dm"
+#include "code\modules\research\xenoarchaeology\unknown\analysis.dm"
+#include "code\modules\research\xenoarchaeology\unknown\scanner.dm"
#include "code\modules\research\xenoarchaeology\unknown\unknown.dm"
-#include "code\modules\research\xenoarchaeology\unknown\unknown_analysis.dm"
#include "code\modules\research\xenoarchaeology\unknown\unknown_db.dm"
#include "code\modules\research\xenoarchaeology\unknown\unknown_effect.dm"
#include "code\modules\research\xenoarchaeology\unknown\unknown_harvester.dm"
diff --git a/code/modules/research/xenoarchaeology/analysis/analysis_accelerator.dm b/code/modules/research/xenoarchaeology/analysis/accelerator.dm
similarity index 100%
rename from code/modules/research/xenoarchaeology/analysis/analysis_accelerator.dm
rename to code/modules/research/xenoarchaeology/analysis/accelerator.dm
diff --git a/code/modules/research/xenoarchaeology/analysis/analysis_fourier_transform.dm b/code/modules/research/xenoarchaeology/analysis/fourier_transform.dm
similarity index 100%
rename from code/modules/research/xenoarchaeology/analysis/analysis_fourier_transform.dm
rename to code/modules/research/xenoarchaeology/analysis/fourier_transform.dm
diff --git a/code/modules/research/xenoarchaeology/analysis/analysis_gas_chromatography.dm b/code/modules/research/xenoarchaeology/analysis/gas_chromatography.dm
similarity index 100%
rename from code/modules/research/xenoarchaeology/analysis/analysis_gas_chromatography.dm
rename to code/modules/research/xenoarchaeology/analysis/gas_chromatography.dm
diff --git a/code/modules/research/xenoarchaeology/analysis/analysis_hyperspectral.dm b/code/modules/research/xenoarchaeology/analysis/hyperspectral.dm
similarity index 100%
rename from code/modules/research/xenoarchaeology/analysis/analysis_hyperspectral.dm
rename to code/modules/research/xenoarchaeology/analysis/hyperspectral.dm
diff --git a/code/modules/research/xenoarchaeology/analysis/analysis_ion_mobility.dm b/code/modules/research/xenoarchaeology/analysis/ion_mobility.dm
similarity index 100%
rename from code/modules/research/xenoarchaeology/analysis/analysis_ion_mobility.dm
rename to code/modules/research/xenoarchaeology/analysis/ion_mobility.dm
diff --git a/code/modules/research/xenoarchaeology/analysis/analysis_isotope_ratio.dm b/code/modules/research/xenoarchaeology/analysis/isotope_ratio.dm
similarity index 100%
rename from code/modules/research/xenoarchaeology/analysis/analysis_isotope_ratio.dm
rename to code/modules/research/xenoarchaeology/analysis/isotope_ratio.dm
diff --git a/code/modules/research/xenoarchaeology/analysis/analysis.dm b/code/modules/research/xenoarchaeology/analysis/machinery_base.dm
similarity index 95%
rename from code/modules/research/xenoarchaeology/analysis/analysis.dm
rename to code/modules/research/xenoarchaeology/analysis/machinery_base.dm
index 577c8d8aeb..70cf4d04d7 100644
--- a/code/modules/research/xenoarchaeology/analysis/analysis.dm
+++ b/code/modules/research/xenoarchaeology/analysis/machinery_base.dm
@@ -12,16 +12,9 @@
var/temperature = 273 //measured in kelvin, if this exceeds 1200, the machine is damaged and requires repairs
//if this exceeds 600 and safety is enabled it will shutdown
//temp greater than 600 also requires a safety prompt to initiate scanning
- var/scanner_dir = 0
- var/obj/machinery/anomaly/scanner/owned_scanner = null
/obj/machinery/anomaly/New()
..()
- //connect to a nearby scanner pad
- if(scanner_dir)
- owned_scanner = locate(/obj/machinery/anomaly/scanner) in get_step(src, scanner_dir)
- if(!owned_scanner)
- owned_scanner = locate(/obj/machinery/anomaly/scanner) in orange(1)
//for analysis debugging
var/obj/item/weapon/reagent_containers/glass/solution_tray/S = new(src.loc)
diff --git a/code/modules/research/xenoarchaeology/unknown/analysis.dm b/code/modules/research/xenoarchaeology/unknown/analysis.dm
new file mode 100644
index 0000000000..370ad32cef
--- /dev/null
+++ b/code/modules/research/xenoarchaeology/unknown/analysis.dm
@@ -0,0 +1,44 @@
+
+//cael - some changes here. the analysis pad is entirely new
+
+/obj/machinery/anomaly/artifact_analyser
+ name = "Artifact Analyser"
+ desc = "Studies the structure of artifacts to discover their uses."
+ icon = 'virology.dmi'
+ icon_state = "analyser"
+ anchored = 1
+ density = 1
+ var/scan_progress = 0
+ var/scan_num = 0
+ var/cur_scanning_atom
+ var/obj/machinery/scanner/owned_scanner = null
+
+/obj/machinery/anomaly/artifact_analyser/New()
+ ..()
+
+ //connect to a nearby scanner pad
+ owned_scanner = locate(/obj/machinery/anomaly/scanner) in get_step(src, dir)
+ if(!owned_scanner)
+ owned_scanner = locate(/obj/machinery/anomaly/scanner) in orange(1, src)
+
+
+/obj/machinery/anomaly/artifact_analyser/attack_hand(var/mob/user as mob)
+ if(stat & (NOPOWER|BROKEN))
+ return
+ user.machine = src
+ var/dat = "Anomalous material analyser
"
+ dat += "