removed custom functional interface for just a predicate