packaged for pypi distribution