Uses io.ReadCloser instead of identical custom type