refactoring: make API of AsyncTaskWithProgress more explicit