Better Python 3 support