                     rightSibling.removeFromParent()
                 }
             }
-            
+
             if let result = result {
                 return result
             } else {

                children.insert(newNode, atIndex: firstNodeIndex)
                newNode.parent = self
                
                remove(newChildren, updateParent: false)
                return newNode
            }
        }

                let elementsAndIntersections = lowestBlockLevelElements(intersectingRange: targetRange)

                for (element, intersection) in elementsAndIntersections {
                    
                    // 0-length intersections are possible, but they make no sense in the context
                    // of wrapping content inside new elements.  We should ignore zero-length
                    // intersections.
                    //
                    guard intersection.length > 0 else {
                        continue
                    }
                    
                    element.forceWrapChildren(intersectingRange: intersection, inElement: elementDescriptor)
                }
            } else {
