remove raise from rescue, and fix return