removed original code that used different callback mechanism
added notification to listeners on cancel