   @animate = (direction) =>
     parseHash() || parse(direction)
 
-    $container.find('.current').removeClass('current')
-    $container.children().eq(@next).addClass('current')
+    position = width * 2
+    offset = -position
+
+    $children.removeClass('current')
+    $children.eq(@current).addClass('current').css
+      left: position
+      display: 'block'
+
+    $control.animate
+      useTranslate3d: @mobile
+      left: offset
+    , options.slide_speed
+    , options.slide_easing
+    , =>
+      false
 
   positions()
 

    delete @play_id

  @start = =>
    @animate 'next'

    if options.play


  positions = =>
    @current ||= 0
    @next      = next()
    @prev      = prev()
    false

  setupContainers = ->
    $control.css
      width: width * multiplier
      height: height
      left: -width # if @size() > 1

  setupChildren = =>
    # if @size() > 1
    $children.not('.current').css
      display: 'none'
      position: 'absolute'
      overflow: 'hidden'
      top: 0
      left: width
      zIndex: 0

    adjustSlidesSize $children

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

      # if that.size() > 1
      $(this).css
        left: width

      # adjustImagePosition $('img', this).not('.keep-original')

    $container.trigger('slides.sized')


  # Public
  @destroy = =>
