make-progress and undo as functions