OK, seems fine to me, then. The who reason this is in a `util.decode` is to keep the `try ... catch` in it's own function anyhow, so seems good to me.