Lots of good stuff

From now on I'll be mainly focusing on adding logging capabilities and refactoring with this in mind.