 				}
 
 				pending("should tear down the binding when the destination property deallocates") {
-//					let sourcePropertyValue = "StringValue"
-//
-//					let sourceProperty = MutableProperty(sourcePropertyValue)
+//					let sourceProperty = MutableProperty(initialPropertyValue)
 //
 //					var destinationProperty: MutableProperty<String>? = MutableProperty("")
 //


		describe("PropertyOf") {
			it("should pass through behaviors of the input property") {
				let propertyValue = "StringValue"

				let constantProperty = ConstantProperty(propertyValue)
				let propertyOf = PropertyOf(constantProperty)

				var sentValue: String?

				propertyOf.producer.start(next: { value in
					sentValue = value
				})

				expect(sentValue).to(equal(propertyValue))
			}
		}

		describe("binding") {
			describe("from a Signal") {
				it("should update the property with values sent from the signal") {
					let finalPropertyValue = 815
					var signalObserver: SinkOf<Event<Int, NoError>>?

					let sendPropertyUpdate = {
						sendNext(signalObserver!, finalPropertyValue)
					}

					let signal = Signal<Int, NoError>({ observer in
						signalObserver = observer

						return SimpleDisposable()
					})

					let mutableProperty = MutableProperty<Int>(0)

					mutableProperty <~ signal

					sendPropertyUpdate()
					expect(mutableProperty.value).to(equal(finalPropertyValue))
				}

				it("should tear down the binding when disposed") {
					let signalDisposable = SimpleDisposable()

					let signal = Signal<Int, NoError>({ observer in
						return signalDisposable
					})

					let mutableProperty = MutableProperty<Int>(0)

					let bindingDisposable = mutableProperty <~ signal
					bindingDisposable.dispose()

					// This test is failing: disposing the binding isn't disposing the signal, or am I doing something wrong?
					expect(signalDisposable.disposed).to(beTruthy())
				}

				it("should tear down the binding when the property deallocates") {
					let signal = Signal<Int, NoError>({ observer in
						return SimpleDisposable()
					})

					var mutableProperty: MutableProperty<Int>? = MutableProperty(0)

					let bindingDisposable = mutableProperty! <~ signal


				}

				pending("should tear down the binding when the property deallocates") {
//					let signalValues = [initialPropertyValue, subsequentPropertyValue]
//					let signalProducer = SignalProducer<String, NoError>(values: signalValues)
//
//					var mutableProperty: MutableProperty<String>? = MutableProperty(initialPropertyValue)
//
//					let disposable = mutableProperty! <~ signalProducer
//
