these should probably be out of the `try/catch` since it should not `throw`