Unlike cp.prop:mutate(...), the getFn receives the actual current value when called, rather than the cp.prop itself, and no additional parameters.
Also unlike cp.prop:mutate(...), the setFn is called with the mutated value and the current value, rather than the cp.prop itself, and no additional parameters.