yeah a lot of edge cases. i guess that's what tests are for. heh.