Add a task model to wrap all the task communication w/ the server