much improved setup.py file