better py3 support