diff --git a/src/main/java/fr/univamu/l2mi/Clock.java b/src/main/java/fr/univamu/l2mi/Clock.java
new file mode 100644
index 0000000000000000000000000000000000000000..56a3429e30a5a13bbf18a2f6321be6a2ae6d0a28
--- /dev/null
+++ b/src/main/java/fr/univamu/l2mi/Clock.java
@@ -0,0 +1,29 @@
+package fr.univamu.l2mi;
+
+import fr.univamu.l2mi.ticker.Tickable;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class Clock implements Tickable {
+    private final Date currentTime;
+    public Clock () {
+        currentTime = new Date(0);
+    }
+
+        public String getCurrentTime() {
+            SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
+            return dateFormat.format(currentTime);
+        }
+        @Override
+        public void notifyTick() {
+                currentTime.setTime(currentTime.getTime() +1000);
+                System.out.println(getCurrentTime());
+        }
+    }
+
+
+
+
+
+    
diff --git a/src/main/java/fr/univamu/l2mi/Main.java b/src/main/java/fr/univamu/l2mi/Main.java
index beb99cbcd1fecc17654a208cb014ee70b3416ea5..831885e2e983a92d260fed6d689f1581b5d3d5dd 100644
--- a/src/main/java/fr/univamu/l2mi/Main.java
+++ b/src/main/java/fr/univamu/l2mi/Main.java
@@ -1,7 +1,13 @@
 package fr.univamu.l2mi;
+import fr.univamu.l2mi.MyTickable;
+import fr.univamu.l2mi.ticker.Ticker;
 
 public class Main {
     public static void main(String[] args) throws InterruptedException {
-        System.out.println("Hello World!");
+        Ticker ticker = new Ticker();
+        Clock clock = new Clock();
+        MyTickable myTickable = new MyTickable(clock);
+        ticker.add(clock);
+        ticker.startTicking();
     }
 }
\ No newline at end of file
diff --git a/src/main/java/fr/univamu/l2mi/MyTickable.java b/src/main/java/fr/univamu/l2mi/MyTickable.java
new file mode 100644
index 0000000000000000000000000000000000000000..8fb7ede34b2bdadc0be503822ccab27b9b6e5c98
--- /dev/null
+++ b/src/main/java/fr/univamu/l2mi/MyTickable.java
@@ -0,0 +1,15 @@
+package fr.univamu.l2mi;
+
+import fr.univamu.l2mi.ticker.Tickable;
+
+public class MyTickable implements Tickable {
+
+private final Clock clock ;
+public MyTickable(Clock clock ){
+this.clock = clock;
+}
+@Override
+public void notifyTick(){
+System.out.println("current time: " + clock.getCurrentTime());
+}
+}
diff --git a/src/main/java/fr/univamu/l2mi/OveradevoidnotifyTick.java b/src/main/java/fr/univamu/l2mi/OveradevoidnotifyTick.java
new file mode 100644
index 0000000000000000000000000000000000000000..30be0381b4b4938b4e7b6320865232f671b638f2
--- /dev/null
+++ b/src/main/java/fr/univamu/l2mi/OveradevoidnotifyTick.java
@@ -0,0 +1,4 @@
+package fr.univamu.l2mi;
+
+public @interface OveradevoidnotifyTick {
+}