diff --git a/Twidder (Lab3)/database.db b/Twidder (Lab3)/database.db
index 66d51ef5753cec13b9a522b7313c94d5590ea80e..8e9c99512952eb7006ed8459068fbfa3beb3d0e1 100644
Binary files a/Twidder (Lab3)/database.db and b/Twidder (Lab3)/database.db differ
diff --git a/Twidder (Lab3)/static/client.js b/Twidder (Lab3)/static/client.js
index ca131a4fb1219095a3e2b1bd303302b6be9aad1d..25cee84161d538768edc0df0f06e3eddef4587de 100644
--- a/Twidder (Lab3)/static/client.js	
+++ b/Twidder (Lab3)/static/client.js	
@@ -45,25 +45,45 @@ function checkPasswords(formData){
 }
 
 function changePassword(formData) {
-  let oldPassword = formData.oldPassword.value;
-  let newPassword = formData.newPassword.value;
-  let newPassword2 = formData.newPassword2.value;
+  let old_Password = formData.oldPassword.value;
+  let new_Password = formData.newPassword.value;
+  let new_Password2 = formData.newPassword2.value;
 
-  if(newPassword.length < 6) {
+  if(new_Password.length < 6) {
     document.getElementById("pwderror").style.display = "block";
     document.getElementById("pwderror").innerHTML = "Your new password must be 6 characters at least.";
-  } else if (newPassword != newPassword2) {
+  } else if (new_Password != new_Password2) {
     document.getElementById("pwderror").style.display = "block";
     document.getElementById("pwderror").innerHTML = "Your didn't enter the same passwords.";
   } else {
-    let serverAnswer = serverstub.changePassword(localStorage.getItem("token"), oldPassword, newPassword);
-    let success = serverAnswer.success;
-    let message = serverAnswer.message;
-    let form = document.getElementById("changePassword");
+    let value = {
+      oldPassword : old_Password,
+      newPassword : new_Password
+    }
+    let req = new XMLHttpRequest();
+    req.open("PUT", "/account/change_password", true);
+    req.setRequestHeader("Content-type", "application/json;charset=UTF-8");
+    req.setRequestHeader("token", localStorage.getItem("token"));
+    req.send(JSON.stringify(value));
     document.getElementById("pwderror").style.display = "block";
-    document.getElementById("pwderror").innerHTML = message;
-    if(success) {
-      form.reset();
+    req.onreadystatechange = function() {
+      if (req.readyState == 4){
+        if (req.status == 204){
+          document.getElementById("pwderror").innerHTML = "Password changed"
+          let form = document.getElementById("changePassword");
+          form.reset();
+        } else if (req.status == 404){
+          document.getElementById("pwderror").innerHTML = "Not found"
+        } else if (req.status == 403){
+          document.getElementById("pwderror").innerHTML = "Old password wrong"
+        } else if (req.status == 401){
+          document.getElementById("pwderror").innerHTML = "You are not online"
+        } else if (req.status == 405){
+          document.getElementById("pwderror").innerHTML = "Password too short. Must be 6 characters at leats."
+        } else if (req.status == 400){
+          document.getElementById("pwderror").innerHTML = "Missing information"
+        } 
+      }
     }
   }
 }
@@ -215,13 +235,17 @@ function message_management(tab){
     let token = localStorage.getItem("token");
 
     let req = new XMLHttpRequest();
-    console.log("Message posté ?");
     req.open("POST", "/account/post_message", true);
     req.setRequestHeader("Content-type", "application/json;charset=UTF-8");
     req.setRequestHeader("token", token);
     req.send(JSON.stringify(value));
-
-    display_wall(email, tab);
+    req.onreadystatechange = function(){
+      if (req.readyState == 4){
+        if (req.status == 201){
+          display_wall(email, tab);
+        }
+      }
+    }
   }
 
   textaera.value = "";
@@ -245,7 +269,11 @@ function openTab(tabName) {
   localStorage.setItem("tab", tabName);
 
   if(tabName != "browsePage") {
-    if(!(serverstub.getUserMessagesByEmail(localStorage.getItem("token"), localStorage.getItem("browsed_email")).success)) {
+    var xhttp = new XMLHttpRequest();
+    xhttp.open("GET", "/account/get/message/" + localStorage.getItem("browsed_email"), true);
+    xhttp.setRequestHeader("token", localStorage.getItem("token"));
+    xhttp.send();
+    if (xhttp.readyState == 4 && xhttp.status != 204){
       localStorage.removeItem("browsed_email");
     }
   }
@@ -277,67 +305,61 @@ function openTab(tabName) {
 
 function display_wall_info(email, tab) {
   //check if we already have the data stored of if we have to call the server
-  let data_user = get_user_info(email, tab);
-  console.log("data_user of display_wall_info = ", data_user);
-  if(data_user.success) {
-    if(tab == "BP") {
+  let data_user;
+  get_user_info(email, tab, function(data){
+    data_user = data;
+    if(data_user.success) {
+      if(tab == "BP") {
+        browsecontent = document.getElementsByClassName("browsecontent");
+        for (i = 0; i < browsecontent.length; i++) {
+          document.getElementById("browse_error").style.display = "none";
+          browsecontent[i].style.display = "block";
+        }
+      }
+      fills_data(tab, data_user);
+      display_wall(email, tab);
+    } else {
       browsecontent = document.getElementsByClassName("browsecontent");
       for (i = 0; i < browsecontent.length; i++) {
-        document.getElementById("browse_error").style.display = "none";
-        browsecontent[i].style.display = "block";
+        browsecontent[i].style.display = "none";
       }
+      if (localStorage.getItem("browsed_email") != null){
+        document.getElementById("browse_error").style.display = "block";
+        document.getElementById("browse_error").innerHTML = data_user.message;
+      }
+
     }
-    fills_data(tab, data_user);
-    display_wall(email, tab);
-  } else {
-    browsecontent = document.getElementsByClassName("browsecontent");
-    for (i = 0; i < browsecontent.length; i++) {
-      browsecontent[i].style.display = "none";
-    }
-    document.getElementById("browse_error").style.display = "block";
-    document.getElementById("browse_error").innerHTML = data_user.message;
-  }
+  });
 }
 
 
-function get_user_info(email, tab) {
+function get_user_info(email, tab, callback) {
   //call the server if data aren't already stored
-  console.log("=================================================");
-  console.log("browsed_email = ", localStorage.getItem("browsed_email"));
   if((tab == "BP") && (localStorage.getItem("browsed_email") != email || data_user_browse == null)) {
-    console.log("Je rentre dans la boucle");
-    //data_user_browse = serverstub.getUserDataByEmail(localStorage.getItem("token"), email);
     let req = new XMLHttpRequest();
-    console.log(1);
     req.open("GET", "/account/get/data/" + email, true);
-    console.log(2);
     req.setRequestHeader("token", localStorage.getItem("token"));
-    console.log(3);
-    console.log(4);
     req.onreadystatechange = function(){
-      console.log(5);
       if(req.readyState == 4){
-        console.log(6);
         if(req.status == 200){
           data_user_browse = {
             data : JSON.parse(req.responseText),
             success : true
           };
-
+          callback(data_user_browse);
         }else if(req.status == 404){
-          console.log("Le req status est de 404");
           data_user_browse = {
             message : "This user doesn't exist",
             success : false
           };
-        }
-        else if(req.status == 401){
+          callback(data_user_browse);
+        }else if(req.status == 401){
           data_user_browse = {
             message : "Problem with the server",
             success : false
           };
+          callback(data_user_browse);
         }
-        console.log("first data_user_browse = ", data_user_browse);
       }
     };
     req.send();
@@ -353,10 +375,12 @@ function get_user_info(email, tab) {
             data : JSON.parse(req.responseText),
             success : true
           };
+          callback(data_user_home);
         }else if(req.status == 404 || req.status == 401){
           data_user_home = {
             success : false
           };
+          callback(data_user_home);
         }
       }
     }
@@ -366,21 +390,18 @@ function get_user_info(email, tab) {
   switch(tab) {
     case "HP" :
       data_user = data_user_home;
-      console.log("data_user_home = ", data_user_home);
       break;
     default :
       data_user = data_user_browse;
-      console.log("data_user_browse lolololol = ", data_user_browse);
       break;
   }
-  return data_user;
+  callback(data_user);
 }
 
 function display_wall(email, tab) {
   let messages = [];
 
   var xhttp = new XMLHttpRequest();
-  console.log("Je suis dans display_wall");
   xhttp.open("GET", "/account/get/message/" + email, true);
   xhttp.setRequestHeader("token", localStorage.getItem("token"));
   xhttp.onreadystatechange = function() {