feat(addEventListener): add listener now returns a function to deregister from events