Outsource value detection to readValue