Refactored to some sort of package scheme, added setup.py