added setup.py and tests