diff --git a/src/arg_parser.hpp b/src/arg_parser.hpp
index f6c9092..f033cab 100644
--- a/src/arg_parser.hpp
+++ b/src/arg_parser.hpp
@@ -19,7 +19,6 @@
 #ifndef HEADER_ARG_PARSER_HPP
 #define HEADER_ARG_PARSER_HPP
 
-#include <string>
 #include <iostream>
 #include <vector>
 
diff --git a/src/axis_event.hpp b/src/axis_event.hpp
index aef8e48..4f34dff 100644
--- a/src/axis_event.hpp
+++ b/src/axis_event.hpp
@@ -19,10 +19,7 @@
 #ifndef HEADER_XBOXDRV_AXIS_EVENT_HPP
 #define HEADER_XBOXDRV_AXIS_EVENT_HPP
 
-#include <boost/shared_ptr.hpp>
 #include <boost/scoped_ptr.hpp>
-#include <string>
-#include <vector>
 
 #include "axis_filter.hpp"
 #include "ui_event.hpp"
diff --git a/src/axis_map.hpp b/src/axis_map.hpp
index b5298f6..8b985eb 100644
--- a/src/axis_map.hpp
+++ b/src/axis_map.hpp
@@ -19,8 +19,6 @@
 #ifndef HEADER_XBOXDRV_AXIS_MAP_HPP
 #define HEADER_XBOXDRV_AXIS_MAP_HPP
 
-#include <assert.h>
-
 #include "axis_event.hpp"
 #include "xboxmsg.hpp"
 
diff --git a/src/button_event.hpp b/src/button_event.hpp
index 2418004..22e0d98 100644
--- a/src/button_event.hpp
+++ b/src/button_event.hpp
@@ -19,9 +19,7 @@
 #ifndef HEADER_XBOXDRV_BUTTON_EVENT_HPP
 #define HEADER_XBOXDRV_BUTTON_EVENT_HPP
 
-#include <boost/shared_ptr.hpp>
 #include <boost/scoped_ptr.hpp>
-#include <string>
 #include <vector>
 
 #include "button_filter.hpp"
diff --git a/src/button_map.hpp b/src/button_map.hpp
index 9f0bcb0..eb98c98 100644
--- a/src/button_map.hpp
+++ b/src/button_map.hpp
@@ -19,8 +19,6 @@
 #ifndef HEADER_XBOXDRV_BUTTON_MAP_HPP
 #define HEADER_XBOXDRV_BUTTON_MAP_HPP
 
-#include <assert.h>
-
 #include "button_event.hpp"
 #include "xboxmsg.hpp"
 
diff --git a/src/chatpad.cpp b/src/chatpad.cpp
index 5425463..257e69d 100644
--- a/src/chatpad.cpp
+++ b/src/chatpad.cpp
@@ -18,7 +18,6 @@
 
 #include "chatpad.hpp"
 
-#include <iostream>
 #include <boost/format.hpp>
 
 #include "linux_uinput.hpp"
