-#include "stdlib.h"
-#include "stdint.h"
+#include "actors.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdint.h>
 #include "yx_uint16.h"
 #include "roguelike.h"
-#include "actors.h"
 
 extern char is_passable (struct Map * map, uint16_t y, uint16_t x) {
 // Check if coordinate on (or beyond) map is accessible to actor movement.
 
 #ifndef ACTORS_H
 #define ACTORS_H
 
+#include <stdint.h>
+#include "yx_uint16.h"
+
+struct World;
+struct Map;
+
 struct Player {
   struct yx_uint16 pos; };
 
 
+#include "draw_wins.h"
 #include <stdlib.h>
 #include <stdint.h>
-#include <ncurses.h>
 #include <string.h>
+#include <ncurses.h>
 #include "windows.h"
-#include "draw_wins.h"
 #include "roguelike.h"
 #include "keybindings.h"
 #include "actors.h"
 
 #ifndef DRAW_WINS_H
 #define DRAW_WINS_H
 
+#include <stdint.h>
+
+struct Win;
+
 void draw_with_linebreaks (struct Win *, char *, uint16_t);
 void draw_text_from_bottom (struct Win *, char *);
 void draw_log_win (struct Win *);
 
-#include <stdlib.h>
+#include "keybindings.h"
 #include <stdint.h>
+#include <stdlib.h>
 #include <ncurses.h>
 #include <string.h>
 #include "windows.h"
 #include "roguelike.h"
-#include "keybindings.h"
 
 void init_keybindings(struct World * world) {
 // Initialize keybindings from file "keybindings".
 
 #ifndef KEYBINDINGS_H
+#define KEYBINDINGS_H
+
+#include <stdint.h>
+
+struct World;
+struct WinMeta;
 
 struct KeyBinding {
   char * name;
 
+#include "readwrite.h"
 #include <stdio.h>
-#include <limits.h>
 #include <stdint.h>
+#include <limits.h>
 
 static const uint16_t uchar_s = UCHAR_MAX + 1;
 
 
 #ifndef READWRITE_H
 #define READWRITE_H
 
+#include <stdio.h>
+#include <stdint.h>
+
 uint16_t read_uint16_bigendian(FILE * file);
 void write_uint16_bigendian(uint16_t x, FILE * file);
 uint32_t read_uint32_bigendian(FILE * file);
 
+#include "roguelike.h"
 #include <stdlib.h>
 #include <stdint.h>
 #include <ncurses.h>
 #include <unistd.h>
 #include "windows.h"
 #include "draw_wins.h"
-#include "roguelike.h"
 #include "keybindings.h"
 #include "readwrite.h"
 #include "actors.h"
 
 #ifndef ROGUELIKE_H
 #define ROGUELIKE_H
 
+#include <stdint.h>
 #include "yx_uint16.h"
-#include "windows.h"
+
+struct WinMeta;
+struct Win;
+struct KeyBinding;
+struct KeysWinData;
 
 struct World {
   char interactive;
 
-#include <stdlib.h>
+#include "windows.h"
 #include <stdint.h>
 #include <ncurses.h>
+#include <stdlib.h>
 #include <string.h>
-#include "windows.h"
 
 struct Corners {
   struct yx_uint16 tl;
 
 #ifndef WINDOWS_H
 #define WINDOWS_H
 
-#include "ncurses.h"
+#include <stdint.h>
+#include <ncurses.h>
 #include "yx_uint16.h"
 
 struct Frame {
 
-#include "stdint.h"
 #include "yx_uint16.h"
 
 extern char yx_uint16_cmp (struct yx_uint16 a, struct yx_uint16 b) {
 
 #ifndef YX_UINT16_H
 #define YX_UINT16_H
 
+#include <stdint.h>
+
 #define NORTH 1
 #define EAST 2
 #define SOUTH 3