diff --git a/BrowserAddon/vOG.xpi b/BrowserAddon/V2.xpi
similarity index 68%
rename from BrowserAddon/vOG.xpi
rename to BrowserAddon/V2.xpi
index 220d0bc7702f6f8d3f72933bb053ea09f91adaa5..90e8906007b069ce7e03bcec189aaa5c7b5e2f07 100644
Binary files a/BrowserAddon/vOG.xpi and b/BrowserAddon/V2.xpi differ
diff --git a/BrowserAddon/background.js b/BrowserAddon/background.js
index 1a2993f86383a5b231e699b59799ce6cf0521e82..a7f0db0a2001b18068156bfd35e689d215fab3de 100644
--- a/BrowserAddon/background.js
+++ b/BrowserAddon/background.js
@@ -2,6 +2,7 @@ let socket;
 let trackingAktiv = false;
 let isConnected = false;
 let distraktions;
+let withBlock;
 
 function connectWebSocket() {
     if (isConnected) {
@@ -23,13 +24,13 @@ function connectWebSocket() {
         console.log("Verbunden mit der WPF-Anwendung.");
         clearTimeout(connectionTimeout);
         isConnected = true; // Markiere als verbunden
-        socket.send("Hallo vom Addon");
+        socket.send("{\"action\": \"connected\", \"status\": true}");
     };
 
     // Empfang von Nachrichten
     socket.onmessage = function(event) {
         const message = parseMessage(event.data);
-        console.log("Nachricht empfangen: ", message);
+        //console.log("Nachricht empfangen: ", message);
         //navigator.clipboard.writeText(message);
 
         if(message.action === "sendJsonContent") {
@@ -46,11 +47,21 @@ function connectWebSocket() {
             removeTabListeners();
             trackingAktiv = false;
         }
+
+        if (message.action === "BlockMode" && message.status === true) {
+            withBlock = true;
+            console.log("Nachricht empfangen: ", message);
+        } else if(message.action === "noBlockMode" && message.status === false) {
+            withBlock = false;
+            console.log("Nachricht empfangen: ", message);
+        }
     };
 
     socket.onclose = function() {
         console.log("Verbindung geschlossen.");
         isConnected = false;
+        removeTabListeners();
+        trackingAktiv = false;
         // Versuche, nach einer kurzen Zeit erneut eine Verbindung herzustellen
         setTimeout(connectWebSocket, 5000); // 5 Sekunden warten, bevor erneut versucht wird
     };
@@ -59,19 +70,18 @@ function connectWebSocket() {
         console.error("WebSocket Fehler:", error);
         socket.close(); // Schließe den Socket, um den Fehler zu behandeln und es erneut zu versuchen
     };
-
 }
 
 connectWebSocket();
-addTabListeners();
+//addTabListeners();
 
 function createDistractionList(message) {
     const result = {};
-    for (content in message) {
-        const distractingUrls = message["content"]["Games"].filter(item => item.distracting).map(item => item.url);
+    for (category in message["content"]) {
+        const distractingUrls = message["content"][category].filter(item => item.distracting).map(item => item.url);
         
         if (distractingUrls.length > 0) {
-            result[content] = distractingUrls;
+            result[category] = distractingUrls;
         }
     }
     return result;
@@ -121,15 +131,21 @@ function handlerTabActiv(activeInfo) {
 
 
 function checkUrl(url, tabId) {
-    for (content in distraktions.content) {
-    //const content = "youtube.com";
-        if (url.includes(distraktions["content"][content])) {
-            socket.send(`Distraktion Bemerkt: ${url}`);
-
-            browser.tabs.query({ active: true, currentWindow: true }).then((tabs) => {
-                const activeTab = tabs[0];
-                browser.tabs.sendMessage(activeTab.id, { action: "showOverlay", tabId: tabId });
-            });
+    for (category in distraktions) {
+        //const content = "youtube.com";
+        //console.log(category);
+        
+        for (element in distraktions[category]) {
+            if (url.includes(distraktions[category][element])) {
+                socket.send(`Distraktion Bemerkt: ${url}`);
+
+                if(withBlock) {
+                    browser.tabs.query({ active: true, currentWindow: true }).then((tabs) => {
+                        const activeTab = tabs[0];
+                        browser.tabs.sendMessage(activeTab.id, { action: "showOverlay", tabId: tabId });
+                    });
+                }
+            }
         }
     }
 };
\ No newline at end of file
diff --git a/BrowserAddon/manifest.json b/BrowserAddon/manifest.json
index 1252b8c3cdbc432b57c8d77ddc3a91d23e46e965..2b763c30598ddc00d0573e815e0380140eb7ce9c 100644
--- a/BrowserAddon/manifest.json
+++ b/BrowserAddon/manifest.json
@@ -1,21 +1,17 @@
 {
-    "manifest_version": 3,
-    "name": "URL-Kopierer",
-    "version": "1.0",
-    "description": "Kopiert die URL des aktiven Tabs in die Zwischenablage.",
-    "permissions": ["tabs", "activeTab", "scripting", "clipboardWrite"],
-    "host_permissions": ["<all_urls>"],
+    "manifest_version": 2,
+    "name": "CoFlow",
+    "version": "1.1",
+    "description": "Überprüft ob nicht gewünschte Tab aufgerufne werden und Blockiert diese dann wenn dies wenn die Setting das vrogeben.",
+    "permissions": ["tabs", "activeTab", "scripting", "clipboardWrite", "<all_urls>"],
     "background": {
     "scripts": ["background.js"],
     "persistent": false
   },
-    "action": {
-      "default_popup": "popup.html",
-      "default_icon": "icon.png"
+    "browser_action": {
+      "default_popup": "popup.html"
     },
-    "content_security_policy": {
-    "extension_pages": "script-src 'self'; object-src 'self'; connect-src 'self' ws://localhost:8080"
-  },
+    "content_security_policy": "script-src 'self'; object-src 'self'; connect-src 'self' ws://localhost:8080",
   "content_scripts": [
         {
             "matches": ["<all_urls>"],
diff --git a/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Screens/Regulaer/01Overview.xaml.cs b/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Screens/Regulaer/01Overview.xaml.cs
index 832ee9d1be438c425b3fec5ab4270e9032871aad..50c91cf10ccd2afba86f953f36c5c820d9699c10 100644
--- a/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Screens/Regulaer/01Overview.xaml.cs
+++ b/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Screens/Regulaer/01Overview.xaml.cs
@@ -267,30 +267,7 @@ namespace InnoLabProjektDektopApp
         // Ereignis-Handler für den "Start"-Button
         private void StartButton_Click(object sender, RoutedEventArgs e)
         {
-            Server.Instance.SendMessageToAllClients("{\"action\": \"startTracking\", \"status\": true}");
-
-            try
-            {
-                string jsonContent = File.ReadAllText("F:\\Dokumente\\Schule\\Studium\\InoLab\\procrastinator\\InnoLabProjektDektopApp\\InnoLabProjektDektopApp\\Assets\\distractingWebsites.json");
-                //string message = $"{{\"action\": \"sendJsonContent\", \"status\": true, \"content\": {jsonContent}}}";
-
-                // Erstelle ein Objekt für die Nachricht
-                var messageObject = new
-                {
-                    action = "sendJsonContent",
-                    status = true,
-                    content = JsonSerializer.Deserialize<object>(jsonContent) // Parse den JSON-Inhalt
-                };
-
-                // Serialisiere das Objekt zu einem JSON-String
-                string message = JsonSerializer.Serialize(messageObject);
-
-                Server.Instance.SendMessageToAllClients(message);
-            }
-            catch
-            {
-
-            }
+           
 
 
 
@@ -426,6 +403,35 @@ namespace InnoLabProjektDektopApp
 
             tmpSession = new Session(focusPeriod, breakPeriod, cycles, distractionMode, mascotVisible, wordsOfAffirmation, insultingWords);
             this.NavigationService.Navigate(tmpSession);
+
+
+            Server.Instance.SendMessageToAllClients("{\"action\": \"startTracking\", \"status\": true}");
+            Server.Instance.isTracking = true;
+            Server.Instance.blockingMode = distractionMode == "Full-blocking mode" ? true : false;
+            Server.Instance.SendMessageToAllClients($"{{\"action\": \"{(Server.Instance.blockingMode ? "BlockMode" : "noBlockMode")}\", \"status\": {(Server.Instance.blockingMode ? "true" : "false")}}}");
+
+            try
+            {
+                string relativePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Assets", "distractingWebsites.json");
+                string jsonContent = File.ReadAllText(relativePath);
+
+                // Erstelle ein Objekt für die Nachricht
+                var messageObject = new
+                {
+                    action = "sendJsonContent",
+                    status = true,
+                    content = JsonSerializer.Deserialize<object>(jsonContent) // Parse den JSON-Inhalt
+                };
+
+                // Serialisiere das Objekt zu einem JSON-String
+                string message = JsonSerializer.Serialize(messageObject);
+
+                Server.Instance.SendMessageToAllClients(message);
+            }
+            catch
+            {
+
+            }
         }
 
         public static Session getSessionInstance() {
diff --git a/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Services/ProcessMonitor.cs b/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Services/ProcessMonitor.cs
index b5467771ed9b97270ef6d0a062b0f20305e70f4f..c1de5164e39e917f98b75388ce343be814e1ace4 100644
--- a/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Services/ProcessMonitor.cs
+++ b/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Services/ProcessMonitor.cs
@@ -5,6 +5,7 @@ using System.Runtime;
 using System.Threading.Tasks;
 using System.Windows;
 using System.Windows.Navigation;
+using InnoLabProjektDektopApp.Services.WebSocketServer;
 using Newtonsoft.Json;
 
 namespace InnoLabProjektDektopApp.Services
@@ -166,6 +167,9 @@ namespace InnoLabProjektDektopApp.Services
 
         public string FinishSession()
         {
+            Server.Instance.SendMessageToAllClients("{\"action\": \"stopTracking\", \"status\": false}");
+            Server.Instance.isTracking = false;
+
             StopMonitoring();
             if (IsBreak)
             {
diff --git a/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Services/WebSocketServer/Server.cs b/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Services/WebSocketServer/Server.cs
index 7d172fba09e67935d16a9ef61a506b482d7b9813..fd3c3da8ff3998ead9cebe578fe91b3578f6cee9 100644
--- a/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Services/WebSocketServer/Server.cs
+++ b/InnoLabProjektDektopApp/InnoLabProjektDektopApp/Services/WebSocketServer/Server.cs
@@ -1,9 +1,15 @@
 using System;
 using System.Collections.Generic;
+using System.ComponentModel.Design.Serialization;
 using System.Linq;
+using System.Net.WebSockets;
 using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
 using System.Threading.Tasks;
 using Fleck;
+using Newtonsoft.Json.Linq;
+using System.IO;
 
 namespace InnoLabProjektDektopApp.Services.WebSocketServer
 {
@@ -12,6 +18,8 @@ namespace InnoLabProjektDektopApp.Services.WebSocketServer
         private static Server instance = null;
         private Fleck.WebSocketServer server;
         private List<IWebSocketConnection> clients = new List<IWebSocketConnection>();
+        public bool isTracking = false;
+        public bool blockingMode = false;
 
         private Server()
         {
@@ -37,9 +45,44 @@ namespace InnoLabProjektDektopApp.Services.WebSocketServer
                 {
                     Console.WriteLine($"Empfangen: {message}");
                     socket.Send("Hallo vom Server");
-                };
 
-                
+                    try
+                    {
+                        var messageObj = JsonSerializer.Deserialize<WebSocketMessage>(message);
+
+                        Console.WriteLine($"Empfangen: {messageObj}");
+
+                        if(messageObj != null && messageObj.action == "connected" && messageObj.status == true)
+                        {
+                            Console.WriteLine("connected");
+
+                            SendMessageToAllClients($"{{\"action\": \"{(isTracking ? "startTracking" : "stopTracking")}\", \"status\": {isTracking}}}");
+                            SendMessageToAllClients($"{{\"action\": \"{(blockingMode ? "BlockMode" : "noBlockMode")}\", \"status\": {(blockingMode ? "true" : "false")}}}");
+
+                            string relativePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Assets", "distractingWebsites.json");
+                            string jsonContent = File.ReadAllText(relativePath);
+
+                            // Erstelle ein Objekt für die Nachricht
+                            var messageObject = new
+                            {
+                                action = "sendJsonContent",
+                                status = true,
+                                content = JsonSerializer.Deserialize<object>(jsonContent) // Parse den JSON-Inhalt
+                            };
+
+                            // Serialisiere das Objekt zu einem JSON-String
+                            string response = JsonSerializer.Serialize(messageObject);
+
+                            SendMessageToAllClients(response);
+
+                        }
+                    }
+                    catch (JsonException ex)
+                    {
+                        Console.WriteLine($"Fehler beim Parsen der Nachricht: {ex.Message}");
+                        // Falls das Parsen fehlschlägt, kannst du den Fehler behandeln oder eine Default-Nachricht zurückgeben
+                    }
+                };              
             });
         }
 
@@ -67,3 +110,9 @@ namespace InnoLabProjektDektopApp.Services.WebSocketServer
         }
     }
 }
+
+public class WebSocketMessage
+{
+    public string action { get; set; }
+    public bool status { get; set; }
+}