 	}
 
 	public init(_ value: T, file: String = __FILE__, line: Int = __LINE__, function: String = __FUNCTION__) {
-		self.value = value
+		_value = value
+
 		self.file = file
 		self.line = line
 		self.function = function

	/// Setting this to a new value will notify all sinks attached to
	/// `values`.
	public var value: T {
		didSet {
			dispatch_sync(queue) {
				for sink in self.sinks {
					sink.put(.Next(Box(self.value)))
				}
			}
		}

import LlamaKit

/// A mutable property of type T that allows observation of its changes.
///
/// Instances of this class are thread-safe.
public final class ObservableProperty<T> {
	private let queue = dispatch_queue_create("org.reactivecocoa.ReactiveCocoa.ObservableProperty", DISPATCH_QUEUE_SERIAL)
	private var sinks = Bag<SinkOf<Event<T>>>()
	private var _value: T

	/// The file in which this property was defined, if known.
	public let file: String?
