don't rely on python2.7