     }
     
     func didTapOnView(sender: AnyObject) {
-        
+        self.selectLastPossible()
+    }
+    
+    internal func selectLastPossible() {
         if let last = self.items.last where last.text == "" || !isTextValid(last.text) || self.items.count == self.needPreciseNumberOfItems() {
             self.cellForItemAtIndexPath(NSIndexPath(forItem: self.items.count - 1, inSection: 0))?.becomeFirstResponder()
         } else {

            if let cell = self.cellForItemAtIndexPath(NSIndexPath(forItem: self.items.count - 1, inSection: 0)) as? TFBubbleItUpViewCell {
                cell.configureWithItem(self.items[self.items.count - 1])
                cell.resignFirstResponder()
                self.needUpdateLayout(cell)
                completion?()
            }
            
        } else {

    }

    internal func needUpdateLayout(cell: TFBubbleItUpViewCell) {
        self.needUpdateLayout(cell, completion:nil)
    }
    
    func needUpdateLayout(cell: TFBubbleItUpViewCell, completion: (() -> ())?) {
        self.collectionViewLayout.invalidateLayout()
        
        // Update cell frame by its intrinsic size
        var frame = cell.frame
        frame.size.width = cell.intrinsicContentSize().width
        cell.frame = frame
        
        self.invalidateIntrinsicContentSize(completion)
    }
    
    internal func createAndSwitchToNewCell(cell: TFBubbleItUpViewCell) {
