install via setup.py