 
   animator = (upcoming_slide, callback) =>
     that           = this
-    position       = width
+    position       = width * 2
     offset         = -position
     outgoing_slide = @current
+
+    if upcoming_slide < outgoing_slide
+      position = 0
+      offset   = 0
 
     $children
       .removeClass('current')
       .eq(upcoming_slide)
         .addClass('current')
         .css
-          # left: position
+          left: (if init then position else width)
           display: 'block'
 
     $control.animate
       useTranslate3d: @mobile
-      left: 0
+      left: offset
     , @options.slide_speed
     , @options.slide_easing
     , =>
       positions(upcoming_slide)
 
-      # $control.css
-      #   left: -width
-
-      # $children.eq(next_index).css
-      #   left: width
-      #   zIndex: 2
+      $control.css
+        left: -width
+
+      $children.eq(upcoming_slide).css
+        left: width
+        zIndex: 2
 
       # reset last slide
       $children.eq(outgoing_slide).css
-        # left: width
+        left: width
         display: 'none'
         zIndex: 0
 

      position: 'absolute'
      overflow: 'hidden'
      top: 0
      # left: width
      zIndex: 0

    adjustSlidesSize $children

    setVerticalPosition($img)

  adjustSlidesSize = ($el) =>
    $el.each (i) ->
      $(this).width(width).height(height)

