first cut at rewritten setup.py