Use io.Reader interface