custom setup.py