diff --git a/cooling-type/argument.cpp b/cooling-type/argument.cpp
deleted file mode 100644
index 7d03453..0000000
--- a/cooling-type/argument.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * Copyright © 2017 IBM Corporation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#include "argument.hpp"
-
-#include <algorithm>
-#include <cassert>
-#include <iostream>
-#include <iterator>
-
-namespace phosphor
-{
-namespace fan
-{
-namespace util
-{
-
-ArgumentParser::ArgumentParser(int argc, char** argv)
-{
-    auto option = 0;
-    while (-1 != (option = getopt_long(argc, argv, optionstr, options, NULL)))
-    {
-        if ((option == '?') || (option == 'h'))
-        {
-            usage(argv);
-            exit(1);
-        }
-
-        auto i = &options[0];
-        while ((i->val != option) && (i->val != 0))
-        {
-            ++i;
-        }
-
-        if (i->val)
-        {
-            arguments[i->name] = (i->has_arg ? optarg : true_string);
-        }
-    }
-}
-
-const std::string& ArgumentParser::operator[](const std::string& opt)
-{
-    auto i = arguments.find(opt);
-    if (i == arguments.end())
-    {
-        return empty_string;
-    }
-    else
-    {
-        return i->second;
-    }
-}
-
-// TODO openbmc/phosphor-fan-presence#6
-//      gpio parameter need something to indicate 0=water & air, 1=air?
-void ArgumentParser::usage(char** argv)
-{
-    std::cerr << "Usage: " << argv[0] << " [options]\n";
-    std::cerr << "Options:\n";
-    std::cerr << "    --help               print this menu\n";
-    std::cerr << "    --air                Force 'AirCooled' property to be set"
-                 " to true.\n";
-    std::cerr << "    --water              Force 'WaterCooled' property to be "
-                 "set to true.\n";
-    std::cerr << "    --dev=<pin>          Device to read for GPIO pin state to"
-                 " determine 'WaterCooled' (true) and 'AirCooled' (false)\n";
-    std::cerr << "    --event=<keycode>    Keycode for pin to read\n";
-    std::cerr
-        << "    --path=<objpath>     *Required* object path under inventory "
-           "to have CoolingType updated\n";
-    std::cerr
-        << "\nThe --air / --water options may be given in addition to "
-           "--gpio, in which case both their setting and the GPIO will take "
-           "effect.\n";
-    std::cerr << std::flush;
-}
-
-const option ArgumentParser::options[] = {
-    {"path", required_argument, NULL, 'p'},
-    {"dev", required_argument, NULL, 'd'},
-    {"event", required_argument, NULL, 'e'},
-    {"air", no_argument, NULL, 'a'},
-    {"water", no_argument, NULL, 'w'},
-    {"help", no_argument, NULL, 'h'},
-    {0, 0, 0, 0},
-};
-
-const char* ArgumentParser::optionstr = "p:d:e:aw?h";
-
-const std::string ArgumentParser::true_string = "true";
-const std::string ArgumentParser::empty_string = "";
-
-} // namespace util
-} // namespace fan
-} // namespace phosphor
-// vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff --git a/cooling-type/main.cpp b/cooling-type/main.cpp
index 183a7f6..c4dc57f 100644
--- a/cooling-type/main.cpp
+++ b/cooling-type/main.cpp
@@ -1,9 +1,9 @@
-#include "argument.hpp"
 #include "cooling_type.hpp"
 #include "sdbusplus.hpp"
 
 #include <fmt/format.h>
 
+#include <CLI/CLI.hpp>
 #include <phosphor-logging/log.hpp>
 #include <sdbusplus/bus.hpp>
 
