previously everything was wrapped in `Try`, meaning that no NonFatal exceptions would ever be thrown from this method; this is not the same anymore, but the return type still suggests this behavior