diff --git a/Cargo.toml b/Cargo.toml
index 84ee1062615f66fc75ac87cf113bc45182d3e193..43c603bc2d3f02490f7a54ace881f80ff3e614f7 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,11 +10,14 @@ default = ["serialise"]
 serialise = ["dep:serde"]
 
 [dependencies]
-bevy = "0.9.1"
+bevy = "0.10.0"
 web_instant = "0.3.0"
 num-traits = "0.2.15"
-micro_musicbox = "0.5.1"
+micro_musicbox = "0.6.2"
 serde = { version = "1.0.152", optional = true }
 
-kayak_ui = { rev = "910a00cdd3857cc7515f153580afd057de0abaf0", git = "https://github.com/StarArawn/kayak_ui" }
-kayak_font = { rev = "910a00cdd3857cc7515f153580afd057de0abaf0", git = "https://github.com/StarArawn/kayak_ui.git" }
\ No newline at end of file
+kayak_ui = { git = "https://github.com/NiseVoid/kayak_ui.git", rev = "50bdb6098ad8a736e9c1faf8fe089670238eb4c3" }
+kayak_font = { git = "https://github.com/NiseVoid/kayak_ui.git", rev = "50bdb6098ad8a736e9c1faf8fe089670238eb4c3" }
+
+#kayak_ui = { rev = "910a00cdd3857cc7515f153580afd057de0abaf0", git = "https://github.com/StarArawn/kayak_ui" }
+#kayak_font = { rev = "910a00cdd3857cc7515f153580afd057de0abaf0", git = "https://github.com/StarArawn/kayak_ui.git" }
\ No newline at end of file
diff --git a/src/components/a_text_box.rs b/src/components/a_text_box.rs
index e8766ffcf72a4896755cfdc857087c433b082ce7..8344eeaff38619bd2b215e1d79ba7110ba606913 100644
--- a/src/components/a_text_box.rs
+++ b/src/components/a_text_box.rs
@@ -213,7 +213,7 @@ pub fn render_text_box_widget(
 				move |In((event_dispatcher_context, _, mut event, _entity)): In<(
 					EventDispatcherContext,
 					WidgetState,
-					Event,
+					KEvent,
 					Entity,
 				)>,
 				      font_assets: Res<Assets<KayakFont>>,
diff --git a/src/components/button.rs b/src/components/button.rs
index 0f8616baf53ce6f32304f3ae520c5002a2c228f2..b590abe3f6d698d779a3141c97ebee0e8611b05e 100644
--- a/src/components/button.rs
+++ b/src/components/button.rs
@@ -94,7 +94,7 @@ pub fn render_button_widget(
 				move |In((event_dispatcher_context, _, mut event, _)): In<(
 					EventDispatcherContext,
 					WidgetState,
-					Event,
+					KEvent,
 					Entity,
 				)>,
 				      mut params: ParamSet<(
diff --git a/src/components/image_button.rs b/src/components/image_button.rs
index 0a6cf9682fbdf25a59cc39b6577ab6b479e8fb94..52f71b69b21faf5c4c4961026d1bfd52f716524f 100644
--- a/src/components/image_button.rs
+++ b/src/components/image_button.rs
@@ -78,7 +78,7 @@
 // 				move |In((event_dispatcher_context, _, mut event, _)): In<(
 // 					EventDispatcherContext,
 // 					WidgetState,
-// 					Event,
+// 					KEvent,
 // 					Entity,
 // 				)>,
 // 				      mut params: ParamSet<(
diff --git a/src/theme.rs b/src/theme.rs
index dcb918610029f3c9b70abb80fac9b5aea4df04ff..04fcc6214bd0f8ca6dc200c4f1bd53986f8a7765 100644
--- a/src/theme.rs
+++ b/src/theme.rs
@@ -56,14 +56,12 @@ impl ThemeMapping {
 }
 
 #[derive(SystemParam)]
-pub struct ThemeProvider<'w, 's> {
+pub struct ThemeProvider<'w> {
 	pub font_mapping: ResMut<'w, FontMapping>,
 	pub theme_mapping: ResMut<'w, ThemeMapping>,
-	#[system_param(ignore)]
-	_p: PhantomData<&'s ()>,
 }
 
-impl<'w, 's> ThemeProvider<'w, 's> {
+impl<'w> ThemeProvider<'w> {
 	pub fn set_default_font(&mut self, handle: Handle<KayakFont>) {
 		self.font_mapping.set_default(handle);
 		self.theme_mapping.font_names.insert(
diff --git a/src/utilities.rs b/src/utilities.rs
index 6b1afffa63f75c8b654bac65229e7b67300ff333..f71e711d20d4915a754e05ad7c9b3de3ecdaf33a 100644
--- a/src/utilities.rs
+++ b/src/utilities.rs
@@ -3,11 +3,12 @@ use std::marker::PhantomData;
 use bevy::asset::Assets;
 use bevy::ecs::system::SystemParam;
 use bevy::prelude::{
-	Commands, Component, DespawnRecursiveExt, Entity, In, ParamSet, Query, Res, Resource, With,
+	Commands, Component, DespawnRecursiveExt, DetectChanges, Entity, In, ParamSet, Query, Res,
+	Resource, With,
 };
 use kayak_font::{Alignment, KayakFont, TextProperties};
 use kayak_ui::prelude::{
-	Event, EventDispatcherContext, EventType, FontMapping, KayakRootContext, KayakWidgetContext,
+	EventDispatcherContext, EventType, FontMapping, KEvent, KayakRootContext, KayakWidgetContext,
 	OnEvent, WidgetParam, WidgetState,
 };
 use micro_musicbox::prelude::MusicBox;
@@ -264,7 +265,7 @@ pub mod context {
 	}
 }
 
-pub type OnEventParams = In<(EventDispatcherContext, WidgetState, Event, Entity)>;
+pub type OnEventParams = In<(EventDispatcherContext, WidgetState, KEvent, Entity)>;
 
 #[macro_export]
 macro_rules! on_button_click {
@@ -278,7 +279,7 @@ macro_rules! on_button_click {
 			)): $crate::bevy::prelude::In<(
 				$crate::kayak_ui::prelude::EventDispatcherContext,
 				$crate::kayak_ui::prelude::WidgetState,
-				$crate::kayak_ui::prelude::Event,
+				$crate::kayak_ui::prelude::KEvent,
 				$crate::bevy::prelude::Entity,
 			)>,
 			      params: $param_type| {
@@ -319,7 +320,7 @@ where
 		move |In((event_dispatcher_context, _, mut event, _)): In<(
 			EventDispatcherContext,
 			WidgetState,
-			Event,
+			KEvent,
 			Entity,
 		)>,
 		      mut params: ParamSet<(Query<&Props>, Query<&mut State>, MusicBox<ThemeMapping>)>| {