diff --git a/algo/base/Options.cxx b/algo/base/Options.cxx
index c856d4a792584bb0b4828814952abac7abc3d549..99cb8fdcccdfc7ab8cb3619308c55b5749dc9d81 100644
--- a/algo/base/Options.cxx
+++ b/algo/base/Options.cxx
@@ -38,9 +38,9 @@ Options::Options(int argc, char** argv)
   po::options_description required("Required options");
   // clang-format off
   required.add_options()
-    ("param-dir,p", po::value<std::string>(&fParamsDir)->value_name("<folder>")->required(),
+    ("param-dir,p", po::value(&fParamsDir)->value_name("<folder>")->required(),
       "read program options from this folder")
-    ("input-locator,i", po::value<std::string>(&fInputLocator)->value_name("<locator>")->required(),
+    ("input-locator,i", po::value(&fInputLocator)->value_name("<locator>")->required(),
       "URI specifying input timeslice source")
   ;
   // clang-format on
@@ -48,18 +48,20 @@ Options::Options(int argc, char** argv)
   po::options_description generic("Other options");
   // clang-format off
   generic.add_options()
-    ("device,d", po::value<std::string>(&fDevice)->default_value("cpu")->value_name("<device>"),
+    ("device,d", po::value(&fDevice)->default_value("cpu")->value_name("<device>"),
       "select device (cpu, cuda0, cuda1, hip0, ...)")
     ("log-level,l", po::value(&fLogLevel)->default_value(info)->value_name("<level>"),
       "set log level (debug, info, warning, error, fatal)")
     ("monitor,m", po::value(&fMonitorUri)->value_name("<uri>")->implicit_value("file:cout"),
       "URI specifying monitor output (e.g. file:/tmp/monitor.txt, influx1:login:8086:cbmreco_status). Prints to cout when no argument is given. Monitor is disabled when flag is not set.")
-    ("num-ts,n", po::value<int>(&fNumTimeslices)->default_value(-1)->value_name("<num>"),
+    ("num-ts,n", po::value(&fNumTimeslices)->default_value(-1)->value_name("<num>"),
       "Stop after <num> timeslices (-1 = all)")
-    ("skip-ts,s", po::value<int>(&fSkipTimeslices)->default_value(0)->value_name("<num>"),
+    ("skip-ts,s", po::value(&fSkipTimeslices)->default_value(0)->value_name("<num>"),
       "Skip first <num> timeslices")
     ("times,t", po::bool_switch(&fCollectKernelTimes)->default_value(false),
-      "print kernel times")("help,h", "produce help message")
+      "print kernel times")
+    ("help,h",
+      "produce help message")
   ;
   // clang-format on