Added an in-memory cache to Experiment.factory