implement 'download' dialog