allows any object to emit arbitrary objects via streams