update - full function
update