better try catch