Updated version.

I pretty much blasted this thing and put it back together.