diff --git a/extreme_fit/estimator/quantile_estimator/abstract_quantile_estimator.py b/extreme_fit/estimator/quantile_estimator/abstract_quantile_estimator.py
index a07ed9faa22f1e9eca1a68005ddf7a473890ceeb..0c1a1a1d33886741956c1f7ef518702bf9ffb00a 100644
--- a/extreme_fit/estimator/quantile_estimator/abstract_quantile_estimator.py
+++ b/extreme_fit/estimator/quantile_estimator/abstract_quantile_estimator.py
@@ -31,35 +31,3 @@ class AbstractQuantileEstimator(AbstractEstimator, ABC):
         raise NotImplementedError
 
 
-class QuantileEstimatorFromMargin(LinearMarginEstimator, AbstractQuantileEstimator):
-
-    def __init__(self, dataset: AbstractDataset, margin_model: AbstractTemporalLinearMarginModel, quantile):
-        super().__init__(dataset=dataset, quantile=quantile, margin_model=margin_model)
-
-    @cached_property
-    def function_from_fit(self) -> AbstractQuantileFunction:
-        linear_margin_function = super().function_from_fit  # type: AbstractMarginFunction
-        return QuantileFunctionFromMarginFunction(self.dataset.coordinates, linear_margin_function, self.quantile)
-
-
-class QuantileRegressionEstimator(AbstractQuantileEstimator):
-
-    def __init__(self, dataset: AbstractDataset, quantile: float, quantile_regression_model_class: type, **kwargs):
-        super().__init__(dataset, quantile, **kwargs)
-        self.quantile_regression_model = quantile_regression_model_class(dataset, quantile)  # type: AbstractQuantileRegressionModel
-
-    def _fit(self) -> AbstractResultFromModelFit:
-        return self.quantile_regression_model.fit()
-
-    @cached_property
-    def function_from_fit(self) -> AbstractQuantileFunction:
-        result_from_model_fit = self.result_from_model_fit  # type: ResultFromQuantreg
-        coefs = result_from_model_fit.coefficients
-        nb_coefs = len(coefs)
-        dims = list(range(nb_coefs-1))
-        idx_to_coef = dict(zip([-1] + dims, coefs))
-        linear_coef = LinearCoef(idx_to_coef=idx_to_coef)
-        param_function = LinearParamFunction(dims=dims, coordinates=self.dataset.coordinates.coordinates_values(),
-                                             linear_coef=linear_coef)
-        return QuantileFunctionFromParamFunction(coordinates=self.dataset.coordinates,
-                                                 param_function=param_function)
diff --git a/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_margin.py b/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_margin.py
new file mode 100644
index 0000000000000000000000000000000000000000..fa130c1d0daa4bf6e922acdabc52e980dc3f05f5
--- /dev/null
+++ b/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_margin.py
@@ -0,0 +1,31 @@
+from abc import ABC
+
+import numpy as np
+from cached_property import cached_property
+
+from extreme_fit.estimator.abstract_estimator import AbstractEstimator
+from extreme_fit.estimator.margin_estimator.abstract_margin_estimator import LinearMarginEstimator
+from extreme_fit.estimator.quantile_estimator.abstract_quantile_estimator import AbstractQuantileEstimator
+from extreme_fit.function.abstract_quantile_function import AbstractQuantileFunction, \
+    QuantileFunctionFromMarginFunction, QuantileFunctionFromParamFunction
+from extreme_fit.function.margin_function.abstract_margin_function import AbstractMarginFunction
+from extreme_fit.function.param_function.linear_coef import LinearCoef
+from extreme_fit.function.param_function.param_function import LinearParamFunction
+from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \
+    AbstractTemporalLinearMarginModel
+from extreme_fit.model.margin_model.linear_margin_model.linear_margin_model import LinearMarginModel
+from extreme_fit.model.quantile_model.quantile_regression_model import AbstractQuantileRegressionModel
+from extreme_fit.model.result_from_model_fit.abstract_result_from_model_fit import AbstractResultFromModelFit
+from extreme_fit.model.result_from_model_fit.result_from_quantilreg import ResultFromQuantreg
+from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset
+
+
+class QuantileEstimatorFromMargin(LinearMarginEstimator, AbstractQuantileEstimator):
+
+    def __init__(self, dataset: AbstractDataset, margin_model: AbstractTemporalLinearMarginModel, quantile):
+        super().__init__(dataset=dataset, quantile=quantile, margin_model=margin_model)
+
+    @cached_property
+    def function_from_fit(self) -> AbstractQuantileFunction:
+        linear_margin_function = super().function_from_fit  # type: AbstractMarginFunction
+        return QuantileFunctionFromMarginFunction(self.dataset.coordinates, linear_margin_function, self.quantile)
diff --git a/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_regression.py b/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_regression.py
new file mode 100644
index 0000000000000000000000000000000000000000..6cdc634c99aeed7238f06d22f53b53e03cd70d0d
--- /dev/null
+++ b/extreme_fit/estimator/quantile_estimator/quantile_estimator_from_regression.py
@@ -0,0 +1,44 @@
+from abc import ABC
+
+import numpy as np
+from cached_property import cached_property
+
+from extreme_fit.estimator.abstract_estimator import AbstractEstimator
+from extreme_fit.estimator.margin_estimator.abstract_margin_estimator import LinearMarginEstimator
+from extreme_fit.estimator.quantile_estimator.abstract_quantile_estimator import AbstractQuantileEstimator
+from extreme_fit.function.abstract_quantile_function import AbstractQuantileFunction, \
+    QuantileFunctionFromMarginFunction, QuantileFunctionFromParamFunction
+from extreme_fit.function.margin_function.abstract_margin_function import AbstractMarginFunction
+from extreme_fit.function.param_function.linear_coef import LinearCoef
+from extreme_fit.function.param_function.param_function import LinearParamFunction
+from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \
+    AbstractTemporalLinearMarginModel
+from extreme_fit.model.margin_model.linear_margin_model.linear_margin_model import LinearMarginModel
+from extreme_fit.model.quantile_model.quantile_regression_model import AbstractQuantileRegressionModel
+from extreme_fit.model.result_from_model_fit.abstract_result_from_model_fit import AbstractResultFromModelFit
+from extreme_fit.model.result_from_model_fit.result_from_quantilreg import ResultFromQuantreg
+from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset
+
+
+class QuantileRegressionEstimator(AbstractQuantileEstimator):
+
+    def __init__(self, dataset: AbstractDataset, quantile: float, quantile_regression_model_class: type, **kwargs):
+        super().__init__(dataset, quantile, **kwargs)
+        self.quantile_regression_model = quantile_regression_model_class(dataset,
+                                                                         quantile)  # type: AbstractQuantileRegressionModel
+
+    def _fit(self) -> AbstractResultFromModelFit:
+        return self.quantile_regression_model.fit()
+
+    @cached_property
+    def function_from_fit(self) -> AbstractQuantileFunction:
+        result_from_model_fit = self.result_from_model_fit  # type: ResultFromQuantreg
+        coefs = result_from_model_fit.coefficients
+        nb_coefs = len(coefs)
+        dims = list(range(nb_coefs - 1))
+        idx_to_coef = dict(zip([-1] + dims, coefs))
+        linear_coef = LinearCoef(idx_to_coef=idx_to_coef)
+        param_function = LinearParamFunction(dims=dims, coordinates=self.dataset.coordinates.coordinates_values(),
+                                             linear_coef=linear_coef)
+        return QuantileFunctionFromParamFunction(coordinates=self.dataset.coordinates,
+                                                 param_function=param_function)
diff --git a/test/test_extreme_fit/test_estimator/test_quantile_estimator.py b/test/test_extreme_fit/test_estimator/test_quantile_estimator.py
index 44840c15b830821ecb916fc2125c494855249851..ab8a4d606e533213067106fc430b23407c7ed50d 100644
--- a/test/test_extreme_fit/test_estimator/test_quantile_estimator.py
+++ b/test/test_extreme_fit/test_estimator/test_quantile_estimator.py
@@ -1,7 +1,7 @@
 import unittest
 
-from extreme_fit.estimator.quantile_estimator.abstract_quantile_estimator import QuantileEstimatorFromMargin, \
-    QuantileRegressionEstimator
+from extreme_fit.estimator.quantile_estimator.quantile_estimator_from_margin import QuantileEstimatorFromMargin
+from extreme_fit.estimator.quantile_estimator.quantile_estimator_from_regression import QuantileRegressionEstimator
 from extreme_fit.model.margin_model.linear_margin_model.temporal_linear_margin_models import StationaryTemporalModel
 from spatio_temporal_dataset.dataset.simulation_dataset import MarginDataset
 from test.test_utils import load_test_1D_and_2D_spatial_coordinates, load_test_spatiotemporal_coordinates, \