diff --git a/src/basics/Core/StringUtilities/StringUtil.cpp b/src/basics/Core/StringUtilities/StringUtil.cpp
index 515c2e26f26455c21be0c1c3312af337f1a6d36d..b98b13fd520542d6624158a53c1856c1ea17992c 100644
--- a/src/basics/Core/StringUtilities/StringUtil.cpp
+++ b/src/basics/Core/StringUtilities/StringUtil.cpp
@@ -1,8 +1,6 @@
 #include "StringUtil.h"
 
-#include <boost/foreach.hpp>
 #include <boost/algorithm/string.hpp>
-#include <boost/algorithm/string/predicate.hpp>
 
 std::string StringUtil::findAndReplace(const std::string &source, const std::string& find, const std::string& replace)
 {
@@ -104,7 +102,7 @@ std::vector<int> StringUtil::toIntVector(const std::string& input)
     std::vector<int> v;
     std::vector<std::string> inputEntries;
     boost::algorithm::split(inputEntries, input, boost::is_any_of("\t\n "));
-    BOOST_FOREACH(std::string entry, inputEntries)
+    for(std::string entry : inputEntries)
         if (entry != "")
             v.push_back(toInt(entry));
     return v;
@@ -115,7 +113,7 @@ std::vector<unsigned int> StringUtil::toUintVector(const std::string & input)
 	std::vector<unsigned int> v;
 	std::vector<std::string> inputEntries;
 	boost::algorithm::split(inputEntries, input, boost::is_any_of("\t\n "));
-	BOOST_FOREACH(std::string entry, inputEntries)
+	for(std::string entry : inputEntries)
 		if (entry != "")
 			v.push_back(toInt(entry));
 	return v;
@@ -126,7 +124,7 @@ std::vector<bool> StringUtil::toBoolVector(const std::string & input)
 	std::vector<bool> v;
 	std::vector<std::string> inputEntries;
 	boost::algorithm::split(inputEntries, input, boost::is_any_of("\t\n "));
-	BOOST_FOREACH(std::string entry, inputEntries)
+	for(std::string entry : inputEntries)
 	{
 		bool b = 0;
 		std::string trimmedInput = trim(input);
@@ -141,7 +139,7 @@ std::vector<std::string> StringUtil::toStringVector(const std::string & input)
 	std::vector<std::string> v;
 	std::vector<std::string> inputEntries;
 	boost::algorithm::split(inputEntries, input, boost::is_any_of("\t\n "));
-	BOOST_FOREACH(std::string entry, inputEntries)
+	for(std::string entry : inputEntries)
 		if (entry != "")
 			v.push_back(toString(entry));
 	return v;
@@ -152,7 +150,7 @@ BASICS_EXPORT std::vector<double> StringUtil::toDoubleVector(const std::string &
 	std::vector<double> v;
 	std::vector<std::string> inputEntries;
 	boost::algorithm::split(inputEntries, input, boost::is_any_of("\t\n "));
-	BOOST_FOREACH(std::string entry, inputEntries)
+	for(std::string entry : inputEntries)
 		if (entry != "")
 			v.push_back(toDouble(entry));
 	return v;
@@ -169,6 +167,7 @@ std::string StringUtil::toString(const T& t)
 template BASICS_EXPORT std::string StringUtil::toString<int>(const int& t);
 
 
+
 bool StringUtil::endsWith(const std::string &input, const std::string &end)
 {
     if (input.length() >= end.length()) {
diff --git a/src/basics/Core/StringUtilities/StringUtilTest.cpp b/src/basics/Core/StringUtilities/StringUtilTest.cpp
index 2de06ac57535663a0391e83998a115206bbf8fce..48df13bc2a1fe4c65b3c5c396876a7a5d29491ea 100644
--- a/src/basics/Core/StringUtilities/StringUtilTest.cpp
+++ b/src/basics/Core/StringUtilities/StringUtilTest.cpp
@@ -27,4 +27,14 @@ TEST(StringUtilTest, endsWith_shouldReturnFalse)
     const std::string ends_with {"string_"};
 
     ASSERT_FALSE(StringUtil::endsWith(input, ends_with));
+}
+
+TEST(StringUtilTest, toIntVector)
+{
+    const std::string input {"1   2\n3 4"};
+    std::vector<int> expected_result {1, 2, 3, 4};
+
+    auto result = StringUtil::toIntVector(input);
+
+    ASSERT_THAT(result,testing::Eq(expected_result));
 }
\ No newline at end of file