split PF candidates into 3 collections
add some utility function