diff --git a/NEWS b/NEWS
index 65bfdbe..05d3b59 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,10 @@
+xboxdrv 0.7.1 - (??/???/2011)
+=============================
+
+* compatibility with older libudev versions
+* fixed some missing #include directives
+
+
 xboxdrv 0.7.0 - (28/Jan/2011)
 =============================
 
diff --git a/TODO b/TODO
index 278fce3..6538b63 100644
--- a/TODO
+++ b/TODO
@@ -22,39 +22,104 @@ add libudev, libusb-1.0 to builddependencies
 
 $ cd ../debian/
 $ git checkout master
-$ git-import-orig -u 0.7.0 ~/projects/xboxdrv/htdocs/xboxdrv-linux-0.7.0.tar.bz2 
-$ dch -v "0.7.0-1" "xboxdrv 0.7.0 release"
+$ git-import-orig -u 0.7.1 ~/projects/xboxdrv/htdocs/xboxdrv-linux-0.7.1.tar.bz2 
+$ dch -v "0.7.1-1" "xboxdrv 0.7.1 release"
 $ git-buildpackage --git-no-create-orig --git-tag --git-builder="debuild -S"
-$ sudo pbuilder --build ../xboxdrv_0.7.0-1.dsc
-$ dput my-ppa ../xboxdrv_0.7.0-1_source.changes
+$ sudo pbuilder --build ../xboxdrv_0.7.1-1.dsc
+$ dput my-ppa ../xboxdrv_0.7.1-1_source.changes
 
 # Ubuntu 10.04 (LTS)
 
 $ cd ../debian/
 $ git checkout master-lts
 $ git merge master
-$ dch -b -v "0.7.0-1~lucid1" --distribution lucid "xboxdrv 0.7.0 backport"
+$ dch -b -v "0.7.1-1~lucid1" --distribution lucid "xboxdrv 0.7.1 backport"
 $ git-buildpackage --git-no-create-orig --git-debian-branch=master-lts --git-tag --git-builder="debuild -S"
-$ sudo pbuilder --build ../xboxdrv_0.7.0-1~lucid1.dsc
-$ dput my-ppa ../xboxdrv_0.7.0-1~lucid1_source.changes
+$ sudo pbuilder --build ../xboxdrv_0.7.1-1~lucid1.dsc
+$ dput my-ppa ../xboxdrv_0.7.1-1~lucid1_source.changes
 
 
 Stuff to do before 0.7.1 release:
 =================================
 
-* --name DEVNAME must work with multple controller slots and multiple devices
+* write a tutorial
 
-* turn EnumBox into singleton
+* write lots of well documented examples
 
-* allow --modifier help, --ui-buttonmap X2^help
+* need magic to assign controller to a slot:
+ 
+  what:  match product/vendor-id, match device name
+  where: match USB path, match /dev/input/??? path
+  when:  just assign them to the next free slot
 
-* cleanup device_id, don't manually do (slot<<16) | devid (only an
-  issue in force feedback code)
+  --match RULE,...       # match any of the given rules
+  --match-group RULE,... # match all of the given rules
+
+  Rules:
+  ======
+  usbpath=005:003 (implicit vendor/product match)
+  usbid=045f:028f
+  evdev=/dev/input/event5
+  (no rules means it always matches)
+
+  1) search for match
+  2) if no match is found search slots without rules
+
+  * matching by usbpath makes very little sense, as the dev argument
+    gets incremented with each replug, bus alone might be usable
+  
+  * match again sysname could make sense, seems somewhat constant: "5-2"
+    Xbox1 controller results in "5-2.1", due to being really two devices
+
+  * add match rule for usb iSerial (might be the only way to tell
+    similar devices appart)
+
+* fix bugs that pop up
+
+* valgrind before release
+
+* allow named sections in INI files (start numbering at 0 or 1?):
+
+  [controller1/modifier]
+  [controller1/config1/modifier]
+  [controller2/modifier]
+  [controller2/modifier]
+  [controller3/config1/modifier]
+  [controller3/config2/modifier]
+
+* support for Playstation button names maybe? cross, triangle, circle, square, R3, L3, ...?
+
+* check how daemon reacts on suspend
+
+* remember controllers that couldn't be used when all slots where full
+  and use them when a slot got free
 
 * figure out a good place to set the LEDs off when Xboxdrv is quit,
   just doing it in the destructor causes trouble, as the usbdev might
   be no longer usable (when controller got unplugged)
 
+* implement --on-connect and --on-disconnect for the daemon
+  - maybe have a more general event interface that allows to run stuff
+    on configuration changes, controller plug-ins, etc. (notifiy area as example)
+  - also supply useful information as argument
+
+
+Stuff to do before 0.7.2 release:
+=================================
+
+* --four-way-restrictor for the dpad?
+
+  - keep whatever direction is pressed first, don't allow walking over diagonals?
+  - always keep last main direction until another main direction got pressed?
+  - --disable-dpad-diagonals ur,dl,dl
+
+  * extend usbid match rule to bcd device
+
+* --name DEVNAME must work with multple controller slots and multiple devices
+
+* cleanup device_id, don't manually do (slot<<16) | devid (only an
+  issue in force feedback code)
+
 * get rid of all std::cout stuff when using detached daemon, redirect
   log output to a file somewhere else: 
 
@@ -63,6 +128,14 @@ Stuff to do before 0.7.1 release:
   --verbose: print info level log output
   --debug:   print debug level log output
 
