add callback for dependent destroy