lib: save progress