This is the beginning of the ProviderFactory. The first steps is
to make shure that it accepts the propper arguments and write
unit-tests corresponding to this.
This is the most important task. The ProviderFactory needs to be
able to resolve the needs for all of the submitted dependencies.
Also, this needs to be propper...