Major code refactor
Update readme
Use setuptools
Update tests