reasoner optional