         chatView.collectionView.delegate = self
         chatView.collectionView.dataSource = self
         
-        ChatOtherMessageCell.register(in: chatView.collectionView)
-        ChatMyMessageCell.register(in: chatView.collectionView)
+        ChatMessageCell.register(in: chatView.collectionView)
         
-        otherMessageCellPrototype.frame.size.width = size.width
-        myMessageCellPrototype.frame.size.width = size.width
+        messageCellPrototype.frame.size.width = size.width
         
         view = chatView
     }

    }
    
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell: UICollectionViewCell
        let item = messages[indexPath.row]
        
        if item.isMe {
            let messageCell = ChatMyMessageCell.dequeue(from: collectionView, at: indexPath)
            messageCell.messageLabel.text = item.message
            cell = messageCell
            
        } else {
            let messageCell = ChatOtherMessageCell.dequeue(from: collectionView, at: indexPath)
            messageCell.messageLabel.text = item.message
            cell = messageCell
        }
        
        return cell
    }
}


    var chatView: ChatView!
    
    lazy var messageCellPrototype = ChatMessageCell()
    lazy var messages: [ChatDisplayData] = generateRandomChatDisplayItems()
    
    override func loadView() {
