diff --git a/python/raw code/connected_k_dominating_set.py b/python/raw code/connected_k_dominating_set.py
deleted file mode 100755
index 6cf5356bd71ef4db35328275912af9d2fec949d9..0000000000000000000000000000000000000000
--- a/python/raw code/connected_k_dominating_set.py	
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Sat May  9 23:55:40 2020
-
-@author: mario
-"""
-
-import k_transitive_closure 
-import k_dominating_set
-import networkx as nx
-import matplotlib.pyplot as plt
-import gurobipy as gp
-from gurobipy import GRB
-
-def solve(G, k):
-    m, nodes = model(G, k, "MINkCDS")
-    add_constraints(G, k, m)
-#
-    return solve_iteratively(G, k, m, nodes)
-
-def min_ij_separator(G, i, j, C_i):
-    N_ci = {v for c in C_i for v in G.neighbors(c)}
-    G_prime = nx.Graph(G)
-    C_i_prime = C_i.copy()
-    C_i_prime.update(N_ci)
-    G_prime.remove_edges_from(G.subgraph(C_i_prime).edges)
-    # dijkstra
-    R_j = nx.algorithms.dag.descendants(G_prime, j)
-    return R_j.intersection(N_ci)
-    
-def model(G, k, name):
-    m, nodes = k_dominating_set.model(G,k,name)
-    add_constraints(G, m, nodes)
-    return m, nodes
-
-def add_base_connectivity_constraint(G, m, nodes):
-    m.addConstrs(nodes[v] <= gp.quicksum(nodes[w] for w in G.neighbors(v)) for v in G.nodes)
-
-def add_constraints(G, m, nodes):
-    add_base_connectivity_constraint(G, m, nodes)
- 
-def solve_iteratively(G, k, m, nodes, maxIterations):
-    iterations = 0
-    m.optimize()
-    
-    ds = {i for i,x_i in enumerate(m.getVars()) if x_i.x == 1}
-    
-    G_prime_prime = G.subgraph(ds)
-    while(not nx.is_connected(G_prime_prime)) and iterations < maxIterations:
-        iterations+=1
-        C = [c for c in nx.algorithms.components.connected_components(G_prime_prime)]
-        for i in range(len(C)-1):
-            C_i = C[i]
-            for j in range(i+1, len(C)):
-                C_j = C[j]
-                h = next(iter(C_i))
-                l = next(iter(C_j))
-                min_ij_sep = min_ij_separator(G, h, l, C_i)
-                m.addConstr(gp.quicksum(nodes[s] for s in min_ij_sep) >= nodes[h] + nodes[l] - 1)
-        
-        m.optimize()
-        ds = {i for i,x_i in enumerate(m.getVars()) if x_i.x == 1}
-        G_prime_prime = G.subgraph(ds)
-
-    return ds, iterations
\ No newline at end of file
diff --git a/python/raw code/dominating_set.py b/python/raw code/dominating_set.py
deleted file mode 100755
index e34df5b67d69513135caeacba71438d3fba886b9..0000000000000000000000000000000000000000
--- a/python/raw code/dominating_set.py	
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Sat May  9 23:53:13 2020
-
-@author: mario
-"""
-import networkx as nx
-import gurobipy as gp
-from gurobipy import GRB
-    
-
-def add_constraints(G, m, nodes):
-    m.addConstrs(((gp.quicksum(nodes[n] for n in G.neighbors(v)) + nodes[v] )>= 1) for v in G.nodes)
-
-
-def model(G, name):
-    m = gp.Model(name)
-    
-    nodes = m.addVars(G.nodes, vtype = GRB.BINARY, name = "nodes")
-
-    m.setObjective(gp.quicksum(nodes), GRB.MINIMIZE)
-
-    add_constraints(G,m,nodes)
-    
-    return m, nodes
-
-def solve(G):
-    m, nodes = model(G,'DS')
-    m.optimize()
-    # ds = {v for j,x_j in enumerate(m.getVars()) for i,v in enumerate(G.nodes) if j == i}
-    ds = {i for i,x_i in enumerate(m.getVars()) if x_i.x == 1}
-    return ds
\ No newline at end of file
diff --git a/python/raw code/k_dominating_set.py b/python/raw code/k_dominating_set.py
deleted file mode 100755
index ad1f7b2a17bdbb757918aabb0c8123dcfb72577a..0000000000000000000000000000000000000000
--- a/python/raw code/k_dominating_set.py	
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Sat May  9 23:55:30 2020
-
-@author: mario
-"""
-import dominating_set
-import k_transitive_closure
-import networkx as nx
-
-def solve(G,k):
-    G_prime = k_transitive_closure.make_closure(G,k)
-    dominating_set.solve(G_prime)
-    
-def model(G, k, name):
-    G_prime = k_transitive_closure.make_closure(G,k)
-    return dominating_set.model(G_prime, name)
\ No newline at end of file
diff --git a/python/raw code/k_transitive_closure.py b/python/raw code/k_transitive_closure.py
deleted file mode 100755
index a0b9179b1021c5dcd618b84dd511d53ac1903c04..0000000000000000000000000000000000000000
--- a/python/raw code/k_transitive_closure.py	
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Sat May  9 19:00:59 2020
-
-@author: mario
-"""
-
-import networkx as nx
-import matplotlib.pyplot as plt
-
-# G is supposed to be a undirected networx.Graph
-def make_closure(G, k):
-    G_prime = nx.Graph(G)
-    for v in G.nodes:
-        neighbors = set(G.neighbors(v))
-        for i in range(k-1):
-            neighbors.update([w for n in neighbors for w in G.neighbors(n)])
-        
-        G_prime.add_edges_from((v,n) for n in neighbors)
-    
-    return G_prime
-
-
-if __name__ == '__main__':
-    G = nx.Graph()
-    G.add_nodes_from(range(10))
-    G.add_edges_from((i,i+1) for i in range(9))
-    
-    G_prime = make_closure(G,10)
-    nx.draw(G_prime)
-    plt.show()
diff --git a/python/raw code/lp_to_nx_graph.py b/python/raw code/lp_to_nx_graph.py
deleted file mode 100755
index 38e12436fc25cb7c9ea393507fca9dece708ce21..0000000000000000000000000000000000000000
--- a/python/raw code/lp_to_nx_graph.py	
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Wed May 13 17:03:41 2020
-
-@author: mario
-"""
-
-import networkx as nx
-import re
-
-# def lp_to_nx_graph(strInput):
-#     nodePattern = re.compile(r'node\([0-9]+\.\.[0-9]+\)\.')
-#     print(nodePattern.findall("node(0..195)."))
-    
-    
-# lp_to_nx_graph("")
-
-
-def cleanLP(lpSTR):
-	lpSTR = lpSTR.replace(" ", "")
-	lpSTR = lpSTR.replace("\t", "")
-	newLPList = []
-	for line in lpSTR.split("\n"):
-		toAdd = line
-		if "%" in line:
-			toAdd = line[:line.index("%")]
-		if toAdd != "":
-			newLPList.append(toAdd)
-	return newLPList
-
-def lpStrToGraphNX(lpSTR):
-	lpList = cleanLP(lpSTR)
-	graph = nx.empty_graph(0)
-	for part in lpList:
-		if ".." in part and "node" in part:
-			startrange = int(part[5:part.index("..")])
-			endrange = int(part[part.index("..")+2:part.index(").")])
-			graph.add_nodes_from(range(startrange, endrange))
-		elif "." in part and ".." not in part:
-			for i in part.split("."):
-				if "node(" in i:
-					graph.add_node(int(i[5:-1]))
-				elif "edge(" in i:
-					first = int(i[5:i.index(",")])
-					second = int(i[i.index(",")+1:-1])
-					graph.add_edge(first, second)
-					if(first == 13 or first == 9):
-						if(second == 13 or second == 9):
-							print("Hello")
-	return graph
-
-def read(filenameRaw):
-    fileIn = open(filenameRaw,'r')    
-    graph = lpStrToGraphNX(fileIn.read())
-    return graph
\ No newline at end of file
diff --git a/python/raw code/rooted_connected_k_dominating_set.py b/python/raw code/rooted_connected_k_dominating_set.py
deleted file mode 100755
index c2380207a1dc91981e224c0963af31281e985891..0000000000000000000000000000000000000000
--- a/python/raw code/rooted_connected_k_dominating_set.py	
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""
-Created on Sat May  9 23:55:59 2020
-
-@author: mario
-"""
-
-import connected_k_dominating_set
-import lp_to_nx_graph
-import networkx as nx
-import matplotlib.pyplot as plt
-import gurobipy as gp
-import sys
-import datetime
-import math
-
-
-def add_constraints(G, m, nodes, root):
-    m.addConstr(nodes[root] >= 1)
-
-def add_path_constraints(G, m, nodes, root):
-    m.addConstrs((nodes[v] * len(nx.algorithms.shortest_path(G, root, v))) <= gp.quicksum(nodes) for v in G.nodes)
-
-def add_path_constraints2(G, m, nodes):
-    m.addConstrs((nodes[v] * nodes[w] * len(nx.algorithms.shortest_path(G, v, w))) <= gp.quicksum(nodes) for v in G.nodes for w in G.nodes)
-
-def add_path_constraints3(G, m, nodes, root):
-    m.addConstr(gp.quicksum(nodes[v] * len(nx.algorithms.shortest_path(G, root, v)) for v in G.nodes) <= (gp.quicksum(nodes)+1)*gp.quicksum(nodes)/2)
-    
-def add_path_constraints4(G, m, nodes):
-    m.addConstr(gp.quicksum(nodes[v] * nodes[w] * len(nx.algorithms.shortest_path(G, v, w)) for v in G.nodes for w in G.nodes) <= (gp.quicksum(nodes)+1)*gp.quicksum(nodes)/2)
-
-def add_vertex_separator_degree_constraints(G, m, nodes):
-    for i in G.nodes:
-        if(G.degree[i] < 6):
-            for j in G.nodes:
-                if i != j and j not in G.neighbors(i):
-                    min_ij_sep = connected_k_dominating_set.min_ij_separator(G, i, j, {i})
-                    m.addConstr(gp.quicksum(nodes[s] for s in min_ij_sep) >= nodes[i] + nodes[j] - 1)
-                    
-def add_all_vertex_separator_constraaints(G, m, nodes):
-    for i in G.nodes:
-        for j in G.nodes:
-            if i != j and j not in G.neighbors(i):
-                min_ij_sep = connected_k_dominating_set.min_ij_separator(G, i, j, {i})
-                m.addConstr(gp.quicksum(nodes[s] for s in min_ij_sep) >= nodes[i] + nodes[j] - 1)
-                    
-
-def model(G, k, root):
-    m, nodes = connected_k_dominating_set.model(G, k, "MINkRCDS")
-    add_constraints(G, m, nodes, root)
-    # add_path_constraints(G, m, nodes, root)
-    # add_path_constraints2(G, m, nodes)
-    # add_path_constraints3(G, m, nodes, root)
-    # add_path_constraints4(G, m, nodes)
-    # add_vertex_separator_degree_constraints(G, m, nodes)
-    # add_all_vertex_separator_constraaints(G, m, nodes)
-    return m, nodes
-
-def solve(G, k, root, maxIterations):
-    m, nodes = model(G, k, root)
-    return connected_k_dominating_set.solve_iteratively(G, k, m, nodes, maxIterations)
-
-if __name__ == '__main__':
-    # G = nx.Graph()
-    # G.add_nodes_from(range(16))
-    # G.add_edges_from([(0,1), (0,2), (1,2), (1,3), (1,4), (1,7), (2,4), (2,5), (2,8), (3,6), (3,7), (3,4), (3,10), (4,7), (4,8), (4, 5), (4,11), (5,8), (5,9), (5,12),
-    #                   (6,7), (6,10), (7,8), (7,10), (7,13), (7,11), (8,9), (8,11), (8,12), (8,14), (10,11), (10,13), (11,13), (11,14), (11,12), (13,14), (13,15), (14,15)])
-    
-    # G.add_edges_from([(0,1), (0,2), (1,3), (1,4), (2,4), (2,5), (3,6), (3,7), (4,7), (4,8), (5,8), (5,9),
-    #                   (6,10), (7,10), (7,11), (8,11), (8,12), (9,12), (10,13), (11,13), (11,14), (12,14), (13,15), (14,15)])
-    
-    # maxIterations = float("inf")
-    # maxIterations = 5
-    
-    G = lp_to_nx_graph.read(sys.argv[1])
-    
-    if(len(sys.argv) > 2):
-        k = int(sys.argv[2])
-    else:
-        k = 1
-    if(len(sys.argv) > 3):
-        maxIterations = int(sys.argv[3])
-    else:
-        maxIterations = float("inf")
-        
-    starttime = datetime.datetime.now()
-    ds, iterations = solve(G, k, 0, maxIterations)
-    endtime = datetime.datetime.now()
-    duration = endtime- starttime
-    duration_sec = duration.total_seconds()
-    print(f"iterations: {iterations}, duration(s): {duration_sec}")
-    color_map = ['red' if i in ds else 'green' for i in G.nodes]
-    # nx.draw(G, node_color = color_map, with_labels = True)
-    nx.draw_kamada_kawai(G, node_color = color_map)
-    plt.show()
\ No newline at end of file