setup.py added untested