improve update feature