wrap up on-demand:
 - send confirmation msg when success
 - send email notification and remove source when error.