diff --git a/pyAmakIHM/classes/controleur.py b/pyAmakIHM/classes/controleur.py
index 1ebec57d9ddfed223fc5a81b3584e8f8bf42113a..23910146921666f701648f4e907dfd8837a88774 100644
--- a/pyAmakIHM/classes/controleur.py
+++ b/pyAmakIHM/classes/controleur.py
@@ -18,13 +18,16 @@ class Controleur:
     def __init__(
         self,
         fenetre : 'Fenetre',
-        amas : 'Amas'
+        scheduler : 'SchedulerIHM'
     ) -> None :
         self.__th = None
         self.__fenetre = fenetre
         self.__fenetre.attach(self)
-        self.__amas = amas
-        self.__amas.attach(self)
+
+        self.__scheduler = scheduler
+        self.__scheduler.attach(self)
+        self.__amas = scheduler.get_amas()
+
         self.__is_run = False
 
     def get_fenetre(self) -> 'Fenetre':
@@ -33,6 +36,9 @@ class Controleur:
     def get_amas(self) -> 'Amas':
         return self.__amas
 
+    def get_scheduler(self) -> 'SchedulerIHM':
+        return self.__scheduler
+
     """
     Draw a rectangle with x,y coords, height, width and color
     """
@@ -215,26 +221,26 @@ class Controleur:
     Set the execution speed of amas
     """
     def updateScale(self, value : int) -> None:
-        self.__amas.set_sleep(int(value))
+        self.__scheduler.set_sleep(int(value))
 
     """
     Start or Stop the execution depending on the current state
     """
     def updateStartStop(self) -> None:
-        if(self.__is_run):
+        if self.__is_run:
             self.__is_run = False
-            self.__amas.take_token()
+            self.__scheduler.stop()
         else:
             self.__is_run = True
-            self.__amas.put_token()
+            self.__scheduler.start()
 
-    def updateCycle(self,env,amas) -> None:
+    def updateCycle(self) -> None:
         try:
-            self.updateWindow(env,amas)
+            self.updateWindow()
         except:
             return
 
-    def updateWindow(env,amas):
+    def updateWindow(self):
         pass
 
     def initialisation(self) -> None:
@@ -245,9 +251,9 @@ class Controleur:
     """
     def start(self) -> None:
         self.initialisation()
-        self.__th = Thread(target=self.__amas.start)
+        self.__th = Thread(target=self.__scheduler.run)
         self.__th.start()
         self.__fenetre.display()
 
     def updateClosing(self):
-        self.__amas.exit_program()
+        self.__scheduler.exit_program()