Adds better Readme, some small refactoring