Add an invokeP function and use it internally [...]

I know I'm just throwing probably terrible ideas around at this point.