diff --git a/src/main/java/fr/univamu/sorting/Sort.java b/src/main/java/fr/univamu/sorting/Sort.java
new file mode 100644
index 0000000000000000000000000000000000000000..8d4e21cba6c24c8f42a41ecf4f0763c1d5b6c3e6
--- /dev/null
+++ b/src/main/java/fr/univamu/sorting/Sort.java
@@ -0,0 +1,22 @@
+package fr.univamu.sorting;
+
+import java.util.List;
+
+public class Sort {
+    public Sortable sortable;
+
+    public List<Integer> IntList;
+    public int[] IntTab;
+
+
+    public void sort() {
+        for (int i = 0; i < this.size() - 1; i++) {
+            for (int j = i + 1; j < this.size(); j++) {
+                if (compare(j,i) < 0) {
+                    swap(i,j);
+                }
+            }
+        }
+    }
+}
+
diff --git a/src/main/java/fr/univamu/sorting/Sortable.java b/src/main/java/fr/univamu/sorting/Sortable.java
new file mode 100644
index 0000000000000000000000000000000000000000..8f0b574b46ce27a8239c011ae81454a06b23741e
--- /dev/null
+++ b/src/main/java/fr/univamu/sorting/Sortable.java
@@ -0,0 +1,37 @@
+package fr.univamu.sorting;
+
+public interface Sortable {
+    public void swap(int index1, int index2) {
+        int value1 = IntTab[index1];
+        int value2 = IntTab[index2];
+        IntTab[index1] = value2;
+        IntTab[index2] = value1;
+
+    }
+
+    public int compare(int index1, int index2) {
+        return IntTab[index1] - (IntTab[index2];
+    }
+
+    public int size() {
+        return IntTab.length;
+    }
+    public void swap(int index1, int index2) {
+        int value1 = IntList.get(index1);
+        int value2 = IntList.get(index2);
+        IntList.set(index1, value1);
+        IntList.set(index2, value2);
+    }
+
+    public int compare(int index1, int index2) {
+        return IntList.get(index1).compareTo(IntList.get(index2));
+    }
+
+    public int size() {
+        return IntList.size();
+    }
+
+    public int get(int index) {
+        return IntList.get(index);
+    }
+}
diff --git a/src/main/java/fr/univamu/sorting/SortableIntArray.java b/src/main/java/fr/univamu/sorting/SortableIntArray.java
new file mode 100644
index 0000000000000000000000000000000000000000..aaa80ba094ba32aad61c15a7346f4c4a49ed7254
--- /dev/null
+++ b/src/main/java/fr/univamu/sorting/SortableIntArray.java
@@ -0,0 +1,19 @@
+package fr.univamu.sorting;
+
+public class SortableIntArray {
+    public int[] IntTab;
+
+    public void swap(int index1, int index2) {
+        int value1 = IntTab[index1];
+        int value2 = IntTab[index2];
+        IntTab[index1] = value2;
+        IntTab[index2] = value1;
+    }
+    public int compare(int index1, int index2) {
+        return IntTab[index1] - (IntTab[index2];
+    }
+    public int size() {
+        return IntTab.length;
+    }
+
+}
diff --git a/src/main/java/fr/univamu/sorting/SortableIntList.java b/src/main/java/fr/univamu/sorting/SortableIntList.java
index 65cc74cea2c0d8517ae3be9f1c8db94003643362..042c4d598e8ef5fdf344762d3a8c27720dfc2a3a 100644
--- a/src/main/java/fr/univamu/sorting/SortableIntList.java
+++ b/src/main/java/fr/univamu/sorting/SortableIntList.java
@@ -2,7 +2,7 @@ package fr.univamu.sorting;
 import java.util.*;
 
 public class SortableIntList {
-    public ArrayList<Integer> IntList;
+    public List<Integer> IntList;
 
     public void swap(int index1, int index2) {
         int value1 = IntList.get(index1);
@@ -13,7 +13,6 @@ public class SortableIntList {
 
     public int compare(int index1, int index2) {
         return IntList.get(index1).compareTo(IntList.get(index2));
-
     }
 
     public int size() {
@@ -23,12 +22,11 @@ public class SortableIntList {
     public int get(int index) {
         return IntList.get(index);
     }
-
     public void sort() {
         for (int i = 0; i < IntList.size() - 1; i++) {
             for (int j = i + 1; j < IntList.size(); j++) {
-                if (compare(IntList.get(j), IntList.get(i)) < 0) {
-                    swap(IntList.get(i), IntList.get(j));
+                if (compare(j,i) < 0) {
+                    swap(i,j);
                 }
             }
         }
diff --git a/src/test/java/fr/univamu/sorting/ListSortTest.java b/src/test/java/fr/univamu/sorting/ListSortTest.java
index d25a4eff80a1a3842b639fc90b3978afe050da9a..76a1d00fca8f82d96ec0bb28b7c0fa07c82afcfb 100644
--- a/src/test/java/fr/univamu/sorting/ListSortTest.java
+++ b/src/test/java/fr/univamu/sorting/ListSortTest.java
@@ -12,26 +12,7 @@ class ListSortTest {
 
   @Test
   void testSort() {
-    ArrayList<Integer> TestList = new ArrayList<Integer>(8);
-    TestList.add(1);
-    TestList.add(8);
-    TestList.add(9);
-    TestList.add(5);
-    TestList.add(4);
-    TestList.add(3);
-    TestList.add(2);
-    TestList.add(4);
-    ArrayList<Integer> TestList2 = new ArrayList<Integer>(8);
-    TestList.add(1);
-    TestList.add(2);
-    TestList.add(3);
-    TestList.add(4);
-    TestList.add(4);
-    TestList.add(5);
-    TestList.add(8);
-    TestList.add(9);
-    assertThat(TestList.sort()).isEqualTo(TestList2);
-
+    assertThat(shuffledRange(1,8).sort()).isEqualTo(range(1,8));
   }
 
 }
\ No newline at end of file