diff --git a/prak3/src/server.cpp b/prak3/src/server.cpp
index e2198f50c8e10df646b700a5636124e1602bcb70..909612ef80ad6aad6c193832774f17654f30a1c9 100644
--- a/prak3/src/server.cpp
+++ b/prak3/src/server.cpp
@@ -26,7 +26,67 @@ void throughput_monitor() {
     }
 }
 
-std::string processRequest(const std::string& request) {
+
+
+#include <map>
+
+#define PORT 2525
+#define BUFFER_SIZE 1024
+#define STORE_OPERATION 's'
+#define GET_OPERATION 'g'
+#define DELETE_OPERATION 'd'
+
+//=========== SLOW PARSER ====================
+struct Request {
+    char operation;         
+    std::string key;      
+    std::string value;
+};
+ Request* parseRequest(const char* buffer) {
+    // Create a new Request struct
+    Request* req = new Request();
+
+    return req;
+}
+
+// we assume that this function is slow
+std::string processRequest_slow(const std::string& request) {
+
+    std::string response;   
+    Request* parsedRequest = parseRequest(request.c_str());
+
+    std::lock_guard<std::mutex> lock(mtx);
+
+    switch (parsedRequest->operation) {
+        case STORE_OPERATION:
+            DB[parsedRequest->key] = parsedRequest->value;
+            response = "Stored [" + parsedRequest->key + "] = " + parsedRequest->value;
+            break;
+        case GET_OPERATION:
+            if (DB.find(parsedRequest->key) != DB.end()) {
+                response = "Value of [" + parsedRequest->key + "] is " + DB[parsedRequest->key];
+            } else {
+                response = "Key [" + parsedRequest->key + "] not found";
+            }
+            break;
+        case DELETE_OPERATION:
+            if (DB.erase(parsedRequest->key)) {
+                response = "Deleted key [" + parsedRequest->key + "]";
+            } else {
+                response = "Key [" + parsedRequest->key + "] not found for deletion";
+            }
+            break;
+        default:
+            response = "Invalid operation!";
+            break;
+    }
+
+    return response;
+}
+//=============================================
+
+// we assume that this function is fast
+std::string processRequest_fast(const std::string& request) {
     std::string response;
 
     size_t first = request.find(",");
@@ -87,7 +147,7 @@ void handle_client(int client_socket) {
         }
 
         buffer[bytes_received] = '\0';
-        std::string response = processRequest(buffer);
+        std::string response = processRequest_slow(buffer);
         
         // Anfragezähler inkrementieren
         request_count.fetch_add(1, std::memory_order_relaxed);