/**
  * Constructor.
  *
  * @param StageInterface[] $stages
  *
  * @throws InvalidArgumentException
  */
 public function __construct(array $stages = [])
 {
     parent::__construct($stages);
     // could DI in the Builder
     $this->callbackFactory = new ConditionCallbackFactory();
     $this->accessor = new Accessor();
     $this->expression = new ExpressionBuilder();
 }