 
         currentBottomView.transform = CGAffineTransformIdentity
         currentBottomView.center = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2)
-    }
-    
-    private func setItemViewForCurrentTopView(itemView : UIView){
+        
+        currentTopView.userInteractionEnabled = true
+        
+        if Int(self.currentIndex) < Int(self.numberOfItems) - 1 && self.dataSource != nil {
+            self.setItemViewForCurrentBottomView(self.dataSource!.swipeRevealGalleryView(self, viewForItemAtIndex: self.currentIndex+1))
+        } else {
+            self.clearCurrentBottomView()
+        }
+    }
+    
+    func setItemViewForCurrentTopView(itemView : UIView){
         setItemView(itemView, forView: currentTopView, cacheOld: true)
     }
 
-    private func setItemViewForCurrentBottomView(itemView : UIView){
+    func setItemViewForCurrentBottomView(itemView : UIView){
         setItemView(itemView, forView: currentBottomView, cacheOld: true)
     }
 
-    private func setItemViewForCurrentTopView(itemView : UIView, cacheOld: Bool){
+    func setItemViewForCurrentTopView(itemView : UIView, cacheOld: Bool){
         setItemView(itemView, forView: currentTopView, cacheOld: cacheOld)
     }
     
-    private func setItemViewForCurrentBottomView(itemView : UIView, cacheOld: Bool){
+    func setItemViewForCurrentBottomView(itemView : UIView, cacheOld: Bool){
         setItemView(itemView, forView: currentBottomView, cacheOld: cacheOld)
     }
     
-    private func setItemView(itemView : UIView, forView view : UIView, cacheOld: Bool){
+    func setItemView(itemView : UIView, forView view : UIView, cacheOld: Bool){
         clearView(view, cache: cacheOld)
         
         itemView.frame = view.bounds
         view.addSubview(itemView)
     }
     
-    private func clearCurrentTopView(){
+    func clearCurrentTopView(){
         clearView(currentTopView, cache: true)
     }
     
-    private func clearCurrentBottomView(){
+    func clearCurrentBottomView(){
         clearView(currentBottomView, cache: true)
     }
 
-    private func clearCurrentTopView(cache cache: Bool){
+    func clearCurrentTopView(cache cache: Bool){
         clearView(currentTopView, cache: cache)
     }
     
-    private func clearCurrentBottomView(cache cache: Bool){
+    func clearCurrentBottomView(cache cache: Bool){
         clearView(currentBottomView, cache: cache)
     }
     
-    private func clearView(view : UIView, cache: Bool){
+    func clearView(view : UIView, cache: Bool){
         
         if let itemView = view.subviews.first {
             if cache {

// MARK: Setup & view updating
////////////////////////////////////////////////////////////////////
    
    private func setup() {
        animator = UIDynamicAnimator(referenceView: self)
        animator.delegate = self

        internalView1.frame = self.bounds
        internalView2.frame = self.bounds
        
        addSubview(internalView2)
        addSubview(internalView1)
        
        internalView1.translatesAutoresizingMaskIntoConstraints = true
        internalView2.translatesAutoresizingMaskIntoConstraints = true
        
        currentTopView = internalView1
        currentBottomView = internalView2
        
        panGestureRecognizer.delegate = self
        panGestureRecognizer.addTarget(self, action: "detectedPanGesture:")
        
        addGestureRecognizer(panGestureRecognizer)
        
        multipleTouchEnabled = false
    }
    
    override public func layoutSubviews() {
        
        super.layoutSubviews()
        currentBottomView.frame = self.bounds
        currentBottomItemView?.frame = self.bounds
        

                    }
                }
                
                itemBehavior!.addLinearVelocity(CGPointMake(velocity.x*2, velocity.y*2), forItem: swipeableView)
                animator.addBehavior(itemBehavior!)
                
                delegate?.swipeRevealGallery?(self, willAnimateItemAtIndex: currentIndex, away: true)
                
            } else {
                UIView.animateWithDuration(0.3, delay: 0, options: .CurveEaseInOut, animations: {
                    swipeableView.center = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2)
                    swipeableView.transform = CGAffineTransformIdentity
                    }, completion: {(finished : Bool) -> Void in
                        swipeableView.userInteractionEnabled = true
                        self.isAnimating = false
                        self.delegate?.swipeRevealGallery?(self, didEndAnimatingItemAtIndex: self.currentIndex, away: false)
                })
