Nearly complete re-write.