My point is to have only new and updated event, and the listener looks at the data. This is arguable.

The reason is that at some point we may e.g modify the state strings and finish at the same time. so, that would require two events times the number of endpoints.