setup.py for installation