diff --git a/src/main/java/ch/hepia/numeric/Matrix.java b/src/main/java/ch/hepia/numeric/Matrix.java
new file mode 100644
index 0000000000000000000000000000000000000000..362242d565d11856a6d8690c84b78a895ac95b98
--- /dev/null
+++ b/src/main/java/ch/hepia/numeric/Matrix.java
@@ -0,0 +1,127 @@
+package ch.hepia.numeric;
+
+import java.util.function.BiFunction;
+import java.util.function.DoubleFunction;
+
+public class Matrix {
+
+    public int nbRows() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public int nbCols() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public List<Vector> cols() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public List<Transposed> rows() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Transposed getRow(int i) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Vector getCol(int i) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public double get(int i, int j) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    void set(int row, int col, double value) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Matrix map(DoubleFunction<Double> f) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Matrix add(Matrix that) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Matrix mul(double d) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Matrix mul(Matrix that) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Matrix sub(Matrix that) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public boolean isSquare() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Matrix t() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Matrix rowRemoved(int i){
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Matrix colRemoved(int i){
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Matrix removed(int i, int j) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Matrix adjugate() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public Matrix inv() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+
+    public double det() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+
+    public Matrix copy() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+
+    @Override
+    public String toString() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+
+    public static Matrix of(List<Transposed> ts) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public static Matrix of(Transposed... ts) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public static Matrix empty() {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public static Matrix fill(int rows, int cols, double value) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public static Matrix zeros(int rows, int cols) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public static Matrix ones(int rows, int cols) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet"); 
+    }
+    public static Matrix tabulate(int rows, int cols, BiFunction<Integer, Integer, Double> f) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public static Matrix diag(double... ds) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public static Matrix identity(int nb) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+    public static Vector solve(Matrix m, Vector b) {
+        throw new UnsupportedOperationException("This feature isn't implemented yet");
+    }
+}
+
+
+
+
+
+
+
+
+
+