adds callback function