It's not at all well-tested yet (I made a lot of changes to it just tonight) but it's late and I am literally sick (with flu) and tired so I'm checking this in and going to bed. Please fix all the bugs for me. ;-)