start rewrite
add data reader