update event state before entrance/after callbacks
better state accessor
state change listeners
test for state change listeners