a better setup.py