added IProgress interface
changed from weak ref listeners. added cancelAll
made sure to try-catch exceptions when calling execute
null-check