Changed to use select on the array which led to much cleaner public logic.