many
support nested testcase
mv predicates to top level
test predicate