support python >= 2.7.x