Easy to setup gem

I added some features to enable a more simple and easy setup:

* An easy to setup gem, throw the possibility to have uncommon/standard path names for configurations and inputs (throw a config file)
* Added some more resilience throw more test in rspec.
* Added some generalisation throw dependency injection.
I was thinking out loud and looking at the whole file without the diff made it clear, ignore my comments.