     @_callback callback: callback
 
 
-  _accordionDefaults:
-    anchor: 'left'
-    sticky: false
-    stairs: false
-    fracture: false
-    twist: false
-
-
-  accordion: (angle, options) ->
-    options = extendObj options, @_accordionDefaults
-    {anchor} = options
-    
-    if anchor isnt @lastAnchor
-      return @reset =>
-        @_showStage anchor
-        setTimeout =>
-          @accordion angle, options
-        , 0
-
-    @lastAngle = angle = @_normalizeAngle angle
+  accordion: (angle, anchor, options) ->
+    normalized = @_normalizeArgs 'accordion', arguments
+    return if !normalized
+    [angle, anchor, options] = normalized
 
     for panel, i in @panels[anchor]
 

    @accordion angle / 10, options


  _curlDefaults:
    anchor: 'left'
    twist: false


  curl: (angle, options = {}) ->
    options = extendObj options, @_curlDefaults
    {anchor} = options

    if anchor isnt @lastAnchor
      return @reset =>
        @_showStage anchor
        setTimeout =>
          @curl angle, options
        , 0

    @lastAngle = angle = @_normalizeAngle angle
    angle /=  @_getPanelType anchor

    rotation = @_getRotation anchor, angle

    for panel, i in @panels[anchor]

      -90
    else
      angle


  _normalizeArgs: (method, args) ->
    angle = @lastAngle = @_normalizeAngle args[0]
    anchor = @_getLonghandAnchor args[1]
    options = extendObj args[2], @_methodDefaults[method]
    if anchor isnt @lastAnchor
      @reset =>
        @_showStage anchor
        setTimeout =>
          @[method].apply @, args
        , 0
      false
    else
      [angle, anchor, options]


  _getXy: (i, anchor) ->
