diff --git a/include/dap_events_python.h b/include/dap_events_python.h
index 1924a623837ed1f250495b38296d8e71037ccd73..80af2082791f15355b8d2d6ca2f7fa8c410516a9 100644
--- a/include/dap_events_python.h
+++ b/include/dap_events_python.h
@@ -1,10 +1,8 @@
-#ifndef _DAP_EVENTS_PYTHON_H
-#define _DAP_EVENTS_PYTHON_H
-
+#pragma once
 
 #include "Python.h"
 #include "dap_events.h"
-//#include "dap_events_socket_python.h"
+#include "dap_events_socket_python.h"
 
 
 #ifdef __cplusplus
@@ -56,5 +54,3 @@ PyObject *dap_events_wait_py(PyObject *self, PyObject *args); //dap_events_t *sh
 #ifdef __cplusplus
 }
 #endif
-
-#endif
diff --git a/include/dap_events_socket_python.h b/include/dap_events_socket_python.h
index 4bd9cc79f22c47a03572378603f19c53d9e7c702..d396864814acac780047c805aa40e65e44c7e01c 100644
--- a/include/dap_events_socket_python.h
+++ b/include/dap_events_socket_python.h
@@ -1,11 +1,14 @@
-#ifndef _DAP_EVENTS_SOCKET_PYTHON_H_
-#define _DAP_EVENTS_SOCKET_PYTHON_H_
+#pragma once
 
 #include "Python.h"
 #include "dap_events_socket.h"
 #include "dap_events_python.h"
 #include "dap_common.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct PyDapEventsSocket{
     PyObject_HEAD
     dap_events_socket_t *t_events_socket;
@@ -63,5 +66,3 @@ PyObject *dap_events_socket_shrink_buf_in_py(PyObject *self, PyObject *args);//d
 #ifdef __cplusplus
 }
 #endif
-
-#endif
diff --git a/include/libdap-server-core-python.h b/include/libdap-server-core-python.h
index 411e65e535ff4883fbd8ad473c8ce1d16c738d6d..c96f4d27241826f987dbaab5b0e4d19e25ac38c7 100644
--- a/include/libdap-server-core-python.h
+++ b/include/libdap-server-core-python.h
@@ -60,6 +60,8 @@ static PyMethodDef DapServerCorePythonMethods[] = {
         {"eventsDellete", dap_events_delete_py, METH_VARARGS, ""},
         {"eventsStart", dap_events_start_py, METH_VARARGS, ""},
         {"eventsWait", dap_events_wait_py, METH_VARARGS, ""},
+        {"eventsSocketRemoveAndDelete", dap_events_socket_remove_and_delete_py, METH_VARARGS, ""},
+        {"eventsKillSocket", dap_events_kill_socket_py, METH_VARARGS, ""},
         /* Events Socket */
         {"eventsSocketInit", dap_events_socket_init_py, METH_NOARGS, ""},
         {"eventsSocketDeinit", dap_events_socket_deinit_py, METH_NOARGS, ""},
diff --git a/src/dap_events_python.c b/src/dap_events_python.c
index 0bf5307311de7f2a8ce1f416e84836a726a876d9..726120f0477bec82e16db69b2cd4e16ac933706b 100644
--- a/src/dap_events_python.c
+++ b/src/dap_events_python.c
@@ -30,10 +30,24 @@ PyObject *dap_events_delete_py(PyObject *self, PyObject *args){
 }
 //void dap_events_socket_remove_and_delete( dap_events_socket_t* a_es );
 PyObject *dap_events_socket_remove_and_delete_py(PyObject *self, PyObject *args){
+    PyObject *in_obj;
+    PyObject *in_bool;
+    if (!PyArg_ParseTuple(args, "O|O", &in_obj, &in_bool)){
+        return NULL;
+    }
+    bool preserve_inheritor = true;
+    if (in_bool == Py_False)
+        preserve_inheritor = false;
+    dap_events_socket_remove_and_delete(((PyDapEventsSocketObject*)in_obj)->t_events_socket, preserve_inheritor);
     return PyLong_FromLong(0);
 }
 
 PyObject *dap_events_kill_socket_py(PyObject *self, PyObject *args){
+    PyObject *in_obj;
+    if (!PyArg_ParseTuple(args, "O", &in_obj)){
+        return NULL;
+    }
+    dap_events_kill_socket(((PyDapEventsSocketObject*)in_obj)->t_events_socket);
     return PyLong_FromLong(0);
 }