Move determination of predicate result to abstract
super class, split code into smaller methods.