Initial Python 3 support