diff --git a/Cargo.toml b/Cargo.toml
index d5ff2525e800d5425824e5f5fcb29458076cf671..b80a8c08acfd987919d42dd9096eb53c76e4cc81 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,7 +10,7 @@ members = ["kayak_ui_macros"]
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
 [dependencies]
-bevy = { git = "https://github.com/bevyengine/bevy", rev="4bcf49b2ea6fb5f42388b0e15d204020053ee5c7" }
+bevy = { git = "https://github.com/bevyengine/bevy", rev="1914a3f288a812667f735ee9e7806cf1560dacc0" }
 bytemuck = "1.12"
 dashmap = "5.4"
 kayak_font = { path = "./kayak_font" }
diff --git a/README.md b/README.md
index 83cadbbda4595374917bf3e8fb00f845d2b65c72..333eb1800c9401160d66e478ac4f3a323dd75a90 100644
--- a/README.md
+++ b/README.md
@@ -45,7 +45,7 @@ Use bevy main! Make sure the version of Kayak you are using uses the same versio
 
 ```rust
 kayak_ui = { git="https://github.com/StarArawn/kayak_ui", rev="{INSERT_COMMIT_SHA_HERE}" }
-bevy = { git = "https://github.com/bevyengine/bevy", rev="4bcf49b2ea6fb5f42388b0e15d204020053ee5c7" }
+bevy = { git = "https://github.com/bevyengine/bevy", rev="1914a3f288a812667f735ee9e7806cf1560dacc0" }
 ```
 
 ## Check out the book!
diff --git a/kayak_font/Cargo.toml b/kayak_font/Cargo.toml
index 03ee9c3e382bae688eb059301d93fd155d79bbb1..1ec53adcb90cf9eabf638ddee98b250676e9baa9 100644
--- a/kayak_font/Cargo.toml
+++ b/kayak_font/Cargo.toml
@@ -15,8 +15,8 @@ unicode-segmentation = "1.10.0"
 # Provides UAX #14 line break segmentation
 xi-unicode = "0.3"
 
-bevy = { git = "https://github.com/bevyengine/bevy", rev="4bcf49b2ea6fb5f42388b0e15d204020053ee5c7", optional = true, default-features = false, features = ["bevy_asset", "bevy_render", "bevy_core_pipeline"] }
+bevy = { git = "https://github.com/bevyengine/bevy", rev="1914a3f288a812667f735ee9e7806cf1560dacc0", optional = true, default-features = false, features = ["bevy_asset", "bevy_render", "bevy_core_pipeline"] }
 
 [dev-dependencies]
-bevy = { git = "https://github.com/bevyengine/bevy", rev="4bcf49b2ea6fb5f42388b0e15d204020053ee5c7" }
+bevy = { git = "https://github.com/bevyengine/bevy", rev="1914a3f288a812667f735ee9e7806cf1560dacc0" }
 bytemuck = "1.12.0"
diff --git a/kayak_ui_macros/Cargo.toml b/kayak_ui_macros/Cargo.toml
index d0438b1bbbfe2408d5fc04963608808c5b66ed05..84d689fd9cd4bbba2103e62de1473e01a233b4bb 100644
--- a/kayak_ui_macros/Cargo.toml
+++ b/kayak_ui_macros/Cargo.toml
@@ -17,4 +17,4 @@ proc-macro-crate = "1.1"
 [dev-dependencies]
 kayak_ui = { path = "../", version = "0.1.0" }
 pretty_assertions = "1.2.1"
-bevy = { git = "https://github.com/bevyengine/bevy", rev="4bcf49b2ea6fb5f42388b0e15d204020053ee5c7" }
\ No newline at end of file
+bevy = { git = "https://github.com/bevyengine/bevy", rev="1914a3f288a812667f735ee9e7806cf1560dacc0" }
\ No newline at end of file
diff --git a/src/calculate_nodes.rs b/src/calculate_nodes.rs
index 31c6d07b6c806cdacfe8b3c61f64245b56602ae4..4f039412e7c942830f97384a9855c9a7a1579a54 100644
--- a/src/calculate_nodes.rs
+++ b/src/calculate_nodes.rs
@@ -286,10 +286,10 @@ fn create_primitive(
                                 styles.height = StyleProp::Value(Units::Pixels(measurement.1));
                             }
                         } else {
-                            log::trace!("no layout for: {:?}", parent_id.0.id());
+                            log::trace!("no layout for: {:?}", parent_id.0.index());
                         }
                     } else {
-                        log::trace!("No parent found for: {:?}", id.0.id());
+                        log::trace!("No parent found for: {:?}", id.0.index());
                     }
                 }
             }
