StringReader -> StringScanner. Make generic