public MeasurementManager(IDataSource <GaugePositionDTO> measurementDataSource) { // Compensating and mapping var compensatedPositions = measurementDataSource.DataStream .Select(RawPositionModification) .Select(CompensatePosition); compensatedPositions .Subscribe(pos => { // Storing all points PositionBuffer.Add(pos); // Bubbling compensated position _positionSource.OnNext(pos); }); // Initialize AvailableMeasurementMethods = Enum.GetValues(typeof(MeasurementMethodEnum)).Cast <MeasurementMethodEnum>(); }