diff --git a/compilation/.idea/workspace.xml b/compilation/.idea/workspace.xml
index cf06d918a76a9da1ee5aa9d1d96da75a29d6afec..2581f5daaa455f5ad8cb2ddd3ee67ffdfe58caa8 100644
--- a/compilation/.idea/workspace.xml
+++ b/compilation/.idea/workspace.xml
@@ -2,8 +2,10 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="8d8fb2c1-8426-4933-8193-ee68625cf8de" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/../README.md" beforeDir="false" afterPath="$PROJECT_DIR$/../README.md" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../gateway/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../gateway/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../gateway/src/main/java/ch/hepia/repository/ProgramsDataBase.java" beforeDir="false" afterPath="$PROJECT_DIR$/../gateway/src/main/java/ch/hepia/repository/ProgramsDataBase.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../gateway/src/main/java/ch/hepia/repository/modals/interfaces/Users.java" beforeDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/out/" />
     <ignored path="$PROJECT_DIR$/target/" />
diff --git a/gateway/.idea/workspace.xml b/gateway/.idea/workspace.xml
index 66212b4ebbc417a90c87d040c6bfe1b7a5c8a13f..78521069c4b6a812d107940206cacc5e94d14458 100644
--- a/gateway/.idea/workspace.xml
+++ b/gateway/.idea/workspace.xml
@@ -2,7 +2,10 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="e6a1f2e5-4f60-4227-82bb-83eb10fa94a5" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/../README.md" beforeDir="false" afterPath="$PROJECT_DIR$/../README.md" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../compilation/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../compilation/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/ch/hepia/repository/ProgramsDataBase.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/ch/hepia/repository/ProgramsDataBase.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/ch/hepia/repository/modals/interfaces/Users.java" beforeDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/out/" />
     <ignored path="$PROJECT_DIR$/target/" />
@@ -41,10 +44,28 @@
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/modals/interfaces/Users.java">
+        <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/UserInterface.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="75">
-              <caret line="5" column="17" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" />
+            <state relative-caret-position="60">
+              <caret line="4" column="18" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/ProgramInterface.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="45">
+              <caret line="3" lean-forward="true" selection-start-line="3" selection-end-line="3" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/ProgramsDataBase.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="519">
+              <caret line="57" column="4" selection-start-line="57" selection-start-column="4" selection-end-line="57" selection-end-column="4" />
               <folding>
                 <element signature="imports" expanded="true" />
               </folding>
@@ -64,10 +85,10 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/main/java/App.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="289">
+            <state relative-caret-position="5265">
               <caret line="351" column="21" selection-start-line="351" selection-start-column="21" selection-end-line="351" selection-end-column="21" />
               <folding>
                 <element signature="imports" expanded="true" />
@@ -171,10 +192,13 @@
         <option value="$PROJECT_DIR$/src/main/java/MongoDataBase/ProgramsDataBase.java" />
         <option value="$PROJECT_DIR$/src/main/java/ch/hepia/database/ProgramsDataBase.java" />
         <option value="$PROJECT_DIR$/src/main/java/Users.java" />
-        <option value="$PROJECT_DIR$/src/main/java/ch/hepia/repository/modals/interfaces/Users.java" />
         <option value="$PROJECT_DIR$/src/main/java/ch/hepia/repository/MongoDB.java" />
         <option value="$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/Users.java" />
         <option value="$PROJECT_DIR$/src/main/java/App.java" />
+        <option value="$PROJECT_DIR$/src/main/java/ch/hepia/repository/modals/interfaces/Users.java" />
+        <option value="$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/UserInterface.java" />
+        <option value="$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/ProgramInterface.java" />
+        <option value="$PROJECT_DIR$/src/main/java/ch/hepia/repository/ProgramsDataBase.java" />
       </list>
     </option>
   </component>
@@ -269,16 +293,6 @@
               <item name="repository" type="462c0819:PsiDirectoryNode" />
               <item name="modals" type="462c0819:PsiDirectoryNode" />
             </path>
-            <path>
-              <item name="gateway" type="b2602c69:ProjectViewProjectNode" />
-              <item name="gateway" type="462c0819:PsiDirectoryNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="main" type="462c0819:PsiDirectoryNode" />
-              <item name="java" type="462c0819:PsiDirectoryNode" />
-              <item name="repository" type="462c0819:PsiDirectoryNode" />
-              <item name="modals" type="462c0819:PsiDirectoryNode" />
-              <item name="interfaces" type="462c0819:PsiDirectoryNode" />
-            </path>
           </expand>
           <select />
         </subPane>
