reimplement reader and writer
reimplement reader and writer
rearrange
make it useful