     index = Math.min pages.length - 1, Math.max 0, pageIndex
     return if current is index
 
-    direction = index < current
-    anim = (@getOption 'animation') or 'move'
+    direction = if index < current then 0 else 1
 
     if coord is X_COORD
       currentPage = pages[current][@_coordsY[current]]
       newPage     = pages[index][@_coordsY[index]]
       @_currentX  = index
-      newPage.move     if direction then "#{anim}FromLeft" else "#{anim}FromRight"
-      currentPage.move if direction then "#{anim}ToRight"  else "#{anim}ToLeft"
+      newPage.move     @xcoordAnimations[0][direction]
+      currentPage.move @xcoordAnimations[1][direction]
     else
       currentPage = pages[current]
       newPage     = pages[index]
       @_coordsY[@_currentX] = index
-      newPage.move     if direction then "#{anim}FromTop"  else "#{anim}FromBottom"
-      currentPage.move if direction then "#{anim}ToBottom" else "#{anim}ToTop"
+      newPage.move     @ycoordAnimations[0][direction]
+      currentPage.move @ycoordAnimations[1][direction]
 
     @emit 'CurrentPageChanged', x: @_currentX, y:@_coordsY[@_currentX]
 


  constructor:(options={}, data)->

    options.cssClass = KD.utils.curry 'kd-slide', options.cssClass

    super options, data


    @_coordsY  = []
    @_currentX = 0

    {animation, direction, touchEnabled} = @getOptions()

    topToBottom = [["#{animation}FromTop" , "#{animation}FromBottom"],
                   ["#{animation}ToBottom", "#{animation}ToTop"]]
    leftToRight = [["#{animation}FromLeft", "#{animation}FromRight"],
                   ["#{animation}ToRight" , "#{animation}ToLeft"]]

    if direction is 'topToBottom'
      @xcoordAnimations = topToBottom
      @ycoordAnimations = leftToRight
      touchCallbacks    = ['nextSubPage', 'previousSubPage',
                           'nextPage'   , 'previousPage']
    else
      @xcoordAnimations = leftToRight
      @ycoordAnimations = topToBottom
      touchCallbacks    = ['nextPage'   , 'previousPage',
                           'nextSubPage', 'previousSubPage']

    if touchEnabled
      hammer = Hammer @getElement()
      hammer.on "swipeleft",  @bound touchCallbacks[0]
      hammer.on "swiperight", @bound touchCallbacks[1]
      hammer.on "swipeup",    @bound touchCallbacks[2]
      hammer.on "swipedown",  @bound touchCallbacks[3]

  addPage:(page)->
    @addSubView page
