state update loops