Inject the factory instance instead of create a new one.
Code cleanup.
Merge pull request #3 from minidfx/selfInjected

Allow the factory interface to be passed as an argument to the factory method.