Should have been part of last commit.
Better class and interface names.

Rename IExperimentData back to ISensorData. There is already a
ExperimentData class that holds the sensor data of all runs.
Use WeakListenable class.