replace more write + reconstruct with save/restore