more info in setup.py