         avatarImageView.center = CGPoint(x: YepConfig.chatCellGapBetweenWallAndAvatar() + halfAvatarSize, y: halfAvatarSize + topOffset)
     }
 
-    override func awakeFromNib() {
-        super.awakeFromNib()
+    override init(frame: CGRect) {
+        super.init(frame: frame)
+
+        contentView.addSubview(messageImageView)
+        contentView.addSubview(borderImageView)
+        contentView.addSubview(loadingProgressView)
 
         UIView.performWithoutAnimation { [weak self] in
             self?.makeUI()
         }
-
-        messageImageView.tintColor = UIColor.leftBubbleTintColor()
-        messageImageView.maskView = messageImageMaskImageView
 
         messageImageView.userInteractionEnabled = true
         let tap = UITapGestureRecognizer(target: self, action: "tapMediaView")
         messageImageView.addGestureRecognizer(tap)
-        
+
         prepareForMenuAction = { otherGesturesEnabled in
             tap.enabled = otherGesturesEnabled
         }
+    }
+
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
     }
 
     func tapMediaView() {


class ChatLeftImageCell: ChatBaseCell {

    @IBOutlet weak var messageImageView: UIImageView!
    @IBOutlet weak var borderImageView: UIImageView!

    @IBOutlet weak var loadingProgressView: MessageLoadingProgressView!

    typealias MediaTapAction = () -> Void
    var mediaTapAction: MediaTapAction?

    }()

    func makeUI() {

        let halfAvatarSize = YepConfig.chatCellAvatarSize() / 2
        
