API overhaul

Maybe because the `$actionInvoke` is called before event is listened to?