         close()
     }
     
-    private func shouldHaveRowsInFirstSection() -> Bool {
-        return showPin ? (rowsInFirstSection == 1) : (rowsInFirstSection == 0 && !hideForceNormalizationCell)
+    private func handleFirstSection() {
+        var isEqual = false
+        var insertRow = false
+        var deleteRow = false
+        
+        for address in results {
+            if !forceNormalization {
+                let searchText = searchController.searchBar.textField?.text?.trimmingCharacters(in: whitespace).uppercased()
+                
+                if searchText == address.address.replacingOccurrences(of: addressSufix, with: "") {
+                    isEqual = true
+                    
+                    if showPin ? (rowsInFirstSection == 2) : (rowsInFirstSection == 1) {
+                        deleteRow = !hideForceNormalizationCell
+                    }
+                }
+            }
+        }
+        
+        if !forceNormalization {
+            insertRow = !isEqual && !deleteRow && (showPin ? (rowsInFirstSection == 1) : (rowsInFirstSection == 0 && !hideForceNormalizationCell))
+        }
+        
+        if insertRow || deleteRow {
+            DispatchQueue.main.async { [unowned self] in
+                self.table.reloadSections(IndexSet(integer: 1), with: .none)
+                
+                if insertRow {
+                    self.hideForceNormalizationCell = false
+                    self.table.insertRows(at: [IndexPath(row: self.rowsInFirstSection - 1, section: 0)], with: .automatic)
+                }
+                else {
+                    self.hideForceNormalizationCell = true
+                    self.table.deleteRows(at: [IndexPath(row: self.rowsInFirstSection - 1, section: 0)], with: .automatic)
+                }
+            }
+        }
+        else {
+            reloadTable()
+        }
     }
     
     @objc private func keyboardWillShow(_ notification: Notification) {

            requestClosure(request, done)
        })

        searchController.searchBar
            .rx.text
            .debounce(0.5, scheduler: MainScheduler.instance)
            .filter(filterSearch)
            .flatMapLatest(makeNormalizationRequest)
            .subscribe(onNext: handleResults, onError: handleError)
            .addDisposableTo(disposeBag)

        _ = table
            .rx.itemSelected
            .subscribe(onNext: handleSelectedItem)
    }

    private func setInitialValue() {

        return makeRequest(request: request, provider: epokProvider)
    }
    
    private func makeEpokGetObjectContentRequests(_ objects: [String]?) -> [Observable<Any>] {
        guard let ids = objects else { return [] }
        
        var requests: [Observable<Any>] = []
        
        for id in ids {
            let request = makeRequest(request: USIGEpokAPI.getObjectContent(id: id), provider: epokProvider)
            
            requests.append(request)
        }
        
        return requests
    }
    
    private func makeNormalizationRequest(_ query: String?) -> Observable<Any> {
