A fresh py3 port off of the master branch.