add callback handlers