improve the extraction rules for cadr