removed some debugging code.
process_text now fits on 1 screen\!
replaced ti with @ti for tighter code.
made error reporting style consistent... unexpected_end_of_string reports error in same channel as other errors.
cleaned code further, added thoughts on creating yet another class...
fixed some very odd code...  I wonder if I've broken something though...