     (cond 
       (= ::external (type @server*)) (osc-send-msg @server* 
                                                    (apply osc-msg path (osc-type-tag args) args))
-      (= ::internal (type @server*))
-      (let [buffer (java.nio.ByteBuffer/allocate 8129)]
-        (World_SendPacket @world* (.limit buffer) buffer
-                          (callback reply-cb (fn [addr buf size] (println "reply!"))))
-      (nil? @server*) (throw (Exception. "Not connected to a SuperCollider server.")))))
+      (= ::internal (type @server*)) (event ::send-osc-message (apply osc-msg path (osc-type-tag args) args))))
 
 (defmacro at
   "Schedule the messages sent in body at a single time."

         (log/debug "Booting SuperCollider internal server (scsynth)...")
         (.start sc-thread)
         (dosync (ref-set server-thread* sc-thread))
         (connect)
         :booting))))

(defn- sc-log 

      (log/debug "Booting SuperCollider server (scsynth)...")
      (.start sc-thread)
      (dosync (ref-set server-thread* sc-thread))
      (connect)
      :booting))))

(defn boot
