Refactor Factory. Separate ParameterContainer into its own class.
Fixes.
Fix tests.
Add a check to Factory.
Log __call now accepts arrays as secound parameter.