python 3 compatibility stuff