Spent almost the entire day cleaning up talkread.bml, abstracting out all the hard logic to a library that talkread now uses (and S2 will use tomorrow), making optimizations and cleanups in the process. Fun stuff. I love to clean crufty many-year-old code.
Went running... just got back a bit ago and showered. Thought of a bug and some more possible optimizations. I should sleep, though.