Callback functions are optional