updated with wide char capable reads.  working with reads