implement io.Copy interfaces: io.ReaderFrom and io.WriterTo