                                 (.setMaxQueueSize max-queue-size)
                                 (.setTimeout timeout)))))
 
+(defn context []
+  (.put (Context.) "library" "analytics-clj"))
+
 (defn identify
   "Identifying a user ties all of their actions to an id, and associates user traits to that id.
 

  ([^AnalyticsClient client ^String user-id traits & [{:keys [timestamp options callback]}]]
     (let [the-callback (if callback (reify Callback (onResponse [this success message] (callback success message))))
           traits (reduce (fn [t [k v]] (.put t (name k) v)) (Traits.) traits)
           options (reduce (fn [t [k v]] (.put t (name k) v)) (Context.) options)]
       (.identify client user-id traits timestamp options the-callback))))



  ([^AnalyticsClient client ^String from ^String to] (make-alias client from to {}))
  ([^AnalyticsClient client ^String from ^String to & [{:keys [timestamp options callback]}]]
     (let [the-callback (if callback (reify Callback (onResponse [this success message] (callback success message))))
           options (reduce (fn [t [k v]] (.put t (name k) v)) (context) options)]
       (.alias client from to timestamp options the-callback))))

(defn flush-queue
