There are two events that DSL nodes must handle: a new instance arrives and an instance leaves. For both these two events there exist two possible effects execution points: before and after, just like an aspect.
effects must allow to specify all four execution points, although this has implications with error handling since not every execution point has the same impact in the execution of the program.
For simplicity the two parameter effects will remain and will mean correspond to before adding and after removal. Any other combination must be specified with the four parameter version.