           (> (count hs) 0))
       (get hs 0)
       \O)))
+
+(defn- nice-angles [data wanted]
+  (let [sub (subvec (vec data) 0 8)
+        all (zipmap
+              [:Asc
+               :MC
+               :ARMC
+               :Vertex
+               :EqualAsc
+               :Co-Asc1
+               :Co-Asc2
+               :PolarAsc]
+              sub)]
+    (if (= wanted true)
+      all
+      (select-keys all wanted))))
 
 (defn calc [stuff]
   (let [sw (SwissEph.)

  defaults {:utc nil
            :geo {:lat nil :lon nil}
            :bodies []
            :angles true
            :houses "O"
            :meta false})


                              ascmc)]
          (merge
            (if (angles? (:angles want))
              {:angles (nice-angles ascmc (:angles want))}
              {})
            (if (houses? (:houses want))
              {:houses (zipmap (range 1 13) (rest cusps))}
