diff --git a/src/context.rs b/src/context.rs
index c0ca4dfc8090c527b03058e393417838e98472e1..e06dc2d5b6acd71aaa15076bfda89b8afe867cd0 100644
--- a/src/context.rs
+++ b/src/context.rs
@@ -1233,6 +1233,8 @@ impl Plugin for KayakContextPlugin {
             .register_type::<ComputedStyles>()
             .register_type::<KStyle>()
             .register_type::<KChildren>()
+            .register_type::<crate::layout::Rect>()
+            .register_type::<crate::node::Node>()
             .register_type::<WidgetName>()
             .register_type::<StyleProp<Color>>()
             .register_type::<StyleProp<Corner<f32>>>()
diff --git a/src/render/material/pipeline.rs b/src/render/material/pipeline.rs
index d35ffee4b41b46452f36d587de2fb6b02ee2b072..cca8819cfa5beca4257582a64312581804f4e2c2 100644
--- a/src/render/material/pipeline.rs
+++ b/src/render/material/pipeline.rs
@@ -36,7 +36,7 @@ use crate::render::{
     unified::pipeline::{
         queue_quads_inner, DrawUIDraw, ExtractedQuad, ImageBindGroups, PreviousClip, QuadBatch,
         QuadMeta, QuadTypeOffsets, SetUIViewBindGroup, UIQuadType, UnifiedPipeline,
-        UnifiedPipelineKey,
+        UnifiedPipelineKey, PreviousIndex,
     },
 };
 
@@ -319,12 +319,13 @@ pub fn queue_material_ui_quads<M: MaterialUI>(
         &'static UIExtractedView,
     )>,
     mut image_bind_groups: ResMut<ImageBindGroups>,
-    (gpu_images, font_texture_cache, quad_types_offsets, render_materials, mut prev_clip): (
+    (gpu_images, font_texture_cache, quad_types_offsets, render_materials, mut prev_clip, prev_index): (
         Res<RenderAssets<Image>>,
         Res<FontTextureCache>,
         Res<QuadTypeOffsets>,
         Res<RenderMaterialsUI<M>>,
         ResMut<PreviousClip>,
+        Res<PreviousIndex>
     ),
 ) where
     M::Data: PartialEq + Eq + Hash + Clone,
@@ -339,7 +340,7 @@ pub fn queue_material_ui_quads<M: MaterialUI>(
     let mut current_batch_entity = Entity::PLACEHOLDER;
 
     // Vertex buffer indices
-    let mut index = 0;
+    let mut index = prev_index.index;
 
     // let mut previous_clip_rect = Rect::default();
 
diff --git a/src/render/unified/mod.rs b/src/render/unified/mod.rs
index 24967d6d7dd55da721771f041ca5d1a7e519bb63..145a3b8036cb7215009b8206f2abb15a0447bb79 100644
--- a/src/render/unified/mod.rs
+++ b/src/render/unified/mod.rs
@@ -24,7 +24,7 @@ use crate::{
 
 use self::pipeline::{
     queue_quad_types, queue_ui_view_bind_groups, DrawUITransparent, ExtractedQuads,
-    ImageBindGroups, PreviousClip, QuadTypeOffsets,
+    ImageBindGroups, PreviousClip, QuadTypeOffsets, PreviousIndex,
 };
 
 use super::{svg::RenderSvgs, ui_pass::TransparentOpacityUI};
@@ -69,6 +69,7 @@ impl Plugin for UnifiedRenderPlugin {
             .init_resource::<QuadMeta>()
             .init_resource::<RenderSvgs>()
             .init_resource::<PreviousClip>()
+            .init_resource::<PreviousIndex>()
             .add_system(super::svg::extract_svg_asset.in_schedule(ExtractSchedule))
             .add_system(extract_baseline.in_schedule(ExtractSchedule))
             .add_system(queue_quad_types.in_set(RenderSet::Queue))
diff --git a/src/render/unified/pipeline.rs b/src/render/unified/pipeline.rs
index e90c79ac5ec0f7b93d5a28e304b0b76b4ffc7e84..7936c1007312b600086701470221b47ee71b5ba3 100644
--- a/src/render/unified/pipeline.rs
+++ b/src/render/unified/pipeline.rs
@@ -172,7 +172,7 @@ impl FromWorld for UnifiedPipeline {
         let empty_font_texture = FontTextureCache::get_empty(&render_device);
 
         let texture_descriptor = TextureDescriptor {
-            label: Some("font_texture_array"),
+            label: Some("empty_texture"),
             size: Extent3d {
                 width: 1,
                 height: 1,
@@ -192,7 +192,7 @@ impl FromWorld for UnifiedPipeline {
         let sampler = render_device.create_sampler(&sampler_descriptor);
 
         let texture_view = texture.create_view(&TextureViewDescriptor {
-            label: Some("font_texture_array_view"),
+            label: Some("empty_texture_view"),
             format: Some(TextureFormat::Rgba8UnormSrgb),
             dimension: Some(TextureViewDimension::D2),
             aspect: bevy::render::render_resource::TextureAspect::All,
@@ -562,6 +562,11 @@ pub struct PreviousClip {
     pub rect: Rect,
 }
 
+#[derive(Resource, Default)]
+pub struct PreviousIndex {
+    pub index: u32,
+}
+
 #[derive(SystemParam)]
 pub struct QueueQuads<'w, 's> {
     render_svgs: Res<'w, RenderSvgs>,
@@ -591,6 +596,7 @@ pub struct QueueQuads<'w, 's> {
     font_texture_cache: Res<'w, FontTextureCache>,
     quad_type_offsets: Res<'w, QuadTypeOffsets>,
     prev_clip: ResMut<'w, PreviousClip>,
+    prev_index: ResMut<'w, PreviousIndex>,
 }
 
 pub fn queue_quads(queue_quads: QueueQuads) {
@@ -613,6 +619,7 @@ pub fn queue_quads(queue_quads: QueueQuads) {
         font_texture_cache,
         quad_type_offsets,
         mut prev_clip,
+        mut prev_index,
     } = queue_quads;
 
     let extracted_sprite_len = extracted_quads.quads.len();
@@ -690,6 +697,8 @@ pub fn queue_quads(queue_quads: QueueQuads) {
             )
         }
     }
+    
+    prev_index.index = index;
 }
 
 pub fn queue_quads_inner(
@@ -782,6 +791,7 @@ pub fn queue_quads_inner(
                     });
             } else {
                 // Skip unloaded texture.
+                dbg!("Skip texture not loaded in!");
                 return;
             }
         }