Some nice work in this thread.

I'll have to post mine when I'm finished with it.