diff --git a/TODO b/TODO
index 819f373..e266508 100644
--- a/TODO
+++ b/TODO
@@ -42,7 +42,12 @@ $ dput my-ppa ../xboxdrv_0.7.0-1~lucid1_source.changes
 Stuff to do before 0.7.0 release:
 =================================
 
-* print controller type/name in daemon
+* update docu on force feedback for multi controller
+
+* rename --list-key to --help-key?
+
+* print controller type/name in daemon (little tricky as that is only
+  known after opening the USB connection)
 
 * log levels:
 
@@ -59,38 +64,54 @@ Stuff to do before 0.7.0 release:
 
 * fix the FIXME's
 
-* fix event output (have it pre-modifier or post-modifier?), don't
-  output on daemon use (ever?!)
-
 * need to hide/disable the toggle button from the UIButtonmap
+  - maybe implement some full post-parsing option verification to
+    check for conflicts and necessary modifications?
 
 * 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
+  place -> doesn't work as some code uses XBOX_BTN_UNKNOWN as 'no
+  button is pressed'
 
 Daemon Related Stuff
 ====================
 
+* cleanup device_id, don't manually do (slot<<16) | devid
+
+* need to properly tear down the rumble callback to avoid calling it
+  before XboxGenericController gets destructed
+
+* get rid of all std::cout stuff, redirect it somewhere else
+
 * unplugging a controller should reset it to neutral position
 
 * improve output on which uinput devices are created
 
-* fix --no-uinput
-
-* 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
-
-* handle multiple controllers in a sane manner (requires cloning of
-  modifier maps, also auto increment of "auto" device id's)
-
 * 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
+ 
 * might need magic to give device-ids in a slot fashion: 
   from: 1-ABS_X   (second uinput device)
   to:   2.1-ABS_X (third uinput device for the second slot)
@@ -99,15 +120,13 @@ Daemon Related Stuff
    1.auto-BTN_MIDDLE
    auto-BTN_MIDDLE
 
+  change syntax: BTN_MIDDLE@mouse, BTN_MIDDLE@2.mouse
+
+  must make sure it doesn't conflict with anything
+
 List Output
 ===========
 
-* make controller type part of the message, instead of manually
-  carrying around type variable: 
-
-  -> doesn't really work, as some gamepads just emulate other message
-     types, need to restructure the whole messaging infrastructure
-
 * do modifier/filter dump when --verbose is given, make verbose
   overall more useful
 
@@ -125,12 +144,22 @@ List Output
       1 Author: Aaron Denney <wnoise@ofb.net>
       1     hal daemon from Thomas Debouverie <debouverie_thomas@yahoo.fr>
       1     Implemented --ui-buttonmap A=BTN_A@{device_id} ??!?!?
+
+Stuff to do before 0.7.1 release:
+=================================
+
+* 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:
 =================================
 
-* add ABS support to macros
+* -R, --rumble-test is broken for FirestormDualController (has no analog triggers)
+
+* add ABS support to macros (need to deal with min/max)
 
 * Playstation 3 controller support
   - http://www.pabr.org/sixlinux/sixlinux.en.html
@@ -187,9 +216,6 @@ Stuff to do before 0.7.x release:
 
 * document common problems, such as lack of deadzone handling in games
 
-* give a warning when the user uses X as axis, instead of X1 (X is the
-  xbox1 analog button), maybe rename X button to btn_x or xbtn ybtn
-
 * make chatpad configurable:
 
   --ui-chatpad a=KEY_A,green+a=SHIFT_X+KEY_B,...
@@ -198,6 +224,7 @@ Stuff to do before 0.7.x release:
   shifted/mode_switched in the keymap, i.e. send key combination
 
 * can't parse:
+
  --ui-axismap x2=2-ABS_X,y2=2-ABS_Y
 
   only this works:
@@ -206,10 +233,6 @@ Stuff to do before 0.7.x release:
 
   implement better guessing
 
-* have separate ControllerConfig for each controller_slot
-
-* use pretty print to print copyright notice
-
 * current deadzone code messes up the diagonals
 
 * shifted axis without default mapping don't work:
@@ -263,9 +286,9 @@ http://sourceforge.net/tracker/download.php?group_id=286545&atid=1214224&file_id
 
 http://www.x.org/docs/XKB/XKBlib.pdf
 
-* find a way to bring back --no-extra-devices, saves typing
-
 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