this has a working getc()