fix _has_changed