add pause and resume
add version assertion
ignore null data