diff --git a/src/main/resources/static/js/datatransfer.js b/src/main/resources/static/js/datatransfer.js
index 720c35c..a64d8a3 100644
--- a/src/main/resources/static/js/datatransfer.js
+++ b/src/main/resources/static/js/datatransfer.js
@@ -8,7 +8,10 @@ var jsonIndex = 0;
 var htable_row = 0;
 var host = getDomain();
 var dataModified = false;
-var discardChanges = false;
+// TODO: Remove discard changes
+const addMessageName = 'addMessage';
+const loadMessageName = 'changeMessage';
+const removeMessageName = 'removeMessage';
 // TODO: Add last given command
 
 const C_UUID = 'mock-uuid';
@@ -22,7 +25,7 @@ const setOrigin = function(){
 const getUpdate = function(){
     updateData();
 }
-$('#iconPlus').click(function(){addMessage()});
+$('#iconPlus').click(function(){callAddMessage()});
 $('#btn-addRow').click(function(){addRow()});
 //TODO remove later save onclick init
 $('#btn-save').click(getUpdate);
@@ -39,14 +42,6 @@ function getData(){
     });
 }
 
-function checkDataLoss(){
-    if(discardChanges && dataModified){
-        discardChanges = false;
-        return true;
-    }
-    return false;
-}
-
 function getDomain(){
     var url = window.location.href;
     var arr = url.split("/");
@@ -105,6 +100,22 @@ function getCookie(cname) {
     return '';
 }
 
+function callMethodByName(methodObject){
+    let name = methodObject.name;
+    let id = methodObject.id;
+    switch(name){
+        case addMessageName: 
+            addMessage();
+            break;
+        case loadMessageName:
+            loadMessage(id);
+            break;
+        case removeMessageName:
+            removeMessage(id);
+            break;
+    }
+}
+
 function updateData(){
     var updatedJson = generateJson();
     const dataSaved = function () {
@@ -121,11 +132,17 @@ function updateData(){
     request.done(dataSaved);
 }
 
-function addMessage(){
-    if(dataModified) {
+function callAddMessage(){
+    if(dataModified){
+        setMethodToCall(addMessageName, null);
         dataLossModalDisplay();
-        if(!checkDataLoss()) return;
     }
+    else {
+        addMessage();
+    }
+}
+
+function addMessage(){
     var request = $.ajax({
         url: host + '/mock/json/'+clientUUID,
         type: 'POST',
@@ -135,11 +152,17 @@ function addMessage(){
     });
 }
 
-function removeTile(id){
-    if(dataModified) {
+function callRemoveMessage(id){
+    if(dataModified){
+        setMethodToCall(removeMessageName, id);
         dataLossModalDisplay();
-        if(!checkDataLoss()) return;
     }
+    else {
+        removeMessage(id);
+    }
+}
+
+function removeMessage(id){
     var jsonObject = findJsonById(id);
     var request = $.ajax({
         url: host + '/mock/json/'+clientUUID + '/' + id,
@@ -266,12 +289,14 @@ function findJsonIndexById(id){
         if(id == json[i].mockedResponseId) return i;
 }
 
-function changeMessage(id){
+function callLoadMessage(id){
     if(dataModified) {
+        setMethodToCall(loadMessageName, id);
         dataLossModalDisplay();
-        if(!checkDataLoss()) return;
     }
-    loadMessage(id);
+    else {
+        loadMessage(id);
+    }
 }
 
 function loadMessage(id){
@@ -304,10 +329,10 @@ function selectMessage(id){
 }
 
 function generateMessageTileHtml(id, httpStatus, mediaType){
-    var innerHTML = '
' +
         '';
     return innerHTML;
 }
diff --git a/src/main/resources/static/js/modal.js b/src/main/resources/static/js/modal.js
index 980931f..b07de7d 100644
--- a/src/main/resources/static/js/modal.js
+++ b/src/main/resources/static/js/modal.js
@@ -1,4 +1,8 @@
 var modalDisplayed = false;
+var methodToCall = {
+    name: null,
+    id: null
+};
 
 const overlay = $('#overlay');
 const savedModal = $('#modal-confirm');
@@ -19,21 +23,27 @@ const savedModalDisplay = function() {
 const dataLossModalDisplay = function(){
     showModal(dataLossModal);
 }
+
+function setMethodToCall(name, id){
+    methodToCall.name = name;
+    methodToCall.id = id;
+}
+
 const dropChangesAndClose = function(){
-    discardChanges = true;
+    callMethodByName(methodToCall)
     hideModal(dataLossModal);
 }
 
 function showModal(jmodal){
     if(modalDisplayed) return;
-    overlay.toggleClass('active');
+    overlay.addClass('active');
     jmodal.addClass('active');
     modalDisplayed = true;
 }
 
 function hideModal(jmodal){
     if(!modalDisplayed) return;
-    overlay.toggleClass('active');
+    overlay.removeClass('active');
     jmodal.removeClass('active');
     modalDisplayed = false;
 }
diff --git a/target/classes/static/js/datatransfer.js b/target/classes/static/js/datatransfer.js
index 720c35c..a64d8a3 100644
--- a/target/classes/static/js/datatransfer.js
+++ b/target/classes/static/js/datatransfer.js
@@ -8,7 +8,10 @@ var jsonIndex = 0;
 var htable_row = 0;
 var host = getDomain();
 var dataModified = false;
-var discardChanges = false;
+// TODO: Remove discard changes
+const addMessageName = 'addMessage';
+const loadMessageName = 'changeMessage';
+const removeMessageName = 'removeMessage';
 // TODO: Add last given command
 
 const C_UUID = 'mock-uuid';
@@ -22,7 +25,7 @@ const setOrigin = function(){
 const getUpdate = function(){
     updateData();
 }
-$('#iconPlus').click(function(){addMessage()});
+$('#iconPlus').click(function(){callAddMessage()});
 $('#btn-addRow').click(function(){addRow()});
 //TODO remove later save onclick init
 $('#btn-save').click(getUpdate);
@@ -39,14 +42,6 @@ function getData(){
     });
 }
 
-function checkDataLoss(){
-    if(discardChanges && dataModified){
-        discardChanges = false;
-        return true;
-    }
-    return false;
-}
-
 function getDomain(){
     var url = window.location.href;
     var arr = url.split("/");
@@ -105,6 +100,22 @@ function getCookie(cname) {
     return '';
 }
 
+function callMethodByName(methodObject){
+    let name = methodObject.name;
+    let id = methodObject.id;
+    switch(name){
+        case addMessageName: 
+            addMessage();
+            break;
+        case loadMessageName:
+            loadMessage(id);
+            break;
+        case removeMessageName:
+            removeMessage(id);
+            break;
+    }
+}
+
 function updateData(){
     var updatedJson = generateJson();
     const dataSaved = function () {
@@ -121,11 +132,17 @@ function updateData(){
     request.done(dataSaved);
 }
 
-function addMessage(){
-    if(dataModified) {
+function callAddMessage(){
+    if(dataModified){
+        setMethodToCall(addMessageName, null);
         dataLossModalDisplay();
-        if(!checkDataLoss()) return;
     }
+    else {
+        addMessage();
+    }
+}
+
+function addMessage(){
     var request = $.ajax({
         url: host + '/mock/json/'+clientUUID,
         type: 'POST',
@@ -135,11 +152,17 @@ function addMessage(){
     });
 }
 
-function removeTile(id){
-    if(dataModified) {
+function callRemoveMessage(id){
+    if(dataModified){
+        setMethodToCall(removeMessageName, id);
         dataLossModalDisplay();
-        if(!checkDataLoss()) return;
     }
+    else {
+        removeMessage(id);
+    }
+}
+
+function removeMessage(id){
     var jsonObject = findJsonById(id);
     var request = $.ajax({
         url: host + '/mock/json/'+clientUUID + '/' + id,
@@ -266,12 +289,14 @@ function findJsonIndexById(id){
         if(id == json[i].mockedResponseId) return i;
 }
 
-function changeMessage(id){
+function callLoadMessage(id){
     if(dataModified) {
+        setMethodToCall(loadMessageName, id);
         dataLossModalDisplay();
-        if(!checkDataLoss()) return;
     }
-    loadMessage(id);
+    else {
+        loadMessage(id);
+    }
 }
 
 function loadMessage(id){
@@ -304,10 +329,10 @@ function selectMessage(id){
 }
 
 function generateMessageTileHtml(id, httpStatus, mediaType){
-    var innerHTML = '' +
         '';
     return innerHTML;
 }
diff --git a/target/classes/static/js/modal.js b/target/classes/static/js/modal.js
index 980931f..b07de7d 100644
--- a/target/classes/static/js/modal.js
+++ b/target/classes/static/js/modal.js
@@ -1,4 +1,8 @@
 var modalDisplayed = false;
+var methodToCall = {
+    name: null,
+    id: null
+};
 
 const overlay = $('#overlay');
 const savedModal = $('#modal-confirm');
@@ -19,21 +23,27 @@ const savedModalDisplay = function() {
 const dataLossModalDisplay = function(){
     showModal(dataLossModal);
 }
+
+function setMethodToCall(name, id){
+    methodToCall.name = name;
+    methodToCall.id = id;
+}
+
 const dropChangesAndClose = function(){
-    discardChanges = true;
+    callMethodByName(methodToCall)
     hideModal(dataLossModal);
 }
 
 function showModal(jmodal){
     if(modalDisplayed) return;
-    overlay.toggleClass('active');
+    overlay.addClass('active');
     jmodal.addClass('active');
     modalDisplayed = true;
 }
 
 function hideModal(jmodal){
     if(!modalDisplayed) return;
-    overlay.toggleClass('active');
+    overlay.removeClass('active');
     jmodal.removeClass('active');
     modalDisplayed = false;
 }