clean 1/2
clean 2/2
add update feature