I spent all day working on this thing. I still need to do some minor changes, but overall I'm pretty satisfied....