@@ -397,12 +411,12 @@
       <workItem from="1558958791114" duration="4133000" />
       <workItem from="1559024582648" duration="477000" />
       <workItem from="1559030400602" duration="2688000" />
-      <workItem from="1559111520857" duration="798000" />
+      <workItem from="1559111520857" duration="1461000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="224545000" />
+    <option name="totallyTimeSpent" value="225208000" />
   </component>
   <component name="TodoView">
     <todo-panel id="selected-file">
@@ -415,8 +429,9 @@
   </component>
   <component name="ToolWindowManager">
     <frame x="0" y="0" width="1920" height="1200" extended-state="0" />
+    <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.49924126" visible="true" weight="0.1970181" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.49924126" visible="true" weight="0.1970181" />
       <window_info id="Structure" order="1" sideWeight="0.5007587" side_tool="true" weight="0.20127796" />
       <window_info id="Image Layers" order="2" />
       <window_info id="Designer" order="3" />
@@ -425,7 +440,7 @@
       <window_info id="Favorites" order="6" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" weight="0.32920355" />
-      <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.3460177" />
+      <window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.3460177" />
       <window_info anchor="bottom" id="Debug" order="3" weight="0.39823008" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
@@ -652,16 +667,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/ProgramsDataBase.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="735">
-          <caret line="49" column="4" selection-start-line="49" selection-start-column="4" selection-end-line="49" selection-end-column="40" />
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/modals/user/User.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="225">
@@ -673,49 +678,73 @@
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/Katas.java" />
-    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/Programs.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/MongoDB.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="4" selection-start-line="4" selection-end-line="4" />
+        <state relative-caret-position="607">
+          <caret line="384" column="49" selection-start-line="384" selection-start-column="49" selection-end-line="384" selection-end-column="49" />
+          <folding>
+            <element signature="imports" expanded="true" />
+            <element signature="e#17136#17137#0" expanded="true" />
+            <element signature="e#17208#17209#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/modals/interfaces/Users.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/Users.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="75">
-          <caret line="5" column="17" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" />
+        <state relative-caret-position="90">
+          <caret line="6" column="19" selection-start-line="6" selection-start-column="19" selection-end-line="6" selection-end-column="19" />
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/MongoDB.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/App.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="607">
-          <caret line="384" column="49" selection-start-line="384" selection-start-column="49" selection-end-line="384" selection-end-column="49" />
+        <state relative-caret-position="5265">
+          <caret line="351" column="21" selection-start-line="351" selection-start-column="21" selection-end-line="351" selection-end-column="21" />
           <folding>
             <element signature="imports" expanded="true" />
-            <element signature="e#17136#17137#0" expanded="true" />
-            <element signature="e#17208#17209#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/Users.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/modals/interfaces/Users.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="90">
-          <caret line="6" column="19" selection-start-line="6" selection-start-column="19" selection-end-line="6" selection-end-column="19" />
+        <state relative-caret-position="75">
+          <caret line="5" selection-start-line="5" selection-end-line="5" />
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/App.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/Programs.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="289">
-          <caret line="351" column="21" selection-start-line="351" selection-start-column="21" selection-end-line="351" selection-end-column="21" />
+        <state relative-caret-position="60">
+          <caret line="4" selection-start-line="4" selection-end-line="4" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/UserInterface.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="60">
+          <caret line="4" column="18" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/cursors/ProgramInterface.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="45">
+          <caret line="3" lean-forward="true" selection-start-line="3" selection-end-line="3" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/ch/hepia/repository/ProgramsDataBase.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="519">
+          <caret line="57" column="4" selection-start-line="57" selection-start-column="4" selection-end-line="57" selection-end-column="4" />
           <folding>
             <element signature="imports" expanded="true" />
           </folding>
