diff --git a/libs/interface/Bot.hpp b/libs/interface/Bot.hpp
index 5355453..3fe09a1 100644
--- a/libs/interface/Bot.hpp
+++ b/libs/interface/Bot.hpp
@@ -10,7 +10,7 @@ public:
     Discord(const nlohmann::json& data) : data(data), net(std::make_tuple(std::make_unique<Args>(data)...)) {}
     template<class T>
     _deprecated_t("Use ctx() instead")
-        auto& get() const {
+    auto& get() const {
         return *std::get<std::unique_ptr<T>>(net);
     }
     const auto& ctx() const {
diff --git a/libs/network/network.cpp b/libs/network/network.cpp
index 87e5a59..4b466a1 100644
--- a/libs/network/network.cpp
+++ b/libs/network/network.cpp
@@ -1,5 +1,5 @@
 #include "network.hpp"
-NetworkManager::NetworkManager() : curl(curl_easy_init()), res(CURLE_OK), web(WebSocket::getInstance()) {
+NetworkManager::NetworkManager() : curl(curl_easy_init(), curl_easy_cleanup), res(CURLE_OK), web(WebSocket::getInstance()) {
     Log::create(INFO, NETWORK, "Network init");
     curl_global_init(CURL_GLOBAL_DEFAULT);
     if (!curl) {
@@ -8,9 +8,6 @@ NetworkManager::NetworkManager() : curl(curl_easy_init()), res(CURLE_OK), web(We
     }
 }
 NetworkManager::~NetworkManager() {
-    if (curl) {
-        curl_easy_cleanup(curl);
-    }
     curl_global_cleanup();
 }
 auto NetworkManager::WriteCallback(void* contents, unsigned long size, unsigned long nmemb, void* userp) -> unsigned long {
@@ -28,19 +25,19 @@ auto NetworkManager::getLatency() const -> unsigned long {
 auto NetworkManager::request(const std::string& method, const std::string& path, const std::string& data) -> std::string {
     std::string response;
     if (curl) {
-        curl_easy_setopt(curl, CURLOPT_URL, path.c_str());
-        curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, method.c_str());
-        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data.c_str());
+        curl_easy_setopt(curl.get(), CURLOPT_URL, path.c_str());
+        curl_easy_setopt(curl.get(), CURLOPT_CUSTOMREQUEST, method.c_str());
+        curl_easy_setopt(curl.get(), CURLOPT_POSTFIELDS, data.c_str());
         curl_slist* headers = nullptr;
         headers = curl_slist_append(headers, "Accept: application/json");
         headers = curl_slist_append(headers, "Content-Type: application/json");
         headers = curl_slist_append(headers, ("Authorization: " + web.getToken()).c_str());
         headers = curl_slist_append(headers, "User-Agent: DiscordBot");
-        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
-        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
-        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
-        curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_3ONLY);
-        res = curl_easy_perform(curl);
+        curl_easy_setopt(curl.get(), CURLOPT_HTTPHEADER, headers);
+        curl_easy_setopt(curl.get(), CURLOPT_WRITEFUNCTION, WriteCallback);
+        curl_easy_setopt(curl.get(), CURLOPT_WRITEDATA, &response);
+        curl_easy_setopt(curl.get(), CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_3ONLY);
+        res = curl_easy_perform(curl.get());
         if (res != 0) {
             Log::create(ERROR, NETWORK, "curl_easy_perform() failed: " + std::string(curl_easy_strerror(res)));
         }
diff --git a/libs/network/network.hpp b/libs/network/network.hpp
index 8dff095..b44c134 100644
--- a/libs/network/network.hpp
+++ b/libs/network/network.hpp
@@ -5,7 +5,7 @@
 #include <curl/curl.h>
 class NetworkManager {
 private:
-    CURL* curl;
+    std::unique_ptr<void, decltype(&curl_easy_cleanup)> curl;
     CURLcode res;
     WebSocket& web;
     NetworkManager();
diff --git a/libs/network/websocket.cpp b/libs/network/websocket.cpp
index 9d0fed4..62ee9bc 100644
--- a/libs/network/websocket.cpp
+++ b/libs/network/websocket.cpp
@@ -28,10 +28,9 @@ void EventEmitter::once(const std::string& event, const eventHandlers& handler)
 }
 void EventEmitter::off(const std::string& event, eventHandlers handler) {
     if (auto it = handlers.find(event); it != handlers.cend()) {
-        auto& vec = it->second;
-        vec.erase(std::ranges::remove_if(vec, [&handler](const eventHandlers& h) {
+        it->second.erase(std::ranges::remove_if(it->second, [&handler](const eventHandlers& h) {
             return h.target<eventHandlers>() == handler.target<eventHandlers>();
-        }).begin(), vec.cend());
+        }).begin(), it->second.cend());
     }
 }
 WebSocket::WebSocket(const std::string& token, int intents, bool isBot) : token(token), intents(intents), isBot(isBot) {