improved setup.py script