moved out get/set/run logic to functions