low-level helpers moved to PFUtil