   options = _.defaults options,
     elementSelector: "#gameCanvas"
 
+  eventNamespace = _.uniqueId("mouse")
+
   mouse =
     down: false
     position: null
 
-  # Use the KeyboardService event namespace
-  $(options.elementSelector).on "mousedown.GE.MouseService mouseup.GE.MouseService mouseup.GE.MouseService mousemove.GE.MouseService mouseleave.GE.MouseService", (event) ->
-    # jQuery standardizes the keycode into http://api.jquery.com/event.which/
+  $(options.elementSelector).on "mousedown.#{eventNamespace} mouseup.#{eventNamespace} mousemove.#{eventNamespace} mouseleave.#{eventNamespace}", (event) ->
     switch event.type 
       when "mousedown" then mouse.down = true
       when "mouseup" then mouse.down = false

  options = _.defaults options,
    elementSelector: "#gameCanvas"

  keysDown = {}

  # Use the KeyboardService event namespace
  $(options.elementSelector).on "keydown.GE.KeyboardService keyup.GE.KeyboardService blur.GE.KeyboardService", (event) ->
    # jQuery standardizes the keycode into http://api.jquery.com/event.which/
    switch event.type 
      when "keydown" then keysDown[event.which] = true
      when "keyup" then delete keysDown[event.which]
      when "blur" then keysDown = {}
      else throw new Error("Unexpected event type")      

  return {


    establishData: -> # NOOP. Input service does not take data

    # Remove all event handlers
    destroy: -> $(options.elementSelector).off(".#{eventNamespace}")
  }


