Allow use of factory to initialize root, allow root to be replaced, provide sensible default for factory.