diff --git a/.DS_Store b/.DS_Store
index 04392a84bad9a9be07ab1469c240ba2659f2e948..18547431fc88e200671c46bab96e8eeb767dc026 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/Lab 1/client.js b/Lab 1/client.js
index f6630080272c9e5917f299c64d09678058a56c4e..ad5855e6b7e943f2528b63138a6d0e200351acad 100644
--- a/Lab 1/client.js	
+++ b/Lab 1/client.js	
@@ -225,7 +225,7 @@ function reloadWall(who) {
     return false;
 }
 
-// - - - - - Changing another's wall - - - - - //
+// Changing another's wall
 function searchAnotherUser(event){
     let token = localStorage.getItem("currentUser");
     let email = event.target["searchInput"].value;
diff --git a/Lab_3/Twidder/static/client.html b/Lab_3/Twidder/static/client.html
index 8ebd769443e0a5c90d0f268f0c563c4c13051edb..7834b2f76a8137d4b6ef69e7ec94a4a722cdac9b 100644
--- a/Lab_3/Twidder/static/client.html
+++ b/Lab_3/Twidder/static/client.html
@@ -5,7 +5,7 @@
         <meta charset="utf-8">
         <link href="static/client.css" type="text/css" rel="stylesheet">
         <script src="static/client.js"></script>
-        <script src="static/serverstub.js"></script>
+        <!-- <script src="static/serverstub.js"></script> -->
         <!-- <script src="server.py"></script> -->
 
         <script type="text/view" id="welcomeview">    
@@ -171,9 +171,7 @@
     </head>
 
     <body>
-        <div id="windowDiv">
-        haha hoho
-        </div>
+        <div id="windowDiv"></div>
     </body>
     
 </html>
diff --git a/Lab_3/Twidder/static/client.js b/Lab_3/Twidder/static/client.js
index bfb01184f0b7b37f9456cc00af09f843d1db0cc5..103980459c111384131443e3820d56a932cec583 100644
--- a/Lab_3/Twidder/static/client.js
+++ b/Lab_3/Twidder/static/client.js
@@ -14,11 +14,12 @@ var signInRequest = new XMLHttpRequest();
 signInRequest.onreadystatechange = function() {
     if (this.readyState == 4) {
 
-        let errorMess = document.getElementById("error");
+        let errorMessage = document.getElementById("error");
         if (this.status == 204) {
-            errorMess.innerHTML = "You are signed in"; 
+            errorMessage.innerHTML = "You are signed in"; 
             let token = this.getResponseHeader("Authorization")
             localStorage.setItem("currentUser", token);
+
             
             // Changes the view to profile view an loads user info
             displayView();
@@ -29,15 +30,15 @@ signInRequest.onreadystatechange = function() {
         }
         else if (this.status == 400) {
             // Todo - implement
-            console.log('git this: 400')
+            console.log('got this: 400')
         }
         else if (this.status == 404) {
             // Todo - implement
-            console.log('git this: 404')
+            console.log('got this: 404')
         }
         else if (this.status == 401) {
             // Todo - implement
-            console.log('git this: 401')
+            console.log('got this: 401')
         }
         else {
             // Todo - implement
@@ -54,13 +55,136 @@ signOutRequest.onreadystatechange = function() {
 
             // Reset token in the localStorage
             localStorage.setItem("currentUser", "");
+            localStorage.setItem("homeEmail", "");
+            localStorage.setItem("browseEmail", "");
 
             // Changes the view to welcome view
             displayView();
         }
         else if (this.status == 401) {
             // Todo - implement
-            console.log('git this: 401')
+            console.log('got this: 401')
+        }
+        else {
+            // Todo - implement
+            console.log('unknown error -_-')
+        } 
+    }
+};
+
+// Todo - implement
+// Change Password
+
+// Get use data by token
+var dataByTokenRequest = new XMLHttpRequest();
+dataByTokenRequest.onreadystatechange = function() {
+    if (this.readyState == 4) {
+        if (this.status == 200) {
+            
+            let userDataArray = JSON.parse(this.responseText);
+
+            // Putting the user data we retrieved from server to the corresponding html table
+            let userTable = document.getElementById("homeUserInfo");
+            userTable.rows[0].cells[1].innerHTML = userDataArray["data"].email;
+            userTable.rows[1].cells[1].innerHTML = userDataArray["data"].firstname;
+            userTable.rows[2].cells[1].innerHTML = userDataArray["data"].familyname;
+            userTable.rows[3].cells[1].innerHTML = userDataArray["data"].gender;
+            userTable.rows[4].cells[1].innerHTML = userDataArray["data"].city;
+            userTable.rows[5].cells[1].innerHTML = userDataArray["data"].country;
+
+            localStorage.setItem("homeEmail", userDataArray["data"].email);
+        }
+        else if (this.status == 401) {
+            // Todo - implement
+            console.log('got this: 401')
+        }
+        else if (this.status == 400) {
+            // Todo - implement
+            console.log('got this: 400')
+        }
+        else if (this.status == 404) {
+            // Todo - implement
+            console.log('got this: 404')
+        }
+        else {
+            // Todo - implement
+            console.log('unknown error -_-')
+        } 
+    }
+};
+
+// Get use data by email
+var dataByEmailRequest = new XMLHttpRequest();
+dataByEmailRequest.onreadystatechange = function() {
+    if (this.readyState == 4) {
+
+        let errorMessage = document.getElementById("searchMessage");
+        if (this.status == 200) {
+           
+            let userDataArray = JSON.parse(this.responseText);
+
+            // Putting the user data we retrieved from server to the corresponding html table
+            let userTable = document.getElementById("browseUserInfo");
+            userTable.rows[0].cells[1].innerHTML = userDataArray["data"].email;
+            userTable.rows[1].cells[1].innerHTML = userDataArray["data"].firstname;
+            userTable.rows[2].cells[1].innerHTML = userDataArray["data"].familyname;
+            userTable.rows[3].cells[1].innerHTML = userDataArray["data"].gender;
+            userTable.rows[4].cells[1].innerHTML = userDataArray["data"].city;
+            userTable.rows[5].cells[1].innerHTML = userDataArray["data"].country;
+
+            localStorage.setItem("browseEmail", userDataArray["data"].email);
+        }
+        else if (this.status == 401) {
+            // Todo - implement
+            console.log('got this: 401')
+            //errorMessage.innerHTML = "something";
+            localStorage.setItem("browseEmail", "");
+        }
+        else if (this.status == 400) {
+            // Todo - implement
+            console.log('got this: 400')
+            localStorage.setItem("browseEmail", "");
+        }
+        else if (this.status == 404) {
+            // Todo - implement
+            console.log('got this: 404')
+            localStorage.setItem("browseEmail", "");
+        }
+        else {
+            // Todo - implement
+            console.log('unknown error -_-')
+            localStorage.setItem("browseEmail", "");
+        } 
+    }
+};
+
+// Todo - implement
+// Get Messages By Token
+
+
+
+// Get Messages By Email
+var messagesByEmailRequest = new XMLHttpRequest();
+messagesByEmailRequest.onreadystatechange = function() {
+    if (this.readyState == 4) {
+
+        if (this.status == 200 || this.status == 204) {
+           
+            let resultObj = JSON.parse(this.responseText);
+            // Todo - implement
+  
+        }
+        else if (this.status == 401) {
+            // Todo - implement
+            console.log('got this: 401')
+        }
+        else if (this.status == 400) {
+            // Todo - implement
+            console.log('got this: 400')
+        }
+        else if (this.status == 404) {
+            // Todo - implement
+            console.log('got this: 404')
         }
         else {
             // Todo - implement
@@ -69,6 +193,10 @@ signOutRequest.onreadystatechange = function() {
     }
 };
 
+// Todo - implement
+// Post Message
+
+
 
 
 // - - - - - Init functions - - - - - //
@@ -84,6 +212,7 @@ displayView = function(){
 
 
 // - - - - - The function when page loads - - - - - //
+
 window.onload = function () {
 
     // Todo - Delete when done - används för att hoppa tillbaka till rtt view under utveckling
@@ -93,6 +222,10 @@ window.onload = function () {
     // If first time? check this:
     if (localStorage.getItem("currentUser") == null)
         localStorage.setItem("currentUser", "");
+    if (localStorage.getItem("homeEmail") == null)
+        localStorage.setItem("homeEmail", "");
+    if (localStorage.getItem("browseEmail") == null)
+        localStorage.setItem("browseEmail", "");
 
     // Initialize div objects (global variables)
     welcomeDiv = document.getElementById("welcomeview");
@@ -103,30 +236,36 @@ window.onload = function () {
     displayView();
 
     // Load user details to home page and browse page
+    // Todo - kan bli problem om dess inte innehåller giltig email
     setUserDetails("home");
     setUserDetails("browse");
 };
 
-//Function for setting user details
+// Function for setting user details, either for yourself or for some other user
 function setUserDetails(who) {
+
     // "who" could be either home or browse, this way know which info we are displaying and where
     let token = localStorage.getItem("currentUser");
     if (token != null && token != "" ){
         let userTable = document.getElementById(who + "UserInfo");
         let email = localStorage.getItem(who + "Email");
-        
-        // Todo
-        //let userDataArray = serverstub.getUserDataByEmail(token, email);
-        let userDataArray = server.get_user_data_by_email(email);
 
-        // Putting the user data we retrieved from server to the corresponding html table
-        if (userDataArray["success"]) {
-            userTable.rows[0].cells[1].innerHTML = userDataArray["data"].email;
-            userTable.rows[1].cells[1].innerHTML = userDataArray["data"].firstname;
-            userTable.rows[2].cells[1].innerHTML = userDataArray["data"].familyname;
-            userTable.rows[3].cells[1].innerHTML = userDataArray["data"].gender;
-            userTable.rows[4].cells[1].innerHTML = userDataArray["data"].city;
-            userTable.rows[5].cells[1].innerHTML = userDataArray["data"].country;
+        // Display my own info
+        if (who == 'home') {
+            // Send request to server about receiving the info
+            dataByTokenRequest.open("GET", url + "getDataByToken", true);
+            dataByTokenRequest.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
+            dataByTokenRequest.setRequestHeader("Authorization", token)
+            dataByTokenRequest.send();
+        }
+
+        // Display the info about the searched user
+        else if (who == 'browse' && email != null && email != "") {
+            // Send request to server about receiving the info
+            dataByEmailRequest.open("GET", url + "getDataByEmail/" + email, true);
+            dataByEmailRequest.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
+            dataByEmailRequest.setRequestHeader("Authorization", token)
+            dataByEmailRequest.send();
         }
     }
 }
@@ -226,7 +365,8 @@ function sign_out(){
 
 // - - - - - Changing tabs - - - - - //
 
-function showPage(ourEvent, name){
+function showPage(ourEvent, name) {
+
     // - - Fixing the tabs - - //
     // Unselect all
     let tabcontent = document.getElementById("tabDiv");
@@ -237,6 +377,7 @@ function showPage(ourEvent, name){
     let div = ourEvent.target;
     div.style.backgroundColor = "lightgreen";
 
+
     // - - Fixing the content - - //
     // Unselect all
     let allPages = document.getElementsByClassName("tabcontent");
@@ -317,19 +458,18 @@ function reloadWall(who) {
     return false;
 }
 
-// - - - - - Changing another's wall - - - - - //
+// Changing another's wall
 function searchAnotherUser(event){
     let token = localStorage.getItem("currentUser");
-    let email = event.target["searchInput"].value;
-    let error = document.getElementById("searchMessage");
 
-    // Todo
-    let user_obj = serverstub.getUserMessagesByEmail(token, email);
+    // Todo - download the wall of the user we searched for ?
+    // let user_obj = serverstub.getUserMessagesByEmail(token, email);
 
-    error.innerHTML = user_obj["message"];
+    if(token != "") {
 
-    // Check that we succeeded with finding a wall
-    if(token != "" && user_obj['success']){
+        // Store the searched email in localStorage so that it can be reached in "setUserDetails()"
+        let email = event.target["searchInput"].value;
+        localStorage.setItem("browseEmail", email);
         setUserDetails("browse");
     }
     return false;