 		if case let .alive(snapshot) = state {
 			var observers = snapshot.observers
 			token = observers.insert(observer)
-			state = .alive(SignalStateSnapshot(observers: observers, retaining: self))
+			state = .alive(AliveState(observers: observers, retaining: self))
 		}
 		updateLock.unlock()
 

			//
			//   `updateLock` must be acquired.
			//
			// - Transit from `alive` to `terminating`.
			//
			//   `updateLock` must be acquired.
			//
			// - Extract the snapshot of a terminating signal to deliver the
			//   termination event, and transit from `terminating` to `terminated`.
			//
			//   Both `sendLock` and `updateLock` must be acquired. The state must
			//   also be checked again after the locks are acquired. Fail gracefully

	///   - generator: A closure that accepts an implicitly created observer
	///                that will act as an event emitter for the signal.
	public init(_ generator: (Observer) -> Disposable?) {
		state = .alive(AliveState())
		updateLock = NSLock()
		updateLock.name = "org.reactivecocoa.ReactiveSwift.Signal.updateLock"
		sendLock = NSLock()
