      *  Inserts a new node after the specified node. Returns
      *  the new node.
      */
-    private function insertBefore(node:GridRowNode, newNode:GridRowNode):void
+    public function insertBefore(node:GridRowNode, newNode:GridRowNode):void
     {
         newNode.prev = node.prev;
         newNode.next = node;

     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function findNearest(index:int):GridRowNode
    {
        // use bookmarks? or maybe a least recently used one.
        if (!_head || index < 0)

        else if (recentNode && temp < lastToIndex && temp < index)
        {
            if (indexToRecent > 0)
                result = findNearestLTEBefore(index, recentNode);
            else
                result = findNearestLTEAfter(index, recentNode);
        }
        else if (lastToIndex < index)
        {
            result = findNearestLTEBefore(index, _tail);
        }
        else
        {
            result = findNearestLTEAfter(index, _head);
        }
        
        recentNode = result;
