snip
update and proc