 
 (defn- snes-state-events
   [old-state new-state elapsed]
-  (when (not= old-state new-state)
-    (prn elapsed "ms:" new-state))
-  (let [buttons (remove #{:x-axis :y-axis} (keys new-state))
-        events (button-events buttons old-state new-state)]
-    (dorun (map prn events))
-    events))
+  (let [axes {:x-axis 0.0, :y-axis 0.0}
+        buttons (remove (keys axes) (keys new-state))]
+    (remove nil?
+      (concat
+        (repeat-events axes old-state elapsed)
+        (button-events buttons old-state new-state)))))
 
 
 (defn snes



(defn- repeat-events
  "Builds a function which will repeatedly fire events every period ms if their
  value differs from the default given."
  [defaults period]
  ; TODO: implement repeat events function
  ; probably store 'last repeat time' in an atom
  (constantly nil))






(defn- button-events
  "Calculates button press and release events. Returns a seq of events."
  [buttons old-state new-state]
  (for [button buttons]
    (let [old-val (get old-state button)
