support preincrement and once update manner