diff --git a/src/main/java/ch/hepia/numeric/Vector.java b/src/main/java/ch/hepia/numeric/Vector.java
index 7ed7bf3ea1af995eb59e8cd2c117fd432323b5b3..eb9d6946a9d1c4ae52c01e8d41b5c26dcb0c633b 100644
--- a/src/main/java/ch/hepia/numeric/Vector.java
+++ b/src/main/java/ch/hepia/numeric/Vector.java
@@ -189,7 +189,27 @@ final public class Vector {
     public static double norms(List<Vector> vs) {
         return Vector.sum(vs).norm();
     }
-
+    // FILL NEW VERSION :
+    public static SubVec fill(int nbr){
+        return new Vector().new SubVec(nbr);
+    }
+    protected class SubVec{
+        private int nbre;
+        protected SubVec(int nbre){
+            this.nbre = nbre;
+        }
+        private int getNbre(){
+            return this.nbre;
+        }
+        
+        public Vector withValue(Double alpha){
+            List<Double> newVec = new ArrayList<>(); 
+            for (int i = 0; i < this.getNbre();i++){
+                newVec.add(alpha);
+            }
+            return new Vector(newVec);
+        }
+    }
 
     @Override
     public String toString() {
diff --git a/src/test/java/ch/hepia/numeric/AppTest.java b/src/test/java/ch/hepia/numeric/AppTest.java
index e5f5072e911f828b139301cc7ccb8ebff4d1d728..cce66c1b6699eafe8cafcbc487385c9c7da4326d 100644
--- a/src/test/java/ch/hepia/numeric/AppTest.java
+++ b/src/test/java/ch/hepia/numeric/AppTest.java
@@ -137,4 +137,11 @@ class VectorTest {
         assertEquals(v.slice(4,2), Transposed.empty());
         assertEquals(v.removed(2), Transposed.of(1.0, 2.0, 4.0, 5.0));
     }
+// Vector V2 functions test :
+    @Test
+    void vectorfillv2() {
+        assertEquals(Vector.fill(3).withValue(1.7), Vector.of(1.7, 1.7, 1.7));
+        assertEquals(Vector.fill(4).withValue(1.5), Vector.of(1.5, 1.5, 1.5, 1.5));
+        assertEquals(Vector.fill(2).withValue(1.0), Vector.of(1.0, 1.0));
+    }
 }