     (dorun
       (map #(with-g2d-state [g2d %]
                             (draw-primitive g2d %))
-           (denest (expand widgets))))))
+           (denest (expand-memo widgets))))))
 
 (defn draw-error [graphics e]
   (draw graphics


(defn triggered-mouse-actions [action-type [x y] data]
  (->> data
       expand
       ;show
       (filter #(and (% action-type)
                     (-> (.createTransformedShape
                           (% :transform) (% :shape)) (.contains x y))))

                            (run-mouse-actions e :mouse-down reference))
          (mouseReleased [e] (stop-dragging! canvas)
                             (run-mouse-actions e :mouse-up reference))
          (mouseDragged [e] (continue-dragging e canvas)))]
    (doto canvas
      (.addMouseListener mouse-adapter)
