 			return cache.value
 		}
 		set {
-			action(newValue)
+			rootBox.lock {
+				action(newValue)
+			}
 		}
 	}
 

		self.rootBox = ActionPropertyBox(inner)

		action = { input in
			inner.withValue { innerValue in
				switch body(innerValue, input) {
				case let .success(innerResult):
					inner.value = innerResult
					_validations.value = .success()

				case let .failure(error):
					_validations.value = .failure(error)
				}
			}
		}
	}

			.startWithValues { _validations.value = $0 }

		action = { input in
			switch body(inner.cache.value, input) {
			case let .success(innerResult):
				inner.action(innerResult)

			case let .failure(error):
				_validations.value = .failure(error)
			}
		}
	}
