 		return _on(onEvent)
 	}
 
+	public func addDownstreamDisposable(_ disposable: IDisposable) {
+		_addDownstreamDisposable(disposable)
+	}
+
 	let _subscribe: (_ onChunk: @escaping (ChunkType) -> Void) -> Scope
 	let _on: (_ onEvent: @escaping (EventType) -> Void) -> Scope
+	let _addDownstreamDisposable: (IDisposable) -> Void
+	let _dispose: () -> Void
 }
 
 public struct WriteableEventingStream<S, T> : IWriteableEventingStream

import Scope

public protocol IReadableEventingStream : IReadableStream

		base = stream
	}

	public func dispose() {
		base.dispose()
	}

	public func raise(_ event: EventType)
	{
		base.publish(.Event(event))
