implement task completion