Fix spelling and add reader and writer
Make reader and writer abstract