Use key value observing and a little bit of runtime to cause redisplay when properties change, removing all the custom setters.
Renamed ‘setDefaultValues’ to “initialise’ because it also sets up KVO.
Only redraw if properties change value.