 
 		set(disposable) {
 			_inner.swap(disposable)?.dispose()
+
 			if let disposable = disposable, isDisposed {
 				disposable.dispose()
 			}

		}

		func dispose() {
			if state.tryDispose() {
				action?()
				action = nil
			}
		}
	}


	}

	public func dispose() {
		guard state.tryDispose(), let disposables = disposables.swap(nil) else { return }

		for disposable in disposables {
			disposable.dispose()
		}
	}

