diff --git a/mlair/data_handler/data_handler_mixed_sampling.py b/mlair/data_handler/data_handler_mixed_sampling.py
index 6c256f86c6289578030bd0f116315fd724eb9b7a..0bdd9b216073bd6d045233afb3fd945718117a98 100644
--- a/mlair/data_handler/data_handler_mixed_sampling.py
+++ b/mlair/data_handler/data_handler_mixed_sampling.py
@@ -283,21 +283,6 @@ class DataHandlerMixedSamplingWithClimateFirFilter(DataHandlerClimateFirFilter):
                                                                dh_transformation=dh_transformation[1], **kwargs)
             return {"filtered": transformation_filtered, "unfiltered": transformation_unfiltered}
 
-    def get_X_original(self):
-        if self.use_filter_branches is True:
-            X = []
-            for data in self._collection:
-                if hasattr(data, "filter_dim"):
-                    X_total = data.get_X()
-                    filter_dim = data.filter_dim
-                    for filter_name in data.filter_dim_order:
-                        X.append(X_total.sel({filter_dim: filter_name}, drop=True))
-                else:
-                    X.append(data.get_X())
-            return X
-        else:
-            return super().get_X_original()
-
 
 class DataHandlerMixedSamplingWithClimateAndFirFilter(DataHandlerMixedSamplingWithClimateFirFilter):
     # data_handler = DataHandlerMixedSamplingWithClimateFirFilterSingleStation
@@ -457,18 +442,3 @@ class DataHandlerMixedSamplingWithClimateAndFirFilter(DataHandlerMixedSamplingWi
             else:  # if no unfiltered meteo branch
                 transformation_res["filtered_meteo"] = transformation_meteo
         return transformation_res if len(transformation_res) > 0 else None
-
-    def get_X_original(self):
-        if self.use_filter_branches is True:
-            X = []
-            for data in self._collection:
-                if hasattr(data, "filter_dim"):
-                    X_total = data.get_X()
-                    filter_dim = data.filter_dim
-                    for filter_name in data.filter_dim_order:
-                        X.append(X_total.sel({filter_dim: filter_name}, drop=True))
-                else:
-                    X.append(data.get_X())
-            return X
-        else:
-            return super().get_X_original()
diff --git a/mlair/data_handler/data_handler_with_filter.py b/mlair/data_handler/data_handler_with_filter.py
index 997ecbf51740cce159d2339b589728b5e708de53..47ccc5510c8135745c518611504cd02900a1f883 100644
--- a/mlair/data_handler/data_handler_with_filter.py
+++ b/mlair/data_handler/data_handler_with_filter.py
@@ -116,6 +116,21 @@ class DataHandlerFilter(DefaultDataHandler):
         self.use_filter_branches = use_filter_branches
         super().__init__(*args, **kwargs)
 
+    def get_X_original(self):
+        if self.use_filter_branches is True:
+            X = []
+            for data in self._collection:
+                if hasattr(data, "filter_dim"):
+                    X_total = data.get_X()
+                    filter_dim = data.filter_dim
+                    for filter_name in data.filter_dim_order:
+                        X.append(X_total.sel({filter_dim: filter_name}, drop=True))
+                else:
+                    X.append(data.get_X())
+            return X
+        else:
+            return super().get_X_original()
+
 
 class DataHandlerFirFilterSingleStation(DataHandlerFilterSingleStation):
     """Data handler for a single station to be used by a superior data handler. Inputs are FIR filtered."""