             textContentTextView.textAlignment = ((size.height - textContentTextView.font!.lineHeight) < 20) ? .Center : .Left
 
             if ceil(size.width) != textContentTextViewWidth {
-
-                //println("right ceil(size.width): \(ceil(size.width)), textContentLabelWidth: \(textContentLabelWidth)")
-                //println(">>>\(message.textContent)<<<")
-
-                //textContentLabelWidth += YepConfig.ChatCell.magicWidth
-
                 if abs(ceil(size.width) - textContentTextViewWidth) >= YepConfig.ChatCell.magicWidth {
                     textContentTextViewWidth += YepConfig.ChatCell.magicWidth
                 }

        self.mediaTapAction = mediaTapAction

        textContentTextView.text = message.textContent
        //textContentTextView.attributedText = NSAttributedString(string: message.textContent, attributes: textAttributes)

        //textContentTextView.textAlignment = textContentLabelWidth < YepConfig.minMessageTextLabelWidth ? .Center : .Left

        func adjustedTextContentTextViewWidth() -> CGFloat {
            

            return textContentTextViewWidth
        }

        UIView.setAnimationsEnabled(false); do {

            makeUI()

            let textContentTextViewFrame: CGRect
            if let _textContentTextViewFrame = layoutCache.textContentTextViewFrame {
                textContentTextViewFrame = _textContentTextViewFrame

            } else {
                let textContentTextViewWidth = adjustedTextContentTextViewWidth()

                textContentTextViewFrame = CGRect(x: CGRectGetMinX(avatarImageView.frame) - YepConfig.chatCellGapBetweenTextContentLabelAndAvatar() - textContentTextViewWidth, y: 3, width: textContentTextViewWidth, height: bounds.height - 3 * 2 - bottomGap)

                layoutCache.update(textContentTextViewFrame: textContentTextViewFrame)
            }
            
            textContainerView.frame = textContentTextViewFrame

            textContentTextView.frame = textContainerView.bounds
            
            let bubbleBodyFrame = CGRectInset(textContainerView.frame, -12, -3)
            
            bubbleBodyShapeLayer.path = UIBezierPath(roundedRect: bubbleBodyFrame, byRoundingCorners: UIRectCorner.AllCorners, cornerRadii: CGSize(width: YepConfig.ChatCell.bubbleCornerRadius, height: YepConfig.ChatCell.bubbleCornerRadius)).CGPath

            bubbleTailImageView.center = CGPoint(x: CGRectGetMaxX(bubbleBodyFrame), y: CGRectGetMidY(avatarImageView.frame))
            
            dotImageView.center = CGPoint(x: CGRectGetMinX(bubbleBodyFrame) - YepConfig.ChatCell.gapBetweenDotImageViewAndBubble, y: CGRectGetMidY(textContainerView.frame))
        }
        UIView.setAnimationsEnabled(true)

        if let sender = message.fromFriend {
            let userAvatar = UserAvatar(userID: sender.userID, avatarURLString: sender.avatarURLString, avatarStyle: nanoAvatarStyle)
