diff --git a/example/src/App.vue b/example/src/App.vue
index 04e6ea30a2df0afa7e47321c16d3fe1bbf9072fb..12b5bfd0f1fe03f2df57626de7351351f49d0098 100644
--- a/example/src/App.vue
+++ b/example/src/App.vue
@@ -20,6 +20,7 @@ import CircularCard from "./components/CircularCard.vue";
         v-model="ticTacToe1"
         class="tic-tac-toe"
         context="ticTacToe"
+        :validate-element="randomKey"
       >
         <template #item="item">
           <CircularCard>
@@ -27,13 +28,17 @@ import CircularCard from "./components/CircularCard.vue";
           >
         </template>
       </DragGrid>
-      <span> These two are two different grids but are interchangeable! </span>
+      <div>
+        <p>These two are two different grids but we can drag from right to left!</p>
+        <p>Drag items from the container on the right to play on the left.</p>
+      </div>
       <DragGrid
-        :rows="3"
-        :cols="3"
+        :rows="1"
+        :cols="2"
         v-model="ticTacToe2"
         class="tic-tac-toe"
         context="ticTacToe"
+        :pos-validation="blockAllMoving"
       >
         <template #item="item">
           <CircularCard>
@@ -54,6 +59,13 @@ export default {
       if (x === 4 && y === 3) return false;
       return key !== "obj8";
     },
+    blockAllMoving() {
+      return false;
+    },
+    randomKey(element) {
+      if (element.key !== "a" && element !== "b") return;
+      element.key += Math.random().toString(36).replace('0.', '');
+    },
   },
   data() {
     return {
@@ -77,14 +89,12 @@ export default {
       ],
       ticTacToe1: [
         { x: 1, y: 1, w: 1, h: 1, key: "a1", data: {} },
-        { x: 1, y: 3, w: 1, h: 1, key: "a2", data: {} },
-        { x: 2, y: 2, w: 1, h: 1, key: "a3", data: {} },
-        { x: 3, y: 2, w: 1, h: 1, key: "a4", data: {} },
         { x: 3, y: 3, w: 1, h: 1, key: "b1", data: {} },
-        { x: 1, y: 2, w: 1, h: 1, key: "b2", data: {} },
-        { x: 3, y: 1, w: 1, h: 1, key: "b3", data: {} },
       ],
-      ticTacToe2: [{ x: 1, y: 1, w: 1, h: 1, key: "b4", data: {} }],
+      ticTacToe2: [
+          { x: 1, y: 1, w: 1, h: 1, key: "a", data: {} },
+          { x: 2, y: 1, w: 1, h: 1, key: "b", data: {} },
+      ],
     };
   },
 };
diff --git a/src/DragGrid.vue b/src/DragGrid.vue
index 55ae9365a85c3da2865266de0f5c68b05656b23a..2882c87c028a0435886e102041bb579b90c4f3cd 100644
--- a/src/DragGrid.vue
+++ b/src/DragGrid.vue
@@ -58,6 +58,10 @@ export default {
       type: Function,
       required: false,
     },
+    validateElement: {
+      type: Function,
+      required: false,
+    },
     value: {
       type: Array,
       required: true,
@@ -120,7 +124,8 @@ export default {
       this.$refs.highlight.style.display = "none";
       let data = event.dataTransfer.getData("vueDrag/gridItem");
       let element = JSON.parse(data);
-      console.log(element, this.context);
+
+      if (this.validateElement) this.validateElement(element);
 
       if (element.context !== this.context) {
         return;