Updated setup.py to work on linux systems as well

To do:
General code cleanup
More unit tests