A function that has to produce the wrapper listener. The listener being wrapped can be referenced by calling the realListener() method. This function always returns the current listener, even if it changes.