at least mostly uses the right thread for updating ui, but change on new events after a break