Introducing factory instead of object so I can do dependency injection,
introducing IoC injector.
Replaced Guice with factory classes for now as Guice was giving errors
during test about trying to create instance of itself. Will Re-visit
when i understand how to use Guice properly. Still need to be able to
inject allPossibleChildren into the factory or use different factory.
Split tests for the factories into separate specs.