diff --git a/src/context.rs b/src/context.rs
index 777cd360bd896da5475946946051f1cfe0b173ee..0542553c21c5d632c024155da8bd2100cfe3cebf 100644
--- a/src/context.rs
+++ b/src/context.rs
@@ -210,7 +210,7 @@ impl KayakRootContext {
             let children = self.get_children_ordered(parent_entity);
             let child = children.get(self.get_and_add_index(parent_entity)).cloned();
             if let Some(child) = child {
-                log::trace!("Reusing widget entity {:?}!", child.id());
+                log::trace!("Reusing widget entity {:?}!", child.index());
                 entity = Some(commands.get_or_spawn(child).id());
             }
         }
@@ -220,7 +220,7 @@ impl KayakRootContext {
             entity = Some(commands.spawn_empty().id());
             log::trace!(
                 "Spawning new widget with entity {:?}!",
-                entity.unwrap().id()
+                entity.unwrap().index()
             );
             // We need to add it to the ordered tree
             if let Ok(mut tree) = self.order_tree.try_write() {
@@ -343,7 +343,7 @@ fn recurse_node_tree_to_build_primitives(
             log::warn!(
                 "No layout for node: {}-{}",
                 widget_names.get(current_node.0).unwrap().0,
-                current_node.0.id()
+                current_node.0.index()
             );
             Rect::default()
         };
@@ -353,7 +353,7 @@ fn recurse_node_tree_to_build_primitives(
                 log::trace!(
                     "Text node: {}-{} is equal to: {}",
                     widget_names.get(current_node.0).unwrap().0,
-                    current_node.0.id(),
+                    current_node.0.index(),
                     content,
                 );
             }
@@ -361,7 +361,7 @@ fn recurse_node_tree_to_build_primitives(
                 log::trace!(
                     "Empty node: {}-{}",
                     widget_names.get(current_node.0).unwrap().0,
-                    current_node.0.id(),
+                    current_node.0.index(),
                 );
             }
             _ => {}
@@ -411,7 +411,7 @@ fn recurse_node_tree_to_build_primitives(
             log::trace!(
                 "No children for node: {}-{}",
                 widget_names.get(current_node.0).unwrap().0,
-                current_node.0.id()
+                current_node.0.index()
             );
         }
     } else {
@@ -419,7 +419,7 @@ fn recurse_node_tree_to_build_primitives(
             "No render node: {}-{} > {}-{}",
             node_tree
                 .get_parent(current_node)
-                .and_then(|v| Some(v.0.id() as i32))
+                .and_then(|v| Some(v.0.index() as i32))
                 .unwrap_or(-1),
             widget_names
                 .get(
@@ -434,7 +434,7 @@ fn recurse_node_tree_to_build_primitives(
                 .get(current_node.0)
                 .and_then(|v| Ok(v.0.clone()))
                 .unwrap_or("None".into()),
-            current_node.0.id()
+            current_node.0.index()
         );
     }
 
@@ -603,9 +603,9 @@ fn update_widgets(
                                         // had_removal = true;
                                         log::trace!(
                                             "Removing entity! {:?} inside of: {}-{:?}",
-                                            child.0.id(),
+                                            child.0.index(),
                                             widget_name,
-                                            entity.0.id()
+                                            entity.0.index()
                                         );
                                         order_tree.remove(child);
                                     }
@@ -761,11 +761,11 @@ fn update_widget(
         log::trace!(
             "Re-rendering: {:?} {:?}, parent: {:?}",
             &widget_type,
-            entity.0.id(),
+            entity.0.index(),
             tree.parent(entity)
                 .unwrap_or(WrappedIndex(Entity::from_raw(99999)))
                 .0
-                .id()
+                .index()
         );
     }
     {
@@ -776,7 +776,7 @@ fn update_widget(
                 indices.insert(entity.0, 0);
                 log::trace!(
                     "Advancing children for: {:?} by: {:?}",
-                    entity.0.id(),
+                    entity.0.index(),
                     child_count
                 );
             }
diff --git a/src/tree.rs b/src/tree.rs
index 5be5caf30633d70256452fb3300b0fdd1a34d2c4..4a42130499cbe4f666c61b6440a521d399ff276d 100644
--- a/src/tree.rs
+++ b/src/tree.rs
@@ -587,7 +587,7 @@ impl Tree {
 
         for (id, _node, _parent_node, _change) in changes.changes.iter() {
             if let Some(child) = children_a.get(*id) {
-                if child.0.id() == 0 {
+                if child.0.index() == 0 {
                     children_a.remove(*id);
                 }
             }
@@ -659,7 +659,7 @@ impl Tree {
 
     fn dump_at_internal(&self, start_index: WrappedIndex, depth: usize) {
         let indent = "  ".repeat(depth);
-        let raw_parts = start_index.0.id();
+        let raw_parts = start_index.0.index();
         println!("{} [{}]", indent, raw_parts,);
 
         if let Some(children) = self.children.get(&start_index) {
diff --git a/src/widget.rs b/src/widget.rs
index f6e23819ebcd1c94932cb7c8851b9c8f91be86b9..86191118c2f2264a659e645440a38617fc591f20 100644
--- a/src/widget.rs
+++ b/src/widget.rs
@@ -42,7 +42,7 @@ pub fn widget_update_with_context<
                 "Entity context: {} has changed! {}-{}",
                 std::any::type_name::<Context>(),
                 widget_param.widget_names.get(entity).unwrap().0,
-                entity.id()
+                entity.index()
             );
             return true;
         }
@@ -75,7 +75,7 @@ impl<'w, 's, Props: PartialEq + Component, State: PartialEq + Component>
             log::trace!(
                 "Entity was mounted! {}-{}",
                 self.widget_names.get(current_entity).unwrap().0,
-                current_entity.id()
+                current_entity.index()
             );
             return true;
         }
@@ -89,7 +89,7 @@ impl<'w, 's, Props: PartialEq + Component, State: PartialEq + Component>
                 log::trace!(
                     "Entity styles have changed! {}-{}",
                     self.widget_names.get(current_entity).unwrap().0,
-                    current_entity.id()
+                    current_entity.index()
                 );
                 return true;
             }
@@ -105,7 +105,7 @@ impl<'w, 's, Props: PartialEq + Component, State: PartialEq + Component>
                 log::trace!(
                     "Entity children have changed! {}-{}",
                     self.widget_names.get(current_entity).unwrap().0,
-                    current_entity.id()
+                    current_entity.index()
                 );
                 return true;
             }
@@ -120,7 +120,7 @@ impl<'w, 's, Props: PartialEq + Component, State: PartialEq + Component>
                 log::trace!(
                     "Entity props have changed! {}-{}",
                     self.widget_names.get(current_entity).unwrap().0,
-                    current_entity.id()
+                    current_entity.index()
                 );
                 return true;
             }
diff --git a/src/widget_context.rs b/src/widget_context.rs
index 28c5839e311cb4b059c8c8b766824f133245fbfb..393266e087fc64ed88f4209032e8a2765617712c 100644
--- a/src/widget_context.rs
+++ b/src/widget_context.rs
@@ -180,8 +180,8 @@ impl KayakWidgetContext {
             if let Some(child) = child {
                 log::trace!(
                     "Reusing widget entity {:?} with parent: {:?}!",
-                    child.id(),
-                    parent_id.unwrap().id()
+                    child.index(),
+                    parent_id.unwrap().index()
                 );
                 entity = Some(commands.get_or_spawn(child).id());
             }
@@ -192,7 +192,7 @@ impl KayakWidgetContext {
             entity = Some(commands.spawn_empty().id());
             log::trace!(
                 "Spawning new widget with entity {:?}!",
-                entity.unwrap().id()
+                entity.unwrap().index()
             );
 
             // We need to add it to the ordered tree
diff --git a/src/widgets/window_context_provider.rs b/src/widgets/window_context_provider.rs
index 6e424c55db0b5540fb448c1d32c0b2e6fb0b6b01..216a597ab23d141e0cc4c33ad652a6ee2936360f 100644
--- a/src/widgets/window_context_provider.rs
+++ b/src/widgets/window_context_provider.rs
@@ -17,7 +17,7 @@ impl WindowContext {
     }
 
     pub fn shift_to_top(&mut self, entity: Entity) {
-        if let Some(index) = self.order.iter().position(|e| e.id() == entity.id()) {
+        if let Some(index) = self.order.iter().position(|e| *e == entity) {
             self.order.remove(index);
             self.order.push(entity);
         }
@@ -33,7 +33,7 @@ impl WindowContext {
     }
 
     pub fn get_or_add(&mut self, entity: Entity) -> usize {
-        if self.order.iter().any(|e| e.id() == entity.id()) {
+        if self.order.iter().any(|e| *e == entity) {
             self.get(entity)
         } else {
             self.add(entity, 0);