Index: main/grid/display.lisp
===================================================================
--- main/grid/display.lisp	(revision main,55)
+++ main/grid/display.lisp	(revision main,56)
@@ -5,5 +5,4 @@
 (defclass grid ()
   ((data :initarg :data)
-   (header-rows :type (integer 0) :initarg :header-rows)
    (header-columns :type (integer 0) :initarg :header-columns)
    (window :initarg :window)
@@ -11,8 +10,7 @@
    (column-scroll :type (integer 0) :initform 0 :accessor column-scroll)))
 
-(defun make-grid (window data &key (header-rows 0) (header-columns 0))
+(defun make-grid (window data &key (header-columns 0))
   (make-instance 'grid
                  :data data
-                 :header-rows header-rows
                  :header-columns header-columns
                  :window window))
@@ -49,11 +47,10 @@
 
 (defun row-split (grid row)
-  (with-slots (header-rows) grid
-    (saturate header-rows row)))
+  (with-slots (data) grid
+    (saturate (header-rows data) row)))
 
 (defun row-offset (grid row)
-  (with-slots (header-rows) grid
-    (multiple-value-bind (in-header in-data) (row-split grid row)
-      (+ in-header in-data))))
+  (multiple-value-bind (in-header in-data) (row-split grid row)
+    (+ in-header in-data)))
 
 (defun draw-header-corner-item (grid row column)
@@ -87,13 +84,14 @@
 
 (defun draw-column (grid column x)
-  (with-slots (data header-rows window row-scroll) grid
-    (dotimes (i header-rows)
-      (draw-cell grid i column i x))
-    (dotimes (i (- (size window) header-rows))
-      (let* ((y (+ i header-rows))
-             (row (+ y row-scroll)))
-        (when (>= row (rows data))
-          (return))
-        (draw-cell grid row column y x)))))
+  (with-slots (data window row-scroll) grid
+    (let ((header-rows (header-rows data)))
+      (dotimes (i header-rows)
+        (draw-cell grid i column i x))
+      (dotimes (i (- (size window) header-rows))
+        (let* ((y (+ i header-rows))
+               (row (+ y row-scroll)))
+          (when (>= row (rows data))
+            (return))
+          (draw-cell grid row column y x))))))
 
 (defun draw (grid)
@@ -113,5 +111,5 @@
 
 (defmethod max-row-scroll ((grid grid))
-  (with-slots (data header-rows window) grid
+  (with-slots (data window) grid
     (max 0 (- (rows data) (size window)))))
 
