 	column-header-layer (ColumnHeaderLayer. column-header-data-layer body-layer-stack (.getSelectionLayer body-layer-stack))
 	column-header-layer-stack (proxy [AbstractLayerTransform] [])
 
-	view (proxy [View][]
-	       (^void update [^Collection insertions ^Collection alterations ^Collection deletions]
-		      (.asyncExec
-		       display
-		       (fn []
-			 (apply-updates pk-getter version-comparator event-list index glazed-lists-event-layer property-names getters insertions alterations deletions)))))
+	view (reify
+	      View
+	      (^void update [_ ^Collection insertions ^Collection alterations ^Collection deletions]
+		     (.asyncExec
+		      display
+		      (fn []
+			  (apply-updates pk-getter version-comparator event-list index glazed-lists-event-layer property-names getters insertions alterations deletions)))))
 	data (register model view)
 	]
     ;; initial update

	;; deregister view on disposal
	(.registerCommandHandler 
	 grid-layer
	 (proxy [ILayerCommandHandler] []
		(^Class getCommandClass [] ILayerCommand)
		(^Boolean doCommand [^ILayer targetLayer ^ILayerCommand command]
			  (if (instance? SelectCellCommand command) (handle-select-cell metadata nattable command data-layer sorted-list drilldown-fn))
			  (if (instance? DisposeResourcesCommand command) (.detach model view))
			  false)))

	(doto nattable
	  (.setConfigRegistry config-registry)
	  (.addConfiguration (DefaultNatTableStyleConfiguration.))

	  (.addConfiguration (DefaultSelectionStyleConfiguration.))
	  (.configure)
	  
	  ;;(.addLayerListener (reify ILayerListener (handleLayerEvent [_ event] (handle-layer-event sorted-list nattable event data-layer drilldown-fn))))

	  (.setLayoutData (GridData. (SWT/FILL) (SWT/FILL) true true))
	  (.pack))))))
