                                 
                                 self?.playMessageAudioWithMessage(message)
                                 
-                                }, collectionView: collectionView, indexPath: indexPath)
+                            }, collectionView: collectionView, indexPath: indexPath)
                         }
                         
                     case MessageMediaType.Video.rawValue:
                         
                         if let cell = cell as? ChatRightVideoCell {
                             
-                            cell.configureWithMessage(message, messageImagePreferredWidth: self.messageImagePreferredWidth, messageImagePreferredHeight: self.messageImagePreferredHeight, messageImagePreferredAspectRatio: self.messageImagePreferredAspectRatio, mediaTapAction: { [weak self] in
+                            cell.configureWithMessage(message, messageImagePreferredWidth:messageImagePreferredWidth, messageImagePreferredHeight: messageImagePreferredHeight, messageImagePreferredAspectRatio: messageImagePreferredAspectRatio, mediaTapAction: { [weak self] in
                                 
                                 if message.sendState == MessageSendState.Failed.rawValue {
                                     

                    case MessageMediaType.Image.rawValue:

                        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(chatLeftImageCellIdentifier, forIndexPath: indexPath) as! ChatLeftImageCell

                        return cell

                    case MessageMediaType.Audio.rawValue:

                        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(chatLeftAudioCellIdentifier, forIndexPath: indexPath) as! ChatLeftAudioCell

                        return cell

                    case MessageMediaType.Video.rawValue:

                        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(chatLeftVideoCellIdentifier, forIndexPath: indexPath) as! ChatLeftVideoCell

                        return cell

                    case MessageMediaType.Location.rawValue:

                        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(chatLeftLocationCellIdentifier, forIndexPath: indexPath) as! ChatLeftLocationCell

                        return cell

                    default:

                        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(chatLeftTextCellIdentifier, forIndexPath: indexPath) as! ChatLeftTextCell

                        return cell
                    }


                                    self?.performSegueWithIdentifier("showMessageMedia", sender: message)
                                }
                                
                            }, collectionView: collectionView, indexPath: indexPath)
                        }
                        
                    case MessageMediaType.Audio.rawValue:
                        
                        if let cell = cell as? ChatRightAudioCell {
                            
                            let audioPlayedDuration = audioPlayedDurationOfMessage(message)
                            
                            cell.configureWithMessage(message, audioPlayedDuration: audioPlayedDuration, audioBubbleTapAction: { [weak self] in
                                
