Refactored setup.py.