nit: not that it really matters, but the rest of the codebase uses `result`. (`out` is occasionally taken by an output stream)