Rearrange the predicate construction code. The argument extraction logic is now optional.