update: restore previous state when interrupted