diff --git a/test/entity_manager/test_entity-manager.cpp b/test/entity_manager/test_entity-manager.cpp
index cc59e44..397861d 100644
--- a/test/entity_manager/test_entity-manager.cpp
+++ b/test/entity_manager/test_entity-manager.cpp
@@ -13,11 +13,10 @@
 TEST(TemplateCharReplace, replaceOneInt)
 {
     nlohmann::json j = {{"foo", "$bus"}};
-    auto it = j.begin();
     DBusInterface data;
     data["BUS"] = 23;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = 23;
     EXPECT_EQ(expected, j["foo"]);
@@ -26,11 +25,10 @@
 TEST(TemplateCharReplace, replaceOneStr)
 {
     nlohmann::json j = {{"foo", "$TEST"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = std::string("Test");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "Test";
     EXPECT_EQ(expected, j["foo"]);
@@ -39,11 +37,10 @@
 TEST(TemplateCharReplace, replaceSecondStr)
 {
     nlohmann::json j = {{"foo", "the $TEST"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = std::string("Test");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "the Test";
     EXPECT_EQ(expected, j["foo"]);
@@ -52,11 +49,10 @@
 TEST(TemplateCharReplace, replaceMiddleStr)
 {
     nlohmann::json j = {{"foo", "the $TEST worked"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = std::string("Test");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "the Test worked";
     EXPECT_EQ(expected, j["foo"]);
@@ -65,11 +61,10 @@
 TEST(TemplateCharReplace, replaceLastStr)
 {
     nlohmann::json j = {{"foo", "the Test $TEST"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 23;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "the Test 23";
     EXPECT_EQ(expected, j["foo"]);
@@ -78,11 +73,10 @@
 TEST(TemplateCharReplace, increment)
 {
     nlohmann::json j = {{"foo", "3 plus 1 equals $TEST + 1"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 3;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "3 plus 1 equals 4";
     EXPECT_EQ(expected, j["foo"]);
@@ -91,11 +85,10 @@
 TEST(TemplateCharReplace, decrement)
 {
     nlohmann::json j = {{"foo", "3 minus 1 equals $TEST - 1 !"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 3;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "3 minus 1 equals 2 !";
     EXPECT_EQ(expected, j["foo"]);
@@ -104,11 +97,10 @@
 TEST(TemplateCharReplace, modulus)
 {
     nlohmann::json j = {{"foo", "3 mod 2 equals $TEST % 2"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 3;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "3 mod 2 equals 1";
     EXPECT_EQ(expected, j["foo"]);
@@ -117,11 +109,10 @@
 TEST(TemplateCharReplace, multiply)
 {
     nlohmann::json j = {{"foo", "3 * 2 equals $TEST * 2"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 3;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "3 * 2 equals 6";
     EXPECT_EQ(expected, j["foo"]);
@@ -130,11 +121,10 @@
 TEST(TemplateCharReplace, divide)
 {
     nlohmann::json j = {{"foo", "4 / 2 equals $TEST / 2"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 4;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "4 / 2 equals 2";
     EXPECT_EQ(expected, j["foo"]);
@@ -143,11 +133,10 @@
 TEST(TemplateCharReplace, multiMath)
 {
     nlohmann::json j = {{"foo", "4 * 2 % 6 equals $TEST * 2 % 6"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 4;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "4 * 2 % 6 equals 2";
     EXPECT_EQ(expected, j["foo"]);
@@ -156,12 +145,11 @@
 TEST(TemplateCharReplace, twoReplacements)
 {
     nlohmann::json j = {{"foo", "$FOO $BAR"}};
-    auto it = j.begin();
     DBusInterface data;
     data["FOO"] = std::string("foo");
     data["BAR"] = std::string("bar");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "foo bar";
     EXPECT_EQ(expected, j["foo"]);
@@ -170,12 +158,11 @@
 TEST(TemplateCharReplace, twoReplacementsWithMath)
 {
     nlohmann::json j = {{"foo", "4 / 2 equals $TEST / 2 $BAR"}};
-    auto it = j.begin();
     DBusInterface data;
     data["TEST"] = 4;
     data["BAR"] = std::string("bar");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "4 / 2 equals 2 bar";
 }
@@ -183,12 +170,11 @@
 TEST(TemplateCharReplace, twoReplacementsWithMath2)
 {
     nlohmann::json j = {{"foo", "4 / 2 equals $ADDRESS / 2 $BAR"}};
-    auto it = j.begin();
     DBusInterface data;
     data["ADDRESS"] = 4;
     data["BAR"] = std::string("bar");
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "4 / 2 equals 2 bar";
     EXPECT_EQ(expected, j["foo"]);
@@ -206,7 +192,7 @@
 
     for (auto it = j.begin(); it != j.end(); it++)
     {
-        em_utils::templateCharReplace(it, data, 0);
+        em_utils::templateCharReplace(j, data, 0);
     }
     nlohmann::json expected = {{"Address", 84},
                                {"Bus", 15},
@@ -218,11 +204,10 @@
 TEST(TemplateCharReplace, replaceSecondAsInt)
 {
     nlohmann::json j = {{"foo", "twelve is $TEST"}};
-    auto it = j.begin();
     DBusInterface data;
     data["test"] = 12;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = "twelve is 12";
     EXPECT_EQ(expected, j["foo"]);
@@ -231,10 +216,9 @@
 TEST(TemplateCharReplace, singleHex)
 {
     nlohmann::json j = {{"foo", "0x54"}};
-    auto it = j.begin();
     DBusInterface data;
 
-    em_utils::templateCharReplace(it, data, 0);
+    em_utils::templateCharReplace(j, data, 0);
 
     nlohmann::json expected = 84;
     EXPECT_EQ(expected, j["foo"]);
@@ -243,7 +227,6 @@
 TEST(TemplateCharReplace, leftOverTemplateVars)
 {
     nlohmann::json j = {{"foo", "$EXISTENT_VAR and $NON_EXISTENT_VAR"}};
-    auto it = j.begin();
 
     DBusInterface data;
     data["EXISTENT_VAR"] = std::string("Replaced");
@@ -251,7 +234,7 @@
     DBusObject object;
     object["PATH"] = data;
 
-    em_utils::templateCharReplace(it, object, 0);
+    em_utils::templateCharReplace(j, object, 0);
 
     nlohmann::json expected = "Replaced and ";
     EXPECT_EQ(expected, j["foo"]);
@@ -260,9 +243,8 @@
 TEST(HandleLeftOverTemplateVars, replaceLeftOverTemplateVar)
 {
     nlohmann::json j = {{"foo", "the Test $TEST is $TESTED"}};
-    auto it = j.begin();
 
-    em_utils::handleLeftOverTemplateVars(it);
+    em_utils::handleLeftOverTemplateVars(j);
 
     nlohmann::json expected = "the Test  is ";
     EXPECT_EQ(expected, j["foo"]);
