lots of missing translation cases
switch to a sub-function for expr list mapping and switch the case to cond cases
add try/catch