renamed TaskCompletionListener to TaskCompletionHandler