Updating the master branch

Have changed around the file structure of the project, much cleaner and easier to understand now, and also added an initial test.