Accepting a ReadCloser in place of a Reader allows the FileSystem implementation to handle closing the reader, which in turn simplifies downstream code.