--> removed the final and added a setter because this way, it is
possible to register a single listener for all tasks
// we discovered that a lot of different listeners lead sometimes to
performance slowdowns – this way a global listener can help
// the main reason, we do this is that we will be capable to add
progressive loading and animations in the future without killing too
much memory. Now a single listener can be used to show a progress
indicator or similar