     {boxed, lastToFirst} = @getOptions()
 
     if index <= 0
-
-      if boxed
-      then @packageItem itemInstance
-      else @addSubView itemInstance, null, lastToFirst
-
-    else if index > 0
-
+      index = if boxed and lastToFirst then undefined else 0
+
+    if index >= @items.length - 1
+      index = if boxed and not lastToFirst then undefined else @items.length - 1
+
+    if boxed and not index?
+      @packageItem itemInstance
+    else
       shouldBeLastItem = index >= @items.length - 1
       item             = itemInstance.getElement()
 


    {lastToFirst} = @getOptions()


    unless index

      index = 0

      if lastToFirst
      then @items.unshift itemInstance
      else @items.push itemInstance

    else

      @items.splice index, 0, itemInstance

        neighborItem.parentNode.insertBefore item, neighborItem
        itemInstance.emit 'viewAppended'  if @parentIsInDom
      else
        @addSubView itemInstance, null

    @scrollDown()  if @doIHaveToScroll()

