       (lma/add-encoded-auth-string)
       (reset! lma/app-state))))
 
+;Here we either supply our key or don't. If no key, just return (first tokens)
 (defn oauth-token
   "Retreive oauth token for use in authentication call"
   []

      (reset! lma/app-state))))

;This is the handlers function to retrieve different kinds of dialog pages, nescessary for identification.
(defn user-interaction
  "Prompt for user interaction."
  []
  (if-let [interaction-url (a/poll! lma/interaction-chan)]
    interaction-url
    "No user interaction nescessary."))
 
(defn set-oauth-params
  "Set oauth-parameters for use in call to get token"
  [params]

      :code 
      (a/>! lma/code-chan))))

;Here we pass the name of our provider, :spotify or "spotify" or whatever
(defn refresh-token
  []
  "In case of emergency token refresh, we supply this function."
  (lma/get-tokens @lma/app-state))

(defn init
  "Init oauth token request cycle."
  []
  (let [old-app-state @lma/app-state] 
    (->>
