             case WordList.topCell.rawValue:
                 switch SCStates.customCategoryWordListState {
                 case .nonEditing:
-                    SCStates.customCategoryWordListState = .addingNewWord
-                    self.reloadView()
+                    self.changeStateTo(state: .addingNewWord, reload: true)
                 default:
                     break
                 }

        switch indexPath.row {
        case WordList.topCell.rawValue:
            // Top cell
            SCStates.customCategoryWordListState = .nonEditing
        default:
            // Word cell
            SCStates.customCategoryWordListState = .nonEditing

            let index = self.indexWithOffset(index: indexPath.row)
            self.customCategory.removeWordAtIndex(index: index)
        }

        self.hasFirstResponder = false
        self.reloadView()
    }


    fileprivate func reloadView() {
        self.tableView.reloadData()
    }

    fileprivate func changeStateTo(state: CustomCategoryWordListState, reload: Bool) {
        SCStates.customCategoryWordListState = state

        if reload {
            self.reloadView()
        }

    }

    fileprivate func dismissView() {
