add proper task completion support