python 3 support; tests