this could also read `call_user_func(array($instance, 'set'.$key))`, not sure which one is better...