    (.get)))
 
 ; text to speech
-(defn say
-  "Say something"
-  [robot text]
+(defmulti say (fn [tor & args]
+                (cond
+                 (robot? tor) :default
+                 :else :donao)))
+
+(defmethod say :default
+  [robot text & args]
   (call-service robot :tts "say" [text]))
+
+(defmethod say :donao
+  [text & args]
+  {:speech text})
 
 (defn get-language
   "Get the currently defined text-to-speech language"

         (let [stiffness-tasks (do-stiffness robot duration
                                             stiffness-changes)
               joint-tasks (do-joints robot duration joint-changes)
               all-tasks (concat stiffness-tasks joint-tasks)]
           (cond
            ;; send true on done-chan when all tasks done
            (not (nil? done-chan))

  ([hostname port proxies]
     (add-proxies (attach-session {:hostname hostname :port port}) proxies)))

(defn robot?
  "Returns true if argument represents a robot"
  [robot]
  (not-nil? (:hostname robot)))

(defn get-proxy
  "Gets a proxy from a robot, constructing it if necessary"
  [robot proxy]
