fix bug of using defer
add NewValue NewData method
fix bug
update