Update to support Python 3.x