alternative implementation of updatePredState