update fun exit