python 3.0 compatibility