guess the predicate thing is faster than the while...