diff --git a/tests/test_core.py b/tests/test_core.py
index b4fd28c0f908c979620a7cca30c6959342b314f9..978bd7674d030a3b3b23010cfa2e6eef01a1b9ef 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -14,8 +14,6 @@ __author__ = 'Stefan Reck'
 test_dir = os.path.dirname(os.path.realpath(__file__))
 MUPAGE_FILE = os.path.join(test_dir, "data", "mupage.root.h5")
 DET_FILE = os.path.join(test_dir, "data", "KM3NeT_-00000001_20171212.detx")
-NEUTRINO_FILE = os.path.join(test_dir, "data", "neutrino_file.h5")
-DET_FILE_NEUTRINO = os.path.join(test_dir, "data", "neutrino_detector_file.detx")
 
 class TestFileBinner(TestCase):
     """ Assert that the filebinner still produces the same output. """
@@ -141,158 +139,7 @@ class TestFileGraph(TestCase):
         }
         for k, v in target.items():
             np.testing.assert_equal(y[k], v)
-
-class TestStdRecoExtractor(TestCase):
-    """ Assert that the neutrino info is extracted correctly File has 18 events. """
-    @classmethod
-    def setUpClass(cls):
-        cls.proc = orcasong.core.FileGraph(
-            max_n_hits=3,
-            time_window=[0, 50],
-            hit_infos=["pos_z", "time", "channel_id"],
-            mc_info_extr=orcasong.mc_info_extr.get_neutrino_mc_info_extr(NEUTRINO_FILE),
-            det_file=DET_FILE_NEUTRINO,
-            add_t0=True,
-        )
-        cls.tmpdir = tempfile.TemporaryDirectory()
-        cls.outfile = os.path.join(cls.tmpdir.name, "binned.h5")
-        cls.proc.run(infile=NEUTRINO_FILE, outfile=cls.outfile)
-        cls.f = h5py.File(cls.outfile, "r")
-
-    @classmethod
-    def tearDownClass(cls):
-        cls.f.close()
-        cls.tmpdir.cleanup()
-
-    def test_keys(self):
-        self.assertSetEqual(set(self.f.keys()), {
-            '_i_event_info', '_i_group_info', '_i_y',
-            'event_info', 'group_info', 'x', 'x_indices', 'y'})
-
-    def test_y(self):
-        y = self.f["y"][()]
-        target = {
-            'weight_w2': np.array([29650.0,
-									297100.0,
-									41450.0,
-									371400.0,
-									1101000000.0,
-									2757000.0,
-									15280000.0,
-									262800000.0,
-									22590.0,
-									24240.0,
-									80030.0,
-									3018000.0,
-									120600.0,
-									872200.0,
-									50440000.0,
-									21540.0,
-									42170.0,
-									25230.0]),
-									
-            'n_gen': np.array([60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0,
-								60000.0]),
-								
-            'dir_z': np.array([-0.896549,
-								-0.835252,
-								0.300461,
-								0.108997,
-								0.128445,
-								-0.543621,
-								-0.23205,
-								-0.297228,
-								0.694932,
-								0.73835,
-								-0.007682,
-								0.437847,
-								-0.126804,
-								0.153432,
-								-0.263229,
-								0.820217,
-								0.452473,
-								0.294217]),
-            
-            'is_cc': np.array([2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0,
-								2.0]),
-								
-            'std_dir_z': np.array([-0.923199825369434,
-									-0.6422689266782661,
-									0.38853917922036363,
-									-0.16690804339142448,
-									-0.01584853496341109,
-									-0.10151549881670698,
-									-0.0409694104272829,
-									-0.32964369874021787,
-									-0.3294926806601529,
-									0.6524241250799204,
-									-0.3899574246450216,
-									0.27872277417339086,
-									0.0019490791409933206,
-									0.20341370281708737,
-									-0.15739475718286297,
-									0.8040250543935723,
-									0.08772622550043882,
-									-0.7766722433951796]),
-									
-            'std_energy': np.array([4.7187625606210775,
-									4.169818842606011,
-									1.0056373761749966,
-									5.908597073055873,
-									12.409377607517195,
-									7.566695371401163,
-									1.3546775620239864,
-									2.659528737837978,
-									1.0056373761749966,
-									2.1968321463948755,
-									1.4821714294894754,
-									10.135831333340658,
-									2.6003934443336765,
-									1.4492149732348223,
-									71.69167874147956,
-									8.094744120333358,
-									3.148088080484504,
-									1.0056373761749966]),
-            
-        }
-        for k, v in target.items():
-            np.testing.assert_equal(y[k], v)
-            
-            
-            
-            
+     
             
             
             
