changes for compatibility with Python 3.x