python 3 compatibility fixed