diff --git a/src/app.rs b/src/app.rs
index 82836ba..8edd2f8 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -1,16 +1,13 @@
 use leptos::*;
-use leptos_meta::*;
-use leptos_router::*;
 use crate::components::{item_form::ItemForm, items_list::ItemsList};
 use crate::models::item::Item;
-use std::sync::Arc;
 
 #[component]
 pub fn App() -> impl IntoView {
-    let items = create_signal(Vec::<Item>::new());
+    let (items_signal, set_items) = create_signal(Vec::<Item>::new());
 
     let add_item = move |name: String, description: String, tags: Vec<(String, String)>| {
-        items.update(|items| {
+        set_items;(|mut items: Vec<Item>| {
             items.push(Item {
                 id: uuid::Uuid::new_v4().to_string(),
                 name,
@@ -23,8 +20,8 @@ pub fn App() -> impl IntoView {
     view! {
         <div>
             <h1>CompareWare</h1>
-            <ItemForm on_submit=add_item />
-            <ItemsList items=items.get().clone() />
+            <ItemForm on_submit=Box::new(add_item) />
+            <ItemsList items={items_signal.get().clone()} />
         </div>
     }
 }
\ No newline at end of file