fix Observer, add DetectionState