Implementing the task runner