updates to the data/event data threading mechanism, see state.md