tided things up so that event buffer unselection only happens from 2 places in the state machine