ContactManager.module('ContactsApp.List', function(List, ContactManager, Backbone, Marionette, $, _) {
  List.Controller = {
    listContacts: function(){
      var contacts = ContactManager.request('contact:entities');
      var contactsListView = new List.Contacts({ collection: contacts });
      ContactManager.mainRegion.show(contactsListView);
      contactsListView.on('itemview:contact:delete', function(childView, model){
        contacts.remove(model);
      });
      contactsListView.on('itemview:contact:show', function(childView, model){
        ContactManager.trigger('contact:show', model.get('id'));
      });
    }
  }
});

ContactManager.module('ContactsApp.List', function(List, ContactManager, Backbone, Marionette, $, _) {
  List.Controller = {
    listContacts: function(){
      var contacts = ContactManager.request('contact:entities');
      var contactsListView = new List.Contacts({ collection: contacts });
      ContactManager.mainRegion.show(contactsListView);
      contactsListView.on('itemview:contact:delete', function(childView, model){
        model.destroy();
      });
      contactsListView.on('itemview:contact:show', function(childView, model){
        ContactManager.trigger('contact:show', model.get('id'));
      });
    }
  }
});

Destroy method implemented (p.100/112)