are we explicitly promoting the pattern of returning `(status, result)` tuples? (as opposed to e.g. raising errors)