diff --git a/swarm/ConnectionManager.py b/swarm/ConnectionManager.py
index 6b62ee9fd5ead53f36a2236159bb557315032e0a..3d6753cb7b72fd96e0a21fda57421c3b3548b957 100644
--- a/swarm/ConnectionManager.py
+++ b/swarm/ConnectionManager.py
@@ -2,12 +2,11 @@ import socket
 import socketserver
 import time
 import threading
-from enum import Enum
-import re
 from functools import partial
 from typing import List, Callable, Optional, Tuple
 
-from swarm.ConnectionManagerTCPHandler import ConnectionManagerTCPHandler
+from .statics import StandardMessages, MessageToBig, _string_to_ip_and_port
+from .ConnectionManagerTCPHandler import ConnectionManagerTCPHandler
 
 try:
     from time import time_ns
@@ -19,36 +18,6 @@ except ImportError:
         return int(now.timestamp() * 1e9)
 
 
-class StandardMessages(Enum):
-    ANNOUNCE = "announce"
-    UPDATE_LAUNCH = "update"
-    ACKNOWLEDGED = "acknowledged"
-    HEARTBEAT = "heartbeat"
-    GET_ADDRESSES = "addresses"
-    GET_MASTER = "master"
-
-
-class MessageToBig(Exception):
-    pass
-
-
-class InvalidIPString(Exception):
-    pass
-
-
-def _string_to_ip_and_port(message: str) -> Tuple[str, int]:
-    valid_ipv4 = re.compile(r"^(\d?\d?\d.){3}\d?\d?\d:(\d?){4}\d$")
-    valid_ipv6 = re.compile(r"^([a-f\d:]+:+)+[a-f\d]+:(\d?){4}\d$")
-    valid_address = re.compile(r"^(localhost)|(\*+.\*):(\d?){4}\d$")
-    if (not valid_ipv4.match(message)) and (not valid_ipv6.match(message)) and (not valid_address.match(message)):
-        raise InvalidIPString(f"'{message}' is not an valid ip address")
-    msg_split = message.split(":")
-    port = msg_split[-1]
-    ip = ":".join(msg_split[0:-1])
-    port = int(port)
-    return ip, port
-
-
 class ConnectionManager:
     def __init__(self,
                  addr="localhost",
diff --git a/swarm/ConnectionManagerTCPHandler.py b/swarm/ConnectionManagerTCPHandler.py
index 8605a21ba1172f8e66c117a9de2e917feb254bc1..bf6ca1d620c11c9f0b363ccf2f8b0a018baafb05 100644
--- a/swarm/ConnectionManagerTCPHandler.py
+++ b/swarm/ConnectionManagerTCPHandler.py
@@ -2,7 +2,7 @@ import socket
 import socketserver
 from typing import Union
 
-from swarm import _string_to_ip_and_port, StandardMessages
+from .statics import _string_to_ip_and_port, StandardMessages
 
 
 class ConnectionManagerTCPHandler(socketserver.BaseRequestHandler):
diff --git a/swarm/__init__.py b/swarm/__init__.py
index 5f7d96d02195942168f424a4a82e6db60b4396ab..04a135a8ff668e54b50a60b10e86e8185ab52ffd 100644
--- a/swarm/__init__.py
+++ b/swarm/__init__.py
@@ -8,6 +8,6 @@ __author__ = 'Joris Wachsmuth'
 from .ConnectionManager import\
     ConnectionManager,\
     StandardMessages,\
-    InvalidIPString,\
     MessageToBig,\
     _string_to_ip_and_port
+from .statics import InvalidIPString
diff --git a/swarm/statics.py b/swarm/statics.py
new file mode 100644
index 0000000000000000000000000000000000000000..e5bb6253ea0aa9d14368484b6ec0971fb46abe60
--- /dev/null
+++ b/swarm/statics.py
@@ -0,0 +1,33 @@
+import re
+from enum import Enum
+from typing import Tuple
+
+
+class StandardMessages(Enum):
+    ANNOUNCE = "announce"
+    UPDATE_LAUNCH = "update"
+    ACKNOWLEDGED = "acknowledged"
+    HEARTBEAT = "heartbeat"
+    GET_ADDRESSES = "addresses"
+    GET_MASTER = "master"
+
+
+class MessageToBig(Exception):
+    pass
+
+
+class InvalidIPString(Exception):
+    pass
+
+
+def _string_to_ip_and_port(message: str) -> Tuple[str, int]:
+    valid_ipv4 = re.compile(r"^(\d?\d?\d.){3}\d?\d?\d:(\d?){4}\d$")
+    valid_ipv6 = re.compile(r"^([a-f\d:]+:+)+[a-f\d]+:(\d?){4}\d$")
+    valid_address = re.compile(r"^(localhost)|(\*+.\*):(\d?){4}\d$")
+    if (not valid_ipv4.match(message)) and (not valid_ipv6.match(message)) and (not valid_address.match(message)):
+        raise InvalidIPString(f"'{message}' is not an valid ip address")
+    msg_split = message.split(":")
+    port = msg_split[-1]
+    ip = ":".join(msg_split[0:-1])
+    port = int(port)
+    return ip, port
diff --git a/tests/test_connection_manager.py b/tests/test_connection_manager.py
index fe15486c8462c412f827a056c227ba4d857be571..c465f337d5efc64063a2cd618a921687cdae7242 100644
--- a/tests/test_connection_manager.py
+++ b/tests/test_connection_manager.py
@@ -6,27 +6,29 @@ import socket
 from ipaddress import IPv4Address, IPv6Address
 from typing import List
 
+import swarm.statics
+
 
 class TestStatics(TestCase):
     def test_ipv4_str_parsing(self):
         for i in range(1000):
             addr_str = str(IPv4Address(random.getrandbits(32)))
             port = random.randint(1, 65535)
-            (ip, port_e) = swarm._string_to_ip_and_port(addr_str + ":" + str(port))
+            (ip, port_e) = swarm.statics._string_to_ip_and_port(addr_str + ":" + str(port))
             self.assertEqual((ip, port_e), (addr_str, port))
 
     def test_ipv6_str_parsing(self):
         for i in range(1000):
             addr_str = str(IPv6Address(random.getrandbits(128)))
             port = random.randint(1, 65535)
-            (ip, port_e) = swarm._string_to_ip_and_port(addr_str + ":" + str(port))
+            (ip, port_e) = swarm.statics._string_to_ip_and_port(addr_str + ":" + str(port))
             self.assertEqual((ip, port_e), (addr_str, port))
 
     def test_invalid_str_parsing(self):
         invalid_sting = "invalid"
         try:
-            swarm._string_to_ip_and_port(invalid_sting)
-        except swarm.InvalidIPString:
+            swarm.statics._string_to_ip_and_port(invalid_sting)
+        except swarm.statics.InvalidIPString:
             return
         self.assertTrue(False)
 
@@ -51,7 +53,7 @@ class TestConnections(TestCase):
             conn_mans[ip_str].connect(to_connect)
             to_connect.append(ip_str)
 
-        master = swarm._string_to_ip_and_port(to_connect[0])
+        master = swarm.statics._string_to_ip_and_port(to_connect[0])
         for manager in conn_mans.values():
             self.assertEqual(master, manager.get_current_master())
         for manager in conn_mans.values():