changed reader and writer implements