assuming uses clear/update