Index: main/grid/hash-data.lisp
===================================================================
--- main/grid/hash-data.lisp	(revision main,60)
+++ main/grid/hash-data.lisp	(revision main,60)
@@ -0,0 +1,21 @@
+(in-package #:grid)
+
+
+
+(defclass hash-per-row-grid-data ()
+  ((row-tables :type (vector hash-table) :initarg :row-tables)
+   (keys :type vector :initarg :keys)))
+
+(defmethod rows ((d hash-per-row-grid-data))
+  (with-slots (row-tables) d
+    (length row-tables)))
+
+(defmethod columns ((d hash-per-row-grid-data))
+  (with-slots (keys) d
+    (length keys)))
+
+(defmethod item ((d hash-per-row-grid-data) row column)
+  (with-slots (row-tables keys) d
+    (let ((data (aref row-tables row))
+          (key (aref keys column)))
+      (gethash key data))))
