This is too long, but it has its moments.