diff --git a/src/Utils.cpp b/src/Utils.cpp
index 221a438..04f8f25 100644
--- a/src/Utils.cpp
+++ b/src/Utils.cpp
@@ -339,34 +339,20 @@
         return ret;
     }
 
-    // convert hex numbers to ints
-    if (boost::starts_with(*strPtr, "0x"))
+    try
     {
-        try
+        size_t pos = 0;
+        int64_t temp = std::stoul(*strPtr, &pos, 0);
+        if (pos == strPtr->size())
         {
-            size_t pos = 0;
-            int64_t temp = std::stoul(*strPtr, &pos, 0);
-            if (pos == strPtr->size())
-            {
-                keyPair.value() = static_cast<uint64_t>(temp);
-            }
+            keyPair.value() = static_cast<uint64_t>(temp);
         }
-        catch (const std::invalid_argument&)
-        {}
-        catch (const std::out_of_range&)
-        {}
     }
-    // non-hex numbers
-    else
-    {
-        try
-        {
-            uint64_t temp = boost::lexical_cast<uint64_t>(*strPtr);
-            keyPair.value() = temp;
-        }
-        catch (const boost::bad_lexical_cast&)
-        {}
-    }
+    catch (const std::invalid_argument&)
+    {}
+    catch (const std::out_of_range&)
+    {}
+
     return ret;
 }
 
