modernized setup.py