diff --git a/conanfile.py b/conanfile.py
index 30f6d19..8bf0991 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -378,8 +378,6 @@
         # the following is workaround for https://github.com/conan-io/conan/issues/7192
         if self.settings.os == "Linux":
             tc.cache_variables["CMAKE_EXE_LINKER_FLAGS"] = "-Wl,--unresolved-symbols=ignore-in-shared-libs"
-        #elif self.settings.os == "Macos":
-        #    tc.cache_variables["CMAKE_EXE_LINKER_FLAGS"] = "-Wl,undefined -Wl,dynamic_lookup"
         v = Version(self.version)
         tc.cache_variables["CELIX_MAJOR"] = str(v.major.value)
         tc.cache_variables["CELIX_MINOR"] = str(v.minor.value)
diff --git a/libs/framework/include/celix/dm/Component_Impl.h b/libs/framework/include/celix/dm/Component_Impl.h
index f6b50ad..520c8e4 100644
--- a/libs/framework/include/celix/dm/Component_Impl.h
+++ b/libs/framework/include/celix/dm/Component_Impl.h
@@ -385,7 +385,6 @@
 template<class T>
 Component<T>& Component<T>::addContext(std::shared_ptr<void> context) {
     std::lock_guard<std::mutex> lock{mutex};
-    //Removed superfluous 'template' keyword which triggered '-Wmissing-template-arg-list-after-template-kw'
     componentContexts.emplace_back(std::move(context));
     return *this;
 }
diff --git a/libs/framework/include/celix/dm/ServiceDependency_Impl.h b/libs/framework/include/celix/dm/ServiceDependency_Impl.h
index 7af3c19..4867db9 100644
--- a/libs/framework/include/celix/dm/ServiceDependency_Impl.h
+++ b/libs/framework/include/celix/dm/ServiceDependency_Impl.h
@@ -541,7 +541,6 @@
                     std::weak_ptr<const celix::Properties> removedProps = it->second.second;
                     dep->removeFpUsingSharedPtr(it->second.first, it->second.second);
                     dep->addedServices.erase(it);
-                    //Removed superfluous 'template' keyword (no explicit template args supplied)
                     dep->waitForExpired(removedSvc, svcId, "service pointer");
                     dep->waitForExpired(removedProps, svcId, "service properties");
                 }
diff --git a/libs/promises/api/celix/Promise.h b/libs/promises/api/celix/Promise.h
index e4481ce..5f85227 100644
--- a/libs/promises/api/celix/Promise.h
+++ b/libs/promises/api/celix/Promise.h
@@ -659,14 +659,12 @@
 template<typename T>
 template<typename Rep, typename Period>
 inline celix::Promise<T>& celix::Promise<T>::setTimeout(std::chrono::duration<Rep, Period> duration) {
-    //Removed superfluous 'template' keyword (no explicit template args supplied)
     state->setTimeout(duration);
     return *this;
 }
 
 template<typename Rep, typename Period>
 inline celix::Promise<void>& celix::Promise<void>::setTimeout(std::chrono::duration<Rep, Period> duration) {
-    //Removed superfluous 'template' keyword (no explicit template args supplied)
     state->setTimeout(duration);
     return *this;
 }
