Wraps around EventEmitter-compatible objects and uses streams rather than callbacks