diff --git a/docs/EntityManagerDbusAPI.md b/docs/EntityManagerDbusAPI.md
index dc4f47e..268db09 100644
--- a/docs/EntityManagerDbusAPI.md
+++ b/docs/EntityManagerDbusAPI.md
@@ -94,7 +94,7 @@
 
 ###JSON syntax requirements:
 
-Based on the above DBus object, there is an implicit requirment that device
+Based on the above DBus object, there is an implicit requirement that device
 objects may not have more than one level deep of dictionary or list of
 dictionary. It is possible to extend in the future to allow nearly infinite
 levels deep of dictonary with extending the
diff --git a/src/EntityManager.cpp b/src/EntityManager.cpp
index eb7f90a..4f4e9c6 100644
--- a/src/EntityManager.cpp
+++ b/src/EntityManager.cpp
@@ -657,14 +657,14 @@
         }
         else
         {
-            std::string subsitute;
+            std::string substitute;
             for (auto &foundDevicePair : foundDevice)
             {
                 if (boost::iequals(foundDevicePair.first, templateValue))
                 {
                     // convert value to string
                     // respresentation
-                    subsitute = boost::apply_visitor(
+                    substitute = boost::apply_visitor(
                         [](const auto &x) {
                             return boost::lexical_cast<std::string>(x);
                         },
@@ -672,13 +672,13 @@
                     break;
                 }
             }
-            if (!subsitute.size())
+            if (!substitute.size())
             {
                 std::cerr << "could not find symbol " << templateValue << "\n";
             }
             else
             {
-                keyPair.value() = subsitute;
+                keyPair.value() = substitute;
             }
         }
     }
diff --git a/src/FruDevice.cpp b/src/FruDevice.cpp
index f2b7b29..1fd7a37 100644
--- a/src/FruDevice.cpp
+++ b/src/FruDevice.cpp
@@ -525,7 +525,7 @@
     dbus::DbusObjectServer objServer(systemBus);
     systemBus->request_name("com.intel.FruDevice");
 
-    // this is a map with keys of pair(bus number, adddress) and values of the
+    // this is a map with keys of pair(bus number, address) and values of the
     // object on dbus
     boost::container::flat_map<std::pair<size_t, size_t>,
                                std::shared_ptr<dbus::DbusObject>>
@@ -646,7 +646,7 @@
 
     dirWatch.async_read_some(boost::asio::buffer(readBuffer), watchI2cBusses);
 
-    // run the intial scan
+    // run the initial scan
     rescanBusses(dbusObjectMap, systemBus, objServer, pendingCallback);
 
     auto object = std::make_shared<dbus::DbusObject>(
