python 3 compatibility updates