docs: function(injectionSiteName, previousView, newView, options) {
        var newInjectionSite, currentPromise,
          previousDeferred = $.Deferred();
        this.attachView(injectionSiteName, previousView, options);
        options.cachedInjectionSite = previousView.injectionSite;
        newInjectionSite = options.newInjectionSite = $('<span inject="' + injectionSiteName + '">');
        if (options.addBefore) {
          previousView.$el.before(newInjectionSite);
        } else {
          previousView.$el.after(newInjectionSite);
        }
  
        // clear the injections site so it isn't replaced back into the dom.
        previousView.injectionSite = undefined;
  
        // transition previous view out
        previousView.transitionOut(previousDeferred.resolve, options);
        // transition new current view in
        currentPromise = this.__transitionInView(newInjectionSite, newView, options);
  
        // return a combined promise
        return $.when(previousDeferred.promise(), currentPromise);
      }