Tested on 32-bit. Tweak a few things to reflect lessons learned.