Moving things around a bit, cleaning up, should be cool
Added some error handling, an integration test, sample settings