Completely re-do out-of-order class declarations.
Merge branch '0.20.x'