python3 compatibility effort