Splitting out methods gives us a place to hook in appropriate behavior for when we're running in a GRPC server.