diff --git a/experiment/meteo_france_SCM_study/safran/safran_extended.py b/experiment/meteo_france_SCM_study/abstract_extended_study.py
similarity index 91%
rename from experiment/meteo_france_SCM_study/safran/safran_extended.py
rename to experiment/meteo_france_SCM_study/abstract_extended_study.py
index 17cc73a364faa86c09308eefc5b5de22c85051f3..2da5a1e8de34dae4929b2c4cb8959a5f5a7e9911 100644
--- a/experiment/meteo_france_SCM_study/safran/safran_extended.py
+++ b/experiment/meteo_france_SCM_study/abstract_extended_study.py
@@ -1,11 +1,10 @@
 import numpy as np
 from collections import OrderedDict
 
-from experiment.meteo_france_SCM_study.safran.safran import Safran
-from utils import cached_property
+from experiment.meteo_france_SCM_study.abstract_study import AbstractStudy
 
 
-class ExtendedSafran(Safran):
+class AbstractExtendedStudy(AbstractStudy):
 
     @property
     def region_names(self):
@@ -33,15 +32,14 @@ class ExtendedSafran(Safran):
                                                 for massif_name, region_name in self.massif_name_to_region_name.items()
                                                 if region_name_loop in region_name]
             massif_ids_belong_to_the_group = [massif_id
-                                              for massif_id, massif_name in self.original_safran_massif_id_to_massif_name.items()
+                                              for massif_id, massif_name in
+                                              self.original_safran_massif_id_to_massif_name.items()
                                               if massif_name in massif_names_belong_to_the_group]
             region_name_to_massifs_ids[region_name_loop] = massif_ids_belong_to_the_group
         return region_name_to_massifs_ids
 
     """ Properties """
 
-
-
     @property
     def _year_to_daily_time_serie(self) -> OrderedDict:
         return self._year_to_extended_time_serie(aggregation_function=np.mean)
@@ -62,8 +60,3 @@ class ExtendedSafran(Safran):
 
             year_to_extended_time_serie[year] = new_time_serie
         return year_to_extended_time_serie
-
-
-
-
-
diff --git a/experiment/meteo_france_SCM_study/crocus/crocus.py b/experiment/meteo_france_SCM_study/crocus/crocus.py
index 27331668a17237f2a7e88d4ff79a594f6fa3b6e8..c68a04fbf6b7c68a8f821a1d80ad8ba9ad72bdc0 100644
--- a/experiment/meteo_france_SCM_study/crocus/crocus.py
+++ b/experiment/meteo_france_SCM_study/crocus/crocus.py
@@ -1,3 +1,4 @@
+from experiment.meteo_france_SCM_study.abstract_extended_study import AbstractExtendedStudy
 from experiment.meteo_france_SCM_study.abstract_study import AbstractStudy
 from experiment.meteo_france_SCM_study.crocus.crocus_variables import CrocusSweVariable, CrocusDepthVariable
 
@@ -19,12 +20,20 @@ class CrocusSwe(Crocus):
         super().__init__(CrocusSweVariable, altitude)
 
 
+class ExtendedCrocusSwe(AbstractExtendedStudy, CrocusSwe):
+    pass
+
+
 class CrocusDepth(Crocus):
 
     def __init__(self, altitude=1800):
         super().__init__(CrocusDepthVariable, altitude)
 
 
+class ExtendedCrocusDepth(AbstractExtendedStudy, CrocusDepth):
+    pass
+
+
 if __name__ == '__main__':
     for variable_class in [CrocusSweVariable, CrocusDepthVariable]:
         study = Crocus(variable_class=variable_class)
diff --git a/experiment/meteo_france_SCM_study/main_visualize.py b/experiment/meteo_france_SCM_study/main_visualize.py
index 822001c8f97305119ac881d1bb56ad3b5eedf80d..48eb5f401912929701d5d369a92f7b9ce13af14b 100644
--- a/experiment/meteo_france_SCM_study/main_visualize.py
+++ b/experiment/meteo_france_SCM_study/main_visualize.py
@@ -1,9 +1,9 @@
 from experiment.meteo_france_SCM_study.abstract_study import AbstractStudy
-from experiment.meteo_france_SCM_study.crocus.crocus import CrocusDepth, CrocusSwe
-from experiment.meteo_france_SCM_study.safran.safran import Safran
+from experiment.meteo_france_SCM_study.crocus.crocus import CrocusDepth, CrocusSwe, ExtendedCrocusDepth, \
+    ExtendedCrocusSwe
+from experiment.meteo_france_SCM_study.safran.safran import Safran, ExtendedSafran
 from itertools import product
 
-from experiment.meteo_france_SCM_study.safran.safran_extended import ExtendedSafran
 from experiment.meteo_france_SCM_study.safran.safran_visualizer import StudyVisualizer
 
 
@@ -21,7 +21,7 @@ def load_all_studies(study_class, only_first_one=False):
 
 
 if __name__ == '__main__':
-    for study_class in [ExtendedSafran, Safran, CrocusSwe, CrocusDepth][:1]:
+    for study_class in [ExtendedSafran, ExtendedCrocusSwe, ExtendedCrocusDepth][:]:
         for study in load_all_studies(study_class, only_first_one=True):
             study_visualizer = StudyVisualizer(study)
             # study_visualizer.visualize_independent_margin_fits(threshold=[None, 20, 40, 60][0])
diff --git a/experiment/meteo_france_SCM_study/safran/fit_safran.py b/experiment/meteo_france_SCM_study/safran/fit_safran.py
index 47fe572cbad03ac1180cd1a2a24af48593c3b5de..7e4a8ecc35cab81f671ed71b1fbb3bc102d98770 100644
--- a/experiment/meteo_france_SCM_study/safran/fit_safran.py
+++ b/experiment/meteo_france_SCM_study/safran/fit_safran.py
@@ -1,6 +1,6 @@
 import pandas as pd
 
-from experiment.meteo_france_SCM_study.safran.safran_extended import ExtendedSafran
+from experiment.meteo_france_SCM_study.safran.safran import ExtendedSafran
 from utils import VERSION
 
 
diff --git a/experiment/meteo_france_SCM_study/safran/safran.py b/experiment/meteo_france_SCM_study/safran/safran.py
index 44288118d27806d429d4d4afb2732f665dcd8a89..f5877b9e60750d6dbf3b663c5dc35a29e54b2ff3 100644
--- a/experiment/meteo_france_SCM_study/safran/safran.py
+++ b/experiment/meteo_france_SCM_study/safran/safran.py
@@ -1,3 +1,4 @@
+from experiment.meteo_france_SCM_study.abstract_extended_study import AbstractExtendedStudy
 from experiment.meteo_france_SCM_study.abstract_study import AbstractStudy
 from experiment.meteo_france_SCM_study.abstract_variable import AbstractVariable
 from experiment.meteo_france_SCM_study.safran.safran_snowfall_variable import SafranSnowfallVariable
@@ -17,3 +18,6 @@ class Safran(AbstractStudy):
     def variable_name(self):
         return super().variable_name + ' cumulated over {} days'.format(self.nb_days_of_snowfall)
 
+
+class ExtendedSafran(AbstractExtendedStudy, Safran):
+    pass