diff --git a/src/utils.cpp b/src/utils.cpp
index ecd108a..2b77755 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -136,11 +136,7 @@
     parser.populateSchema(schemaAdapter, schema);
     valijson::Validator validator;
     valijson::adapters::NlohmannJsonAdapter targetAdapter(input);
-    if (!validator.validate(schema, targetAdapter, nullptr))
-    {
-        return false;
-    }
-    return true;
+    return validator.validate(schema, targetAdapter, nullptr);
 }
 
 bool isPowerOn(void)
@@ -239,7 +235,7 @@
         boost::replace_all(*strPtr, *replaceStr, std::to_string(index));
     }
 
-    for (auto& [propName, propValue] : interface)
+    for (const auto& [propName, propValue] : interface)
     {
         std::string templateName = templateChar + propName;
         boost::iterator_range<std::string::const_iterator> find =
@@ -252,7 +248,7 @@
         size_t start = find.begin() - strPtr->begin();
 
         // check for additional operations
-        if (!start && find.end() == strPtr->end())
+        if ((start == 0U) && find.end() == strPtr->end())
         {
             std::visit([&](auto&& val) { keyPair.value() = val; }, propValue);
             return ret;