@@ -17,72 +17,84 @@
 int main(int argc, char* argv[])
 {
     auto rc = 1;
-    auto options = ArgumentParser(argc, argv);
 
-    auto objpath = (options)["path"];
-    if (argc < 2)
+    CLI::App app{"Phosphor Cooling type"};
+    std::string objpath{};
+    bool air = false;
+    bool water = false;
+    std::string gpiopath{};
+    std::string keycode{};
+
+    app.add_option("-p,--path", objpath,
+                   "object path under inventory to have CoolingType updated")
+        ->required();
+    app.add_flag("-a,--air", air,
+                 "Force 'AirCooled' property to be set to true.");
+    app.add_flag("-w,--water", water,
+                 "Force 'WaterCooled' property to be set to true.");
+    app.add_option(
+        "-d,--dev", gpiopath,
+        "Device to read for GPIO pin state to determine 'WaterCooled' (true) and 'AirCooled' (false)");
+    app.add_option("-e,--event", keycode, "Keycode for pin to read");
+    app.allow_extras();
+    try
     {
-        std::cerr << std::endl << "Too few arguments" << std::endl;
-        log<level::ERR>("Too few arguments");
-        options.usage(argv);
+        app.parse(argc, argv);
     }
-    else if (objpath == ArgumentParser::empty_string)
+    catch (const CLI::Error& e)
+    {
+        return app.exit(e);
+    }
+
+    if (objpath.empty())
     {
         log<level::ERR>("Bus path argument required");
+        return rc;
     }
-    else
+
+    auto bus = sdbusplus::bus::new_default();
+    CoolingType coolingType(bus);
+
+    try
     {
-        auto bus = sdbusplus::bus::new_default();
-        CoolingType coolingType(bus);
-
-        try
+        if (air)
         {
-            auto air = (options)["air"];
-            if (air != ArgumentParser::empty_string)
-            {
-                coolingType.setAirCooled();
-            }
-
-            auto water = (options)["water"];
-            if (water != ArgumentParser::empty_string)
-            {
-                coolingType.setWaterCooled();
-            }
-
-            auto gpiopath = (options)["dev"];
-            if (gpiopath != ArgumentParser::empty_string)
-            {
-                auto keycode = (options)["event"];
-                if (keycode != ArgumentParser::empty_string)
-                {
-                    auto gpiocode = std::stoul(keycode);
-                    coolingType.readGpio(gpiopath, gpiocode);
-                }
-                else
-                {
-                    log<level::ERR>("--event=<keycode> argument required\n");
-                    return rc;
-                }
-            }
-
-            coolingType.updateInventory(objpath);
-            rc = 0;
+            coolingType.setAirCooled();
         }
-        catch (const DBusMethodError& dme)
+
+        if (water)
         {
-            log<level::ERR>(
-                fmt::format("Uncaught DBus method failure exception "
-                            "Busname: {} "
-                            "Path: {} "
-                            "Interface: {} "
-                            "Method: {}",
-                            dme.busName, dme.path, dme.interface, dme.method)
-                    .c_str());
+            coolingType.setWaterCooled();
         }
-        catch (const std::exception& err)
+
+        if (!gpiopath.empty())
         {
-            log<phosphor::logging::level::ERR>(err.what());
+            if (keycode.empty())
+            {
+                log<level::ERR>("--event=<keycode> argument required\n");
+                return rc;
+            }
+            auto gpiocode = std::stoul(keycode);
+            coolingType.readGpio(gpiopath, gpiocode);
         }
+
+        coolingType.updateInventory(objpath);
+        rc = 0;
+    }
+    catch (const DBusMethodError& dme)
+    {
+        log<level::ERR>(fmt::format("Uncaught DBus method failure exception "
+                                    "Busname: {} "
+                                    "Path: {} "
+                                    "Interface: {} "
+                                    "Method: {}",
+                                    dme.busName, dme.path, dme.interface,
+                                    dme.method)
+                            .c_str());
+    }
+    catch (const std::exception& err)
+    {
+        log<phosphor::logging::level::ERR>(err.what());
     }
 
     return rc;
diff --git a/cooling-type/meson.build b/cooling-type/meson.build
index a8a4577..6b79046 100644
--- a/cooling-type/meson.build
+++ b/cooling-type/meson.build
@@ -4,7 +4,6 @@
 )
 
 source=[
-    'argument.cpp',
     'cooling_type.cpp',
     'cooling_type.hpp',
     'main.cpp'
