needs more large scope try-catch blocks