diff --git a/src/Modules.py b/src/Modules.py
index da66759402e8d06f881fcddb8fc7829c01be1102..c399a6ec5019f5daba315b26bf8330ede04c53c3 100644
--- a/src/Modules.py
+++ b/src/Modules.py
@@ -3,9 +3,10 @@ from Class_Mod import Plsr, LinearPCA, Umap, find_col_index, PinardPlsr, Nmf, AP
 from Class_Mod import LWPLSR, list_files, metrics, TpeIpls, reg_plot, resid_plot, Sk_Kmeans, DxRead, Hdbscan, read_dx, PlsProcess
 from Class_Mod.DATA_HANDLING import *
 from Class_Mod.Miscellaneous import prediction, download_results, plot_spectra, local_css
-from style.header import add_header
 from Report import report
 css_file = Path("style/")
+pages_folder = Path("pages/")
+from style.header import add_header, add_sidebar
 from config.config import pdflatex_path
 local_css(css_file / "style.css")
 
diff --git a/src/app.py b/src/app.py
index e55e99d0ab52aa3bcc2328c4cee744ebd548c05a..cc8f226ce4197e976a0f9ac28544e70fb3e25cf0 100644
--- a/src/app.py
+++ b/src/app.py
@@ -1,43 +1,13 @@
 from Packages import *
 st.set_page_config(page_title="NIRS Utils", page_icon=":goat:", layout="wide",)
-if 'interface' not in st.session_state:
-    st.session_state['interface'] = 'simple'
+
 from Modules import *
 from Class_Mod.DATA_HANDLING import *
 
 
 add_header()
 
-pages_folder = Path("pages/")
-# # TOC menu on the left
-show_pages(
-    [Page("app.py", "Home"),
-     Page(str(pages_folder / "4-inputs.py"), "Inputs"),
-     Page(str(pages_folder / "1-samples_selection.py"), "Samples Selection"),
-     Page(str(pages_folder / "2-model_creation.py"), "Models Creation & Predictions"),
-
-     ]
-) 
-
-with st.sidebar:
-    interface = st.selectbox(label="Interface", options=['simple', 'advanced'], key='interface')
-    # st.page_link(str(pages_folder / '1-samples_selection.py'))
-    if st.session_state['interface'] == 'simple':
-    #     st.page_link(str(pages_folder / '2-model_creation.py'))
-        pass
-    # if advanced interface, split Models Creation and Predictions
-    elif st.session_state['interface'] == 'advanced':
-        show_pages(
-            [Page("app.py", "Home"),
-             Page(str(pages_folder / "4-inputs.py"), "Inputs"),
-             Page(str(pages_folder / "1-samples_selection.py"), "Samples Selection"),
-             Page(str(pages_folder / "2-model_creation.py"), "Models Creation"),
-             Page(str(pages_folder / "3-prediction.py"), "Predictions"),
-            ]
-        )
-        # st.page_link(str(pages_folder / '2-model_creation.py'))
-        # st.page_link(str(pages_folder / '3-prediction.py'))
-
+add_sidebar(pages_folder)
 
 # Page header
 with st.container():
diff --git a/src/pages/1-samples_selection.py b/src/pages/1-samples_selection.py
index 0b2aac3ad40232791c3527a47055543346edf488..8c9d6056ac06c2d6d463302a0b276bdd3db0fef4 100644
--- a/src/pages/1-samples_selection.py
+++ b/src/pages/1-samples_selection.py
@@ -15,6 +15,8 @@ if os.path.exists(repertoire_a_vider):
 add_header()
 #load specific model page css
 local_css(css_file / "style_model.css")
+add_sidebar(pages_folder)
+
 
 #define some variables
 tcr=pd.DataFrame()
@@ -24,8 +26,6 @@ dim_red_methods=['', 'PCA','UMAP', 'NMF']  # List of dimensionality reduction al
 cluster_methods = ['', 'Kmeans','HDBSCAN', 'AP'] # List of clustering algos
 selec_strategy = ['center','random']
 
