 (defn ^UnityEngine.Vector3 
   transform-point [o v]
   (when-let [o (->go o)]
-    (.TransformPoint (.transform o) (>v3 v))))
+    (.TransformPoint (.transform o) v)))
 
 (defn ^UnityEngine.Vector3 
   inverse-transform-point [o v]
   (when-let [o (->go o)]
-    (.InverseTransformPoint (.transform o) (>v3 v))))
+    (.InverseTransformPoint (.transform o) v)))
 
 (defn ^UnityEngine.Vector3 
   inverse-transform-direction [o v]
   (when-let [o (->go o)]
-    (.InverseTransformDirection (.transform o) (>v3 v))))
+    (.InverseTransformDirection (.transform o) v)))
 
 (defn move-towards [v1 v2 step]
   (Vector3/MoveTowards v1 v2 step))
 
 (defn ^UnityEngine.Vector3 lerp [^UnityEngine.Vector3 v1 ^UnityEngine.Vector3 v2 ratio]
-  (Vector3/Lerp (>v3 v1) (>v3 v2) ratio))
+  (Vector3/Lerp v1 v2 ratio))
 
 (defn ^UnityEngine.GameObject local-scale [^UnityEngine.GameObject o]
   (when-let [o (->go o)] (.localScale (.transform o) )))
 
 (defn ^UnityEngine.GameObject local-scale! [^UnityEngine.GameObject o ^UnityEngine.Vector3 v]
-  (when-let [o (->go o)] (set! (.localScale (.transform o)) (>v3 v)) o))
+  (when-let [o (->go o)] (set! (.localScale (.transform o)) v) o))
 
 (defn rotate-around! [o point axis angle]
   (when-let [o (->go o)]
-  (. (.transform o) (RotateAround (>v3 point) (>v3 axis) angle))))
+  (. (.transform o) (RotateAround point axis angle))))
 
 (defn rotation [o]
   (when-let [o (->go o)] (.rotation (.transform o) )))



;MACROS
(defmacro >v3 [o]
  `(.position (.transform ~o)))

(defmacro >v2 [o]
  `(UnityEngine.Vector2. 

    ArcadiaState
    Hard.Helper))

(declare position!)

(defn playing? [] (. Application isPlaying))

