Add setup.py and more tests