window.ContactManager = {
  Models: {},
  Collections: {},
  Views: {},

  start: function(data) {
    var contacts = new ContactManager.Collections.Contacts(data.contacts),
        router = new ContactManager.Router(),
        mainRegion = new Marionette.Region({el: '.main-container'});

    router.on('route:home', function() {
      router.navigate('contacts', {
        trigger: true,
        replace: true
      });
    });

    router.on('route:showContacts', function() {
      var contactsView = new ContactManager.Views.Contacts({
        collection: contacts
      });

      mainRegion.show(contactsView);
    });

    router.on('route:newContact', function() {
      var newContactForm = new ContactManager.Views.ContactForm({
        model: new ContactManager.Models.Contact()
      });

      newContactForm.on('form:submitted', function(attrs) {
        attrs.id = contacts.isEmpty() ? 1 : (_.max(contacts.pluck('id')) + 1);
        contacts.add(attrs);
        router.navigate('contacts', true);
      });

      mainRegion.show(newContactForm);
    });

    router.on('route:editContact', function(id) {
      var contact = contacts.get(id),
          editContactForm;

      if (contact) {
        editContactForm = new ContactManager.Views.ContactForm({
            model: contact
        });

        editContactForm.on('form:submitted', function(attrs) {
          contact.set(attrs);
          router.navigate('contacts', true);
        });

        mainRegion.show(editContactForm);
      } else {
        router.navigate('contacts', true);
      }
    });

    Backbone.history.start();
  }
};

@@ -1,11 +1,8 @@
-window.
+var 
 Cont
@@ -14,16 +14,43 @@
 nager = 
+new Marionette.Application(
 %7B%0A  Mode
@@ -91,20 +91,109 @@
 : %7B%7D
-,%0A%0A  start: 
+%0A%7D);%0A%0AContactManager.addRegions(%7B%0A  mainRegion: '.main-container'%0A%7D);%0A%0AContactManager.addInitializer(
 func
@@ -205,18 +205,16 @@
 data) %7B%0A
-  
   var co
@@ -280,26 +280,24 @@
 cts),%0A      
-  
 router = new
@@ -324,82 +324,11 @@
 er()
-,%0A        mainRegion = new Marionette.Region(%7Bel: '.main-container'%7D)
 ;%0A%0A
-  
   ro
@@ -358,26 +358,24 @@
 unction() %7B%0A
-  
     router.n
@@ -402,18 +402,16 @@
 %7B%0A      
-  
 trigger:
@@ -423,18 +423,16 @@
 ,%0A      
- 
- 
 replace:
@@ -445,27 +445,21 @@
     
-  
 %7D);%0A  
- 
- 
 %7D);%0A%0A  
- 
- 
 rout
@@ -491,34 +491,32 @@
 ', function() %7B%0A
-  
     var contacts
@@ -564,18 +564,16 @@
 %7B%0A      
- 
- 
 collecti
@@ -585,18 +585,16 @@
 ontacts%0A
-  
     %7D);%0A
@@ -590,34 +590,47 @@
 ts%0A    %7D);%0A%0A    
-  
+ContactManager.
 mainRegion.show(
@@ -644,27 +644,23 @@
 sView);%0A
-  
   %7D);%0A%0A
-  
   router
@@ -692,26 +692,24 @@
 unction() %7B%0A
-  
     var newC
@@ -762,26 +762,24 @@
 orm(%7B%0A      
-  
 model: new C
@@ -809,33 +809,29 @@
 ntact()%0A    
- 
- 
 %7D);%0A%0A
-  
     newConta
@@ -872,26 +872,24 @@
 on(attrs) %7B%0A
-  
       attrs.
@@ -955,26 +955,24 @@
 + 1);%0A      
- 
- 
 contacts.add
@@ -976,26 +976,24 @@
 add(attrs);%0A
-  
       router
@@ -1021,26 +1021,24 @@
  true);%0A    
-  
 %7D);%0A%0A      m
@@ -1030,26 +1030,39 @@
    %7D);%0A%0A    
-  
+ContactManager.
 mainRegion.s
@@ -1082,27 +1082,23 @@
 tForm);%0A
-  
   %7D);%0A%0A
-  
   router
@@ -1141,18 +1141,16 @@
 ) %7B%0A    
-  
 var cont
@@ -1173,18 +1173,16 @@
 et(id),%0A
-  
         
@@ -1203,18 +1203,16 @@
 m;%0A%0A    
-  
 if (cont
@@ -1220,26 +1220,24 @@
 ct) %7B%0A      
- 
- 
 editContactF
@@ -1287,26 +1287,24 @@
 %7B%0A          
-  
 model: conta
@@ -1308,26 +1308,24 @@
 ntact%0A      
-  
 %7D);%0A%0A       
@@ -1319,26 +1319,24 @@
  %7D);%0A%0A      
- 
- 
 editContactF
@@ -1382,26 +1382,24 @@
 ) %7B%0A        
-  
 contact.set(
@@ -1410,26 +1410,24 @@
 s);%0A        
- 
- 
 router.navig
@@ -1445,26 +1445,24 @@
 ts', true);%0A
-  
       %7D);%0A%0A 
@@ -1466,18 +1466,31 @@
 %0A%0A      
-  
+ContactManager.
 mainRegi
@@ -1515,18 +1515,16 @@
 tForm);%0A
-  
     %7D el
@@ -1530,26 +1530,24 @@
 lse %7B%0A      
-  
 router.navig
@@ -1577,20 +1577,102 @@
     
+%7D%0A
   %7D
-%0A    %7D);%0A
+);%0A%7D);%0A%0AContactManager.on('initialize:after', function(options)%7B%0A  if (Backbone.history)%7B
 %0A   
@@ -1703,10 +1703,11 @@
 );%0A  %7D%0A%7D
+)
 ;%0A

Use Marionette.Application