Consolidates complete/failure functions. Adds progress function.
Adds complete and failure events to task