refactor
add update fonction