return Promise.all(promises).then(function() {
   initPerspectiveSwitcher();
   // Opening last saved location by the start of the application
   var lastLocation = TSCORE.Config.getLastOpenedLocation(); 
   if (TSCORE.Config.getUseDefaultLocation()) {
     lastLocation = TSCORE.Config.getDefaultLocation();
   }
   if (lastLocation && lastLocation.length >= 1) {
     TSCORE.openLocation(lastLocation);
     TSCORE.IO.checkAccessFileURLAllowed ? TSCORE.IO.checkAccessFileURLAllowed() : true;
     var evt = TSCORE.createDocumentEvent("initApp");
     TSCORE.fireDocumentEvent(evt);
     $("#viewContainers").removeClass("appBackgroundTile");
   }
   $('#loading').hide();
   if (isNode || isElectron) {
     TSCORE.IO.showMainWindow();
   }
   return true;
 });
 require([extPath], function(perspective) {
   perspectives.push(perspective);
   try {
     // Creating perspective's toolbar
     $('#viewToolbars').append($('<div>', {
       id: perspective.ID + 'Toolbar',
       class: 'btn-toolbar'
     }).hide());
     // Creating perspective's container
     $('#viewContainers').append($('<div>', {
       id: perspective.ID + 'Container',
       style: 'width: 100%; height: 100%'
     }).hide());
     // Creating perspective's footer
     $('#viewFooters').append($('<div>', {
       id: perspective.ID + 'Footer'
     }).hide());
     perspective.init();
   } catch (e) {
     console.log('Error while executing \'init\' on ' + perspectives[i].ID + ' - ' + e);
   } finally {
     if (perspectives.length === extensions.length) {
       initPerspectiveSwitcher();
       // Opening last saved location by the start of the application (not in firefox)
       var lastLocation = TSCORE.Config.getLastOpenedLocation();
       if (lastLocation !== undefined && lastLocation.length >= 1 && !isFirefox) {
         TSCORE.openLocation(lastLocation);
         TSCORE.IO.checkAccessFileURLAllowed();
         var evt = TSCORE.createDocumentEvent("initApp");
         TSCORE.fireDocumentEvent(evt);
       }
       $('#loading').hide();
       if (isNode) {
         TSCORE.IO.showMainWindow();
       }
     }
   }
 }); // jshint ignore:line