I also agree this is more elegant solution.

It will just bring some pain during the upgrade, since I override some listeners.