diff --git a/README.md b/README.md
index 3766457b1848b3ff674cc0c6a206448a876d4a00..7dc1d103ceb4d2df8961eb418f35fc7afcb5dda4 100644
--- a/README.md
+++ b/README.md
@@ -84,39 +84,39 @@ To ***save*** your template, it's automatic ! Just type, edit what you want. It
 
 ### MIDI Variables
 
-| Midi Event  | Parameter | Informations                             |
-|-------------|-----------|------------------------------------------|
-| note        | id        | Note on, use case : note:21              |
-| cc          | id        | Control change, use case : cc:10         |
-| pb          |           | Pitchbend, use case : pb                 |
+| Midi Event  | Parameter | Informations                                        |
+|-------------|-----------|-----------------------------------------------------|
+| note        | id        | Note on, use case : note:21                         |
+| cc          | id        | Control change, use case : cc:10                    |
+| pb          |           | Pitchbend, use case : pb                            |
 
 ### Audio Variables
 
-| Audio Event | Parameter | Informations                             |
-|-------------|-----------|------------------------------------------|
-| low         |           | low energy, use case : low               |
-| lomi        |           | lomi energy, use case : lomi             |
-| low         |           | mid energy, use case : mid               |
-| mihi        |           | mihi energy, use case : mihi             |
-| hi          |           | High energy, use case : hi               |
-| loud        |           | Volume meter, use case : loud            |
-| onset       | note      | Note, use case : onset:A                 |
-| attack      |           | Attack, use case : attack                |
+| Audio Event | Parameter | Informations                                        |
+|-------------|-----------|-----------------------------------------------------|
+| low         |           | low energy, use case : low                          |
+| lomi        |           | lomi energy, use case : lomi                        |
+| low         |           | mid energy, use case : mid                          |
+| mihi        |           | mihi energy, use case : mihi                        |
+| hi          |           | High energy, use case : hi                          |
+| loud        |           | Volume meter, use case : loud                       |
+| onset       | note      | Note, use case : onset:A                            |
+| attack      |           | Attack, use case : attack                           |
 
 ### Types
 
-| Option      | Informations                                         |
-|-------------|------------------------------------------------------|
-| min:max     | Decimal or hexadecimal min and max splited by ":"    |
-| A;B;C       | Array splited by ";"                                 |
+| Option      | Informations                                                    |
+|-------------|-----------------------------------------------------------------|
+| min:max     | Decimal or hexadecimal min and max splited by ":"               |
+| A;B;C       | Array splited by ";"                                            |
 
 ### Options
 
-| Option      | Informations                                         |
-|-------------|------------------------------------------------------|
-| r           | Random value between type object                     |
+| Option      | Informations                                                    |
+|-------------|-----------------------------------------------------------------|
+| r           | Random value between type object                                |
 | i:1         | Incremental value between type object, increment can be negative|
-| d           | Linear value between type object                     |
+| d           | Linear value between type object                                |
 
 ### Examples
 
diff --git a/background.js b/background.js
index f9042d609396251edebc1ab978a9a56e5332c69d..449614ee467896066f4a75edc2a12c95d539246d 100644
--- a/background.js
+++ b/background.js
@@ -16,28 +16,36 @@ let audioI = false;
 let midiI = false;
 let popup = false;
 let loopPlay = false;
