update compatibility for py2 and py3