add task processing functions