All this new code just lying around makes me nervous, so I'm committing it. It isn't complete, but it's getting there.