 	///
 	/// Returns a Disposable which can be used to cancel the work associated
 	/// with the Signal, and prevent any future events from being sent.
-	public func start(setUp: (Signal<T>, CompositeDisposable) -> ()) -> Disposable {
+	public func start(setUp: (Signal<T>, CompositeDisposable) -> ()) {
 		let (signal, observer) = Signal<T>.pipe()
 		setUp(signal, signal.disposable)
 
 		if !signal.disposable.disposed {
 			startHandler(observer, signal.disposable)
 		}
-
-		return signal.disposable
 	}
 
 	/// Creates a Signal from the producer, then attaches the given sink to the

			self.start { signal, innerDisposable in
				outerDisposable.addDisposable(innerDisposable)

				transform(signal).observe(observer)
				return
			}

			return
		}
	}
}

	/// with the Signal, and prevent any future events from being put into the
	/// sink.
	public func start<S: SinkType where S.Element == Event<T>>(sink: S) -> Disposable {
		var disposable: Disposable!

		start { signal, innerDisposable in
			signal.observe(sink)
			disposable = innerDisposable
		}

		return disposable
	}

	/// Creates a Signal from the producer, then adds exactly one observer to