-let records = [
-	[
-		{
-			time: 1,
-			data: { value: 0, controller: { number: 1 } },
-			type: 'controlchange'
-		},
-		{
-			time: 2000,
-			data: { value: 1, controller: { number: 1 } },
-			type: 'controlchange'
-		},
-		{
-			time: 3000,
-			data: { value: 0, controller: { number: 1 } },
-			type: 'controlchange'
-		}
+let records = {
+	loop: [
+		[
+			{
+				time: 1,
+				data: { value: 0, controller: { number: 1 } },
+				type: 'controlchange'
+			},
+			{
+				time: 2000,
+				data: { value: 1, controller: { number: 1 } },
+				type: 'controlchange'
+			},
+			{
+				time: 3000,
+				data: { value: 0, controller: { number: 1 } },
+				type: 'controlchange'
+			}
+		],
+		[],
+		[],
+		[]
 	],
-	[],
-	[],
-	[]
-];
+	info: [
+		{isLoop:false},
+		{isLoop:false},
+		{isLoop:false},
+		{isLoop:false}
+	]
+};
 let all = "";
 
 //Initialize the CSS storage on startup
diff --git a/content.js b/content.js
index fd2162dc4cab098e3223b398b3173d7a75573cee..73c718f8161692f388153730d2a87a3b064153fd 100644
--- a/content.js
+++ b/content.js
@@ -356,31 +356,34 @@ function freqToBin(freq, rounding = 'round') {
 }
 
 // Allow to store the current note in an index, for duration computation
-const CURRENT = {};
-// const RECORDED = [];
 chrome.storage.sync.get(['records'], function (result) {
-    RECORDED = result.records;
+    RECORDED = result.records.loop;
+    INFOLOOP = result.records.info;
 });
 
 let recordCount = 0;
 let isRecording = false;
-let isLoop = false;
 let recordingTime = 0;
 let theLoop;
 const record = (status, number) => {
     isRecording = status;
-    recordingTime = performance.now();
-    recordCount = number;
+    if (status) {
+        recordingTime = performance.now();
+        recordCount = number;
+    }
+    else {
+        chrome.storage.sync.set({ 'records': { loop: RECORDED, info: INFOLOOP } });
+    }
 };
 
 
 // Start loop
 const loop = (number) => {
-    isLoop = !isLoop;
+    INFOLOOP[number].isLoop = !INFOLOOP[number].isLoop;
     isRecording = false;
     if (RECORDED[number].length) {
         const loopLength = RECORDED[number][RECORDED[number].length - 1].time;
-        if (isLoop) {
+        if (INFOLOOP[number].isLoop) {
             loopNotes(number);
             theLoop = setInterval(() => loopNotes(number), loopLength);
         } else {
@@ -392,10 +395,8 @@ const loop = (number) => {
 const loopNotes = (number) => {
     RECORDED[number].forEach(note => {
         setTimeout(() => {
-            // Prevent to keep playing also after stop
-            if (!isLoop) return;
+            if (!INFOLOOP[number].isLoop) return;
             midiEvent(note.type, note.data)
-            // setTimeout(() => play(note.note, 0), 200)
         }, note.time);
     })
 }
@@ -404,7 +405,7 @@ const reset = (number) => {
     RECORDED[number].length = 0;
     isRecording = false;
     isLoop = false;
-    chrome.storage.sync.set({ 'records': RECORDED });
+    chrome.storage.sync.set({ 'records': { loop: RECORDED, info: INFOLOOP } });
 }
 
 function audioEvent() {
@@ -549,12 +550,10 @@ function onMessage({ type, data }) {
             break;
         }
         case 'playLoop': {
-            loop(data);
-            break;
-        }
-        case 'getLoop': {
-            chrome.storage.sync.get(['records'], function (result) {
-                chrome.runtime.sendMessage({ type: 'midiRecords', data: result.records });
+            chrome.storage.sync.get(['activate'], function (result) {
+                if (result.activate) {
+                    loop(data);
+                }
             });
             break;
         }
@@ -564,9 +563,7 @@ function onMessage({ type, data }) {
         }
         case 'resetLoop': {
             reset(data);
-            chrome.storage.sync.get(['records'], function (result) {
-                chrome.runtime.sendMessage({ type: 'midiRecords', data: result.records });
-            });
+            chrome.runtime.sendMessage({ type: 'updateUi', data: false });
             break;
         }
     }
diff --git a/main.js b/main.js
index 5dc1230986dd30eeffbd9721770571334d5a0401..2fbb647be6bed472c2885bfadf19e44798f6d24a 100644
--- a/main.js
+++ b/main.js
@@ -109,12 +109,17 @@ function initUi() {
 			$('.midiI').removeClass('active');
 		}
 	});
-	chrome.tabs.query({ active: true, currentWindow: true },
-		function (tabs) {
-			chrome.tabs.sendMessage(tabs[0].id, { type: 'getLoop', data: false });
+	chrome.storage.sync.get(['records'], function (result) {
+		$('#loopList').text('');
+		for (let i = 0; i < result.records.loop.length; i++) {
+			if (result.records.loop[i].length > 0) {
+				$('#loopList').append('<tr><td>Boucle n°' + (i + 1) + '</td><td>' + result.records.loop[i][result.records.loop[i].length - 1].time + 'ms</td><td>' + result.records.loop[i].length + '</td><td><button id="record" value="' + i + '">' + recordIcon + '</button><button id="loopPlay" value="' + i + '">' + (result.records.info[i].isLoop?pauseIcon:playIcon) + '</button><button id="loopReset" value="' + i + '">' + trashIcon + '</button></td></tr>');
+			}
+			else {
+				$('#loopList').append('<tr><td>Boucle n°' + (i + 1) + '</td><td></td><td>0</td><td><button id="record" value="' + i + '">' + recordIcon + '</button><button id="loopPlay" value="' + i + '">' + playIcon + '</button><button id="loopReset" value="' + i + '">' + trashIcon + '</button></td></tr>');
+			}
 		}
-	);
-
+	});
 	chrome.storage.sync.get(['parameters'], function (result) {
 		parameters = JSON.parse(result.parameters);
 		var tbl_body = "";
@@ -333,8 +338,8 @@ function onMessage({ type, data }) {
 		case 'midiEvent': {
 			if (dataMidi != data) {
 				$('#midiEvent').text(data);
-				$('#midiEvent').parent().animate({'background-color': 'red'}, 'slow');
-				$('#midiEvent').parent().animate({'background-color': 'transparent'}, 'slow');
+				$('#midiEvent').parent().animate({ 'background-color': 'red' }, 'slow');
+				$('#midiEvent').parent().animate({ 'background-color': 'transparent' }, 'slow');
 				var focusedTd = $('[contenteditable]:focus');
 				var focusedCol = $(focusedTd).index('#parameters tr:eq(' + $(focusedTd).parent().index('#parameters tr') + ') td');
 				if (focusedTd.length > 0 && focusedCol == 4) {
@@ -348,19 +353,6 @@ function onMessage({ type, data }) {
 			$('#midiDevices').text(data);
 			break;
 		}
-		case 'midiRecords': {
-			$('#loopList').text('');
-			console.log(data);
-			for (let i = 0; i < data.length; i++) {
-				if (data[i].length > 0) {
-					$('#loopList').append('<tr><td>Boucle n°' + (i + 1) + '</td><td>' + data[i][data[i].length - 1].time + 'ms</td><td>' + data[i].length + '</td><td><button id="record" value="' + i + '">' + recordIcon + '</button><button id="loopPlay" value="' + i + '">' + playIcon + '</button><button id="loopReset" value="' + i + '">' + trashIcon + '</button></td></tr>');
-				}
-				else {
-					$('#loopList').append('<tr><td>Boucle n°' + (i + 1) + '</td><td></td><td>0</td><td><button id="record" value="' + i + '">' + recordIcon + '</button><button id="loopPlay" value="' + i + '">' + playIcon + '</button><button id="loopReset" value="' + i + '">' + trashIcon + '</button></td></tr>');
-				}
-			}
-			break;
-		}
 	}
 }