unsubscribe using the underlying callback as the listener id
change events to be more like Node.js but still keep old interface