add Reader and Writer
add tests for Read and Write