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:     });
    }
    
    _buildPresenters() => model.map((t) => new TaskPresenter(t, new Element.tag("li")));
  }
  
  main() {
    var tasks = new Tasks();
    var newTaskPresenter = new NewTaskPresenter(tasks, new Element.tag("div"));
    var tasksPresenter = new TasksPresenter(tasks, new Element.tag("div"));
    
    query("#container").elements.addAll([newTaskPresenter.render().el, tasksPresenter.render().el]);
  }
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,
  