Update to Python 3 support