improve task.done