one could omit the first argument `name` here and retrieve it directly from `setting`. the idea is that `name` is the identifier for the callbacks to be used whereas the rest of the arguments are just payload (they probably always happen to have the same value for #name but don't need to). you never know who stubs what and are wondering why your `fire_callbacks('foo', object, object)` don't end up at 'foo'.