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 understand why you are `redefining` the config block. The config is used in the `subject {}` declared a the beginning of the file. I find that confusing.. ?