Fix failing tests.

I'm dumb and left off required arguments.
Optimize listener callbacks.

Use direct function calls as they can be up to 30% faster than
call_user_func_array.