The Dataset is quite big now, and is serving two purposes - managing data (species, run elements, etc.), and managing the pipeline run (notifications, exceptions, etc.). We should split the pipeline functionality off into a new class, e.g. PipelineRun.