docs: function( to, from, options ) {
              var transition = options.transition,
                  reverse = options.reverse,
                  deferred = options.deferred,
                  TransitionHandler,
                  promise;
  
              this._triggerCssTransitionEvents( to, from, "before" );
  
              // TODO put this in a binding to events *outside* the widget
              this._hideLoading();
  
              TransitionHandler = this._getTransitionHandler( transition );
  
              promise = ( new TransitionHandler( transition, reverse, to, from ) ).transition();
  
              promise.done( $.proxy( function() {
                  this._triggerCssTransitionEvents( to, from );
              }, this ));
  
              // TODO temporary accomodation of argument deferred
              promise.done(function() {
                  deferred.resolve.apply( deferred, arguments );
              });
          }