fixed state update