CompassSensor refactor