better 'catch expr map