diff --git a/src/main/java/ch/hepia/numeric/Vector.java b/src/main/java/ch/hepia/numeric/Vector.java
index 3d0fe26e8b785ce7068b9f209ed53740023be6ba..0ac7b7a1eaa8f546f68e90d44ee5efc2a702ebfd 100644
--- a/src/main/java/ch/hepia/numeric/Vector.java
+++ b/src/main/java/ch/hepia/numeric/Vector.java
@@ -14,13 +14,6 @@ final public class Vector {
     }
 
     private Vector(Double... elements) {
-      this.lstVector=new ArrayList<Double>();
-       for(double e:elements)
-       {
-         lstVector.add(e);
-       }
-    }
-    private Vector(List<Double> elements) {
       this.lstVector=new ArrayList<Double>();
       for(double e:elements)
       {
@@ -28,6 +21,10 @@ final public class Vector {
       }
     }
 
+    private Vector(List<Double> elements) {
+      this.lstVector=elements;
+    }
+
     public Transposed t() {
         return new Transposed(this);
     }
@@ -54,9 +51,9 @@ final public class Vector {
 
     public Vector mul(double m) {
         Vector v = new Vector();
-        for(int i=0;i<this.len();i++)
+        for(double e:this.lstVector)
         {
-          v.lstVector.add(this.get(i)*m);
+          v.lstVector.add(e*m);
         }
         return v;
     }
@@ -71,14 +68,12 @@ final public class Vector {
     }
 
     public double norm() {
-        double norme=0;
         double power=0;
-        for(int i=0;i<this.len();i++)
+        for(double e:this.lstVector)
         {
-          power=power +(this.get(i)*this.get(i));
+          power+=(e*e);
         }
-        norme=Math.sqrt(power);
-        return norme;
+        return Math.sqrt(power);
     }
 
     public Vector sliceFrom(int i) {
@@ -114,26 +109,16 @@ final public class Vector {
     }
 
     public static Vector of(Double... elements) {
-      Vector v = new Vector();
-       for(double e:elements)
-       {
-         v.lstVector.add(e);
-       }
-       return v;
+       return new Vector(elements);
     }
 
     public static Vector of(List<Double> elements) {
-        Vector v = new Vector();
-         for(double e:elements)
-         {
-           v.lstVector.add(e);
-         }
-         return v;
+          return new Vector(elements);
     }
 
     public static Vector empty() {
-      Vector v = new Vector();
-      return v;
+      // Vector v = new Vector();
+      return new Vector();
     }
 
     public static Vector fill(int nb, double value) {
@@ -195,15 +180,14 @@ final public class Vector {
       return "Vector"+String.valueOf(strings);
     }
 
-/*
+
     @Override
     public boolean equals(Object obj) {
-
-      if(this instanceof ch.hepia.numeric.Vector)
+      if(obj instanceof Vector)
       {
         for(int i=0;i<this.lstVector.size();i++)
         {
-          if(((Vector)obj).lstVector.get(i)!=this.lstVector.get(i))
+          if(((Vector)obj).get(i)!=this.get(i))
           {
             return false;
           }
@@ -213,9 +197,8 @@ final public class Vector {
       else
       {
         //a ecrire
-        return true;
+        return false;
       }
         //throw new UnsupportedOperationException("boolean This feature isn't implemented yet");
     }
-*/
 }
diff --git a/src/main/java/ch/hepia/structure/BinaryHeap.java b/src/main/java/ch/hepia/structure/BinaryHeap.java
new file mode 100644
index 0000000000000000000000000000000000000000..099b0faafdc27b66738fa99005069659037fdd0b
--- /dev/null
+++ b/src/main/java/ch/hepia/structure/BinaryHeap.java
@@ -0,0 +1,13 @@
+package ch.hepia.structure;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.function.DoubleFunction;
+import java.util.function.Function;
+
+final public class BinaryHeap {
+
+    private BinaryHeap() {
+
+    }
+}
diff --git a/src/test/java/ch/hepia/numeric/AppTest.java b/src/test/java/ch/hepia/numeric/AppTest.java
index bd5b656bd52e0065ce646c478ad42cdd54a90d3c..662fdd180ff97bd82937f8aa36688844f425e886 100644
--- a/src/test/java/ch/hepia/numeric/AppTest.java
+++ b/src/test/java/ch/hepia/numeric/AppTest.java
@@ -15,10 +15,14 @@ class VectorTest {
         Vector v1 = Vector.of(1.0, 2.0, 3.0);
         Vector v2 = Vector.of(-1.0, -2.0, -3.0);
         Vector v3 = Vector.of(-1.0, -2.0, -3.0);
-        //assertEquals(v1.add(v2), Vector.of(0.0, 0.0, 0.0));
+        Vector v4 = Vector.of(-50.0, -2.0, -3.0);
+        assertEquals(v1.add(v2), Vector.of(0.0, 0.0, 0.0));
         assertEquals(v1.add(v2).toString(), Vector.of(0.0, 0.0, 0.0).toString());
         assertEquals(v1.sub(v2).toString(), Vector.of(2.0, 4.0, 6.0).toString());
+        assertEquals(v4.sub(v3), Vector.of(-49.0, 0.0, 0.0));
         assertEquals(v1.mul(3.0).toString(), Vector.of(3.0, 6.0, 9.0).toString());
+        assertEquals(v1.mul(-0.0).toString(), Vector.of(-0.0, -0.0, -0.0).toString());
+        assertEquals(v1.mul(0.0).toString(), Vector.of(0.0, 0.0, 0.0).toString());
         assertEquals(Vector.empty().len(), 0);
         assertEquals(Vector.of(1.0, 2.0, 1.0).len(), 3);
     }
@@ -26,6 +30,7 @@ class VectorTest {
     @Test
     void vectorCreation() {
       assertEquals(Vector.zeros(3).toString(), Vector.of(0.0, 0.0, 0.0).toString());
+      assertEquals(Vector.zeros(10000).len(), 10000);
         //assertEquals(Vector.zeros(3), Vector.of(0.0, 0.0, 0.0));
         //assertEquals(Vector.ones(3), Vector.of(1.0, 1.0, 1.0));
         //assertEquals(Vector.of(1.0, 2.0).map( d -> d * 2.0), Vector.of(2.0, 4.0));
diff --git a/src/test/java/ch/hepia/structure/AppTest.java b/src/test/java/ch/hepia/structure/AppTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..668c64e7f5d32e02eb6bf210089383c2c54afc81
--- /dev/null
+++ b/src/test/java/ch/hepia/structure/AppTest.java
@@ -0,0 +1,17 @@
+package ch.hepia.structure;
+
+import org.junit.jupiter.api.Test;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+
+
+class BinaryHeapTest
+{
+  @Test
+  void BinaryHeapMainOperations() {
+      assertEquals(1,1);
+  }
+}