diff --git a/src/BTree.py b/src/BTree.py
index 5a696d9f872bf68ec490697fa14fa64c874800fe..c71c4f4dcc499dd03e018ea221bd0a1b1f3e8b46 100644
--- a/src/BTree.py
+++ b/src/BTree.py
@@ -15,38 +15,14 @@ class Btree() :
         (Node([5, 25]), 1)
         >>> Btree(2, Node([12, 42], [Node([1]), Node([25]), Node([50])])).search(1)
         (Node([1]), 0)
-        True
         >>> Btree(2, Node([12, 42], [Node([1]), Node([25]), Node([50])])).search(2)
         """
         return self.root.search(value)
 
-# incomplet
-#     def insertion(self, value):
-#         
-#         if (self.root == None):
-#             self.root = Bnode.Node(self.k)
-#             self.root.keys[0] = value
-#         else :
-#             if ( len(self.root) ==  self.k):
-#                 new_root = Bnode.Node(self.k)
-#                 new_root.childs[0] = self.root
-#                 
-#                 if (self) :
-#                     ##TODO
-#                     return None
-#             else:
-#                 self.root.insert_not_full(value)
-#
-
-    #def insertion(self,value):
-#         >>> Node([5,25]).insertion(10)
-#         Node([5,10,25])
-#         >>> Node([]).insertion(1)
-#         Node([1])
-#         >>> Node([5,25]).insertion(50)
-#         Node([5,25,50])
-        
-        
+    def insertion(self, value):
+        fini, milieu, g, d = self.root.insert(value)
+        if (not fini):
+            self.root = Node([milieu], [g, d])
         
             
         
@@ -70,4 +46,4 @@ class Btree() :
                 
 if __name__ == '__main__':
     import doctest
-    doctest.testmod(verbose=True)
\ No newline at end of file
+    doctest.testmod(verbose=False)
\ No newline at end of file
diff --git a/src/node.py b/src/node.py
index e9280756b67e25e4f6e5ee0a01deb8d78062d500..03bc27ee6d51af401963f2f2fb5a1185105ca69e 100644
--- a/src/node.py
+++ b/src/node.py
@@ -39,47 +39,37 @@ class Node() :
         else :
             return self.childs[index].search(value)
     
-    def insert(self, value, k):
+    def insert(self, value):
         """
-        >>> Node([5,15]).insert(12, 3)
-        Node([5,12,15])
-        >>> Node([5,15]).insert(20, 4)
-        Node([5,15,20])
+        >>> Node([5,15]).insert(12)
+        (True, None, None, None)
+        >>> Node([5]).insert(20)
+        (True, None, None, None)
+        >>> Node([12, 42], [Node([3,2])]).insert(1)
+        (True, None, None, None)
         """
-        (node, index) = self.search(value)
-        if (node == None) :
+        (found, index) = recherche_dichotomique(value, self.keys)
+        if (not found) :
             if (self.isLeaf()):
                 self.keys.insert(index, value)
+                if ( len(self.keys) > self.k):
+                    milieu, g, d = self.splitNode()
+                    return False, milieu, g, d
+                return True, None, None, None
             else:
-                (fini, milieu, g, d) = self.childs[index].insert(value, k)
+                (fini, milieu, g, d) = self.childs[index].insert(value)
                 if (not fini) :
                     self.keys.insert(index, milieu)
                     self.childs[index] = g
                     self.childs.insert(index+1, d)
-            
-                    
-            
-                    
-            
-            
-#         else :
-#             (fini, milieu, g, d) = self.childs[index].insert(value, k)
-#             if not fini:
-#                 return None
-#             #TODO
-#         if (len(self.keys) > k) :
-#             (m, g, d) = self.splitNode()
-#             f = False
-#         else:
-#             return None
-            #TODO
-            
-
-
-#     def splitNode(self) :
-#         parent = Node(self.k)
-#         m = self.keys[(len(self.node.keys))//2]
-
+                    if ( len(self.keys) > self.k) :
+                        milieu, g, d = self.splitNode()
+                        return False, milieu, g, d
+                else :
+                    return True, None, None, None
+        else :
+            return True, None, None, None
+        
     def splitNode(self) :
         """
         >>> Node([10,20,25]).splitNode()
@@ -90,41 +80,14 @@ class Node() :
         (5, Node([3]), Node([]))
         """
         milieu = len(self.keys) //2
-        parent = self.keys[milieu]
         g = Node(self.keys[:milieu], self.childs[:milieu+1])
         d = Node(self.keys[milieu+1:], self.childs[milieu+1:])
         
-        return (parent, g, d)
-    
+        return (self.keys[milieu], g, d)
     
     
     def __repr__(self) :
         return f"Node({self.keys})"
-            
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-        
-            
-            
-        
-    #def getSizeNode() :
-    #def getPos() :
-    #def setNewChild() :
-    #def removeChild() :    
-    
-    #def isLeaf() :
         
 if __name__ == '__main__':
     import doctest