diff --git a/bootloader/bootloader-usb.c b/bootloader/bootloader-usb.c
index 04a921f6e414ae786cff50bff06425f47cbdf083..9c3a91dbd9e9e6f2a99232772ba00bc53d2077ff 100644
--- a/bootloader/bootloader-usb.c
+++ b/bootloader/bootloader-usb.c
@@ -38,22 +38,26 @@
  * @brief   USB Mass Storage Class
  */
 
-#include <stdio.h>
-#include <stddef.h>
+#include "bootloader.h"
+#include "descriptors.h"
+
+#include "display.h"
+#include "GUI_Paint.h"
+#include "card10.h"
+#include "led.h"
+
 #include "mxc_config.h"
 #include "mxc_sys.h"
 #include "mxc_delay.h"
 #include "board.h"
-#include "led.h"
 #include "usb.h"
 #include "usb_event.h"
 #include "enumerate.h"
 #include "msc.h"
-#include "descriptors.h"
 #include "mscmem.h"
-#include "card10.h"
-#include "display.h"
-#include "GUI_Paint.h"
+
+#include <stdio.h>
+#include <stddef.h>
 
 /***** Definitions *****/
 #define EVENT_ENUM_COMP MAXUSB_NUM_EVENTS
diff --git a/bootloader/bootloader.h b/bootloader/bootloader.h
new file mode 100644
index 0000000000000000000000000000000000000000..07955d409ac33babda3e96899073ea5612666359
--- /dev/null
+++ b/bootloader/bootloader.h
@@ -0,0 +1,7 @@
+#pragma once
+
+void run_usbmsc(void);
+
+void bootloader_stop(void);
+void bootloader_dirty(void);
+void bootloader_clean(void);
diff --git a/bootloader/main.c b/bootloader/main.c
index cf7916a4d6d3f1339f0dbf8392460b4c5b70b497..a8c9bba2b9de3ada0a21ead022332eb3b23e9679 100644
--- a/bootloader/main.c
+++ b/bootloader/main.c
@@ -1,34 +1,34 @@
-#include <stdio.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <string.h>
+#include "bootloader.h"
 
-#include "mxc_config.h"
-#include "mxc_sys.h"
-#include "mxc_delay.h"
-#include "flc.h"
-#include "icc.h"
-#include "i2c.h"
-#include "crc.h"
-#include "board.h"
-#include "led.h"
-#include "ff.h"
-#include "crc16-ccitt.h"
-#include "pb.h"
-#include "display.h"
 #include "GUI_Paint.h"
 #include "card10.h"
-
+#include "display.h"
+#include "led.h"
+#include "pb.h"
 #include "pmic.h"
 
+#include "board.h"
+#include "crc.h"
+#include "crc16-ccitt.h"
+#include "ff.h"
+#include "flc.h"
+#include "i2c.h"
+#include "icc.h"
+#include "mxc_config.h"
+#include "mxc_delay.h"
+#include "mxc_sys.h"
+
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+
 #define GPIO_PORT_IN PORT_1
 #define GPIO_PIN_IN PIN_6
 
 #define PARTITION_START (0x10000000 + 64 * 1024)
 #define PARTITION_END (0x10000000 + 1024 * 1024 - 1)
 
-extern void run_usbmsc(void);
-
 DIR dir;
 FATFS FatFs;
 
@@ -220,6 +220,9 @@ int main(void)
 	printf("\n\nBootloader\n");
 	card10_init();
 
+	/*
+	 * Make the power/reset button restart card10.
+	 */
 	pmic_set_button_callback(pmic_button);
 
 	Paint_DrawString_EN(0, 16 * 0, "Bootloader", &Font16, 0x0000, 0xffff);
diff --git a/bootloader/mscmem.c b/bootloader/mscmem.c
index f2da8d6ba79422abeb911b17d0e2736012992879..c08271ff21fc7d8b3441bb8cb9f77d25a185c931 100644
--- a/bootloader/mscmem.c
+++ b/bootloader/mscmem.c
@@ -1,11 +1,10 @@
+#include "bootloader.h"
+
 #include "mscmem.h"
-#include <string.h>
-#include <stdio.h>
 #include "mx25lba.h"
 
-void bootloader_stop(void);
-void bootloader_dirty(void);
-void bootloader_clean(void);
+#include <string.h>
+#include <stdio.h>
 
 static int dirty = 0;