better support python 3