I have no idea what s and p mean as prefixes, and that makes it hard to remember which is which.
Prefixes like "target" and "source" or "declared" and "actual" would make the code more readable.