diff --git a/common.c b/common.c
index 7f1875f..3507e0f 100644
--- a/common.c
+++ b/common.c
@@ -7,15 +7,18 @@
 catch_t g_catch[MAX_CATCH_LEN];
 unsigned g_catch_len;
 
-void throw_(const char *msg, const char *file, unsigned int line)
+void unwind()
 {
-	fprintf(stderr, "\033[31mException thrown:\033[33m %s:%d\033[0m %s\n", file, line, msg);
-
 	for (int i = g_catch_len - 1; i >= 0; i--)
 	{
 		g_catch[i].fn(g_catch[i].arg);
 	}
+}
 
+void throw_(const char *msg, const char *file, unsigned int line)
+{
+	fprintf(stderr, "\033[31mException thrown:\033[33m %s:%d\033[0m %s\n", file, line, msg);
+	unwind();
 	exit(1);
 }
 
diff --git a/common.h b/common.h
index e1e297f..1540ff9 100644
--- a/common.h
+++ b/common.h
@@ -28,6 +28,7 @@
 extern unsigned g_catch_len;
 
 void throw_(const char *msg, const char *file, unsigned int line);
+void unwind();
 void catch_(handle_t hdl, intptr_t arg);
 
 #define THROW(msg) throw_(msg, __FILENAME__, __LINE__)
diff --git a/docs/content/styles.scss b/docs/content/styles.scss
index dfd1940..f6fa0ab 100644
--- a/docs/content/styles.scss
+++ b/docs/content/styles.scss
@@ -1,7 +1,29 @@
-html,
-body
+$code: #f2f4f4;
+
+$bg: #1d1F21;
+$fg: #abb2bf;
+
+$black:   #1e2127;
+$red:     #e06c75;
+$green:   #a0ea98;
+$yellow:  #d1ed8b;
+$blue:    #81A1C1;
+$magenta: #cb80ce;
+$cyan:    #87dfe5;
+$white:   #abb2bf;
+
+@import url('https://rsms.me/inter/inter.css');
+html
 {
-	font-family: /*'Segoe UI', 'Roboto', 'San Francisco', 'IBM Plex Sans',*/ sans-serif;
+	font-family: 'Inter', sans-serif;
+}
+
+@supports (font-variation-settings: normal)
+{
+	html
+	{
+		font-family: 'Inter var', sans-serif;
+	}
 }
 
 body
@@ -18,11 +40,24 @@
 
 code
 {
-	background: #f2f4f4;
+	background: $code;
 	border-radius: 5px;
 	padding: 3px 5px 3px 5px;
 }
 
+a,
+a:visited
+{
+	color: #0242f2;
+	text-decoration: underline;
+
+	&:hover
+	{
+		color: #0056b3;
+		text-decoration: none;
+	}
+}
+
 .container
 {
 	width: 60em;
@@ -45,6 +80,11 @@
 {
 	display: grid;
 	grid-template-columns: 16em auto;
+
+	.sidebar
+	{
+		margin-right: 1em;
+	}
 }
 
 video
@@ -58,6 +98,11 @@
 	{
 		display: flex;
 		flex-direction: column;
+
+		.sidebar
+		{
+			margin-right: none;
+		}
 	}
 
 	.container
@@ -66,3 +111,62 @@
 		margin: 1em;
 	}
 }
+
+.hljs
+{
+	display: block;
+	overflow-x: auto;
+	background: $code;
+	padding: 1em;
+	color: $black;
+	font-size: 1rem;
+	font-family: monospace;
+	font-variant-ligatures: normal;
+	font-weight: 500;
+}
+.hljs-comment, .hljs-quote
+{
+	font-style: italic;
+	color: $green;
+}
+.hljs-name, .hljs-selector-id, .hljs-selector-class, .hljs-regexp, .hljs-deletion
+{
+	font-weight: 500;
+}
+.hljs-variable, .hljs-template-variable, .hljs-tag
+{
+	font-weight: 600;
+}
+.hljs-number, .hljs-builtin-name, .hljs-literal, .hljs-type, .hljs-params, .hljs-link
+{
+	font-weight: 400;
+	font-style: italic;
+}
+.hljs-attribute
+{
+	font-weight: 700;
+}
+.hljs-string,  .hljs-symbol, .hljs-bullet, .hljs-addition
+{
+	font-style: italic;
+	color: $red;
+}
+.hljs-title, .hljs-section
+{
+	font-style: underline;
+	color: $blue;
+}
+.hljs-keyword, .hljs-built_in, .hljs-selector-tag
+{
+	color: $blue;
+	font-weight: bold;
+}
+.hljs-emphasis
+{
+	font-weight: 700;
+}
+.hljs-strong
+{
+	font-weight: 700;
+	opacity: 1;
+}
diff --git a/docs/templates/home.html b/docs/templates/home.html
index bb328e5..ff86089 100644
--- a/docs/templates/home.html
+++ b/docs/templates/home.html
@@ -1,8 +1,6 @@
 <html>
 	<head>
 		<meta name="viewport" content="width=device-width">
-		<link rel="stylesheet"
-			href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/default.min.css">
 		<link rel="stylesheet" href="styles.css">
 		<title>${title}</title>
 	</head>
diff --git a/docs/templates/page.html b/docs/templates/page.html
index fd7af85..9bcf2b4 100644
--- a/docs/templates/page.html
+++ b/docs/templates/page.html
@@ -1,8 +1,6 @@
 <html>
 	<head>
 		<meta name="viewport" content="width=device-width">
-		<link rel="stylesheet"
-			href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/styles/default.min.css">
 		<link rel="stylesheet" href="styles.css">
 		<title>${title}</title>
 	</head>
@@ -33,6 +31,7 @@
 
 		<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.18.1/highlight.min.js"></script>
 		<script>
+			hljs.initHighlightingOnLoad();
 			document.addEventListener('DOMContentLoaded', (event) => {
 				document.querySelectorAll('pre code').forEach((block) => {
 					hljs.highlightBlock(block);
diff --git a/gui.c b/gui.c
index f12ba77..ed34655 100644
--- a/gui.c
+++ b/gui.c
@@ -100,7 +100,8 @@
 		nk_input_begin(ctx);
 		while (SDL_PollEvent(&evt))
 		{
-			if (evt.type == SDL_QUIT) goto cleanup;
+			if (evt.type == SDL_QUIT)
+				goto cleanup;
 			nk_sdl_handle_event(&evt);
 		}
 		nk_input_end(ctx);
@@ -235,6 +236,8 @@
 	SDL_Quit();
 
 	cmd(mq, "quit");
+
+	printf("Cleaned up GUI\n");
 }
 
 
diff --git a/main.c b/main.c
index 779096c..7619fe2 100644
--- a/main.c
+++ b/main.c
@@ -163,6 +163,8 @@
 		run_mq(&cpu, mq_to_cpu);
 	}
 
+	unwind();
+
 	if (should_read)
 	{
 		free_cpu(&cpu);
diff --git a/screen.c b/screen.c
index 7d09daf..a4b1309 100644
--- a/screen.c
+++ b/screen.c
@@ -66,7 +66,7 @@
 
 void free_sdl_screen(sdl_screen_t *scr)
 {
-	//free(scr->fb);
+	puts("Freed SDL Screen");
 	SDL_DestroyTexture(scr->tex);
 	SDL_DestroyRenderer(scr->r);
 	SDL_DestroyWindow(scr->win);
