replaced binary ops predicate in evaluate() with hash