Callback is optional.