add callback for download