calculate predicates in input_option classes instead of builder