 
 (defn game []
   (let [ship (ref (create-ship))
+        level (ref asteroids-start-number)
         asteroids (ref (create-asteroids asteroids-start-number asteroid-start-size))
         frame (JFrame. "Asteroids")
-        panel (game-panel frame ship asteroids)
+        panel (game-panel frame ship asteroids level)
         timer (Timer. turn-millis panel)]
     (doto panel                                             ; <label id="code.game.panel"/>
       (.setFocusable true)

    (alter asteroids (partial map move))
    nil))

(defn do-action!
  ([ship {:keys [rotation acceleration shoot] :as action} modifier]
   (when rotation (dosync (alter ship turn (* modifier rotation))))

        (paint g asteroid)))
    (actionPerformed [e]                                    ; <label id="code.game-panel.actionPerformed"/>
      (update-positions! ship asteroids)
      (resolve-collision! ship asteroids)
      (when (lose? @ship)
        (reset-game! ship asteroids level false)
        (JOptionPane/showMessageDialog frame "You lose!"))
      (when (win? @asteroids)
        (reset-game! ship asteroids level true)
        (JOptionPane/showMessageDialog frame "You win!"))
      (.repaint this))
    (keyPressed [e]