diff --git a/tests/test_extractor.py b/tests/test_extractor.py
new file mode 100644
index 0000000000000000000000000000000000000000..d48d01019ef82888d7dd4c5bc0e031bbc18d3c81
--- /dev/null
+++ b/tests/test_extractor.py
@@ -0,0 +1,185 @@
+import os
+from unittest import TestCase
+import tempfile
+import numpy as np
+import h5py
+import orcasong.core
+import orcasong.mc_info_extr
+from orcasong.plotting.plot_binstats import read_hists_from_h5file
+
+
+__author__ = 'Daniel Guderian'
+
+
+test_dir = os.path.dirname(os.path.realpath(__file__))
+NEUTRINO_FILE = os.path.join(test_dir, "data", "neutrino_file.h5")
+DET_FILE_NEUTRINO = os.path.join(test_dir, "data", "neutrino_detector_file.detx")
+
+
+class TestStdRecoExtractor(TestCase):
+    """ Assert that the neutrino info is extracted correctly File has 18 events. """
+    @classmethod
+    def setUpClass(cls):
+        cls.proc = orcasong.core.FileGraph(
+            max_n_hits=3,
+            time_window=[0, 50],
+            hit_infos=["pos_z", "time", "channel_id"],
+            mc_info_extr=orcasong.mc_info_extr.get_neutrino_mc_info_extr(NEUTRINO_FILE),
+            det_file=DET_FILE_NEUTRINO,
+            add_t0=True,
+        )
+        cls.tmpdir = tempfile.TemporaryDirectory()
+        cls.outfile = os.path.join(cls.tmpdir.name, "binned.h5")
+        cls.proc.run(infile=NEUTRINO_FILE, outfile=cls.outfile)
+        cls.f = h5py.File(cls.outfile, "r")
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.f.close()
+        cls.tmpdir.cleanup()
+
+    def test_keys(self):
+        self.assertSetEqual(set(self.f.keys()), {
+            '_i_event_info', '_i_group_info', '_i_y',
+            'event_info', 'group_info', 'x', 'x_indices', 'y'})
+
+    def test_y(self):
+        y = self.f["y"][()]
+        target = {
+            'weight_w2': np.array([29650.0,
+									297100.0,
+									41450.0,
+									371400.0,
+									1101000000.0,
+									2757000.0,
+									15280000.0,
+									262800000.0,
+									22590.0,
+									24240.0,
+									80030.0,
+									3018000.0,
+									120600.0,
+									872200.0,
+									50440000.0,
+									21540.0,
+									42170.0,
+									25230.0]),
+									
+            'n_gen': np.array([60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0,
+								60000.0]),
+								
+            'dir_z': np.array([-0.896549,
+								-0.835252,
+								0.300461,
+								0.108997,
+								0.128445,
+								-0.543621,
+								-0.23205,
+								-0.297228,
+								0.694932,
+								0.73835,
+								-0.007682,
+								0.437847,
+								-0.126804,
+								0.153432,
+								-0.263229,
+								0.820217,
+								0.452473,
+								0.294217]),
+            
+            'is_cc': np.array([2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0,
+								2.0]),
+								
+            'std_dir_z': np.array([-0.923199825369434,
+									-0.6422689266782661,
+									0.38853917922036363,
+									-0.16690804339142448,
+									-0.01584853496341109,
+									-0.10151549881670698,
+									-0.0409694104272829,
+									-0.32964369874021787,
+									-0.3294926806601529,
+									0.6524241250799204,
+									-0.3899574246450216,
+									0.27872277417339086,
+									0.0019490791409933206,
+									0.20341370281708737,
+									-0.15739475718286297,
+									0.8040250543935723,
+									0.08772622550043882,
+									-0.7766722433951796]),
+									
+            'std_energy': np.array([4.7187625606210775,
+									4.169818842606011,
+									1.0056373761749966,
+									5.908597073055873,
+									12.409377607517195,
+									7.566695371401163,
+									1.3546775620239864,
+									2.659528737837978,
+									1.0056373761749966,
+									2.1968321463948755,
+									1.4821714294894754,
+									10.135831333340658,
+									2.6003934443336765,
+									1.4492149732348223,
+									71.69167874147956,
+									8.094744120333358,
+									3.148088080484504,
+									1.0056373761749966]),
+            
+        }
+        for k, v in target.items():
+            np.testing.assert_equal(y[k], v)
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
\ No newline at end of file