reinstitute callback.call over call.apply
enables the passing of a hash of params to the callback, rather than an array;