setup.py from johnbranch