@@ -221,12 +220,12 @@ Chatpad::read_thread()
       {
         if (m_debug)
         {
-          std::cout << "[chatpad] read: " << len << "/5: data: " << std::flush;
+          log_info << "[chatpad] read: " << len << "/5: data: " << std::flush;
           for(int i = 0; i < len; ++i)
           {
-            std::cout << boost::format("0x%02x ") % int(data[i]);
+            log_info << boost::format("0x%02x ") % int(data[i]);
           }
-          std::cout << std::endl;
+          log_info << std::endl;
         }
 
         if (data[0] == 0x00)
diff --git a/src/chatpad.hpp b/src/chatpad.hpp
index 3d44afd..f5922d3 100644
--- a/src/chatpad.hpp
+++ b/src/chatpad.hpp
@@ -19,8 +19,6 @@
 #ifndef HEADER_XBOXDRV_CHATPAD_HPP
 #define HEADER_XBOXDRV_CHATPAD_HPP
 
-#include <stdint.h>
-#include <memory>
 #include <boost/thread.hpp>
 #include <libusb.h>
 
diff --git a/src/command_line_options.hpp b/src/command_line_options.hpp
index 3fbb2e0..f6ad75d 100644
--- a/src/command_line_options.hpp
+++ b/src/command_line_options.hpp
@@ -19,14 +19,9 @@
 #ifndef HEADER_COMMAND_LINE_OPTIONS_HPP
 #define HEADER_COMMAND_LINE_OPTIONS_HPP
 
-#include <vector>
-#include <map>
-
 #include "arg_parser.hpp"
 #include "ini_schema.hpp"
-#include "modifier.hpp"
 #include "uinput.hpp"
-#include "xboxmsg.hpp"
 
 class Xboxdrv;
 
diff --git a/src/controller_config.hpp b/src/controller_config.hpp
index 4962d9d..58152c1 100644
--- a/src/controller_config.hpp
+++ b/src/controller_config.hpp
@@ -19,9 +19,6 @@
 #ifndef HEADER_XBOXDRV_CONTROLLER_CONFIG_HPP
 #define HEADER_XBOXDRV_CONTROLLER_CONFIG_HPP
 
-#include <boost/shared_ptr.hpp>
-#include <vector>
-
 #include "uinput_config.hpp"
 #include "modifier.hpp"
 
diff --git a/src/controller_config_set.cpp b/src/controller_config_set.cpp
index b65c632..72ac990 100644
--- a/src/controller_config_set.cpp
+++ b/src/controller_config_set.cpp
@@ -18,8 +18,6 @@
 
 #include "controller_config_set.hpp"
 
-#include "uinput.hpp"
-#include "options.hpp"
 #include "log.hpp"
 
 #include "modifier/dpad_rotation_modifier.hpp"
diff --git a/src/controller_config_set.hpp b/src/controller_config_set.hpp
index 69faa51..2fafdb0 100644
--- a/src/controller_config_set.hpp
+++ b/src/controller_config_set.hpp
@@ -19,8 +19,6 @@
 #ifndef HEADER_XBOXDRV_CONTROLLER_CONFIG_SET_HPP
 #define HEADER_XBOXDRV_CONTROLLER_CONFIG_SET_HPP
 
-#include <boost/shared_ptr.hpp>
-
 #include "controller_config.hpp"
 #include "options.hpp"
 
diff --git a/src/default_message_processor.cpp b/src/default_message_processor.cpp
index 2b2e100..066454b 100644
--- a/src/default_message_processor.cpp
+++ b/src/default_message_processor.cpp
@@ -19,7 +19,6 @@
 #include "default_message_processor.hpp"
 
 #include "log.hpp"
-#include "options.hpp"
 #include "uinput.hpp"
 
 DefaultMessageProcessor::DefaultMessageProcessor(uInput& uinput, ControllerConfigSetPtr config, 
diff --git a/src/default_message_processor.hpp b/src/default_message_processor.hpp
index 2decadb..7606cc3 100644
--- a/src/default_message_processor.hpp
+++ b/src/default_message_processor.hpp
@@ -19,8 +19,6 @@
 #ifndef HEADER_XBOXDRV_DEFAULT_MESSAGE_PROCESSOR_HPP
 #define HEADER_XBOXDRV_DEFAULT_MESSAGE_PROCESSOR_HPP
 
-#include <vector>
-
 #include "controller_config_set.hpp"
 #include "message_processor.hpp"
 
diff --git a/src/evdev_controller.hpp b/src/evdev_controller.hpp
index a1dc281..b3d34c2 100644
--- a/src/evdev_controller.hpp
+++ b/src/evdev_controller.hpp
@@ -21,10 +21,8 @@
 
 #include <linux/input.h>
 #include <string>
-#include <map>
 #include <queue>
 
-#include "xboxmsg.hpp"
 #include "evdev_absmap.hpp"
 #include "xbox_generic_controller.hpp"
 
diff --git a/src/evdev_helper.cpp b/src/evdev_helper.cpp
index 8e37e59..9f8435c 100644
--- a/src/evdev_helper.cpp
+++ b/src/evdev_helper.cpp
@@ -19,7 +19,6 @@
 #include "evdev_helper.hpp"
 
 #include <linux/input.h>
-#include <stdexcept>
 
 #include "log.hpp"
 
diff --git a/src/evdev_helper.hpp b/src/evdev_helper.hpp
index f2f9c24..fde4795 100644
--- a/src/evdev_helper.hpp
+++ b/src/evdev_helper.hpp
@@ -19,7 +19,6 @@
 #ifndef HEADER_EVDEV_HELPER_HPP
 #define HEADER_EVDEV_HELPER_HPP
 
-#include <string>
 #include <X11/Xlib.h>
 
 #include "enum_box.hpp"
diff --git a/src/headset.hpp b/src/headset.hpp
index b1f9896..5c1d401 100644
--- a/src/headset.hpp
+++ b/src/headset.hpp
@@ -20,7 +20,6 @@
 #define HEADER_XBOXDRV_HEADSET_HPP
 
 #include <libusb.h>
-#include <memory>
 #include <boost/thread.hpp>
 
 class Headset
diff --git a/src/helper.hpp b/src/helper.hpp
index 6e38bc4..5c6c00c 100644
--- a/src/helper.hpp
+++ b/src/helper.hpp
@@ -19,9 +19,6 @@
 #ifndef HEADER_HELPER_HPP
 #define HEADER_HELPER_HPP
 
-#include <iosfwd>
-#include <vector>
-#include <stdint.h>
 #include <boost/function.hpp>
 
 void print_raw_data(std::ostream& out, uint8_t* buffer, int len);
diff --git a/src/ini_parser.hpp b/src/ini_parser.hpp
index d58b7c5..2a39b48 100644
--- a/src/ini_parser.hpp
+++ b/src/ini_parser.hpp
@@ -19,8 +19,6 @@
 #ifndef HEADER_XBOXDRV_INI_PARSER_HPP
 #define HEADER_XBOXDRV_INI_PARSER_HPP
 
-#include <map>
-#include <string>
 #include <sstream>
 
 class INIBuilder;
diff --git a/src/ini_schema.hpp b/src/ini_schema.hpp
index 2bd910f..5888a6f 100644
--- a/src/ini_schema.hpp
+++ b/src/ini_schema.hpp
@@ -20,7 +20,6 @@
 #define HEADER_XBOXDRV_INI_SCHEMA_HPP
 
 #include <map>
-#include <string>
 #include <boost/function.hpp>
 
 class INIPairSchema
diff --git a/src/linux_uinput.cpp b/src/linux_uinput.cpp
index ad56756..b079311 100644
--- a/src/linux_uinput.cpp
+++ b/src/linux_uinput.cpp
@@ -19,8 +19,6 @@
 #include "linux_uinput.hpp"
 
 #include <boost/format.hpp>
-#include <iostream>
-#include <sstream>
 #include <errno.h>
 #include <fcntl.h>
 
diff --git a/src/linux_uinput.hpp b/src/linux_uinput.hpp
index d227596..5b775e0 100644
--- a/src/linux_uinput.hpp
+++ b/src/linux_uinput.hpp
@@ -21,8 +21,6 @@
 
 #include <boost/function.hpp>
 #include <linux/uinput.h>
-#include <string>
-#include <stdint.h>
 
 class ForceFeedbackHandler;
 
diff --git a/src/modifier.hpp b/src/modifier.hpp
index d262b4c..2deb8df 100644
--- a/src/modifier.hpp
+++ b/src/modifier.hpp
@@ -19,13 +19,8 @@
 #ifndef HEADER_MODIFIER_HPP
 #define HEADER_MODIFIER_HPP
 
-#include <stdlib.h>
-#include <string>
-#include <vector>
 #include <boost/shared_ptr.hpp>
 
-#include "axis_filter.hpp"
-#include "button_filter.hpp"
 #include "xboxmsg.hpp"
 
 class Modifier;
diff --git a/src/modifier/axismap_modifier.hpp b/src/modifier/axismap_modifier.hpp
index 1355b37..3743f8e 100644
--- a/src/modifier/axismap_modifier.hpp
+++ b/src/modifier/axismap_modifier.hpp
@@ -21,6 +21,7 @@
 
 #include <vector>
 
+#include "axis_filter.hpp"
 #include "modifier.hpp"
 
 struct AxisMapping
diff --git a/src/modifier/buttonmap_modifier.hpp b/src/modifier/buttonmap_modifier.hpp
index c8562d9..82b6069 100644
--- a/src/modifier/buttonmap_modifier.hpp
+++ b/src/modifier/buttonmap_modifier.hpp
@@ -19,6 +19,9 @@
 #ifndef HEADER_XBOXDRV_MODIFIER_BUTTON_MAP_MODIFIER_HPP
 #define HEADER_XBOXDRV_MODIFIER_BUTTON_MAP_MODIFIER_HPP
 
+#include <vector>
+
+#include "button_filter.hpp"
 #include "modifier.hpp"
 
 struct ButtonMapping
diff --git a/src/modifier/dpad_rotation_modifier.hpp b/src/modifier/dpad_rotation_modifier.hpp
index 6ad9b7f..5350345 100644
--- a/src/modifier/dpad_rotation_modifier.hpp
+++ b/src/modifier/dpad_rotation_modifier.hpp
@@ -19,6 +19,8 @@
 #ifndef HEADER_XBOXDRV_MODIFIER_DPAD_ROTATION_MODIFIER_HPP
 #define HEADER_XBOXDRV_MODIFIER_DPAD_ROTATION_MODIFIER_HPP
 
+#include <vector>
+
 #include "modifier.hpp"
 
 class XboxGenericMsg;
diff --git a/src/modifier/four_way_restrictor_modifier.hpp b/src/modifier/four_way_restrictor_modifier.hpp
index 2602e05..246babe 100644
--- a/src/modifier/four_way_restrictor_modifier.hpp
+++ b/src/modifier/four_way_restrictor_modifier.hpp
@@ -19,6 +19,8 @@
 #ifndef HEADER_XBOXDRV_MODIFIER_FOUR_WAY_RESTRICTOR_MODIFIER_HPP
 #define HEADER_XBOXDRV_MODIFIER_FOUR_WAY_RESTRICTOR_MODIFIER_HPP
 
+#include <vector>
+
 #include "modifier.hpp"
 
 class FourWayRestrictorModifier : public Modifier
diff --git a/src/modifier/rotate_axis_modifier.hpp b/src/modifier/rotate_axis_modifier.hpp
index 670ad27..026f8d8 100644
--- a/src/modifier/rotate_axis_modifier.hpp
+++ b/src/modifier/rotate_axis_modifier.hpp
@@ -19,6 +19,8 @@
 #ifndef HEADER_XBOXDRV_MODIFIER_ROTATE_AXIS_MODIFIER_HPP
 #define HEADER_XBOXDRV_MODIFIER_ROTATE_AXIS_MODIFIER_HPP
 
+#include <vector>
+
 #include "modifier.hpp"
 
 class RotateAxisModifier : public Modifier
diff --git a/src/modifier/square_axis_modifier.hpp b/src/modifier/square_axis_modifier.hpp
index 16cbbd5..19aa9b5 100644
--- a/src/modifier/square_axis_modifier.hpp
+++ b/src/modifier/square_axis_modifier.hpp
@@ -19,6 +19,8 @@
 #ifndef HEADER_XBOXDRV_MODIFIER_SQUARE_AXIS_MODIFIER_HPP
 #define HEADER_XBOXDRV_MODIFIER_SQUARE_AXIS_MODIFIER_HPP
 
+#include <vector>
+
 #include "modifier.hpp"
 
 class SquareAxisModifier : public Modifier
diff --git a/src/options.hpp b/src/options.hpp
index 9a603a5..4d96555 100644
--- a/src/options.hpp
+++ b/src/options.hpp
@@ -24,7 +24,6 @@
 #include <vector>
 
 #include "evdev_absmap.hpp"
-#include "modifier.hpp"
 #include "uinput_options.hpp"
 #include "xpad_device.hpp"
 
diff --git a/src/playstation3_usb_controller.cpp b/src/playstation3_usb_controller.cpp
index 3598a52..ee4955b 100644
--- a/src/playstation3_usb_controller.cpp
+++ b/src/playstation3_usb_controller.cpp
@@ -21,7 +21,6 @@
 #include <boost/format.hpp>
 #include <iostream>
 #include <sstream>
-#include <stdexcept>
 #include <string.h>
 
 #include "xboxmsg.hpp"
diff --git a/src/uinput.cpp b/src/uinput.cpp
index 54a1803..2c7409a 100644
--- a/src/uinput.cpp
+++ b/src/uinput.cpp
@@ -18,8 +18,6 @@
 
 #include "uinput.hpp"
 
-#include <iostream>
-
 #include "log.hpp"
 
 bool
diff --git a/src/uinput_config.hpp b/src/uinput_config.hpp
index 7162892..02ffdf8 100644
--- a/src/uinput_config.hpp
+++ b/src/uinput_config.hpp
@@ -19,8 +19,6 @@
 #ifndef HEADER_XBOXDRV_UINPUT_CONFIG_HPP
 #define HEADER_XBOXDRV_UINPUT_CONFIG_HPP
 
-#include <map>
-
 #include "axis_map.hpp"
 #include "button_map.hpp"
 
diff --git a/src/uinput_options.hpp b/src/uinput_options.hpp
index 915fe95..4f6656c 100644
--- a/src/uinput_options.hpp
+++ b/src/uinput_options.hpp
@@ -19,13 +19,8 @@
 #ifndef HEADER_XBOXDRV_UINPUT_CFG_HPP
 #define HEADER_XBOXDRV_UINPUT_CFG_HPP
 
-#include <vector>
-
-#include "axis_event.hpp"
-#include "button_event.hpp"
 #include "button_map.hpp"
 #include "axis_map.hpp"
-#include "xboxmsg.hpp"
 
 class UInputOptions
 {
diff --git a/src/usb_helper.cpp b/src/usb_helper.cpp
index 5acccf6..0748c99 100644
--- a/src/usb_helper.cpp
+++ b/src/usb_helper.cpp
@@ -18,8 +18,6 @@
 
 #include "usb_helper.hpp"
 
-#include <libusb.h>
-
 int usb_claim_n_detach_interface(libusb_device_handle* handle, int interface, bool try_detach)
 {
   int ret = libusb_claim_interface(handle, interface);
diff --git a/src/xbox360_controller.cpp b/src/xbox360_controller.cpp
index 00cf1d7..50043f4 100644
--- a/src/xbox360_controller.cpp
+++ b/src/xbox360_controller.cpp
@@ -18,8 +18,6 @@
 
 #include "xbox360_controller.hpp"
 
-#include <iostream>
-
 #include "chatpad.hpp"
 #include "headset.hpp"
 #include "helper.hpp"
diff --git a/src/xbox360_wireless_controller.cpp b/src/xbox360_wireless_controller.cpp
index cb00f9b..0308d8d 100644
--- a/src/xbox360_wireless_controller.cpp
+++ b/src/xbox360_wireless_controller.cpp
@@ -19,7 +19,6 @@
 #include "xbox360_wireless_controller.hpp"
 
 #include <sstream>
-#include <iostream>
 #include <boost/format.hpp>
 
 #include "helper.hpp"
diff --git a/src/xbox_controller.cpp b/src/xbox_controller.cpp
index 7e0497c..52cadd8 100644
--- a/src/xbox_controller.cpp
+++ b/src/xbox_controller.cpp
@@ -18,7 +18,6 @@
 
 #include "xbox_controller.hpp"
 
-#include <iostream>
 #include <sstream>
 #include <stdexcept>
 #include <string.h>
diff --git a/src/xbox_controller_factory.hpp b/src/xbox_controller_factory.hpp
index 6746465..eafc647 100644
--- a/src/xbox_controller_factory.hpp
+++ b/src/xbox_controller_factory.hpp
@@ -19,10 +19,8 @@
 #ifndef HEADER_XBOXDRV_XBOX_CONTROLLER_FACTORY_HPP
 #define HEADER_XBOXDRV_XBOX_CONTROLLER_FACTORY_HPP
 
-#include <memory>
 #include <libusb.h>
 
-#include "xpad_device.hpp"
 #include "options.hpp"
 
 class XboxGenericController;
diff --git a/src/xboxdrv_thread.cpp b/src/xboxdrv_thread.cpp
index 2ef4f4e..ba4c89c 100644
--- a/src/xboxdrv_thread.cpp
+++ b/src/xboxdrv_thread.cpp
@@ -22,7 +22,6 @@
 
 #include "helper.hpp"
 #include "log.hpp"
-#include "options.hpp"
 #include "xbox_generic_controller.hpp"
 #include "message_processor.hpp"