Python 3 support, initial push