Major refactor: move post-processing logic into state machine (via transition action methods). Much cleaner design IMO.