iirc, it's because the original method prepare the data (set/unset the content of $this->data, what's needed for all methods) and then returns it.
So we need to prepare this array (for each notification) in the manager before we call method->notify()