use usesConditions and addConditionDerivation instead of registerCondition to ensure thread-safe condition derivation.
usesConditions
addConditionDerivation
registerCondition