much better get/set