experiment base class