 
     /// Converts a String into it's representing nodes.
     ///
-    func textToNodes(_ text: String) -> [Node] {
+    func processTextNodes(from text: String) -> [Node] {
         let substrings = text.components(separatedBy: String(.newline))
         var output = [Node]()
 

    /// - Returns: Leaf Nodes contained within the specified collection of attributes
    ///
    func createLeafNodes(from attrString: NSAttributedString) -> [Node] {
        let attachment = attrString.attribute(NSAttachmentAttributeName, at: 0, effectiveRange: nil) as? NSTextAttachment

        switch attachment {
        case let lineAttachment as LineAttachment:
            return lineAttachmentToNodes(lineAttachment)
        case let commentAttachment as CommentAttachment:
            return commentAttachmentToNodes(commentAttachment)
        case let htmlAttachment as HTMLAttachment:
            return htmlAttachmentToNode(htmlAttachment)
        case let imageAttachment as ImageAttachment:
            return imageAttachmentToNodes(imageAttachment)
        case let videoAttachment as VideoAttachment:
            return videoAttachmentToNodes(videoAttachment)
        default:
            return textToNodes(attrString.string)
        }
    }
}



    /// Converts an Video Attachment into it's representing nodes.
    ///
    func processVideoAttachment(from attrString: NSAttributedString) -> [Node] {
        guard let attachment = attrString.attribute(NSAttachmentAttributeName, at: 0, effectiveRange: nil) as? VideoAttachment else {
            return []
        }

        var attributes = [Attribute]()
        if let source = attachment.srcURL?.absoluteString {
            let attribute = StringAttribute(name: "src", value: source)
