diff --git a/modele/Expression.js b/modele/Expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..6496456604c0271de3e0b63e3a6579d4ca900f0f
--- /dev/null
+++ b/modele/Expression.js
@@ -0,0 +1,19 @@
+class Expression{
+    #contenu;
+
+    construction(content = ""){
+        this.#contenu = content;
+    }
+
+    afficherContenu(){
+        return this.#contenu;
+    }
+
+    isNombre(){
+        return false;
+    }
+
+    isTexte(){
+        return false;
+    }
+}
\ No newline at end of file
diff --git a/modele/Nombre.js b/modele/Nombre.js
new file mode 100644
index 0000000000000000000000000000000000000000..a27af62042eedc0cd2e6b457d63b284d0400c950
--- /dev/null
+++ b/modele/Nombre.js
@@ -0,0 +1,14 @@
+class Nombre extends Expression{
+
+    constructor(content){
+        super(content);
+    }
+
+    afficherContenu(){
+        return super.afficherContenu();
+    }
+
+    isNombre(){
+        return true;
+    }
+}
\ No newline at end of file
diff --git a/modele/Texte.js b/modele/Texte.js
new file mode 100644
index 0000000000000000000000000000000000000000..c30ce27333fc103f5e2a1406e442bd273d6d1398
--- /dev/null
+++ b/modele/Texte.js
@@ -0,0 +1,14 @@
+class Texte extends Expression{
+
+    constructor(content){
+        super(content);
+    }
+
+    afficherContenu(){
+        return super.afficherContenu();
+    }
+
+    isTexte(){
+        return true;
+    }
+}
\ No newline at end of file