     /// Attempts to merge the Right array of Element Nodes (Paragraph Level) into the Left array of Nodes.
     ///
     func merge(left: [ElementNode], right: [ElementNode]) -> Bool {
-        guard let (target, source) = findLowestMergeableNodes(left: left, right: right) else {
+        let mergeable = findMergeableNodes(left: left, right: right)
+
+        guard let target = mergeable.last?.left, let source = mergeable.last?.right else {
             return false
         }
 

    private func paragraphStyleElements(from nodes: [Node], childPicker: (([Node]) -> Node?)) -> [ElementNode] {
        var elements = [ElementNode]()
        var nextElement = childPicker(nodes) as? ElementNode


        while let currentElement = nextElement {
            guard currentElement.isBlockLevelElement() else {

                break
            }

            let pair = MergeablePair(left: left, right: right)
            matching.append(pair)
            currentIndex += 1
        }
        
        return matching
    }


