diff --git a/include/VariantVisitors.hpp b/include/VariantVisitors.hpp
index 41997a6..4b4adf4 100644
--- a/include/VariantVisitors.hpp
+++ b/include/VariantVisitors.hpp
@@ -15,9 +15,9 @@
 */
 
 #pragma once
-#include <boost/variant.hpp>
+#include <string>
 
-struct VariantToFloatVisitor : public boost::static_visitor<float>
+struct VariantToFloatVisitor
 {
     template <typename T> float operator()(const T &t) const
     {
@@ -26,12 +26,12 @@
 };
 template <>
 inline float VariantToFloatVisitor::
-operator()<std::string>(const std::string &s) const
+    operator()<std::string>(const std::string &s) const
 {
     throw std::invalid_argument("Cannot translate string to float");
 }
 
-struct VariantToIntVisitor : public boost::static_visitor<int>
+struct VariantToIntVisitor
 {
     template <typename T> int operator()(const T &t) const
     {
@@ -40,12 +40,12 @@
 };
 template <>
 inline int VariantToIntVisitor::
-operator()<std::string>(const std::string &s) const
+    operator()<std::string>(const std::string &s) const
 {
     throw std::invalid_argument("Cannot translate string to int");
 }
 
-struct VariantToUnsignedIntVisitor : public boost::static_visitor<unsigned int>
+struct VariantToUnsignedIntVisitor
 {
     template <typename T> unsigned int operator()(const T &t) const
     {
@@ -54,7 +54,21 @@
 };
 template <>
 inline unsigned int VariantToUnsignedIntVisitor::
-operator()<std::string>(const std::string &s) const
+    operator()<std::string>(const std::string &s) const
 {
     throw std::invalid_argument("Cannot translate string to unsigned int");
 }
+
+struct VariantToStringVisitor
+{
+    template <typename T> std::string operator()(const T &t) const
+    {
+        return std::to_string(t);
+    }
+};
+template <>
+inline std::string VariantToStringVisitor::
+    operator()<std::string>(const std::string &s) const
+{
+    return s;
+}
