move all create task logic into task.add