partially implement function descriptors in ppr