diff --git a/src/components/items_list.rs b/src/components/items_list.rs
index 2acffa0..24e4fb1 100644
--- a/src/components/items_list.rs
+++ b/src/components/items_list.rs
@@ -352,44 +352,32 @@ pub fn ItemsList(
     let (wikidata_suggestions, set_wikidata_suggestions) = create_signal(HashMap::<String, Vec<WikidataSuggestion>>::new());
 
     // Function to fetch Wikidata suggestions
-    let fetch_wikidata_suggestions = {
-        let mut debounce_timers = std::collections::HashMap::<String, gloo_timers::future::TimeoutFuture>::new();
-        Rc::new(move |key: String, query: String| {
-            log!("Fetching suggestions for key: {}, query: {}", key, query);
+    let fetch_wikidata_suggestions = move |key: String, query: String| {
+        log!("Fetching suggestions for key: {}, query: {}", key, query);
+        spawn_local(async move {
+            if query.is_empty() {
+                set_wikidata_suggestions.update(|suggestions| {
+                    suggestions.remove(&key);
+                });
+                return;
+            }
 
-            // Cancel previous timer for this key
-            debounce_timers.remove(&key);
+            let url = format!(
+                "https://www.wikidata.org/w/api.php?action=wbsearchentities&search={}&language=en&limit=5&format=json&origin=*",
+                query
+            );
 
-            // Store new timer
-            let timer = gloo_timers::future::TimeoutFuture::new(300);
-            debounce_timers.insert(key.clone(), timer);
-
-            spawn_local(async move {
-                timer.await;
-                if query.is_empty() {
-                    set_wikidata_suggestions.update(|suggestions| {
-                        suggestions.remove(&key);
-                    });
-                    return;
-                }
-
-                let url = format!(
-                    "https://www.wikidata.org/w/api.php?action=wbsearchentities&search={}&language=en&limit=5&format=json&origin=*",
-                    query
-                );
-
-                match gloo_net::http::Request::get(&url).send().await {
-                    Ok(response) => {
-                        if let Ok(data) = response.json::<WikidataResponse>().await {
-                            set_wikidata_suggestions.update(|suggestions| {
-                                suggestions.insert(key, data.search);
-                            });
-                        }
+            match gloo_net::http::Request::get(&url).send().await {
+                Ok(response) => {
+                    if let Ok(data) = response.json::<WikidataResponse>().await {
+                        set_wikidata_suggestions.update(|suggestions| {
+                            suggestions.insert(key, data.search);
+                        });
                     }
-                    Err(_) => log!("Failed to fetch Wikidata suggestions"),
                 }
-            });
-        })
+                Err(_) => log!("Failed to fetch Wikidata suggestions"),
+            }
+        });
     };
 
     //function to fetch properties
@@ -736,7 +724,6 @@ pub fn ItemsList(
                                 <td>{ property }</td>
                                 {move || items.get().iter().enumerate().map(|(index, item)| {
                                     let update_item_clone = Arc::clone(&update_item_cloned);
-                                    let fetch_wikidata_suggestions_clone = Rc::clone(&fetch_wikidata_suggestions);
                                         view! {
                                             <td>
                                             {match property {
@@ -745,13 +732,8 @@ pub fn ItemsList(
                                                         <EditableCell
                                                             value=item.name.clone()
                                                             on_input=move |value| {
-                                                                let fetch_wiki = Rc::clone(&fetch_wikidata_suggestions_clone);
                                                                 update_item_clone(index, "name", value.clone());
-                                                                // Show suggestions when typing starts
-                                                                set_show_suggestions.update(|suggestions| {
-                                                                    suggestions.insert(format!("name-{}", index), !value.is_empty());
-                                                                });
-                                                                fetch_wiki(format!("name-{}", index), value);
+                                                                fetch_wikidata_suggestions(format!("name-{}", index), value);
                                                             }
                                                             key=Arc::new(format!("name-{}", index))
                                                             focused_cell=focused_cell
@@ -763,12 +745,25 @@ pub fn ItemsList(
                                                                 });
                                                             }))
                                                             on_blur=Some(Callback::new(move |_| {
-                                                                set_show_suggestions.update(|suggestions| {
-                                                                    suggestions.insert(format!("name-{}", index), false);
+                                                                log!("Input blurred, delaying hiding suggestions");
+                                                                spawn_local(async move {
+                                                                    gloo_timers::future::sleep(std::time::Duration::from_millis(500)).await;
+                                                                    log!("Hiding suggestions after delay");
+                                                                    set_show_suggestions.update(|suggestions| {
+                                                                        suggestions.insert(format!("name-{}", index), false);
+                                                                    });
                                                                 });
                                                             }))
                                                             input_type=InputType::Text
                                                         />
+                                                        <button class="search-icon" on:click=move |_| {
+                                                            log!("Search icon clicked, showing suggestions");
+                                                            set_show_suggestions.update(|suggestions| {
+                                                                suggestions.insert(format!("name-{}", index), true);
+                                                            });
+                                                        }> 
+                                                            <i class="fas fa-search"></i> Search Wiki
+                                                        </button>
                                                         {move || {
                                                             if *show_suggestions.get().get(&format!("name-{}", index)).unwrap_or(&false) {
                                                                 log!("Rendering suggestions list");