Could make this a `Try` and then match on `Return` and `Throw`