         }
     }
 
-    /// Returns the size of the `MessageContainerView` in a `MessageCollectionViewCell`
-    /// for the `MessageType` at a given `IndexPath`.
-    ///
-    /// - Parameters:
-    ///   - message: The `MessageType` for the given `IndexPath`.
-    ///   - indexPath: The `IndexPath` for the given `MessageType`.
-    open func messageContainerSize(for message: MessageType, at indexPath: IndexPath) -> CGSize {
+    internal func messageContainerSize(for message: MessageType, at indexPath: IndexPath) -> CGSize {
         let maxWidth = messageContainerMaxWidth(for: message, at: indexPath)
 
         var messageContainerSize: CGSize = .zero

        return isFromCurrentSender ? outgoingMessagePadding : incomingMessagePadding
    }

    /// Returns the maximum width of the `MessageContainerView` in a `MessageCollectionViewCell`
    /// for the `MessageType` at a given `IndexPath`.
    ///
    /// - Parameters:
    ///   - message: The `MessageType` for the given `IndexPath`.
    ///   - indexPath: The `IndexPath` for the given `MessageType`.
    open func messageContainerMaxWidth(for message: MessageType, at indexPath: IndexPath) -> CGFloat {
        let avatarWidth = avatarSize(for: message, at: indexPath).width
        let messagePadding = messageContainerPadding(for: message, at: indexPath)


        return MessagesCollectionViewLayoutAttributes.self
    }

    internal var itemWidth: CGFloat {
        guard let collectionView = collectionView else { return 0 }
        return collectionView.frame.width - sectionInset.left - sectionInset.right
