 
 ;Here we pass the name of our provider, :spotify or "spotify" or whatever
 (defn refresh-token
-  []
+  ([] (lma/get-tokens (first @lma/app-state)))
   "In case of emergency token refresh, we supply this function."
-  (lma/get-tokens @lma/app-state))
+  ([provider] ( lma/get-tokens (provider @lma/app-state))))
 
+;Should we just init everything at once.
 (defn init
   "Init oauth token request cycle."
   []

    "No user interaction nescessary."))

;We can totally get away with only rewriting this namespace, just make each function take a keyword as argument, no argument, give us first in list.
(defn set-oauth-params
  "Set oauth-parameters for use in call to get token"
  [params]
  (let [old-app-state @lma/app-state]
    (->>
      (if-not (:response-type params)
        (lma/add-response-type "code" params)

      (lma/add-state) 
      (merge old-app-state)
      (lma/add-encoded-auth-string)
      (swap! lma/app-state assoc provider-name))))

;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"
  ([] (:access_token (first @lma/app-state)))
  ([provider] (provider @lma/app-state)))
