add the factory