++ still broken, but everything else is fixed

That said, I haven't done the checks to make sure that the current code
actually has more accurate other functionality.