diff --git a/main.c b/main.c
index e0108098b60820b9dc847189cad7dfc7d8842a01..0e330a951667e043c477e72b7eabcd3f46eae733 100644
--- a/main.c
+++ b/main.c
@@ -7,14 +7,21 @@
 #include "quadtree.h"
 #include "Matrix.h"
 
-int main(int argc,char** argvs)
+int main()
 {
+    
     pgm* p = malloc(1 * sizeof(pgm));
     pgm_read_from_file(p,"buzz.pgm");
-    uint32_t val = quadtree_get_depth_from_image_size(p->pixels.col,p->pixels.lin);
+    uint32_t val = quadtree_get_depth_from_image_size(p->pixels.col);
     printf("Depth : %u\n",val);
     node* tree = quadtree_tree_create(val);
     
+    matrix_print(p->pixels);
+    quadtree_matrix2tree(&p->pixels,tree);
+
+
+    quadtree_print(tree,1,"|");
+
     matrix_destroy(&p->pixels);
     quadtree_tree_destroy(&tree);
     free(p);
diff --git a/pgm_io.c b/pgm_io.c
index 6bcb19558bb338249a9c7f45319cb52aa63bb17c..7d67a0e0c81a218ff157e765393b0ae1cc4ce6c7 100644
--- a/pgm_io.c
+++ b/pgm_io.c
@@ -14,7 +14,7 @@
  * @param filename = the file path of the image to read
  * @return pgm_error
  */
-pgm_error pgm_read_from_file(pgm *p,char *filename)
+pgm_error pgm_read_from_file(pgm *p,const char* const filename)
 {
     int sizex = 0;
     int sizey = 0;
@@ -127,7 +127,7 @@ pgm_error pgm_duplicate(char *filename,char *newfile)
  * @param gray_scale = the gray scale max in file returned by pointed value
  * @return pgm_error
  */
-pgm_error pgm_read_header(char *filename,int *sizex,int *sizey,int *gray_scale)
+pgm_error pgm_read_header(const char* const filename,int *sizex,int *sizey,int *gray_scale)
 {
     FILE *f;
     f = fopen(filename,"r");
diff --git a/pgm_io.h b/pgm_io.h
index 5d71f27e6e72611d78a5bc5c9ac62691d5e1854c..7b99628e593cbea01360f650c57fde3176fdbf7a 100644
--- a/pgm_io.h
+++ b/pgm_io.h
@@ -18,9 +18,9 @@ int32_t max;
 matrix pixels;
 } pgm;
 
-pgm_error pgm_read_from_file(pgm *p,char *filename);
+pgm_error pgm_read_from_file(pgm *p,const char* const filename);
 pgm_error pgm_write_from_file(pgm *p,char *filename);
 pgm_error pgm_duplicate(char *filename,char *newfile);
-pgm_error pgm_read_header(char *filename,int *sizex,int *sizey,int *gray_scale);
+pgm_error pgm_read_header(const char* const filename,int *sizex,int *sizey,int *gray_scale);
 
 #endif
\ No newline at end of file
diff --git a/quadtree.c b/quadtree.c
index d7fb7356d4be41505e11333e4f824d690d9ef6a9..178184df73f4f71ad730379353d567c7ae71d06f 100644
--- a/quadtree.c
+++ b/quadtree.c
@@ -5,7 +5,7 @@ bool quadtree_is_leaf(node *nd)
     return (NULL == nd->child[0]);
 }
 
-int32_t quadtree_get_depth_from_image_size(int32_t sizex, int sizey)
+int32_t quadtree_get_depth_from_image_size(int32_t sizex)
 {
     return (int32_t)log2(sizex);
 }
@@ -104,7 +104,9 @@ node *quadtree_position(int32_t li, int32_t col, node *a, int32_t d)
     node *crt = a;
     do
     {
-        int32_t index = 666666; //choisir le sous-cadran de <li> et <co>
+        int32_t ligne = (li>>d) & 1; // Permet de sélectionne le bit à considérer en fonction de la profondeur; Exemple: 10 >> 1 = 1
+        int32_t colonne = (col>>d) & 1; //Exemple: 10 >> 1 = 1;
+        int32_t index = ligne<<1 | colonne; //Exemple: 1<<1 = 10 | 1(col) = 11=>3
         crt = crt->child[index];
         d--;
     } while (!quadtree_is_leaf(crt));
diff --git a/quadtree.h b/quadtree.h
index 674ac74548868597963726cc93b513f8a6b8e93f..1fdf349a5d848cfa84f1776de5041ff1f12346a1 100644
--- a/quadtree.h
+++ b/quadtree.h
@@ -18,7 +18,7 @@ node* quadtree_tree_create(int32_t depth);
 
 bool quadtree_is_leaf(node *nd);
 
-int32_t quadtree_get_depth_from_image_size(int32_t sizex,int sizey);
+int32_t quadtree_get_depth_from_image_size(int32_t sizex);
 
 int32_t quadtree_max(int32_t x, int32_t y);