   }
 
   fileprivate func markForRenderWholeView() {
-    self.needsDisplay = true
+    self.rectsMarkedForRender.append(self.bounds)
   }
 
   fileprivate func markForRender(region: Region) {
-    self.setNeedsDisplay(self.regionRectFor(region: region))
+    self.rectsMarkedForRender.append(self.regionRectFor(region: region))
   }
 
   fileprivate func markForRender(row: Int, column: Int) {
-    self.setNeedsDisplay(self.cellRectFor(row: row, column: column))
+    self.rectsMarkedForRender.append(self.cellRectFor(row: row, column: column))
   }
 }

    NSFontAttributeName: NSFont.systemFont(ofSize: 18),
    NSForegroundColorAttributeName: NSColor.darkGray
  ]

  public init(frame rect: NSRect, config: Config) {
    self.drawer = TextDrawer(font: self._font)

  }

  public func updateSpecial(_ sp: Int32) {
    NSLog("\(Thread.current)")
    DispatchUtils.gui {
      self.grid.special = UInt32(bitPattern: sp)
    }
