         new-time (now)
         time-step (+ (* 0.95 (:time-step state)) (* 0.05 (- new-time (:time state))))
         spawn-new-bullet (and (contains? keys-pressed KeyEvent/VK_SPACE) (>= new-time (:next-fire-time state)))
-        ]
-        (assoc state
-            :time new-time
-            :time-step time-step
-            :player (player-step (:player state) time-step keys-pressed)
-            :asteroids (map (fn [a] (asteroid-step a time-step)) (:asteroids state))
-            :bullets
-                (map (fn [b] (bullet-step b time-step))
-                    (concat
-                        (if spawn-new-bullet
-                            [(new-bullet (:player state))]
-                            [])
-                    (:bullets state)))
-            :next-fire-time
-                (if spawn-new-bullet
-                    (+ new-time fire-delay)
-                    (:next-fire-time state))
-)))
+        state
+            (assoc state
+                :time new-time
+                :time-step time-step
+                :player (player-step (:player state) time-step keys-pressed)
+                :asteroids (map (fn [a] (asteroid-step a time-step)) (:asteroids state))
+                :bullets
+                    (map (fn [b] (bullet-step b time-step))
+                        (concat
+                            (if spawn-new-bullet
+                                [(new-bullet (:player state))]
+                                [])
+                        (:bullets state)))
+                :next-fire-time
+                    (if spawn-new-bullet
+                        (+ new-time fire-delay)
+                        (:next-fire-time state)))
+        [fb fa]
+            (filter-collisions (:bullets state) (:asteroids state))
+        state
+            (assoc state
+                :bullets fb
+                :asteroids fa)]
+    state))
 
 (defn create-game []
     (let [

        :yv (* (:yv thing) eff)
        :av (* (:av thing) eff)))


(defn generate-asteroid []
    {

        :yv (rand 10)
        :a 0.0
        :av (rand)
        :radii (take 10 (repeatedly #(myrand 5 30)))
    })

(defn default-state [] {
