bug fix: self calibration