+
+Stuff to do before 0.7.3 release:
+=================================
+
+* turn EnumBox into singleton
+
+* allow --modifier help, --ui-buttonmap X2^help
+
 * move XBOX_BTN_UNKNOWN behind XBOX_BTN_MAX, so iteration can start
   from 0 instead of 1, also fix incorrect iterations all over the
   place -> doesn't work as some code uses XBOX_BTN_UNKNOWN as 'no
@@ -93,36 +166,6 @@ Stuff to do before 0.7.1 release:
 * print controller type/name in daemon (little tricky as that is only
   known after opening the USB connection)
 
-* need magic to assign controller to a slot:
- 
-  what:  match product/vendor-id, match device name
-  where: match USB path, match /dev/input/??? path
-  when:  just assign them to the next free slot
-
-  --match RULE,...       # match any of the given rules
-  --match-group RULE,... # match all of the given rules
-
-  Rules:
-  ======
-  usbpath=005:003 (implicit vendor/product match)
-  usbid=045f:028f
-  evdev=/dev/input/event5
-  (no rules means it always matches)
-
-  1) search for match
-  2) if no match is found search slots without rules
-
-  * matching by usbpath makes very little sense, as the dev argument
-    gets incremented with each replug, bus alone might be usable
-  
-  * match again sysname could make sense, seems somewhat constant: "5-2"
-    Xbox1 controller results in "5-2.1", due to being really two devices
-
-* implement --on-connect and --on-disconnect for the daemon
-  - maybe have a more general event interface that allows to run stuff
-    on configuration changes, controller plug-ins, etc. (notifiy area as example)
-  - also supply useful information as argument
-
 
 Stuff to do before 0.7.x release:
 =================================
@@ -173,15 +216,6 @@ Stuff to do before 0.7.x release:
   --ps3-pair 00:00:00:00:00:00
   --ps3-pair-with-bluetooth
 
-* allow named sections in INI files:
-
-  [controller1/modifier]
-  [controller1/config1/modifier]
-  [controller2/modifier]
-  [controller2/modifier]
-  [controller3/config1/modifier]
-  [controller3/config2/modifier]
-
 * get rid of set_button()/get_button(), turn the message objects into full classes
 
 * document common problems, such as lack of deadzone handling in games
@@ -215,12 +249,6 @@ Stuff to do before 0.7.x release:
 
 * write UIEvent::from_string()
 
-* --four-way-restrictor for the dpad?
-
-  - keep whatever direction is pressed first, don't allow walking over diagonals?
-  - always keep last main direction until another main direction got pressed?
-  - --disable-dpad-diagonals ur,dl,dl
-
 * absolute mouse pointer can be created with:
 
   abs:1-ABS_X, abs:1-ABS_Y, key:1-BTN_LEFT
@@ -258,8 +286,6 @@ http://www.x.org/docs/XKB/XKBlib.pdf
 
 http://www.mp3car.com/vbulletin/input-devices/108554-xbox360-chatpad-awsome-backlit-mini-keyboard-16.html#post1256444
 
-* find a way to bring back --no-extra-devices, saves typing
-
 * change default axis/button map depending on controller type (tricky as
   type is only really known after the axis/buttonmap as already been
   build):
@@ -294,8 +320,6 @@ http://www.mp3car.com/vbulletin/input-devices/108554-xbox360-chatpad-awsome-back
 
 * Not implementable as they need more then one axis: squareaxis, four-way-restrictor, dpad-rotation
 
-* support for Playstation button names maybe? cross, triangle, circle, square, R3, L3, ...?
-
 
 Stuff to do before 0.7.x release:
 =================================
@@ -306,7 +330,7 @@ Stuff to do before 0.7.x release:
 
 * add extra checks to make sure the evdev buttons and axis given exist on the current device
 
-* make dummy joystick axis creation optional
+* make dummy joystick axis, mouse button creation optional
 
 * --ui-axismap LT=KEY_A:KEY_B:1 
 
@@ -324,9 +348,6 @@ disable LT and RT
 
   --ui-axisemulation A:B=ABS_X:5
 
-* endpoints can be taken directly from the usb configuration, thus
-  avoiding issues with nummeric endpoints
-
 * bcdDevice (product release version) seem to indicate type (to many
   possible versions, not enough data):
 
@@ -335,8 +356,6 @@ old ones: 1.10
 
 better way then to check for endpoints maybe
 
-* 045e:028f is the play&charge kit, give an error message when somebody tries to use that
-
 * match by protocol not, just vendor/product, from xpad.c:
 
 /* Xbox 360 has a vendor-specific class, so we cannot match it with only
@@ -353,10 +372,6 @@ better way then to check for endpoints maybe
         { XPAD_XBOX360_VENDOR_PROTOCOL(vend,1) }, \
         { XPAD_XBOX360_VENDOR_PROTOCOL(vend,129) }
 
-* --ui-new must reset events to neutral when switching input mapping (done, but a hack)
-
-* --ui-axismap doesn't work when same key name is given twice, either give warning or fix the issue:
-
   --ui-axismap LT=KEY_A:KEY_A:1
 
 * in INI files allow:
@@ -401,8 +416,6 @@ http://msdn.microsoft.com/en-us/library/bb219655(VS.85).aspx
 Later versions:
 ===============
 
-* complex macro programming, i.e. complete evdev sequences, not just key combinations
-
 * The World Tour wireless guitar have 5 buttons and a
   slide. Currently, the slide is mapped to the x axis, but I don't
   know if it allows multiple presses at once. I don't have a Xbox, so