migrated to Python 3