The experiment’s configuration, lifecycle, and runtime should be handled externally of the host application, leaving it completely unconcerned with those details. Moving experimentation-related details out of the host application’s domain achieves the complete separation of experience implementation (handled by the host application) and experiment instrumentation (handled by the experimentation server)—the holy grail of any successful experimentation framework.