diff --git a/README.md b/README.md
index abc2537067ed444e4dd3bb23bfccf969c944623e..c072c47757edda191015ccec338072511739c382 100644
--- a/README.md
+++ b/README.md
@@ -15,8 +15,8 @@
 |----------|----------|------------|
 | shodai   | admin   | shodai     |
 
-<aside class="warning">
-<p>When connected to shodai account, you can generate tokens to create further sensei in "Sponsorship" (location : left nav bar)</p></aside>
+
+<p>When connected to shodai account, you can generate tokens to create further sensei in "Sponsorship" (location : left nav bar)</p>
 
 <p>All created account without token will automatically be ranked as "monji"</p>
 <b>Users privileges hierarchy</b>
@@ -73,7 +73,6 @@ password : example
 ```
 use DojoHepia
 db.Programs.insertMany(<programs-copied-data>);
-db.ProgramsSubscription.insertMany(<programsSubscription-copied-data>);
 ```
 
 #### 2. Gateway
@@ -91,23 +90,26 @@ ng serve --open
 ```
 
 #### 4. Compilateur
->./compilation/
-```
-mvn package
-mvn exec:java
-```
 
 ##### 4.1 Pull java container
 
 ```
 docker pull freakency/java:1.0
 ```
-
 ##### 4.2 Pull python container
 
 ```
 docker pull freakency/python:1.0
 ```
+##### 4.3 Compile and run
+
+>./compilation/
+```
+mvn package
+mvn exec:java
+```
+
+
 
 ## Vocabulaire
 | Art - Martial | Dojo Hepia       |
diff --git a/compilation/target/05-1.0-SNAPSHOT.jar b/compilation/target/05-1.0-SNAPSHOT.jar
index fa2e926592bbfc6c72468ce3938fb933d01d8676..b508109229c066d7fc6c9596d60c715150eb7f78 100644
Binary files a/compilation/target/05-1.0-SNAPSHOT.jar and b/compilation/target/05-1.0-SNAPSHOT.jar differ
diff --git a/gateway/target/09-1.0-SNAPSHOT.jar b/gateway/target/09-1.0-SNAPSHOT.jar
index 2381c521d3c4ad868ed9777c4c7c1c8c4722fa86..9ed8e5c63cf7a440aa386fbacf7424762c6a33e6 100644
Binary files a/gateway/target/09-1.0-SNAPSHOT.jar and b/gateway/target/09-1.0-SNAPSHOT.jar differ
diff --git a/gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index e8545315b0608c56cb3421477889a560d1624f53..629da2976ca4cd6cc0c3261470fbab857b313dc5 100644
--- a/gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -1,7 +1,11 @@
+/Users/freak/Desktop/dojo-hepia/gateway/src/main/java/MockUser.java
+/Users/freak/Desktop/dojo-hepia/gateway/src/main/java/KataSubscription.java
 /Users/freak/Desktop/dojo-hepia/gateway/src/main/java/KataShowCase.java
 /Users/freak/Desktop/dojo-hepia/gateway/src/main/java/ProgramShowCase.java
 /Users/freak/Desktop/dojo-hepia/gateway/src/main/java/Program.java
+/Users/freak/Desktop/dojo-hepia/gateway/src/main/java/ProgramSubscription.java
 /Users/freak/Desktop/dojo-hepia/gateway/src/main/java/app.java
 /Users/freak/Desktop/dojo-hepia/gateway/src/main/java/LiveDB.java
 /Users/freak/Desktop/dojo-hepia/gateway/src/main/java/Kata.java
+/Users/freak/Desktop/dojo-hepia/gateway/src/main/java/MongoDB.java
 /Users/freak/Desktop/dojo-hepia/gateway/src/main/java/ProgramsDataBase.java
diff --git a/mongodb/data/programssubscriptions b/mongodb/data/deprecated-programssubscriptions
similarity index 100%
rename from mongodb/data/programssubscriptions
rename to mongodb/data/deprecated-programssubscriptions
diff --git a/mongodb/data/programs b/mongodb/data/programs
index 5645e090c719a09ac91c7424d24ad4d728d20d76..c5b23392504c91e38cecd18b4d21e0f38bc5e55c 100644
--- a/mongodb/data/programs
+++ b/mongodb/data/programs
@@ -1 +1 @@
-[{"_id":"baac03de-2816-470e-8789-3c10b438364f","description":"Let's play with arrays in python !","idsensei":"1","katas":[{"_id":"41ea64c1-0711-46a8-aece-fae593283ad1","canva":"def add(arr,m):","cassert":"from assertpy import assert_that\nimport sample as m\n\nassert_that(m.add([2,3,4],3)).is_equal_to([2,3,4,3])","difficulty":"Ceinture blanche","keepAssert":false,"language":"python","nbAttempt":3,"programID":"baac03de-2816-470e-8789-3c10b438364f","rules":"Add the given element to the given array\n\nexemple :\nafter you've added the number '3' to the array [2,3,4], it becomes [2,3,4,3]","solution":"def add(arr,m):\n    arr.append(m)\n    return arr","title":"Add element"},{"_id":"55501e10-12fe-446f-aea1-2d4db550f1f6","canva":"def mult(arr,n):\n    # begin code here\n    ","cassert":"from assertpy import assert_that\nimport sample as m\n\nassert_that(m.mult([2,3,4],2)).is_equal_to([4,6,8])\nassert_that(m.mult([2,3,4],5)).is_equal_to([10,15,20])","difficulty":"Ceinture blanche","keepAssert":true,"language":"python","nbAttempt":10,"programID":"baac03de-2816-470e-8789-3c10b438364f","rules":"You'll multiply each element of a given array by the given number.","solution":"def mult(arr,n):\n    return [i * n for i in arr]","title":"Multiply elements"}],"language":"python","nbKata":2,"sensei":"shodai","tags":["arrays","hashmap","list"],"title":"Arrays"},{"_id":"26f8bb8a-e872-4b21-94a4-56308d500399","description":"Basics of the python language","idsensei":"2","katas":[{"_id":"4603ffd1-054f-4163-af51-d84a84c894e9","canva":"def ret(n):\n    ","cassert":"from assertpy import assert_that\nimport sample as m\n\nassert_that(m.ret(5)).is_equal_to(5)\nassert_that(m.ret(4)).is_equal_to(4)","difficulty":"Ceinture blanche","keepAssert":false,"language":"python","nbAttempt":100,"programID":"26f8bb8a-e872-4b21-94a4-56308d500399","rules":"Just return the given value.","solution":"def ret(n):\n    return n","title":"Return n"}],"language":"python","nbKata":1,"sensei":"sensei","tags":["basics","python"],"title":"Fundamentals"},{"_id":"86a3991a-a02e-4e0a-9323-7f4cedca2e3b","description":"Arrays in java are not that easy.","idsensei":"2","katas":[{"_id":"24ba470b-5678-482b-a888-95a02b6bf90e","canva":"import java.util.ArrayList;\n\npublic class Kata {\n    public static int sum(ArrayList<Integer> list){\n        \n    }\n}\n","cassert":"import static org.junit.Assert.*;\nimport java.util.ArrayList;\n\npublic class Main {\n\n    public static void main(String[] args) {\n\n    ArrayList<Integer> mylist = new ArrayList<>();\n    mylist.add(15);\n    mylist.add(5);\n    mylist.add(10);\n\n    assertEquals(Kata.sum(mylist),30);    \n\n   }\n}","difficulty":"Ceinture blanche","keepAssert":true,"language":"java","nbAttempt":2,"programID":"86a3991a-a02e-4e0a-9323-7f4cedca2e3b","rules":"Return a sum of all element in an arraylist","solution":"import java.util.ArrayList;\n\npublic class Kata {\n    public static int sum(ArrayList<Integer> list){\n        int sum = 0;\n        for(int n : list)\n            sum += n;\n        return sum;\n    }\n}\n","title":"Sum up element"}],"language":"java","nbKata":1,"sensei":"sensei","tags":["arrays","arraylist","hashmap"],"title":"Arrays"}]
+[{"_id":"baac03de-2816-470e-8789-3c10b438364f","description":"Let's play with arrays in python !","idsensei":"0","katas":[{"_id":"41ea64c1-0711-46a8-aece-fae593283ad1","canva":"def add(arr,m):","cassert":"from assertpy import assert_that\nimport sample as m\n\nassert_that(m.add([2,3,4],3)).is_equal_to([2,3,4,3])","difficulty":"Ceinture blanche","keepAssert":false,"language":"python","nbAttempt":3,"programID":"baac03de-2816-470e-8789-3c10b438364f","rules":"Add the given element to the given array\n\nexemple :\nafter you've added the number '3' to the array [2,3,4], it becomes [2,3,4,3]","solution":"def add(arr,m):\n    arr.append(m)\n    return arr","title":"Add element"},{"_id":"55501e10-12fe-446f-aea1-2d4db550f1f6","canva":"def mult(arr,n):\n    # begin code here\n    ","cassert":"from assertpy import assert_that\nimport sample as m\n\nassert_that(m.mult([2,3,4],2)).is_equal_to([4,6,8])\nassert_that(m.mult([2,3,4],5)).is_equal_to([10,15,20])","difficulty":"Ceinture blanche","keepAssert":true,"language":"python","nbAttempt":10,"programID":"baac03de-2816-470e-8789-3c10b438364f","rules":"You'll multiply each element of a given array by the given number.","solution":"def mult(arr,n):\n    return [i * n for i in arr]","title":"Multiply elements"}],"language":"python","nbKata":2,"sensei":"shodai","tags":["arrays","hashmap","list"],"title":"Arrays"},{"_id":"26f8bb8a-e872-4b21-94a4-56308d500399","description":"Basics of the python language","idsensei":"0","katas":[{"_id":"4603ffd1-054f-4163-af51-d84a84c894e9","canva":"def ret(n):\n    ","cassert":"from assertpy import assert_that\nimport sample as m\n\nassert_that(m.ret(5)).is_equal_to(5)\nassert_that(m.ret(4)).is_equal_to(4)","difficulty":"Ceinture blanche","keepAssert":false,"language":"python","nbAttempt":100,"programID":"26f8bb8a-e872-4b21-94a4-56308d500399","rules":"Just return the given value.","solution":"def ret(n):\n    return n","title":"Return n"}],"language":"python","nbKata":1,"sensei":"shodai","tags":["basics","python"],"title":"Fundamentals"},{"_id":"86a3991a-a02e-4e0a-9323-7f4cedca2e3b","description":"Arrays in java are not that easy.","idsensei":"0","katas":[{"_id":"24ba470b-5678-482b-a888-95a02b6bf90e","canva":"import java.util.ArrayList;\n\npublic class Kata {\n    public static int sum(ArrayList<Integer> list){\n        \n    }\n}\n","cassert":"import static org.junit.Assert.*;\nimport java.util.ArrayList;\n\npublic class Main {\n\n    public static void main(String[] args) {\n\n    ArrayList<Integer> mylist = new ArrayList<>();\n    mylist.add(15);\n    mylist.add(5);\n    mylist.add(10);\n\n    assertEquals(Kata.sum(mylist),30);    \n\n   }\n}","difficulty":"Ceinture blanche","keepAssert":true,"language":"java","nbAttempt":2,"programID":"86a3991a-a02e-4e0a-9323-7f4cedca2e3b","rules":"Return a sum of all element in an arraylist","solution":"import java.util.ArrayList;\n\npublic class Kata {\n    public static int sum(ArrayList<Integer> list){\n        int sum = 0;\n        for(int n : list)\n            sum += n;\n        return sum;\n    }\n}\n","title":"Sum up element"}],"language":"java","nbKata":1,"sensei":"shodai","tags":["arrays","arraylist","hashmap"],"title":"Arrays"}]