diff --git a/CMakeLists.txt b/CMakeLists.txt
index 732aa4b..9ffffed 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -32,7 +32,7 @@
 	instructions.h gui.h gui.c screen.h screen.c common.h common.c)
 target_link_libraries(6502 readline SDL2 GL GLU GLEW m rt pthread)
 
-install(TARGETS 6502)
+install(TARGETS 6502 RUNTIME DESTINATION bin)
 
 set(CPACK_GENERATOR "DEB")
 set(CPACK_DEBIAN_PACKAGE_MAINTAINER "swissChili")
diff --git a/as/CMakeLists.txt b/as/CMakeLists.txt
index e3ed969..a3f40f5 100644
--- a/as/CMakeLists.txt
+++ b/as/CMakeLists.txt
@@ -5,6 +5,7 @@
 include(TestBigEndian)
 test_big_endian(BIG_ENDIAN)
 
+option(VERBOSE OFF "Verbose assembler messages")
 
 if (${BIG_ENDIAN})
 	add_compile_definitions(BIG_ENDIAN)
@@ -12,7 +13,11 @@
 	add_compile_definitions(LITTLE_ENDIAN)
 endif()
 
+if(${VERBOSE})
+	add_compile_definitions(VERBOSE_ASSEMBLER)
+endif()
+
 
 add_executable(6502-as main.c as.h as.c pp.c map.h map.c hash.c hash.c)
 
-install(TARGETS 6502-as)
+install(TARGETS 6502-as RUNTIME DESTINATION bin)
diff --git a/as/as.c b/as/as.c
index f85bc21..bcc1415 100644
--- a/as/as.c
+++ b/as/as.c
@@ -10,6 +10,12 @@
 #include <ctype.h>
 #include <stdbool.h>
 
+#ifdef VERBOSE_ASSEMBLER
+#define dbgf(fmt, ...) fprintf(fmt, __VA_ARGS__)
+#else
+#define dbgf(fmt, ...)
+#endif
+
 enum
 {
 	ARG_16,						/* Absolute 16 bit argument */
@@ -85,26 +91,26 @@
 	char *arg_types =
 		"16  8   8RELREL ABS IMP ";
 	
-	printf("\033[33mInst: %.4s $%x ", arg_types + arg->arg_type * 4, arg->opcode);
+	dbgf("\033[33mInst: %.4s $%x ", arg_types + arg->arg_type * 4, arg->opcode);
 
 	switch (arg->arg_type)
 	{
 	case ARG_16:
-		printf("%x", arg->long_arg);
+		dbgf("%x", arg->long_arg);
 		break;
 	case ARG_8:
-		printf("%x", arg->byte_arg);
+		dbgf("%x", arg->byte_arg);
 		break;
 	case ARG_8REL:
-		printf("%d", arg->rel_arg);
+		dbgf("%d", arg->rel_arg);
 		break;
 	case ARG_REL:
 	case ARG_ABS:
-		printf("%s", arg->label);
+		dbgf("%s", arg->label);
 		break;
 	}
 
-	printf("\033[0m\n");
+	dbgf("\033[0m\n");
 }
 
 bool is_ident(char c)
@@ -165,7 +171,7 @@
 		(*code)++;
 		return start;
 	}
-	printf(">> lkl: **code == %c %x\n", **code, **code);
+	dbgf(">> lkl: **code == %c %x\n", **code, **code);
 
 	*code = start;
 
