diff --git a/assets/sprites/field.png b/assets/sprites/field.png
index 87a4c09..1eb0d6f 100644
Binary files a/assets/sprites/field.png and b/assets/sprites/field.png differ
diff --git a/assets/sprites/field.png~ b/assets/sprites/field.png~
new file mode 100644
index 0000000..87a4c09
Binary files /dev/null and b/assets/sprites/field.png~ differ
diff --git a/src/grid.rs b/src/grid.rs
index b44db40..dbd5e8c 100644
--- a/src/grid.rs
+++ b/src/grid.rs
@@ -1,3 +1,70 @@
use bevy::prelude::*;
+use crate::{animation::transform::AnimatedTransform, card::drag::MousePosition};
+
pub struct GridPlugin;
+
+impl Plugin for GridPlugin {
+ fn build(&self, app: &mut App) {
+ app.add_systems(Startup, setup_grid)
+ .add_systems(Update, snap_grid_elements);
+ }
+}
+
+#[derive(Component)]
+struct Grid {
+ bounds: Rect,
+ columns: usize,
+ rows: usize,
+ elements: Vec