update
add function