diff --git a/src/cfd.sqlite b/src/cfd.sqlite
index 982bdad438b200029529408c0f55b04650c7ced3..f3fe33a6f9d8ff4e040941ebb652492020309c21 100644
Binary files a/src/cfd.sqlite and b/src/cfd.sqlite differ
diff --git a/src/data/questions_35c3.json b/src/data/questions_35c3.json
deleted file mode 100644
index e97c7978cb7f763a2c4ea781f907c5ce6f59ceed..0000000000000000000000000000000000000000
--- a/src/data/questions_35c3.json
+++ /dev/null
@@ -1,477 +0,0 @@
-[
-    {
-        "question": "Nenne eine Programmiersprache:",
-        "answers": [
-            {
-                "answer": "python",
-                "score": 247
-            },
-            {
-                "answer": "c",
-                "score": 246
-            },
-            {
-                "answer": "c++",
-                "score": 104
-            },
-            {
-                "answer": "java",
-                "score": 87
-            },
-            {
-                "answer": "rust",
-                "score": 81
-            }
-        ]
-    },
-    {
-        "question": "Nenne einen Compiler:",
-        "answers": [
-            {
-                "answer": "gcc",
-                "score": 750
-            },
-            {
-                "answer": "clang",
-                "score": 160
-            },
-            {
-                "answer": "llvm",
-                "score": 67
-            },
-            {
-                "answer": "javac",
-                "score": 45
-            },
-            {
-                "answer": "ghc",
-                "score": 34
-            }
-        ]
-    },
-    {
-        "question": "Nenne eine Prozessorarchitektur:",
-        "answers": [
-            {
-                "answer": "arm",
-                "score": 375
-            },
-            {
-                "answer": "x86",
-                "score": 289
-            },
-            {
-                "answer": "risc",
-                "score": 78
-            },
-            {
-                "answer": "amd64",
-                "score": 76
-            },
-            {
-                "answer": "mips",
-                "score": 75
-            }
-        ]
-    },
-    {
-        "question": "Nenne eine Zahl:",
-        "answers": [
-            {
-                "answer": "42",
-                "score": 468
-            },
-            {
-                "answer": "23",
-                "score": 218
-            },
-            {
-                "answer": "7",
-                "score": 78
-            },
-            {
-                "answer": "pi",
-                "score": 59
-            },
-            {
-                "answer": "1",
-                "score": 49
-            }
-        ]
-    },
-    {
-        "question": "Nenne ein Netzwerkprotokoll:",
-        "answers": [
-            {
-                "answer": "tcp",
-                "score": 474
-            },
-            {
-                "answer": "udp",
-                "score": 155
-            },
-            {
-                "answer": "http",
-                "score": 104
-            },
-            {
-                "answer": "ip",
-                "score": 69
-            },
-            {
-                "answer": "ssh",
-                "score": 51
-            }
-        ]
-    },
-    {
-        "question": "Nenne einen HTTP-Statuscode:",
-        "answers": [
-            {
-                "answer": "404",
-                "score": 486
-            },
-            {
-                "answer": "418",
-                "score": 212
-            },
-            {
-                "answer": "200",
-                "score": 178
-            },
-            {
-                "answer": "403",
-                "score": 90
-            },
-            {
-                "answer": "500",
-                "score": 67
-            }
-        ]
-    },
-    {
-        "question": "Nenne einen Standard:",
-        "answers": [
-            {
-                "answer": "din a4",
-                "score": 68
-            },
-            {
-                "answer": "iso 8601",
-                "score": 38
-            },
-            {
-                "answer": "iso",
-                "score": 36
-            },
-            {
-                "answer": "iso 9001",
-                "score": 34
-            },
-            {
-                "answer": "din",
-                "score": 31
-            }
-        ]
-    },
-    {
-        "question": "Nenne einen HTML-Tag:",
-        "answers": [
-            {
-                "answer": "html",
-                "score": 149
-            },
-            {
-                "answer": "blink",
-                "score": 140
-            },
-            {
-                "answer": "a",
-                "score": 130
-            },
-            {
-                "answer": "body",
-                "score": 125
-            },
-            {
-                "answer": "marquee",
-                "score": 109
-            }
-        ]
-    },
-    {
-        "question": "Nenne einen Kernel:",
-        "answers": [
-            {
-                "answer": "linux",
-                "score": 494
-            },
-            {
-                "answer": "hurd",
-                "score": 72
-            },
-            {
-                "answer": "darwin",
-                "score": 56
-            },
-            {
-                "answer": "mach",
-                "score": 56
-            },
-            {
-                "answer": "xnu",
-                "score": 37
-            }
-        ]
-    },
-    {
-        "question": "Nenne ein Getr\u00e4nk:",
-        "answers": [
-            {
-                "answer": "mate",
-                "score": 372
-            },
-            {
-                "answer": "wasser",
-                "score": 135
-            },
-            {
-                "answer": "bier",
-                "score": 105
-            },
-            {
-                "answer": "kaffee",
-                "score": 105
-            },
-            {
-                "answer": "cola",
-                "score": 99
-            }
-        ]
-    },
-    {
-        "question": "Nenne ein Gesellschaftsspiel:",
-        "answers": [
-            {
-                "answer": "monopoly",
-                "score": 318
-            },
-            {
-                "answer": "risiko",
-                "score": 105
-            },
-            {
-                "answer": "mensch \u00e4rgere dich nicht",
-                "score": 96
-            },
-            {
-                "answer": "siedler von catan",
-                "score": 86
-            },
-            {
-                "answer": "cards against humanity",
-                "score": 40
-            }
-        ]
-    },
-    {
-        "question": "Nenne einen Cocktail:",
-        "answers": [
-            {
-                "answer": "tschunk",
-                "score": 409
-            },
-            {
-                "answer": "white russian",
-                "score": 122
-            },
-            {
-                "answer": "sex on the beach",
-                "score": 79
-            },
-            {
-                "answer": "mojito",
-                "score": 61
-            },
-            {
-                "answer": "cuba libre",
-                "score": 47
-            }
-        ]
-    },
-    {
-        "question": "Nenne eine Shell:",
-        "answers": [
-            {
-                "answer": "bash",
-                "score": 556
-            },
-            {
-                "answer": "zsh",
-                "score": 493
-            },
-            {
-                "answer": "fish",
-                "score": 99
-            },
-            {
-                "answer": "powershell",
-                "score": 29
-            },
-            {
-                "answer": "ksh",
-                "score": 23
-            }
-        ]
-    },
-    {
-        "question": "Nenne eine Farbe:",
-        "answers": [
-            {
-                "answer": "blau",
-                "score": 292
-            },
-            {
-                "answer": "schwarz",
-                "score": 229
-            },
-            {
-                "answer": "gr\u00fcn",
-                "score": 197
-            },
-            {
-                "answer": "rot",
-                "score": 172
-            },
-            {
-                "answer": "gelb",
-                "score": 64
-            }
-        ]
-    },
-    {
-        "question": "Nenne einen Film:",
-        "answers": [
-            {
-                "answer": "matrix",
-                "score": 209
-            },
-            {
-                "answer": "hackers",
-                "score": 119
-            },
-            {
-                "answer": "23",
-                "score": 56
-            },
-            {
-                "answer": "tron",
-                "score": 31
-            },
-            {
-                "answer": "pulp fiction",
-                "score": 31
-            }
-        ]
-    },
-    {
-        "question": "Nenne eine Serie:",
-        "answers": [
-            {
-                "answer": "doctor who",
-                "score": 64
-            },
-            {
-                "answer": "it crowd",
-                "score": 63
-            },
-            {
-                "answer": "mr. robot",
-                "score": 59
-            },
-            {
-                "answer": "star trek",
-                "score": 49
-            },
-            {
-                "answer": "game of thrones",
-                "score": 48
-            }
-        ]
-    },
-    {
-        "question": "Von welchem Hersteller ist dein Laptop?",
-        "answers": [
-            {
-                "answer": "lenovo",
-                "score": 644
-            },
-            {
-                "answer": "apple",
-                "score": 372
-            },
-            {
-                "answer": "dell",
-                "score": 110
-            },
-            {
-                "answer": "hp",
-                "score": 69
-            },
-            {
-                "answer": "acer",
-                "score": 50
-            }
-        ]
-    },
-    {
-        "question": "Nenne ein Werkzeug:",
-        "answers": [
-            {
-                "answer": "hammer",
-                "score": 507
-            },
-            {
-                "answer": "schraubendreher",
-                "score": 90
-            },
-            {
-                "answer": "l\u00f6tkolben",
-                "score": 90
-            },
-            {
-                "answer": "schraubenzieher",
-                "score": 56
-            },
-            {
-                "answer": "phasenpr\u00fcfer",
-                "score": 52
-            }
-        ]
-    },
-    {
-        "question": "Nenne den PIN deiner EC Karte:",
-        "answers": [
-            {
-                "answer": "1234",
-                "score": 264
-            },
-            {
-                "answer": "0000",
-                "score": 206
-            },
-            {
-                "answer": "1337",
-                "score": 173
-            },
-            {
-                "answer": "2342",
-                "score": 80
-            },
-            {
-                "answer": "nein",
-                "score": 64
-            }
-        ]
-    }
-]
\ No newline at end of file
diff --git a/src/frontend/ChaosWest.png b/src/frontend/ChaosWest.png
deleted file mode 100644
index 961d765286aba46f8fb550b1579da483fc5a27ca..0000000000000000000000000000000000000000
Binary files a/src/frontend/ChaosWest.png and /dev/null differ
diff --git a/src/frontend/ChaosWest.svg b/src/frontend/ChaosWest.svg
deleted file mode 100644
index 29c833f5d27d229e2030dad078c74cc37bd2fb9a..0000000000000000000000000000000000000000
--- a/src/frontend/ChaosWest.svg
+++ /dev/null
@@ -1,71 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 23.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 322.2 396.6" style="enable-background:new 0 0 322.2 396.6;" xml:space="preserve">
-<style type="text/css">
-	.st0{clip-path:url(#SVGID_2_);fill:url(#SVGID_3_);}
-</style>
-<g>
-	<defs>
-		<path id="SVGID_1_" d="M156.3,342.2c0,2.1,1.4,3.9,3.3,4.6v20.9c-1.9,0.6-3.3,2.4-3.3,4.6c0,2.7,2.2,4.8,4.8,4.8
-			c2.7,0,4.8-2.2,4.8-4.8c0-2.1-1.4-3.9-3.3-4.6v-20.9c1.9-0.6,3.3-2.4,3.3-4.6c0-2.7-2.2-4.8-4.8-4.8
-			C158.4,337.4,156.3,339.6,156.3,342.2 M103.9,334.1c-1.5,2.2-1,5.2,1.2,6.7c1.7,1.2,4,1.1,5.6-0.1l17.2,12
-			c-0.6,1.9,0.1,4.1,1.8,5.3c2.2,1.5,5.2,1,6.7-1.2c1.5-2.2,1-5.2-1.2-6.7c-1.7-1.2-4-1.1-5.6,0.1l-17.2-12c0.6-1.9-0.1-4.1-1.8-5.3
-			c-0.8-0.6-1.8-0.9-2.8-0.9C106.4,332,104.9,332.7,103.9,334.1 M212,332.9c-1.7,1.2-2.4,3.4-1.8,5.3l-17.2,12
-			c-1.6-1.2-3.9-1.3-5.6-0.1c-2.2,1.5-2.7,4.5-1.2,6.7c1.5,2.2,4.5,2.7,6.7,1.2c1.7-1.2,2.4-3.4,1.8-5.3l17.2-12
-			c1.6,1.2,3.9,1.4,5.6,0.1c2.2-1.5,2.7-4.5,1.2-6.7c-0.9-1.3-2.4-2.1-4-2.1C213.8,332,212.8,332.3,212,332.9 M43.7,265.2
-			c-1.6,0.7-2.8,1.6-3.6,2.8c-0.8,1.2-1.2,2.5-1.2,3.9c0,1.6,0.4,2.9,1.3,3.9c0.9,1,1.9,1.7,3,2.1c1.2,0.4,2.6,0.8,4.4,1.2
-			c1.4,0.3,2.3,0.5,2.9,0.8c0.6,0.2,0.9,0.6,0.9,1.1c0,0.4-0.2,0.7-0.7,0.9c-0.5,0.2-1.2,0.3-2.3,0.3c-1.2,0-2.5-0.2-3.9-0.6
-			c-1.3-0.4-2.5-0.9-3.6-1.5l-2.5,5.6c1.1,0.7,2.6,1.3,4.4,1.7c1.8,0.4,3.6,0.6,5.5,0.6c2.3,0,4.2-0.3,5.8-1
-			c1.6-0.7,2.8-1.6,3.6-2.8c0.8-1.2,1.2-2.4,1.2-3.9c0-1.6-0.4-2.9-1.3-3.9c-0.9-1-1.9-1.6-3.1-2.1c-1.2-0.4-2.6-0.8-4.4-1.1
-			c-1.3-0.3-2.3-0.5-2.9-0.7c-0.6-0.2-0.9-0.6-0.9-1c0-0.9,1-1.4,2.9-1.4c2,0,4.1,0.6,6.3,1.7l2.3-5.5c-1.1-0.6-2.5-1.1-4-1.5
-			c-1.5-0.3-3-0.5-4.6-0.5C47.2,264.2,45.3,264.5,43.7,265.2 M264.1,245.4v5.9h6.6V268h7.6v-16.7h6.6v-5.9H264.1z M46,242.1
-			c-0.8-0.5-1.4-1.1-1.8-2c-0.5-0.9-0.7-1.9-0.7-3s0.2-2.1,0.7-3c0.5-0.9,1.1-1.5,1.8-2c0.8-0.5,1.6-0.7,2.6-0.7
-			c1,0,1.8,0.2,2.6,0.7c0.8,0.5,1.4,1.1,1.8,2c0.5,0.9,0.7,1.9,0.7,3s-0.2,2.1-0.7,3c-0.5,0.9-1.1,1.5-1.8,2
-			c-0.8,0.5-1.6,0.7-2.6,0.7C47.6,242.8,46.8,242.6,46,242.1 M42,226.8c-1.9,1-3.5,2.4-4.6,4.2c-1.1,1.8-1.7,3.8-1.7,6.1
-			c0,2.3,0.6,4.3,1.7,6.1c1.1,1.8,2.6,3.2,4.6,4.2c1.9,1,4.1,1.5,6.6,1.5c2.4,0,4.6-0.5,6.6-1.5c1.9-1,3.5-2.4,4.6-4.2
-			c1.1-1.8,1.7-3.8,1.7-6.1c0-2.3-0.5-4.3-1.7-6.1c-1.1-1.8-2.6-3.2-4.6-4.2c-1.9-1-4.1-1.5-6.6-1.5C46.1,225.3,43.9,225.8,42,226.8
-			 M270.2,208c-1.6,0.7-2.8,1.6-3.6,2.8c-0.8,1.2-1.2,2.5-1.2,3.9c0,1.6,0.4,2.9,1.3,3.9c0.9,1,1.9,1.7,3,2.1
-			c1.2,0.4,2.6,0.8,4.4,1.2c1.4,0.3,2.3,0.5,2.9,0.8c0.6,0.2,0.9,0.6,0.9,1.1c0,0.4-0.2,0.7-0.7,0.9c-0.5,0.2-1.2,0.3-2.3,0.3
-			c-1.2,0-2.5-0.2-3.9-0.6c-1.3-0.4-2.5-0.9-3.6-1.5l-2.5,5.6c1.1,0.7,2.6,1.3,4.4,1.7c1.8,0.4,3.6,0.6,5.5,0.6c2.3,0,4.2-0.3,5.8-1
-			c1.6-0.7,2.8-1.6,3.6-2.8c0.8-1.2,1.2-2.4,1.2-3.9c0-1.6-0.4-2.9-1.3-3.9c-0.9-0.9-1.9-1.6-3.1-2.1c-1.2-0.4-2.6-0.8-4.4-1.1
-			c-1.3-0.3-2.3-0.5-2.9-0.7c-0.6-0.2-0.9-0.6-0.9-1c0-0.9,1-1.4,2.9-1.4c2,0,4.1,0.6,6.3,1.7l2.3-5.5c-1.1-0.6-2.5-1.1-4-1.5
-			c-1.5-0.3-3-0.5-4.6-0.5C273.7,207,271.8,207.4,270.2,208 M48.5,194.5l2.2,5.7h-4.4L48.5,194.5z M44.8,187l-9.9,22.7h7.8l1.5-4
-			h8.6l1.5,4h7.9L52.3,187H44.8z M265.1,167.7v22.7h18.9v-5.8h-11.3v-3h9.6v-5.5h-9.6v-2.7h10.9v-5.8H265.1z M52.3,147.6v8h-7.1v-8
-			h-7.6v22.7h7.6v-8.4h7.1v8.4H60v-22.7H52.3z M286.5,128.3l-4.2,13.1l-4-13.1h-7l-4.2,12.9l-4-12.9h-7.9l7.3,22.7h8.2l3.9-12.1
-			l3.7,12.1h8.2l7.3-22.7H286.5z M43.3,109.7c-1.9,1-3.4,2.4-4.5,4.2c-1.1,1.8-1.6,3.9-1.6,6.1c0,2.3,0.5,4.3,1.6,6.1
-			c1.1,1.8,2.6,3.2,4.5,4.2c1.9,1,4.1,1.5,6.5,1.5c2.2,0,4.2-0.4,5.9-1.2c1.7-0.8,3.2-1.9,4.3-3.4l-4.8-4.3c-1.4,1.8-3.1,2.7-5,2.7
-			c-1.6,0-2.9-0.5-3.9-1.5c-1-1-1.5-2.4-1.5-4.1c0-1.7,0.5-3.1,1.5-4.1c1-1,2.3-1.5,3.9-1.5c1.9,0,3.6,0.9,5,2.7l4.8-4.3
-			c-1.1-1.5-2.5-2.6-4.3-3.4c-1.7-0.8-3.7-1.2-5.9-1.2C47.4,108.2,45.2,108.7,43.3,109.7 M145.3,263.6c0-2.7,2.2-4.9,4.9-4.9
-			c2.7,0,4.9,2.2,4.9,4.9c0,2.7-2.2,4.9-4.9,4.9C147.5,268.5,145.3,266.3,145.3,263.6 M165.4,263.6c0-2.7,2.2-4.9,4.9-4.9
-			c2.7,0,4.9,2.2,4.9,4.9c0,2.7-2.2,4.9-4.9,4.9C167.6,268.5,165.4,266.3,165.4,263.6 M107.7,218.4c0-2.7,2.2-4.9,4.9-4.9
-			c2.7,0,4.9,2.2,4.9,4.9c0,2.7-2.2,4.9-4.9,4.9C109.9,223.3,107.7,221.1,107.7,218.4 M203,218.4c0-2.7,2.2-4.9,4.9-4.9
-			s4.9,2.2,4.9,4.9c0,2.7-2.2,4.9-4.9,4.9S203,221.1,203,218.4 M202,184.7c0-2.7,2.2-4.9,4.9-4.9c2.7,0,4.9,2.2,4.9,4.9
-			c0,2.7-2.2,4.9-4.9,4.9C204.2,189.6,202,187.4,202,184.7 M310,105.4l9.2,6.3v173.1l-9.2,6.3V105.4z M3,284.8V111.7l10-6.9v186.9
-			L3,284.8z M202,108.3c0-2.7,2.2-4.9,4.9-4.9c2.7,0,4.9,2.2,4.9,4.9c0,2.7-2.2,4.9-4.9,4.9C204.2,113.1,202,110.9,202,108.3
-			 M131.9,74.7h58.8c0.8,1.6,2.4,2.8,4.3,2.8c0.8,0,1.6-0.2,2.2-0.6l41.7,24.9v115.7h-23.3c-0.5-3.8-3.8-6.8-7.8-6.8
-			c-4.3,0-7.9,3.5-7.9,7.9c0,3.8,2.7,7,6.3,7.7V284l-7.8,8.9h-17.5l-9.8-9v-12.5c3.9-0.5,6.9-3.8,6.9-7.8c0-4.3-3.5-7.9-7.9-7.9
-			c-3.6,0-6.7,2.5-7.6,5.9h-5c-0.9-3.4-3.9-5.9-7.6-5.9c-4.3,0-7.9,3.5-7.9,7.9c0,4,3,7.3,6.9,7.8v12.5l-9.8,9h-17.5l-7.8-8.9v-57.9
-			c3.6-0.7,6.3-3.9,6.3-7.7c0-4.3-3.5-7.9-7.9-7.9c-4.3,0-7.9,3.5-7.9,7.9c0,3.8,2.8,7,6.4,7.7v59l9.4,10.8h20l11.6-10.7v-14
-			c3-0.8,5.3-3.4,5.8-6.6h4.6c0.4,3.2,2.7,5.7,5.8,6.6v14l11.6,10.7h20l9.4-10.8v-59c3-0.6,5.4-2.8,6.2-5.7H239V342l-0.9-1.2
-			l-76.6,52.8h-0.8l-76.6-52.8V147h29.8v18.3l17.7,20.9h67.5V186c0.6,3.7,3.8,6.6,7.7,6.6c4.3,0,7.9-3.5,7.9-7.9
-			c0-4.3-3.5-7.9-7.9-7.9c-3.9,0-7.1,2.9-7.7,6.6v-0.3H133l-16.1-19v-34.6l16.1-19.7h66.1c0.7,3.6,3.9,6.3,7.7,6.3
-			c4.3,0,7.9-3.5,7.9-7.9c0-4.3-3.5-7.9-7.9-7.9c-3.9,0-7,2.8-7.7,6.4h-67.5l-17.7,21.6V144H84.1v-42l40.6-25.4
-			c0.8,0.6,1.8,0.9,2.8,0.9C129.5,77.5,131.1,76.3,131.9,74.7 M16,307.5v-219l65-45.6v310.2L16,307.5z M242,43l65,45.6v219l-65,45.6
-			V43z M84.1,41.1l39.2,29.3c-0.4,0.7-0.6,1.4-0.6,2.3c0,0.5,0.1,1,0.2,1.4L84.1,98.4V41.1z M199.4,74.7c0.3-0.6,0.5-1.3,0.5-2
-			c0-0.7-0.2-1.4-0.5-2L239,41v57.3L199.4,74.7z M97,46.9L160.7,3h0.8l64.1,44.2l-28.4,21.2c-0.7-0.4-1.4-0.6-2.3-0.6
-			c-2.3,0-4.3,1.7-4.7,3.9h-58c-0.4-2.2-2.4-3.9-4.7-3.9c-0.7,0-1.4,0.2-2,0.5L97,46.9z M159.8,0L94.4,45.1l-10.3-7.7v-0.1L13,87
-			v14.2l-13,9v176.2l13,9v13.7l71,49.8v-14.5l75.7,52.2h2.7l76.5-52.8v15.1l70.4-49.4l0.6-0.4v-14.3l12.2-8.4V110.2l-12.2-8.4V87
-			l-71-49.8v0.1l0,0l-10.8,8.1L162.4,0H159.8z"/>
-	</defs>
-	<clipPath id="SVGID_2_">
-		<use xlink:href="#SVGID_1_"  style="overflow:visible;"/>
-	</clipPath>
-	
-		<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="9.466112e-08" y1="397.6167" x2="1" y2="397.6167" gradientTransform="matrix(322.2028 0 0 -322.2028 -3.049988e-05 128311.5078)">
-		<stop  offset="0" style="stop-color:#0084B1"/>
-		<stop  offset="1" style="stop-color:#00A356"/>
-	</linearGradient>
-	<rect x="0" y="0" class="st0" width="322.2" height="396.6"/>
-</g>
-</svg>
diff --git a/src/frontend/PermanentMarker-Regular.ttf b/src/frontend/PermanentMarker-Regular.ttf
deleted file mode 100644
index 3218fc5b3d395c3a3fc207fdf17a27bb32af3242..0000000000000000000000000000000000000000
Binary files a/src/frontend/PermanentMarker-Regular.ttf and /dev/null differ
diff --git a/src/frontend/PressStart2P-Regular.ttf b/src/frontend/PressStart2P-Regular.ttf
deleted file mode 100644
index 39adf42efa597906e53be689474ac82214112124..0000000000000000000000000000000000000000
Binary files a/src/frontend/PressStart2P-Regular.ttf and /dev/null differ
diff --git a/src/frontend/audio/Familien Duell Intromusik-ZIjs-VVh8l8.m4a b/src/frontend/audio/Familien Duell Intromusik-ZIjs-VVh8l8.m4a
deleted file mode 100644
index 542a5c0cf101c685feb1260f42d8c24210b3b063..0000000000000000000000000000000000000000
Binary files a/src/frontend/audio/Familien Duell Intromusik-ZIjs-VVh8l8.m4a and /dev/null differ
diff --git a/src/frontend/audio/failure.mp3 b/src/frontend/audio/failure.mp3
deleted file mode 100644
index c40bcdbc6ba28b3e81540b6d2a2309049f99a655..0000000000000000000000000000000000000000
Binary files a/src/frontend/audio/failure.mp3 and /dev/null differ
diff --git a/src/frontend/audio/frage.mp3 b/src/frontend/audio/frage.mp3
deleted file mode 100644
index cb0adb63d075205957bfdc4cf9da98f0bd602385..0000000000000000000000000000000000000000
Binary files a/src/frontend/audio/frage.mp3 and /dev/null differ
diff --git a/src/frontend/audio/intro.mp3 b/src/frontend/audio/intro.mp3
deleted file mode 100644
index 74be728bc5a1aa8fe655f4b9a4d55e293fef688f..0000000000000000000000000000000000000000
Binary files a/src/frontend/audio/intro.mp3 and /dev/null differ
diff --git a/src/frontend/chaos_west_text.jpg b/src/frontend/chaos_west_text.jpg
deleted file mode 100644
index fa13fd5fd5e3ed15cf9e7c30ca52276d763a1f27..0000000000000000000000000000000000000000
Binary files a/src/frontend/chaos_west_text.jpg and /dev/null differ
diff --git a/src/frontend/current_round.json b/src/frontend/current_round.json
deleted file mode 100644
index 8c22bf09c36400cf1246d96850b65a223d3898ba..0000000000000000000000000000000000000000
--- a/src/frontend/current_round.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
-    "state": "player_select",
-    "points": 0,
-    "current_teams": [
-        "warpzone",
-        "binary kitchen"
-    ],
-    "current_team_logos": [
-        "halo/i/bims/1/pfad",
-        "static/teamlogos/binary kitchen.png"
-    ],
-    "current_team_points": [
-        0,
-        0
-    ],
-    "current_team_fails": [
-        0,
-        0
-    ],
-    "answer_amount": 5,
-    "question": "Nenne eine Shell:",
-    "answers": [
-        {
-            "answer": "bash",
-            "numberOfPeople": 556,
-            "visible": false
-        },
-        {
-            "answer": "zsh",
-            "numberOfPeople": 493,
-            "visible": false
-        },
-        {
-            "answer": "fish",
-            "numberOfPeople": 99,
-            "visible": false
-        },
-        {
-            "answer": "powershell",
-            "numberOfPeople": 29,
-            "visible": false
-        },
-        {
-            "answer": "ksh",
-            "numberOfPeople": 23,
-            "visible": false
-        }
-    ]
-}
\ No newline at end of file
diff --git a/src/frontend/live.py b/src/frontend/live.py
deleted file mode 100644
index b2644ad3e63785772496d723cd929ece46001303..0000000000000000000000000000000000000000
--- a/src/frontend/live.py
+++ /dev/null
@@ -1,292 +0,0 @@
-import pygame
-import json
-import os
-import sys
-import time
-import logging
-from watchdog.observers import Observer
-from watchdog.events import FileSystemEventHandler
-import cv2
-
-pygame.font.init()
-
-WHITE = (255, 255, 255)
-BLACK = (0, 0, 0)
-DARK_GRAY = (30, 30, 60)
-LIGHT_GRAY = (150, 150, 150)
-RED = (200, 50, 0)
-CCC_GREEN = (0, 163, 86)
-CCC_BLUE = (0, 132, 176)
-BG_COLOR = BLACK # (59, 0, 112)
-
-class LoggingEventHandler(FileSystemEventHandler):
-    """Logs all the events captured."""
-
-    def __init__(self, callback, *args, **kwargs):
-        super(LoggingEventHandler, self).__init__(*args, **kwargs)
-        self.callback = callback
-
-    def on_moved(self, event):
-        super(LoggingEventHandler, self).on_moved(event)
-
-        what = 'directory' if event.is_directory else 'file'
-        logging.info("Moved %s: from %s to %s", what, event.src_path,
-                     event.dest_path)
-
-    def on_created(self, event):
-        super(LoggingEventHandler, self).on_created(event)
-
-        what = 'directory' if event.is_directory else 'file'
-        logging.info("Created %s: %s", what, event.src_path)
-
-    def on_deleted(self, event):
-        super(LoggingEventHandler, self).on_deleted(event)
-
-        what = 'directory' if event.is_directory else 'file'
-        logging.info("Deleted %s: %s", what, event.src_path)
-
-    def on_modified(self, event):
-        super(LoggingEventHandler, self).on_modified(event)
-
-        # if not event.is_directory and event.src_path == "current_round.json":
-        self.callback()
-
-        what = 'directory' if event.is_directory else 'file'
-        logging.info("Modified %s: %s", what, event.src_path)
-
-
-class Live(object):
-
-
-    def __init__(self, window_width=-1):
-
-        self.window_width = window_width
-
-        self.side_width = 768
-        self.height = 768
-
-        self.main_width = 2560
-        
-        self.left_screen = pygame.surface.Surface((self.side_width, self.height))
-        self.main_screen = pygame.surface.Surface((self.main_width, self.height))
-        self.right_screen = pygame.surface.Surface((self.side_width, self.height))
-
-        #self.display = pygame.display.set_mode((self.side_width + self.side_width + self.main_width, self.height))
-
-        cv2.namedWindow("output")
-
-        _font = "PressStart2P-Regular.ttf"
-        self.font_xxl = pygame.font.Font(_font, 150)
-        self.font_xl = pygame.font.Font(_font, 75)
-        self.font_l = pygame.font.Font(_font, 40)
-        self.font_m = pygame.font.Font(_font, 30)
-        self.font_s = pygame.font.Font(_font, 20)
-
-        # intro_screen
-        # player_select
-        # running_round
-        # final_screen
-        self.state = "intro_screen"
-
-        self.current_player = -1 # -1 No Team, 0 Left Team, 1 Right Team
-
-        self.team_names = ["", ""]
-        self.team_points = [0, 0]
-        self.team_fails = [0, 0]
-
-        self.current_round = {}
-
-        self.not_animated = [1, 1, 1, 1, 1]
-        self.vis_questions = [0, 0, 0, 0, 0]
-
-        ## PRE RENDERS '_pr'
-
-        self.debug_side_pr = pygame.surface.Surface((1080, 1080))
-        self.debug_side_pr.fill((0, 0, 30))
-        self.debug_middle_pr = pygame.surface.Surface((1920, 1080))
-        self.debug_middle_pr.fill((30, 0, 0))
-
-        self.header_pr = self.font_xl.render("Chaos-Familien-Duell", True, CCC_BLUE, BG_COLOR)
-        self.slogan_pr = self.font_m.render("Wir haben 1509 HackerInnen gefragt...", True, WHITE, BG_COLOR)
-        # self.final_slogan_pr = self.font_m.render("Vielen Dank an watterott.com für die tollen Preise!", True, WHITE, BG_COLOR)
-        self.final_slogan_pr = self.font_m.render("Die Entwicklung dieser Software wurde freundlicherweise unterstützt von", True, WHITE, BG_COLOR)
-        self.koffein = self.font_xxl.render("KOFFEIN", True, WHITE, BG_COLOR)
-
-
-        self.x_pr = self.font_xxl.render("X", True, RED, BG_COLOR)
-        self.x_small_pr = self.font_m.render("X", True, WHITE, DARK_GRAY)
-
-        self.chaos_west_pr = pygame.image.load("ChaosWest.png")
-        self.watterott_pr = pygame.image.load("watterott.png")
-
-        self.chaos_west_pr = pygame.transform.scale(self.chaos_west_pr, (400, 500))
-        self.chaos_west_text_pr = pygame.image.load("chaos_west_text.jpg")
-        self.gray_box_pr = pygame.surface.Surface((1200, 60))
-        self.gray_box_pr.fill(DARK_GRAY)
-
-        self.team_left_pr = None
-        self.team_right_pr = None
-        self.question_pr = None
-
-        self.logo_left_pr = None
-        self.logo_right_pr = None
-        self.answers_pr = [None, None, None, None, None]
-        self.answered_pr = [None, None, None, None, None]
-
-        self.file_changed()
-
-
-        logging.basicConfig(level=logging.INFO,
-                            format='%(asctime)s - %(message)s',
-                            datefmt='%Y-%m-%d %H:%M:%S')
-        path = '.'
-        event_handler = LoggingEventHandler(self.file_changed)
-        observer = Observer()
-        observer.schedule(event_handler, path, recursive=True)
-        observer.start()
-
-
-    def file_changed(self):
-        with open("current_round.json", 'r') as target:
-            self.current_round = json.load(target)
-
-        state = self.current_round["state"]
-
-        self.team_names = self.current_round["current_teams"]
-        self.team_points = self.current_round["current_team_points"]
-        self.team_fails = self.current_round["current_team_fails"]
-        self.round_points = self.current_round["points"]
-        self.current_player = -1
-
-        if len(self.team_names[0]) > 30:
-            _font_left = self.font_s
-        else:
-            _font_left = self.font_l
-
-        if len(self.team_names[1]) > 30:
-            _font_right = self.font_s
-        else:
-            _font_right = self.font_l
-        
-        self.team_left_pr = _font_left.render(self.team_names[0], True, WHITE, BG_COLOR)
-        self.team_right_pr = _font_right.render(self.team_names[1], True, WHITE, BG_COLOR)
-        self.question_pr = self.font_l.render(self.current_round["question"], True, CCC_BLUE, BG_COLOR)
-
-        # _p1 = "../static/teamlogos" + str(self.current_round["current_teams_id"][0]) + ".png"
-        # _p2 = "data/logo_" + str(self.current_round["current_teams_id"][1]) + ".png"
-
-        _p1 = "../" + self.current_round["current_team_logos"][0]
-        _p2 = "../" + self.current_round["current_team_logos"][1]
-
-        if os.path.exists(_p1):
-            self.logo_left_pr = pygame.image.load(_p1)
-        if os.path.exists(_p2):
-            self.logo_right_pr = pygame.image.load(_p2)
-
-        for i in range(0, self.current_round["answer_amount"]):
-            self.vis_questions[i] = self.current_round["answers"][i]["visible"]
-            self.answers_pr[i] = self.font_m.render(self.current_round["answers"][i]["answer"], True, WHITE, DARK_GRAY)
-            self.answered_pr[i] = self.font_m.render(str(self.current_round["answers"][i]["numberOfPeople"]), True, WHITE, DARK_GRAY)
-
-        self.state = state
-
-    def update(self):
-
-        if self.state == "intro_screen":
-            pass
-        elif self.state == "player_select": 
-            pass # TODO: Read input from hardware
-        elif self.state == "running_round":
-            pass # ....
-        elif self.state == "final_screen":
-            pass # ...
-
-    def draw(self):
-
-        self.main_screen.fill(BG_COLOR)
-        self.left_screen.fill(BG_COLOR)
-        self.right_screen.fill(BG_COLOR)
-        #self.left_screen.fill((255, 0, 0))
-        #self.right_screen.fill((0, 0, 255))
-
-        if self.state == "intro_screen":
-            self.main_screen.blit(self.chaos_west_text_pr, (((self.main_width / 2) - (self.chaos_west_text_pr.get_width() / 2)), 200))
-            self.main_screen.blit(self.header_pr, ((self.main_width / 2) - (self.header_pr.get_width() / 2), 20))
-            self.main_screen.blit(self.slogan_pr, ((self.main_width / 2) - (self.slogan_pr.get_width() / 2), 150))
-            self.left_screen.blit(self.chaos_west_pr, ((self.side_width / 2) - (self.chaos_west_pr.get_width() / 2), (self.height / 2) - (self.chaos_west_pr.get_height() / 2)))
-            self.right_screen.blit(self.chaos_west_pr, ((self.side_width / 2) - (self.chaos_west_pr.get_width() / 2), (self.height / 2) - (self.chaos_west_pr.get_height() / 2)))
-
-        elif self.state == "player_select": 
-            self.main_screen.blit(self.header_pr, ((self.main_width / 2) - (self.header_pr.get_width() / 2), 20))
-
-            self.main_screen.blit(self.question_pr, (530, 250))
-            
-            for i in range(0, self.current_round["answer_amount"]):
-                self.main_screen.blit(self.gray_box_pr, ((self.main_width / 2) - (self.gray_box_pr.get_width() / 2), 350 + (i * 70)))
-
-                if not self.vis_questions[i] and self.not_animated[i] <= 0:
-                    self.not_animated[i] = 1
-
-                if self.vis_questions[i]:
-                    self.main_screen.blit(self.answers_pr[i], (700, 364 + (i * 70)))
-                    self.main_screen.blit(self.answered_pr[i], (1850 - self.answered_pr[i].get_width(), 363 + (i * 70)))
-
-                if self.vis_questions[i] and self.not_animated[i] > 0:
-                    self.not_animated[i] -= 0.2
-                    if (self.not_animated[i] <= 0):
-                        self.not_animated[i] = 0.001
-                    _tmp_sur = pygame.surface.Surface((self.gray_box_pr.get_width() * self.not_animated[i], self.gray_box_pr.get_height()))
-                    _tmp_sur.fill(DARK_GRAY)
-                    
-                    self.main_screen.blit(_tmp_sur, ((self.main_width / 2) - (self.gray_box_pr.get_width() / 2), 350 + (i * 70)))
-
-            _points_left = self.font_xxl.render(str(self.team_points[0]), True, CCC_GREEN, BG_COLOR)
-            _points_right = self.font_xxl.render(str(self.team_points[1]), True, CCC_GREEN, BG_COLOR)
-
-            self.main_screen.blit(_points_left, (0, (self.height/2) - (_points_left.get_height() / 2)))
-            self.main_screen.blit(_points_right, ((self.main_width - 0 - _points_right.get_width()), (self.height/2) - (_points_left.get_height() / 2)))
-
-            _round_points = self.font_xl.render(str(self.round_points), True, CCC_GREEN, BG_COLOR)
-            self.main_screen.blit(_round_points, (1200, 140))
-
-            self.left_screen.blit(self.team_left_pr, ((self.side_width/2) - (self.team_left_pr.get_width()/2), 60))
-            self.left_screen.blit(self.logo_left_pr, ((self.side_width/2) - (self.logo_left_pr.get_width()/2), self.height - self.logo_left_pr.get_height() - 20))
-            self.right_screen.blit(self.team_right_pr, ((self.side_width/2) - (self.team_right_pr.get_width()/2), 60))
-            self.right_screen.blit(self.logo_right_pr, ((self.side_width/2) - (self.logo_right_pr.get_width()/2), self.height - self.logo_right_pr.get_height() - 20))
-
-            for i in range(0, self.team_fails[0]):
-                self.main_screen.blit(self.x_pr, (60 + (i * 175), 600))
-            for i in range(0, self.team_fails[1]):
-                self.main_screen.blit(self.x_pr, (2530 - ((i+1) * 175), 600))
-
-
-        elif self.state == "final_screen":
-            # self.main_screen.blit(self.watterott_pr, ((self.main_width / 2) - (self.watterott_pr.get_width() / 2), -100))
-            self.main_screen.blit(self.final_slogan_pr, ((self.main_width / 2) - (self.final_slogan_pr.get_width() / 2), 150))
-            self.main_screen.blit(self.koffein, ((self.main_width / 2) - (self.koffein.get_width() / 2), 250))
-            # self.main_screen.blit(self.header_pr, ((self.main_width / 2) - (self.header_pr.get_width() / 2), 20))
-
-        self.output()
-
-    def output(self):
-
-
-        _tmp = pygame.surface.Surface((4096, 768))
-        _tmp.blit(self.left_screen, (0, 0))
-        _tmp.blit(self.main_screen, (self.side_width, 0))
-        _tmp.blit(self.right_screen, (self.side_width + self.main_width, 0))
-
-        out = pygame.surfarray.array3d(_tmp)
-        out = out.swapaxes(0, 1)
-        out = cv2.cvtColor(out, cv2.COLOR_BGR2RGB)
-
-        if self.window_width != -1:
-            out = cv2.resize(out, (self.window_width, int(self.height / ((self.side_width * 2 + self.main_width) / self.window_width))))
-
-        cv2.imshow("output", out)
-
-        key = cv2.waitKey(1)
-        if key == 27:
-            exit(0)
-        if key == ord("f"):
-            cv2.setWindowProperty("output", cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
diff --git a/src/frontend/start.py b/src/frontend/start.py
deleted file mode 100644
index db5aa99694fed6ebcc326ef88ccca610976f3122..0000000000000000000000000000000000000000
--- a/src/frontend/start.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import live
-import time
-import argparse
-
-parser = argparse.ArgumentParser()
-parser.add_argument("--width", help="Breite des Fensters in Pixel (-1 Default)", default="-1", type=int)
-args = parser.parse_args()
-
-l = live.Live(args.width)
-
-while 1:
-    l.update()
-    l.draw()
\ No newline at end of file
diff --git a/src/frontend/watterott.png b/src/frontend/watterott.png
deleted file mode 100644
index 55b04b1a4b75f3a271512f7c162d047f36757af6..0000000000000000000000000000000000000000
Binary files a/src/frontend/watterott.png and /dev/null differ