anchor.diff:  
   
   class TaskPresenter extends smvp.Presenter<Task> {
  -  TaskPresenter(task, el) : super(task, el, oneTaskTemplate);
  +  Tasks tasks;
  +  TasksRepository repo;
  +
  +  TaskPresenter(this.repo, this.tasks, task, el) : super(task, el, oneTaskTemplate);
   
     subscribeToModelEvents() {
       model.on.change.add(_onChange);
  
positive.code:     var textField = el.query(".task-text");
  
      var task = new Task.fromText(textField.value);
      model.add(task);
      task.save();
  
      textField.value = "";
    }
  }
  
  class TasksPresenter extends smvp.Presenter<Tasks>{
    TasksPresenter(tasks, el) : super(tasks, el, taskListTemplate){
      model.fetch();
    }
  
    subscribeToModelEvents(){
  
negative.code:     "click a.complete": _onComplete
    };
  
    _onDelete(event){
      tasks.remove(model);
      repo.destroy(model);
    }
  
    _onComplete(event){
      model.isCompleted ? model.inProgress() : model.complete();
      repo.save(model);
    }
  }
  
  class NewTaskPresenter extends smvp.Presenter {
    TasksRepository repo;
    Tasks tasks;
  
    NewTaskPresenter(this.repo, this.tasks, el) :super(null, el, newTaskTemplate);
  
    get events => {
      "click button": _addNewTask,
  