compatibility with python 3