@@ -289,7 +295,7 @@
 	{
 	case AM_ACC:
 	case AM_IMP:
-		printf("Trying AM_IMP on '%.8s'\n", code);
+		dbgf("Trying AM_IMP on '%.8s'\n", code);
 		skip_ws(&code);
 		if (is_eol(*code))
 		{
@@ -299,7 +305,7 @@
 		break;
 
 	case AM_IMM:
-		printf("Trying AM_IMM on '%.8s'\n", code);
+		dbgf("Trying AM_IMM on '%.8s'\n", code);
 		if (!skip(&code, "#"))
 			return false;
 		skip_ws(&code);
@@ -375,14 +381,14 @@
 			inst->arg_type = ARG_8;
 			inst->byte_arg = num8;
 		}
-		printf("Parsing AM_* worked, now parsing ,\n");
+		dbgf("Parsing AM_* worked, now parsing ,\n");
 		if (!skip(&code, ","))
 			return false;
 
 		skip_ws(&code);
-		printf(", worked yup\n");
+		dbgf(", worked yup\n");
 		char reg = (am == AM_AY || am == AM_ZPY ? 'y' : 'x');
-		printf("reg is %c, *code is %c %x\n", reg, tolower(*code), tolower(*code));
+		dbgf("reg is %c, *code is %c %x\n", reg, tolower(*code), tolower(*code));
 		if (tolower(*code) != reg)
 			return false;
 		(code)++;
@@ -457,8 +463,8 @@
 		*line_start;
 	inst_t **insts = calloc(sizeof(inst_t), MAX_INSTS);
 
-	printf("Assembling File\n");
-	printf("%s\n", code);
+	dbgf("Assembling File\n");
+	dbgf("%s\n", code);
 
 	orig_line = strtok_fix(code, "\n");
 
@@ -472,16 +478,16 @@
 		
 		skip_ws(&line);
 		
-		printf("line %d: \033[36m%.12s\033[0m\n", line_no, line);
+		dbgf("line %d: \033[36m%.12s\033[0m\n", line_no, line);
 		
 		if (is_eol(*line))
 		{
-			printf("skip_ws() brought us to EOL\n");
+			dbgf("skip_ws() brought us to EOL\n");
 			goto end_of_line;
 		}
 		
 		char *label = parse_label(&line);
-		printf(">> label == %.5s %p\n", label, label);
+		dbgf(">> label == %.5s %p\n", label, label);
 		skip_ws(&code);
 		//if (is_eol(*line))
 		//	goto end_of_line;
@@ -496,7 +502,7 @@
 
 		if (label)
 		{
-			printf("Storing label %s\n", label);
+			dbgf("Storing label %s\n", label);
 			ll_node_t *head = malloc(sizeof(ll_node_t));
 			head->last = last_node;
 			strncpy(head->name, label, 32);
@@ -504,7 +510,7 @@
 			head->name[31] = 0;
 			head->addr = pc;
 			last_node = head;
-			printf("Set label %s at $%x\n", label, pc);
+			dbgf("Set label %s at $%x\n", label, pc);
 		}
 
 		if (mn)
@@ -517,22 +523,22 @@
 
 			MNEMONICS
 			{
-				printf(ERR "Could not parse instruction on line %d\n%s\n" RESET, line_no, orig_line);
+				dbgf(ERR "Could not parse instruction on line %d\n%s\n" RESET, line_no, orig_line);
 				free(line_start);
 				goto cleanup;
 			}
 #undef MN
 
-			printf("Got instruction %s %d\n", mn, mnemonic);
+			dbgf("Got instruction %s %d\n", mn, mnemonic);
 
 			inst_t *arg = malloc(sizeof(inst_t));
 			arg->line = line_no;
-			// printf("Parsing '%s'\n", line);
+			// dbgf("Parsing '%s'\n", line);
 #define INST(_mn, am, op, len) \
 			if ((no_argument && (_mn == AM_IMP || _mn == AM_ACC))		\
 				 || (mnemonic == _mn && parse_arg(line, am, arg)))		\
 			{															\
-				printf(GREEN "AM_ succeeded: %s at pc=$%x\n" RESET,		\
+				dbgf(GREEN "AM_ succeeded: %s at pc=$%x\n" RESET,		\
 					   #am, pc);										\
 				arg->opcode = op;										\
 				pc += len;												\
@@ -542,7 +548,7 @@
 
 			INSTRUCTIONS
 			{
-				printf("\033[31mCould not be parsed: %s '%s'\033[0m\n", mn, line);
+				dbgf("\033[31mCould not be parsed: %s '%s'\033[0m\n", mn, line);
 				free(line_start);
 				goto cleanup;
 			}
@@ -580,7 +586,7 @@
 			uint16_t lbl;
 			if (!(lbl = ll_find(last_node, insts[i]->label)))
 			{
-				printf(ERR "Error on line %d: label '%s' is not defined" RESET "\n",
+				dbgf(ERR "Error on line %d: label '%s' is not defined" RESET "\n",
 					   insts[i]->line, insts[i]->label);
 				goto cleanup;
 			}
@@ -594,18 +600,18 @@
 			uint16_t lbl;
 			if (!(lbl = ll_find(last_node, insts[i]->label)))
 			{
-				printf(ERR "Error on line %d: label '%s' is not defined" RESET "\n",
+				dbgf(ERR "Error on line %d: label '%s' is not defined" RESET "\n",
 					   insts[i]->line, insts[i]->label);
 				goto cleanup;
 			}
 			curr_pc += 2;
 			int16_t diff = lbl - curr_pc;
-			printf("ARG_REL, pc (after) == %x, diff = %hx\n", curr_pc, (uint8_t) diff);
+			dbgf("ARG_REL, pc (after) == %x, diff = %hx\n", curr_pc, (uint8_t) diff);
 			if ((diff < 0 ? -diff : diff) > 0xFF)
 			{
-				printf(ERR "Error on line %d: label '%s' is too far away for a relative jump" RESET "\n",
+				dbgf(ERR "Error on line %d: label '%s' is too far away for a relative jump" RESET "\n",
 					   insts[i]->line, insts[i]->label);
-				printf("pc == %hx, label is at %hx\n", curr_pc, lbl);
+				dbgf("pc == %hx, label is at %hx\n", curr_pc, lbl);
 				goto cleanup;
 			}
 			putc((uint8_t) diff, out);
@@ -617,8 +623,8 @@
 	}
 
 cleanup:
-	printf("-----\n");
-	printf("At end, there are %d instructions\n", num_insts);
+	dbgf("-----\n");
+	dbgf("At end, there are %d instructions\n", num_insts);
 	while (last_node)
 	{
 		ll_node_t *curr_node = last_node;
diff --git a/as/main.c b/as/main.c
index 8c2b577..9c409d7 100644
--- a/as/main.c
+++ b/as/main.c
@@ -11,7 +11,7 @@
 {
 	char c;
 	FILE *in = stdin,
-		*out = stdout;
+		*out = NULL;
 
 	while ((c = getopt(argc, argv, "i:o:")) != -1)
 	{
@@ -32,6 +32,12 @@
 		}
 	}
 
+	if (!out)
+	{
+		fprintf(stderr, "-o flag is now mandatory\n");
+		return 1;
+	}
+
 	fseek(in, 0, SEEK_END);
 	ssize_t len = ftell(in);
 	fseek(in, 0, SEEK_SET);
@@ -40,22 +46,7 @@
 	fread(text, len, 1, in);
 	text[len] = 0;
 
-	FILE *temp = tmpfile();
-
-	map_t *macros = new_map();
-	uint32_t processed = preproc(text, temp, macros, 0);
-	free_map_items(macros);
-
-	fseek(temp, 0, SEEK_END);
-	ssize_t temp_len = ftell(in);
-	fseek(temp, 0, SEEK_SET);
-
-	char *processed_text = malloc(len + 1);
-	fread(processed_text, len, 1, in);
-	text[temp_len] = 0;
-	
-	uint32_t built = assemble(processed_text, out);
+	uint32_t built = assemble(text, out);
 
 	free(text);
-	free(processed_text);
 }
diff --git a/docs/build.lua b/docs/build.lua
index e27125a..70be743 100644
--- a/docs/build.lua
+++ b/docs/build.lua
@@ -4,7 +4,7 @@
 
 -- site.processors.md = markdownProcessor
 site.processors.scss = {
-	process = cmdProcessor("sass"),
+	process = cmdProcessor("scss"),
 	extension = "css"
 }
 site.processors.webm = {
diff --git a/docs/templates/page.html b/docs/templates/page.html
index e074116..469d856 100644
--- a/docs/templates/page.html
+++ b/docs/templates/page.html
@@ -18,25 +18,19 @@
 					<li><a href="https://builds.sr.ht/~swisschili/6502">
 						<img src="https://builds.sr.ht/~swisschili/6502.svg"></a>
 					</li>
-					<li><a href="/usage.html">Basic usage</a></li>
-					<li><a href="/examples.html">Example programs</a></li>
-					<li><a href="/building.html">Building from source</a></li>
-					<li><a href="/debugger.html">Debugger commands</a></li>
+                    <li><a href="https://wiki.swisschili.sh/6502">Docs</a>
+                        <ul>
+					        <li><a href="https://wiki.swisschili.sh/6502/Basic%20Usage">Basic usage</a></li>
+					        <li><a href="https://wiki.swisschili.sh/6502/Example%20Programs">Example programs</a></li>
+					        <li><a href="https://wiki.swisschili.sh/6502/Building%20from%20Source">Building from source</a></li>
+					        <li><a href="https://wiki.swisschili.sh/6502/Debugger">Debugger commands</a></li>
+                        </ul>
+                    </li>
 				</ul>
 			</div>
 			<div class="body">
 				${body}
 			</div>
 		</main>
-
-		<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);
-				});
-			});
-		</script>
 	</body>
 </html>
diff --git a/gui.c b/gui.c
index 0837f69..64769dc 100644
--- a/gui.c
+++ b/gui.c
@@ -80,7 +80,7 @@
 	SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
 	win = SDL_CreateWindow("6502",
 		SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
-		WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_OPENGL|SDL_WINDOW_SHOWN|SDL_WINDOW_ALLOW_HIGHDPI);
+		WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_OPENGL|SDL_WINDOW_SHOWN|SDL_WINDOW_ALLOW_HIGHDPI|SDL_WINDOW_RESIZABLE);
 	glContext = SDL_GL_CreateContext(win);
 	SDL_GetWindowSize(win, &win_width, &win_height);
 
