finish FileReaderAndWriter + few changes