remove clone in dispatch

In case of big number of listeners (N) and dispatches (M):

1) remove O(M*N) complexity from dispatches (cloning problem)
2) add O(N) complexity in add/remove

I do not know whether it is useful to someone, I just could not pass up.
I tested it on examples.