 
         return
 
+      eventHandlers = []
+
       for element in elements
         for eventName in eventNames
-          Event.on element, eventName, match, wrapped
-
-      return
+          eventHandlers.push (Event.on element, eventName, match, wrapped)
+
+      # Return a function to remove the handler(s)
+      ->
+        for eventHandler in eventHandlers
+          eventHandler.stop()
 #endif
 
   # Wraps a DOM element, providing some common behaviors.

  # * handler - event handler function to invoke; it will be passed an `EventWrapper` instance as the first parameter,
  #   and the memo as the second parameter. `this` will be the `ElementWrapper` for the matched element.
  #
  # Event handlers may return false to stop event propogation; this prevents an event from bubbling up, and
  # prevents any browser default behavior from triggering.  This is often easier than accepting the `EventWrapper`
  # object as the first parameter and invoking `stop()`.

  onevent = (elements, eventNames, match, handler) ->
      throw new Error "No event handler was provided." unless handler?

    #   will invoke the handler.
    # * handler - function invoked; the function is passed an `EventWrapper` object, and the
    #   context (`this`) is the `ElementWrapper` for the matched element.
    #
    # Returns a function of no parameters that removes any added handlers.
    on: (events, match, handler) ->
      exports.on @element, events, match, handler
      return this
