Currently the `predicate()` function takes in a string for the PID and returns a number. Other functions like `pidFromKey()` returns the PID as a number which is often turned into a string to use with predicate. Should we change the design of this?