             }
         }
     }
+}
+
+
+/// AztecAttachmentManager Layout Helpers
+///
+private extension AztecAttachmentManager
+{
+    /// Updates the layout of the attachment view for the specified attachment but
+    /// creating a new exclusion path for the view based on the location of the
+    /// specified attachment.
+    ///
+    /// - Parameters:
+    ///     - attachment: The AztecTextAttachment
+    ///     - range: The range of the AztecTextAttachment in the textView's NSTextStorage
+    ///
+    private func layoutAttachmentViewForAttachment(attachment: AztecTextAttachment, atRange range: NSRange) {
+        guard let attachmentView = attachmentViews[attachment.identifier] else {
+            return
+        }
+
+        // Exclusion Frame needs to account for Insets, as well as line paddings!
+        let newFrame = frameForAttachmentView(attachmentView, forAttachment: attachment, atRange: range)
+        let newExclusionPath = exclusionPathForAttachmentFrame(newFrame, textWrapping: attachment.textWrapping)
+
+        attachmentView.view.frame = newFrame
+        attachmentView.exclusionPath = newExclusionPath
+
+        // TextKit's Container!
+        textView.textContainer.exclusionPaths.append(newExclusionPath)
+
+        // Always ensure layout after updating an individual exclusion path so
+        // subsequent attachments are in their proper location.
+        layoutManager.ensureLayoutForTextContainer(textView.textContainer)
+    }
 
 
     /// Computes the frame for an attachment's custom view based on alignment

    ///     - attachment: The AztecTextAttachment
    ///     - size: Should be the size of the textContainer
    ///
    private func resizeViewForAttachment(attachment: AztecTextAttachment, toFitInContainer container: NSTextContainer) {
        guard let attachmentView = attachmentViews[attachment.identifier] else {
            return
        }

    ///     - type: The kind of Attachment we're after
    ///     - block: Closure to be executed, for each one of the elements
    ///
    func enumerateAttachments<T : NSTextAttachment>(range: NSRange? = nil, ofType type: T.Type, block: ((T, NSRange) -> Void)) {
        guard let textStorage = layoutManager.textStorage else {
            assertionFailure("Unable to enumerate attachments. No NSTextStorage.")
            return
