   [shape _]
   (throw (ex-info "Not implemented" (select-keys shape [:type]))))
 
-(defmethod -resize' :builtin/icon
+(defmethod -resize' ::rect
   [shape [width height]]
   (merge shape
          (when width {:width width})
          (when height {:height height})))
 
-(defmethod -resize' :builtin/group
-  [shape [width height]]
-  (merge shape
-         (when width {:width width})
-         (when height {:height height})))
-
 (defmethod -resize' :default
   [shape _]
   (throw (ex-info "Not implemented" (select-keys shape [:type]))))
 
 ;; Move
 
-(defmethod -move ::shape
+(defmethod -move ::rect
   [shape {:keys [dx dy] :as opts}]
   (assoc shape
          :x (+ (:x shape) dx)
          :y (+ (:y shape) dy)))
-
-(defmethod -move :builtin/group
-  [shape {:keys [dx dy] :as opts}]
-  (assoc shape
-         :dx (+ (:dx shape 0) dx)
-         :dy (+ (:dy shape 0) dy)))
 
 (defmethod -move :builtin/line
   [shape {:keys [dx dy] :as opts}]

         :y1 (+ (:y1 shape) dy)
         :x2 (+ (:x2 shape) dx)
         :y2 (+ (:y2 shape) dy)))

(defmethod -rotate ::shape
  [shape rotation]

    (as-> shape $
      (merge $ {:width width :height height :x x :y y})
      (container-rect $))))

(defmethod -outer-rect :default
  [shape _]
  (throw (ex-info "Not implemented" (select-keys shape [:type]))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Helpers
