     
     public function pushView(viewFactory:Class, 
                              initializationData:Object = null,
-                             transition:ViewTransition = null):void
+                             transition:IViewTransition = null):void
     {
         if (!canRemoveCurrentView())
             return;
         
         lastAction = PUSH_ACTION;
         
-        pendingViewTransition = transition ? transition : 
-            new SlideViewTransition(400, SlideViewTransition.SLIDE_LEFT);
+        pendingViewTransition = transition;
+        if (pendingViewTransition == null && useDefaultTransitions)
+            pendingViewTransition = defaultPushTransition;
         
         currentSection.push(viewFactory, initializationData);
         currentViewChanged = true;

        if (currentSection && currentSection.length == 0)
            currentSection.push(currentSection.firstView, currentSection.firstViewData);
        
        return true;
    }
    

            invalidateProperties();
    }
    
    //----------------------------------
    //  transitionsEnabled
    //----------------------------------
    private var _transitionsEnabled:Boolean = true;
    
    public function get transitionsEnabled():Boolean
    {
        return _transitionsEnabled;
    }
    
    /**
     *  @private
     */
    public function set transitionsEnabled(value:Boolean):void
    {
        _transitionsEnabled = value;
    }
    
    //----------------------------------
    //  useDefaultTransitions
    //----------------------------------
    private var _useDefaultTransitions:Boolean = true;
    
    public function get useDefaultTransitions():Boolean
    {
        return _useDefaultTransitions;
    }
    
    /**
     *  @private
     */
    public function set useDefaultTransitions(value:Boolean):void
    {
        _useDefaultTransitions = value;
    }
    
    //--------------------------------------------------------------------------
    //
    // Public Methods
    // 
    //--------------------------------------------------------------------------
    
    public function popAll(transition:IViewTransition = null):void
    {
        if (currentSection.length == 0 || !canRemoveCurrentView())
            return;
             
        lastAction = POP_ACTION;
        
        pendingViewTransition = transition;
        if (pendingViewTransition == null && useDefaultTransitions)
            pendingViewTransition = defaultPopTransition;
        
        currentSection.clear();
        
