diff --git a/src/descriptor_tables.c b/src/descriptor_tables.c
index 36e6f8f..a9aa521 100644
--- a/src/descriptor_tables.c
+++ b/src/descriptor_tables.c
@@ -1,6 +1,7 @@
 #include "descriptor_tables.h"
 #include "vga.h"
-#include "mem.h"
+#include "io.h"
+#include "pic.h"
 
 extern void gdt_flush(uint gdt);
 extern void idt_flush(uint idt);
@@ -14,41 +15,14 @@
 struct idt_entry idt_entries[256];
 struct idt_pointer idt_pointer;
 
-static void (* isrs[32])() =
-{
-	isr0,
-	isr1,
-	isr2,
-	isr3,
-	isr4,
-	isr5,
-	isr6,
-	isr7,
-	isr8,
-	isr9,
-	isr10,
-	isr11,
-	isr12,
-	isr13,
-	isr14,
-	isr15,
-	isr16,
-	isr17,
-	isr18,
-	isr19,
-	isr20,
-	isr21,
-	isr22,
-	isr23,
-	isr24,
-	isr25,
-	isr26,
-	isr27,
-	isr28,
-	isr29,
-	isr30,
-	isr31
-};
+static void (*isrs[32])() = {
+    isr0,  isr1,  isr2,  isr3,  isr4,  isr5,  isr6,  isr7,  isr8,  isr9,  isr10,
+    isr11, isr12, isr13, isr14, isr15, isr16, isr17, isr18, isr19, isr20, isr21,
+    isr22, isr23, isr24, isr25, isr26, isr27, isr28, isr29, isr30, isr31};
+
+static void (*irqs[16])() = {irq0,  irq1,  irq2,  irq3, irq4,  irq5,
+                             irq6,  irq7,  irq8,  irq9, irq10, irq11,
+                             irq12, irq13, irq14, irq15};
 
 void init_gdt()
 {
@@ -106,6 +80,25 @@
 
 	idt_flush((uint)&idt_pointer);
 
+	// Remap PIC
+	
+	outb(PIC1_COMMAND, 0x11);
+	outb(PIC2_COMMAND, 0x11);
+
+	outb(PIC1_DATA, 0x20);
+	outb(PIC2_DATA, 0x28);
+	outb(PIC1_DATA, 0x04);
+	outb(PIC2_DATA, 0x02);
+	outb(PIC1_DATA, 0x01);
+	outb(PIC2_DATA, 0x01);
+	outb(PIC1_DATA, 0);
+	outb(PIC2_DATA, 0);
+
+	for (int i = 0; i < 16; i++)
+	{
+		idt_set_gate(i + 32, (uint)irqs[i], 0x08, 0x8e);
+	}
+
 	vga_write("IDT Initialized!\n");
 }
 
