still loking at patterns
add try catch