New setup.py and reorganized tests