safer default readval, original implementation moved to mustreadval