predicate methods now return booleans