     open func formatIdentifiersForTypingAttributes() -> [FormattingIdentifier] {
         var identifiers = [FormattingIdentifier]()
 
-        if typingAttributesContainsBold() {
-            identifiers.append(.bold)
-        }
-
-        if typingAttributesContainsItalic() {
-            identifiers.append(.italic)
-        }
-
-        if typingAttributesContainsUnderline() {
-            identifiers.append(.underline)
-        }
-
-        if typingAttributesContainsStrikethrough() {
-            identifiers.append(.strikethrough)
-        }
-
-        if typingAttributesContainsBlockquote() {
-            identifiers.append(.blockquote)
-        }
-
-        if typingAttributesContainsOrderedList() {
-            identifiers.append(.orderedlist)
-        }
-
-        if typingAttributesContainsUnorderedList() {
-            identifiers.append(.unorderedlist)
-        }
-
-        if typingAttributesContainsLink() {
-            identifiers.append(.link)
+        for (key, formatter) in formatterIdentifiersMap {
+            if formatter.present(in: typingAttributes) {
+                identifiers.append(key)
+            }
         }
 
         return identifiers

        print("video")
    }


    // MARK: - Inspectors
    // MARK: - Inspect Within Range


    /// Returns the associated TextAttachment, at a given point, if any.
    ///
    /// - Parameter point: The point on screen to check for attachments.

        return textStorage.attribute(NSAttachmentAttributeName, at: index, effectiveRange: nil) as? TextAttachment
    }

    // MARK: - Links

    /// Returns an NSURL if the specified range as attached a link attribute
    ///
