requiring try-catch