skip unnecessary updates