 
 (defmacro rectangle
   [x y width height & options]
-  `(u/calls! ^Rectangle (rectangle* ~x ~y ~width ~height) ~@options))
+  `(let [^Rectangle object# (rectangle* ~x ~y ~width ~height)]
+     (u/calls! object# ~@options)))
 
 (defmacro rectangle!
   [object k & options]


(defmacro bezier
  [points & options]
  `(u/calls! ^Bezier (bezier* ~points) ~@options))

(defmacro bezier!
  [object k & options]


(defmacro bresenham2
  [& options]
  `(let [^Bresenham2 object# (bresenham2*)]
     (u/calls! object# ~@options)))

(defmacro bresenham2!
  [object k & options]
