'Add a user supplied callback. Since callbacks are run serially and share data,
order can matter.  If the default behavior (to append the callback) is not
sufficient, insert position can be controlled.
Arguments:
callback (Callback): callback object to be registered
insert_pos (int, optional): position in the list to insert the callback.
Defaults to None, meaning append'

def add_callback(self, callback, insert_pos=None):

    if (insert_pos is None):
        self.callbacks.append(callback)
    else:
        self.callbacks.insert(insert_pos, callback)
