altered for pypi upload