allow use of alternate Factory that implements FactoryInterface.