improved Python 3 compatibility

/cc @cdent