         (check-fixed-values)
         (ensure-health-check)
         (ensure-listeners))
-    (create-elb local))
-
-        ;    (ensure-security-groups)
-                                        ;    (ensure-subnet)
-  )
+    (create-elb local)))

  (elb-request {"Action" "DeleteLoadBalancer"
                "LoadBalancerName" elb-name}))

(defn- ensure-health-check [{:keys [local remote] :as config}]
  (let [remote-health-check (children-to-map (xml-> remote :DescribeLoadBalancersResult :LoadBalancerDescriptions :member :HealthCheck children))
        local-health-check (:HealthCheck local)]
;compare maps
    config))

(defn ensure-listeners [{:keys [local remote] :as config}]
  (let [remote-listenters (-> (xml-> remote :DescribeLoadBalancersResult :LoadBalancerDescriptions :member :ListenerDescriptions :member children)
                              (filter-children :Listener)
                              (children-to-maps))]
    ; compare lists
    config))

(defn ensure-config [local]

   [clojure.zip :as zip :refer [children]]
   [slingshot.slingshot :refer [throw+ try+]]
   [clojure.data.zip.xml :refer [xml1-> text xml->]]))

(defn get-elements [xml path]
  (apply xml-> xml (concat [:DescribeLoadBalancersResult :LoadBalancerDescriptions :member] path)))

(defn- get-listeners
  "returns a list of maps, very specific"