-# check session state and define default values if simple interface to automate processing
-st.session_state["interface"] = st.session_state.get('interface')
 if st.session_state["interface"] == 'simple':
     st.write(':red[Automated Simple Interface]')
     hide_pages("Predictions")
diff --git a/src/pages/2-model_creation.py b/src/pages/2-model_creation.py
index 8c31f316fb407aa9c3dacce3bb285f9f158783ee..c5e24976f12c61db947aebacf3ffba0623ab310c 100644
--- a/src/pages/2-model_creation.py
+++ b/src/pages/2-model_creation.py
@@ -5,6 +5,7 @@ from Modules import *
 from Class_Mod.DATA_HANDLING import *
 from Class_Mod.Miscellaneous import desc_stats
 add_header()
+add_sidebar(pages_folder)
 
 repertoire_a_vider = Path('Report/figures')
 if os.path.exists(repertoire_a_vider):
@@ -17,13 +18,6 @@ if os.path.exists(repertoire_a_vider):
 
 json_sp = pd.DataFrame()
 
-st.session_state["interface"] = st.session_state.get('interface')
-if st.session_state["interface"] == 'simple':
-    hide_pages("Predictions")
-
-#path = os.path.dirname(os.path.abspath(__file__)).replace('\\','/')
-#css_file = path[:path.find('/pages')]+'/style'
-#local_css(css_file +"/style_model.css")
 local_css(css_file / "style_model.css")
 
     ####################################### page Design #######################################
diff --git a/src/pages/3-prediction.py b/src/pages/3-prediction.py
index b79dafdfe07ab2e0afc7894fc66d46598d4ccca2..dcd59360d2870b62dfdd706e86b1d9df8c7fb782 100644
--- a/src/pages/3-prediction.py
+++ b/src/pages/3-prediction.py
@@ -11,8 +11,8 @@ from Class_Mod.DATA_HANDLING import *
 # # Injecter le code HTML du bandeau
 # st.markdown(bandeau_html, unsafe_allow_html=True)
 add_header()
+add_sidebar(pages_folder)
 
-st.session_state["interface"] = st.session_state.get('interface')
 local_css(css_file / "style_model.css")
 
 
diff --git a/src/style/header.py b/src/style/header.py
index b91bf42a0dc1ae6b56cd69d1a2c9a726e19e2fdf..0c01027999a443d8899d52547030651cea7de5aa 100644
--- a/src/style/header.py
+++ b/src/style/header.py
@@ -8,4 +8,37 @@ def add_header():
         </div>
         """,
         unsafe_allow_html=True,
-    )
\ No newline at end of file
+    )
+
+def add_sidebar(pages_folder):
+    if 'interface' not in st.session_state:
+        st.session_state['interface'] = 'simple'
+
+    # # TOC menu on the left
+    show_pages(
+        [Page("app.py", "Home"),
+         Page(str(pages_folder / "4-inputs.py"), "Inputs"),
+         Page(str(pages_folder / "1-samples_selection.py"), "Samples Selection"),
+         Page(str(pages_folder / "2-model_creation.py"), "Models Creation & Predictions"),
+
+         ]
+    )
+
+    with st.sidebar:
+        interface = st.selectbox(label="Interface", options=['simple', 'advanced'], key='interface')
+        # st.page_link(str(pages_folder / '1-samples_selection.py'))
+        if st.session_state['interface'] == 'simple':
+            #     st.page_link(str(pages_folder / '2-model_creation.py'))
+            pass
+        # if advanced interface, split Models Creation and Predictions
+        elif st.session_state['interface'] == 'advanced':
+            show_pages(
+                [Page("app.py", "Home"),
+                 Page(str(pages_folder / "4-inputs.py"), "Inputs"),
+                 Page(str(pages_folder / "1-samples_selection.py"), "Samples Selection"),
+                 Page(str(pages_folder / "2-model_creation.py"), "Models Creation"),
+                 Page(str(pages_folder / "3-prediction.py"), "Predictions"),
+                 ]
+            )
+            # st.page_link(str(pages_folder / '2-model_creation.py'))
+            # st.page_link(str(pages_folder / '3-prediction.py'))