allows using default comparator, comparator fp requires ref args