having global, source-, and target-specific events is good idea,
but it is most useful to have semantic events like add, remove.
Thanks for the reply Lukas. Indeed, having thought about it a bunch, I agree the global events are worth keeping around.
Also, the semantic events are already there.