add NewStringReader for reading valid strings from an io.Reader