diff --git a/gateway/src/main/java/ch/hepia/repository/ProgramsDataBase.java b/gateway/src/main/java/ch/hepia/repository/ProgramsDataBase.java
index 33361dc48caccb88794635efa705c0d9191f0eb7..e6cf4aa5142d97e352264043326fabab3168599e 100644
--- a/gateway/src/main/java/ch/hepia/repository/ProgramsDataBase.java
+++ b/gateway/src/main/java/ch/hepia/repository/ProgramsDataBase.java
@@ -29,27 +29,14 @@ public interface ProgramsDataBase {
 
     void toggleSubscription(String userid, String idprogram);
 
-    Optional<List<ProgramShowCase>> userSubscriptions(String userid);
-
-    Optional<List<ProgramShowCase>> userPrograms(String userid);
 
     Optional<KataSubscription> kataSubscriptionById(String kataid, String programid, String userid);
 
     void createKataSubscription(String kataid, String programid, String userid);
 
-    void incrementKataSubscriptionAttempt(String kataid, String programid, String userid);
-
-    void updateKataSubscription(String kataid, String programid, String userid, String sol, String status);
 
     void deleteProgram(String programid);
 
-    void create(User u);
-
-    Optional<User> checkUserCredentials(String username, String password);
-
-    boolean isExisting(String username);
-
-    boolean isSubscribed(String userid, String programid);
 
     void deleteKata(String kataid);
 
@@ -65,4 +52,23 @@ public interface ProgramsDataBase {
 
     boolean isKataActivated(String kataid);
 
+
+
+
+    void incrementKataSubscriptionAttempt(String kataid, String programid, String userid);
+
+    void updateKataSubscription(String kataid, String programid, String userid, String sol, String status);
+
+    boolean isSubscribed(String userid, String programid);
+
+    Optional<List<ProgramShowCase>> userSubscriptions(String userid);
+
+    Optional<List<ProgramShowCase>> userPrograms(String userid);
+
+    void create(User u);
+
+    boolean isExisting(String username);
+
+    Optional<User> checkUserCredentials(String username, String password);
+
 }
diff --git a/gateway/src/main/java/ch/hepia/repository/cursors/ProgramInterface.java b/gateway/src/main/java/ch/hepia/repository/cursors/ProgramInterface.java
new file mode 100644
index 0000000000000000000000000000000000000000..05fd61a509c81aa9841a133734961ece9f70eb2f
--- /dev/null
+++ b/gateway/src/main/java/ch/hepia/repository/cursors/ProgramInterface.java
@@ -0,0 +1,5 @@
+package ch.hepia.repository.cursors;
+
+public interface ProgramInterface {
+
+}
diff --git a/gateway/src/main/java/ch/hepia/repository/modals/interfaces/Users.java b/gateway/src/main/java/ch/hepia/repository/cursors/UserInterface.java
similarity index 74%
rename from gateway/src/main/java/ch/hepia/repository/modals/interfaces/Users.java
rename to gateway/src/main/java/ch/hepia/repository/cursors/UserInterface.java
index a6833deecd801c0497cb9d18cd1a1a6733f90af3..8de9345ffaff85c3d39451614b78c9dea2a720fc 100644
--- a/gateway/src/main/java/ch/hepia/repository/modals/interfaces/Users.java
+++ b/gateway/src/main/java/ch/hepia/repository/cursors/UserInterface.java
@@ -1,12 +1,13 @@
-package ch.hepia.repository.modals.interfaces;
+package ch.hepia.repository.cursors;
+
 import ch.hepia.repository.modals.user.User;
 
 import java.util.Optional;
 
-public interface Users {
+public interface UserInterface {
     void create(User u);
 
     Optional<User> checkUserCredentials(String username, String password);
 
     boolean isExisting(String username);
-}
+}
\ No newline at end of file
diff --git a/gateway/target/classes/ch/hepia/repository/ProgramsDataBase.class b/gateway/target/classes/ch/hepia/repository/ProgramsDataBase.class
index 8c2b128d7cc8fc75b498728d79670740265a4020..b27cf42fdaed5c3f872c7f1cf414b751519e66df 100644
Binary files a/gateway/target/classes/ch/hepia/repository/ProgramsDataBase.class and b/gateway/target/classes/ch/hepia/repository/ProgramsDataBase.class differ
diff --git a/gateway/target/classes/ch/hepia/repository/cursors/ProgramInterface.class b/gateway/target/classes/ch/hepia/repository/cursors/ProgramInterface.class
new file mode 100644
index 0000000000000000000000000000000000000000..dea1c6fd1e2f7afcfcdb1a168b16cf6bc8e42173
Binary files /dev/null and b/gateway/target/classes/ch/hepia/repository/cursors/ProgramInterface.class differ
diff --git a/gateway/target/classes/ch/hepia/repository/modals/interfaces/Users.class b/gateway/target/classes/ch/hepia/repository/cursors/UserInterface.class
similarity index 70%
rename from gateway/target/classes/ch/hepia/repository/modals/interfaces/Users.class
rename to gateway/target/classes/ch/hepia/repository/cursors/UserInterface.class
index 999434d7c487d09b0e9191f39676413fad031bde..67f17a3990119a17eb87a5e34c514cb9a23346f6 100644
Binary files a/gateway/target/classes/ch/hepia/repository/modals/interfaces/Users.class and b/gateway/target/classes/ch/hepia/repository/cursors/UserInterface.class differ