maybe it's reading and writing of output