diff --git a/Cargo.toml b/Cargo.toml
index 76fcb026c97358846795ac836a94d6a282151171..dcb50af23edfffe386b5c0bae7d2602d7a7b8404 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -16,8 +16,8 @@ num-traits = "0.2.15"
 micro_musicbox = "0.6.2"
 serde = { version = "1.0.152", optional = true }
 
-kayak_ui = { git = "https://lab.lcr.gr/microhacks/bevy-forks/kayak-ui", rev = "0aabcddb1aba88cea428e964500aea2d83ab6eb1" }
-kayak_font = { git = "https://lab.lcr.gr/microhacks/bevy-forks/kayak-ui", rev = "0aabcddb1aba88cea428e964500aea2d83ab6eb1" }
+kayak_ui = { git = "https://github.com/StarArawn/kayak_ui", rev = "ca2048963dcfc3a87ad36f7686e1d8f9c81f4e36" }
+kayak_font = { git = "https://github.com/StarArawn/kayak_ui", rev = "ca2048963dcfc3a87ad36f7686e1d8f9c81f4e36" }
 
 #kayak_ui = { path = "../../OSS/kayak_ui" }
 #kayak_font = { path = "../../OSS/kayak_ui/kayak_font" }
diff --git a/src/lib.rs b/src/lib.rs
index f4b6077c83a24b9fb780b1e75599112241a46daf..e0946ca2c4120f1072ca63cc73edbce0e4f63a4b 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -37,7 +37,7 @@ pub use styles::{edge_px, pct, px, stretch, val_auto, value};
 pub use theme::{tokens, ThemeMapping, ThemeProvider};
 pub use types::IconContent;
 pub use utilities::{
-	button_logic, context, remove_root_ui, remove_tagged_root, widget_update_with_resource,
+	button_logic, context, remove_root_ui, remove_tagged_context, widget_update_with_resource,
 	EmptyProps, HasDisabledState, HasHoveredState, HasPressedState, StateUIRoot, TextSizer,
 };
 
diff --git a/src/utilities.rs b/src/utilities.rs
index f71e711d20d4915a754e05ad7c9b3de3ecdaf33a..a97ac897b5d1ee6ab5d16ad82d564de3e21f47f1 100644
--- a/src/utilities.rs
+++ b/src/utilities.rs
@@ -11,6 +11,7 @@ use kayak_ui::prelude::{
 	EventDispatcherContext, EventType, FontMapping, KEvent, KayakRootContext, KayakWidgetContext,
 	OnEvent, WidgetParam, WidgetState,
 };
+use kayak_ui::widgets::KayakApp;
 use micro_musicbox::prelude::MusicBox;
 
 use crate::theme::ThemeMapping;
@@ -194,16 +195,13 @@ pub fn widget_update_with_resource<
 #[derive(Component)]
 pub struct StateUIRoot;
 
-pub fn remove_root_ui(
-	mut commands: Commands,
-	query: Query<Entity, (With<KayakRootContext>, With<StateUIRoot>)>,
-) {
+pub fn remove_root_ui(mut commands: Commands, query: Query<Entity, With<StateUIRoot>>) {
 	for entity in &query {
 		commands.entity(entity).despawn_recursive();
 	}
 }
 
-pub fn remove_tagged_root<T: Component>(
+pub fn remove_tagged_context<T: Component>(
 	mut commands: Commands,
 	query: Query<Entity, (With<KayakRootContext>, With<T>)>,
 ) {
@@ -213,6 +211,7 @@ pub fn remove_tagged_root<T: Component>(
 }
 
 pub mod context {
+	use bevy::prelude::Entity;
 	use kayak_ui::prelude::{EmptyState, KayakRootContext};
 	use kayak_ui::widgets::KayakWidgetsContextPlugin;
 	use kayak_ui::KayakUIPlugin;
@@ -220,8 +219,8 @@ pub mod context {
 	use crate::components::*;
 	use crate::register_widget;
 
-	pub fn create_root_context() -> KayakRootContext {
-		let mut widget_context = KayakRootContext::new();
+	pub fn create_root_context(cam: Entity) -> KayakRootContext {
+		let mut widget_context = KayakRootContext::new(cam);
 		widget_context.add_plugin(KayakWidgetsContextPlugin);
 		widget_context.add_plugin(AdventWidgetsPlugin);
 		widget_context