improved setup.py