using a primitive character array, maybe need a different kind of reader function