diff --git a/pyAmakCore/classes/tools/amasIHM.py b/pyAmakCore/classes/tools/amasIHM.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c1a6889566a7cf70374a6cfc999547e0ffe48cf
--- /dev/null
+++ b/pyAmakCore/classes/tools/amasIHM.py
@@ -0,0 +1,36 @@
+"""
+Amas class that need to be used for pyAmakIhm
+"""
+from pyAmakCore.classes.amas import Amas
+from pyAmakCore.classes.environment import Environment
+
+
+class AmasIHM(Amas):
+    """
+    Convenient class to override while using pyAmakIHM
+    """
+
+    def __init__(self, environment: Environment):
+        self.__observer = None
+        super().__init__(environment)
+
+    def get_Agents_Sorted(self):
+        """
+        sort agent by id
+        """
+        agents = self.get_agents()
+        agents.sort(key=lambda x: x.get_id())
+        return agents
+
+    def cycle(self) -> None:
+        """
+        override amas cycle, to update obsever after each cycle
+        """
+        super().cycle()
+        self.__observer.updateCycle(self.get_environment(), self)
+
+    def attach(self, observer: 'Controleur') -> None:
+        """
+        set observer pointer to observer
+        """
+        self.__observer = observer
diff --git a/setup.py b/setup.py
index 58c025a96c70d9f344b9d08422c581a589eb9946..fec18fe1b1c80df676f2a8c987e584a3545928ae 100644
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages
 setup(
     name='pyAmakCore',
     packages=find_packages(),
-    version='0.0.3',
+    version='0.0.4',
     description='AmakFramework in python',
     author='BE',
     install_requires=[],