diff --git a/src/BTree.py b/src/BTree.py
index 2967f62cb3deaaebc3aa145fb99ff68f487ba40d..c94680faa7da8e6a12c30e6550a484170d665d5a 100644
--- a/src/BTree.py
+++ b/src/BTree.py
@@ -1,4 +1,5 @@
-import Node as Bnode
+#import Node as Bnode
+from node import *
 
 
 class Btree() :
@@ -11,18 +12,35 @@ class Btree() :
         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)
-            else:
-                self.root.insert_not_full(value)
+#     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])
+        """
+        
+        
+        
             
         
         
@@ -40,4 +58,9 @@ class Btree() :
     #def getNbKeys () :
     #def getSize () :
     #def changeRoot() :
-    #def isEqual() :
\ No newline at end of file
+    #def isEqual() :
+                
+                
+if __name__ == '__main__':
+    import doctest
+    doctest.testmod(verbose=True)
\ No newline at end of file
diff --git a/src/node.py b/src/node.py
index 3cd76663a7b6428368da632323557b762a171f3c..2f8b841e5a7c5f482fb3356b2e327b7a6a4d6f55 100644
--- a/src/node.py
+++ b/src/node.py
@@ -2,44 +2,93 @@ from util import recherche_dichotomique
 
 class Node() :
     
-    def __init__(self, k) :
-        self.parent =
-        self.keys = []
-        self.childs = []
+    def __init__(self, keys, childs = [], k = 2) :
+        self.keys = keys
+        self.childs = childs
         self.k = k
         
-    def isLeaf():
+    def isLeaf(self):
+        """
+        >>> Node([12, 42]).isLeaf()
+        True
+        >>> Node([12, 42], [Node([1]), Node([25]), Node([50])]).isLeaf()
+        False
+        """
         return (len(self.childs) == 0)
                     
     def getSize(self) :
         return len(Keys)
     
-    def serach(self, value):
+    def search(self, value):
+        """
+        >>> Node([5, 25]).search(5)
+        (Node([5, 25]),0)
+        >>> Node([5,25],[Node[1],Node[18],Node[100]]).search(18)
+        (Node[18],0)
+        """
         (found, index) = recherche_dichotomique(value, self.keys)
         if (found):
-            return (node, index)
-        elif ( node.isLeaf() ):
+            return (self, index)
+        elif ( self.isLeaf() ):
             return None
         else :
             self.childs[index].search(value)
     
-    def insert_not_full(self, value):
+    def insert(self, value, k):
+        """
+        >>> Node([5,15]).insert(12, 3)
+        Node([5,12,15])
+        >>> Node([5,15]).insert(20, 4)
+        Node([5,15,20])
+        """
         (found, index) = self.search(value)
         if (self.isLeaf()) :
             if (not found):
-                self.keys.insert() = value
+                self.keys.insert(index, value)
         else :
-            if (len(self.childs[index]) == self.k) :
-                self.childs[index].splitNode(index)
-                if (value > self.keys[index]) :
-                    index += 1
-            self.childs[index].insert_not_full(value)
+            (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]
 
-# j'ai pas encore bien compris comment m'y prendre
     def splitNode(self) :
-        parent = Node(self.k)
-        m = self.keys[(len(self.node.keys))//2]
+        """
+        >>> Node([10,20,25]).splitNode()
+        (20, Node([10]), Node([25])
+        """
+        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 (milieu,g,d)
+            
+
+
+
+
+
+
+
+
+
+
+
+
+
+
         
             
             
@@ -49,4 +98,8 @@ class Node() :
     #def setNewChild() :
     #def removeChild() :    
     
-    #def isLeaf() :
\ No newline at end of file
+    #def isLeaf() :
+        
+if __name__ == '__main__':
+    import doctest
+    doctest.testmod(verbose=True)
\ No newline at end of file
diff --git a/src/util.py b/src/util.py
index c2d9bf7d333f417ac0ab08872e294544affe0d8a..bf1d1d4b6fb9e2b37b8ae02feef2eebef5715519 100644
--- a/src/util.py
+++ b/src/util.py
@@ -70,24 +70,6 @@ def recherche_dichotomique(x, l, cmp = compare):
                    for j in range(len(l)))
     return (False, index)
 
-## LOIC
-    def dicho(self, listKeys,key) :
-        t=len(listKeys)-1
-        d, f = 0, t        
-        while (f>= d) :
-            m=(d+f)//2
-            
-            if (listKeys[m]==key) :
-                return m
-            if (listKeys[m]>key):
-                f=m - 1
-                #if ( f< t and listKeys[f] == key) :
-                 #   return True,f
-            else :
-                d=m + 1
-                #if (d < t and listKeys[d] == key) :
-                 #   return True, d           
-            
-        return -1
-
-doctest.testmod()
\ No newline at end of file
+if __name__ == '__main__':
+    import doctest
+    doctest.testmod(verbose=True)
\ No newline at end of file