move error covertion to each rule. optimize each rule
add error check to rule-each test