Improvements (ahem) we have made

We have added tests, reorganized the solution somewhat, added some errr regex for ignores. The all important gitignore as well...