diff --git a/README.md b/README.md
index dccb8dedaff19d74109990c1053b9a81a81f29aa..835f7068bce3005b4cc90ec1f3f1256ee35fc284 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,7 @@
 # EBEC 2021
-
+Une fois le docker téléchargé, executer le fichier main
+un input vous est demandé, rentrer la liste des coordonnées des arbres sous la forme
+(longitude,latitude)
+Un dictionnaire récapitulant les informations demandées vous est renvoyé.
 ## ATTENTION ENTRER LES COORDONNEES SOUS LA FORME (LONG,LAT)
 
diff --git a/coord_to_intersections.py b/coord_to_intersections.py
index 92b37ce74b365098e5c6aec6f0cda18df999ff71..61e7da8fba9f1cc9d2810222e37f5e3b31211989 100644
--- a/coord_to_intersections.py
+++ b/coord_to_intersections.py
@@ -24,7 +24,7 @@ def coord_to_inter(liste_coord,lat,long,main_street):
         #On regarde si cette intersection correspond bien au croisement avec une autre rue, on trouve le nom de cette autre rue
         nom_de_rue=circular_research(candidat[1], candidat[0], main_street)
         if nom_de_rue== None :
-            #Si on ne trouve pas d'autre rue a cette intersection on écarte cette intersection
+             #Si on ne trouve pas d'autre rue a cette intersection on écarte cette intersection
             indice=dist.index(min(dist))
             dist.pop(indice)
             liste_coord.pop(indice)
@@ -85,6 +85,7 @@ def coord_to_inter(liste_coord,lat,long,main_street):
     print(inter_street)
     #On souhaite ensuite s'asssurer que l'on à le couple début/fin de tronçon le plus rapproché possible pour
     #réduire la zone de recherche
+    #on va donc réitérer l'étape précédente mais en prenant comme point de départ le dernier point d'inserction trouvé
     liste_coord_admissibles2 = []
     d_2_1 = []
     for i in range(len(liste_coord)):
diff --git a/main.py b/main.py
index 12e9b0ac1931333c893b10056ea15bf0a09f48fb..b43988170489469922eb3e8a4d582bb3c1d78762 100644
--- a/main.py
+++ b/main.py
@@ -7,17 +7,22 @@ import time
 
 def tree_position(lat, lon):
     req = requete_osm(lat, lon)
+    #on recupere les infos disponibles sur l'arbre
     try:
         main_street = req['address']['road']
     except KeyError:
+        #si on ne trouve pas de nom de rue on fait une recherche autour
         main_street = circular_research_2(lat, lon)
+    #si on trouve un nom de rue vide (rare) on fait une recherche autour
     if main_street == '':
         main_street = circular_research_2(lat, lon)
     print(main_street)
     city = req['address']['town']
     country = req['address']['country']
+    #on fait une recherche sur la rue complète pour avoir toutes les intersections de la rue
     json = search_osm(main_street, city, country)
     intersections = all_intersect(json)
+    #on sélectionne le début et fin de troncon tel que le troncon soit de taille minimale
     [begin,end,coord_begin, coord_end] = coord_to_inter(intersections, lat, lon, main_street)
     #pour la suite, on a besoin de stocker le couple début et fin de troncon sous frome de tuple 
     # et non de liste car on va s'en servir comme clé d'un dictionnaire
@@ -71,6 +76,8 @@ def classement_reduit(classement): #fonction pour l'objectif 3 qui rassemble les
             rue_princ[troncon[1]].append((troncon[5],troncon[3]))
         else:
             rue_princ[troncon[1]]=[(troncon[4],troncon[2]),(troncon[5],troncon[3])]
+    #pour toutes les rues, on sélectionne les deux intersections les plus éloignées, 
+    # ce sont elles qu'on appelera début et fin de troncon
     for rue in rue_princ:
         liste_coord=rue_princ[rue]
         dist_max=0
@@ -85,12 +92,15 @@ def classement_reduit(classement): #fonction pour l'objectif 3 qui rassemble les
                 x2=liste_coord[j][0][0]
                 y2=liste_coord[j][0][1]
                 d=(x1-x2)**2+(y1-y2)**2
-                if d>dist_max:
+                if d>=dist_max:
                     dist_max=d
                     coord_deb=liste_coord[i][0]
                     coord_fin=liste_coord[j][0]
                     nom_deb=liste_coord[i][1]
                     nom_fin=liste_coord[j][1]
+        #une fois ces deux intersections sélectionnées, on copie dans new_classement les informations de 
+        # classement mais en regroupant les troncons de meme rue et en modifiant les noms et coordonnées 
+        # des débuts et fin de classement
         for troncon in classement:
             if troncon[1]==rue:
                 if (troncon[0],rue,nom_deb,nom_fin,coord_deb,coord_fin) in new_classement:
diff --git a/research.py b/research.py
index 4fa73a03f2e64a5d76a7f797a5b6f1f5de58f36c..db22dc58547da4f142afb9bc94d4f9fb1dad1f40 100644
--- a/research.py
+++ b/research.py
@@ -9,19 +9,28 @@ def circular_research(lat, lon, main_street):
         street = requete_osm(lat, lon)['address']['road']
     except KeyError:
         street = ''
+    #si on trouve une rue qui convient
     if not(street == main_street) and not(street == ''):
         return street
+    #sinon, on cherche autour de ce point
     step = 5*10**(-5)
+    #on limite la taille du "cercle" de recherche pour ne pas tomber sur des rues trop éloignées
     while step < 6*10**(-5):
         for i in range(8):
             street = check_position(lat, lon, step, main_street, i)
             if not(street == main_street) and not(street == ''):
                 return street
         step += 4*10**(-5)
+    #si on n'a toujours rien trouvé, c'est que le point d'intersection ne correspond pas
+    #  à une intersection avec une rue différente de main street
     return None
 
 def circular_research_2(lat, lon, main_street=''):
-    #Recherche un rue autre que main_street par recherche circulaire autour du point d'intersection
+    #Recherche une rue autre que vide par recherche circulaire autour du point d'intersection
+    #cette fonction est appelée lorsqu'on ne trouve pas de rue associée à un arbe
+    #la seule différence avec la fonction précédente est donc qu'ici on impose de renvoyer une rue
+    #quitte à s'éloigner énormément de l'arbre, il n'y a donc pas ici de limite pour la taille du "cercle"
+    #on peut donc traiter le cas où l'arbre est au milieu d'un parc par exemple
     step = 2*10**(-5)
     found = False
     while not(found):
@@ -33,7 +42,9 @@ def circular_research_2(lat, lon, main_street=''):
     return street
 
 def check_position(lat, lon, step, main_street, i):
-    #Calcul les positions autour du point centrale et récupère la rue associée à cette position
+    #i compris entre 0 et 7
+    #Calcul les positions autour du point central et récupère la rue associée à cette position
+    #cette fonction peut être appelée jusqu'à 8 fois
     street = ''
     step_diag = step/sqrt(2)
     if i == 0:
@@ -80,6 +91,8 @@ def check_position(lat, lon, step, main_street, i):
 
 
 def multi_position(lat, lon, step):
+    #test de multrithreading mais cela n'améliore pas énormément la vitesse de calcul
+    #donc pas utilisé finalement
     latitude = []
     longitude = []
     for j in range(1,4):