saving state - parsing compiler output and putting it on a channel; reading from that channel and updating the UI accordingly; build-once mostly works