[minor] Inherit from Stream if it's available.
[minor] rename events to _events so it matches the node internals.
[api] Added missing remove listener.