 
   # Public: Create a keydown DOM event for testing purposes.
   #
-  # * `key` The key or keyIdentifier of the event. For example, 'a', '1',
-  #         'escape', 'backspace', etc.
-  # * options An {Object} containing any of the following:
+  # * `key` The key or keyIdentifier of the event. For example, `'a'`, `'1'`,
+  #   `'escape'`, `'backspace'`, etc.
+  # * `options` (optional) An {Object} containing any of the following:
   #   * `ctrl`   A {Boolean} indicating the ctrl modifier key
   #   * `alt`    A {Boolean} indicating the alt modifier key
   #   * `shift`  A {Boolean} indicating the shift modifier key
   #   * `cmd`    A {Boolean} indicating the cmd modifier key
   #   * `which`  A {Number} indicating `which` value of the event. See
-  #              the docs for KeyboardEvent for more information.
+  #     the docs for KeyboardEvent for more information.
   #   * `target` The target element of the event.
   @keydownEvent: (key, options) -> keydownEvent(key, options)
 

  # Public: Add sets of key bindings grouped by CSS selector.
  #
  # * `source` A {String} (usually a path) uniquely identifying the given bindings
  #            so they can be removed later.
  # * `bindings` An {Object} whose top-level keys point at sub-objects mapping
  #              keystroke patterns to commands.
  add: (source, keyBindingsBySelector) ->
    for selector, keyBindings of keyBindingsBySelector
      # Verify selector is valid before registering any bindings

  # Public: Create a new KeymapManager.
  #
  # * `options` An {Object} containing properties to assign to the keymap.  You
  #   can pass custom properties to be used by extension methods. The
  #   following properties are also supported:
  #   * `defaultTarget` This will be used as the target of events whose target
  #     is `document.body` to allow for a catch-all element when nothing is focused.
  constructor: (options={}) ->
    @[key] = value for key, value of options
    @keyBindings = []
