^ these 5 lines to merge predicates are repeated 4 times in this class, possible candidate for utility method/closure?