Modify to use callback class for updating progress of tasks