the combined (move + modify/restore) functions are not necessary