             index = index_ where region.editable
         {
             if count(editableRegions) == 1 {
-                _regions = [.Text("")]
-                generateTableRegions()
+                submitableRegions = [.Text("")]
+                editableRegions = generateEditableRegions(submitableRegions)
                 regionsTableView.reloadRowsAtIndexPaths([path], withRowAnimation: .Automatic)
             }
-            else if let regionAbove = _regions.safeValue(index - 1),
+            else if let regionAbove = submitableRegions.safeValue(index - 1),
                 regionAboveText = regionAbove.text,
-                regionBelow = _regions.safeValue(index + 1),
+                regionBelow = submitableRegions.safeValue(index + 1),
                 regionBelowText = regionBelow.text
             where regionAbove.isText && regionBelow.isText
             {

    public func submitAction() {
        if canPost() {
            stopEditing()
            delegate?.omnibarSubmitted(_regions)
        }
    }

// MARK: Post logic

    public func canPost() -> Bool {
        for region in _regions {
            if !region.empty {
                return true
            }

                    newText.appendAttributedString(regionBelowText)
                }

                submitableRegions.removeAtIndex(index + 1)
                submitableRegions.removeAtIndex(index)
                submitableRegions[index - 1] = .AttributedText(newText)

                regionsTableView.beginUpdates()
                editableRegions = generateEditableRegions(submitableRegions)
                regionsTableView.reloadRowsAtIndexPaths([NSIndexPath(forItem: path.row - 1, inSection: 0)], withRowAnimation: .None)
                regionsTableView.deleteRowsAtIndexPaths([
                    path,
