diff --git a/readme.md b/readme.md
index 1023d083fe6de2a784ffc61689080729df372cde..48767cf84680a35fc7789d976e185a3afab69a8c 100644
--- a/readme.md
+++ b/readme.md
@@ -3,13 +3,27 @@ Cours : IT 122 – 2021-2022
 
 Groupe : Florian BURGENER, Gawen ACKERMANN, Quentin FASLER, Dario GENGA
 
+## Structure du projet
+
+Afin de réaliser ce travail pratique, nous avons créé une classe `Polynomial`, contenant des méthodes permettant
+d'ajouter, multiplier et faire une division modulaire sur des polynômes. Cette classe peut également afficher le 
+polynôme dans la console et calculer le résultat du polynôme en passant une valeur à x.
+
+En plus de cette classe le programme contient les méthodes suivantes :
+
+- `get_bezout_coefficients(a, b)` : Calcule les coefficients de bézout pour les valeurs `a` et `b`
+- `modular_inverse(a, n)` : Calcule l'inverse modulaire de `a` par `n`
+- `compute_lagrange_polynomial(points, prime_number)` : Calcule le polynôme de lagrange à partir des `points` en 
+utilisant un inverse modulaire obtenu avec le `prime_number`.
+- `reed_solomon(...)` : Décode le message via reed solomon.
+
 
 ## Démarche de décodage
 
-Afin de décoder le message, nous procédons de la manière suivante :
+Afin de décoder le message, nous utilisons la méthode `reed_solomon` qui fonctionne de la manière suivante :
 1) On parcourt toutes les combinaisons de points possiblement juste.
 2) On crée une liste qui regroupe une combinaison de points avec tous les points justes que l'on connait.
-3) On construit le polynôme de Lagrange 
+3) On construit le polynôme de Lagrange avec la méthode `compute_lagrange_polynomial`.
 4) On parcourt l'intégralité des points afin de vérifier si le polynôme est correct.
 5) Si on a suffisamment de points justes, alors on peut décoder le message.