This looks pretty neat. I gave it a shot and I messed up somewhere in the middle. I must've messed with the top/bottom of the code too much. I guess I'll try again later.