why would you want to apply this to non-api ? seems to be feature creep for me, considering both name and purpose of the listener :)