modification to make it work with python 2 and 3