updating dependencies, adding experiment abstraction