probably only want to add the callback if it is not null, this way you can continue the old behavior of "fire-and-forget" if you don't specify a callback...