67 (same as 18)
WIP on 66. Slow and wrong.
19