diff --git a/ml_benchmark/main.cc b/ml_benchmark/main.cc
index 7208dc8..01249b3 100644
--- a/ml_benchmark/main.cc
+++ b/ml_benchmark/main.cc
@@ -5,6 +5,7 @@
 #include <string>
 
 #include <base/files/file_path.h>
+#include <base/files/file_util.h>
 #include <base/logging.h>
 #include <brillo/flag_helper.h>
 #include <brillo/proto_file_io.h>
@@ -13,6 +14,7 @@
 #include "ml_benchmark/shared_library_benchmark_functions.h"
 #include "proto/benchmark_config.pb.h"
 
+using chrome::ml_benchmark::AccelerationMode;
 using chrome::ml_benchmark::CrOSBenchmarkConfig;
 using chrome::ml_benchmark::SodaBenchmarkConfig;
 using chrome::ml_benchmark::BenchmarkResults;
@@ -21,9 +23,6 @@
 
 namespace {
 
-constexpr char kSodaDriverName[] = "SoDA";
-constexpr char kSodaDriverPath[] = "libsoda_benchmark_driver.so";
-
 void benchmark_and_report_results(const std::string& driver_name,
                                   const base::FilePath& driver_file_path,
                                   const CrOSBenchmarkConfig& config) {
@@ -44,6 +43,9 @@
   if (results.status() == chrome::ml_benchmark::OK) {
     LOG(INFO) << driver_name << " finished";
     LOG(INFO) << results.results_message();
+    LOG(INFO) << "Accuracy: " << results.total_accuracy();
+    LOG(INFO) << "Average Latency: " << results.average_latency_in_us()
+              << " usec";
   } else {
     LOG(ERROR) << driver_name << " Encountered an error";
     LOG(ERROR) << "Reason: " << results.results_message();
@@ -56,6 +58,9 @@
   DEFINE_string(workspace_path, ".", "Path to the driver workspace.");
   DEFINE_string(config_file_name, "benchmark.config",
       "Name of the driver configuration file.");
+  DEFINE_string(driver_library_path, "libsoda_benchmark_driver.so",
+      "Path to the driver shared library.");
+  DEFINE_bool(use_nnapi, false, "Use NNAPI delegate.");
 
   brillo::FlagHelper::Init(argc, argv, "ML Benchmark runner");
 
@@ -64,24 +69,19 @@
 
   CrOSBenchmarkConfig benchmark_config;
 
-  CHECK(brillo::ReadTextProtobuf(workspace_config_path, &benchmark_config))
+  if (FLAGS_use_nnapi) {
+    benchmark_config.set_acceleration_mode(AccelerationMode::NNAPI);
+  }
+
+  CHECK(base::ReadFileToString(workspace_config_path,
+                               benchmark_config.mutable_driver_config()))
       << "Could not read the benchmark config file: " << workspace_config_path;
 
-  // Execute benchmarks
-  if (benchmark_config.has_soda_config()) {
-    const auto& soda_config = benchmark_config.soda_config();
+  base::FilePath driver_library(FLAGS_driver_library_path);
 
-    base::FilePath soda_path;
-    if (soda_config.soda_driver_path().empty()) {
-      soda_path = base::FilePath(kSodaDriverPath);
-    } else {
-      soda_path = base::FilePath(soda_config.soda_driver_path());
-    }
-
-    benchmark_and_report_results(kSodaDriverName,
-        soda_path,
-        benchmark_config);
-  }
+  benchmark_and_report_results(FLAGS_driver_library_path,
+                               driver_library,
+                               benchmark_config);
 
   LOG(INFO) << "Benchmark finished, exiting";
 }
diff --git a/ml_benchmark/proto/benchmark_config.proto b/ml_benchmark/proto/benchmark_config.proto
index 5f2f816..57bf59b 100644
--- a/ml_benchmark/proto/benchmark_config.proto
+++ b/ml_benchmark/proto/benchmark_config.proto
@@ -11,9 +11,13 @@
 // Refer to the CrOS ML Benchmarking Suite Design Document
 // at go/cros-ml-benchmark-suite
 message CrOSBenchmarkConfig {
+  reserved 2, 3;
+
   AccelerationMode acceleration_mode = 1;
-  // benchmark-specific configurations
-  SodaBenchmarkConfig soda_config = 2;
+
+  // String representation of the driver proto configuration, to be decoded by
+  // the benchmark driver implementation.
+  string driver_config = 4;
 }
 
 // Benchmark-specific configurations
