diff --git a/include/caosdb/acm/role.h b/include/caosdb/acm/role.h
index f6ff4eba70a37035e7997b0848e2ea8250c66c37..cf1a90bafe32f4eedd791fe5ae0832c7bf2c9a51 100644
--- a/include/caosdb/acm/role.h
+++ b/include/caosdb/acm/role.h
@@ -44,17 +44,17 @@ class RoleImpl;
 
 class Role {
 public:
-  explicit Role(std::string name);
+  explicit Role(const std::string &name);
   explicit Role(std::unique_ptr<RoleImpl> wrapped);
-  Role(std::string name, std::string description);
+  Role(const std::string &name, const std::string &description);
   Role(const Role &role);
   auto operator=(const Role &role) -> Role &;
   ~Role();
   auto ToString() const -> std::string;
   [[nodiscard]] auto GetName() const -> const std::string &;
-  auto SetName(std::string name) -> void;
+  auto SetName(const std::string &name) -> void;
   [[nodiscard]] auto GetDescription() const -> const std::string &;
-  auto SetDescription(std::string description) -> void;
+  auto SetDescription(const std::string &description) -> void;
   [[nodiscard]] auto GetPermissionRules() const -> const PermissionRules &;
   // auto SetPermissionRules(PermissionRules rules) -> void;
   auto ClearPermissionRules() -> void;
diff --git a/include/caosdb/file_transmission/register_file_upload_handler.h b/include/caosdb/file_transmission/register_file_upload_handler.h
index 37df2dbf0fb895cd77f63bab2596a0b124c48b9c..37cc6cf6ae83aa23781cc65924cefba83be22627 100644
--- a/include/caosdb/file_transmission/register_file_upload_handler.h
+++ b/include/caosdb/file_transmission/register_file_upload_handler.h
@@ -49,13 +49,13 @@
 #ifndef CAOSDB_FILE_TRANSMISSION_REGISTER_FILE_UPLOAD_H
 #define CAOSDB_FILE_TRANSMISSION_REGISTER_FILE_UPLOAD_H
 
-#include "caosdb/entity/v1/main.grpc.pb.h" // for FileTransmissionS...
-#include "caosdb/entity/v1/main.pb.h"      // for FileDownloadResponse
-#include "caosdb/handler_interface.h"      // for HandlerTag, Handl...
-#include "caosdb/unary_rpc_handler.h"
-#include <grpcpp/impl/codegen/async_unary_call.h> // for ClientAsyncRespons...
-#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue
-#include <memory>                                 // for unique_ptr
+#include "caosdb/entity/v1/main.grpc.pb.h"   // for FileTransmissionS...
+#include "caosdb/entity/v1/main.pb.h"        // for FileDownloadResponse
+#include "caosdb/handler_interface.h"        // for HandlerTag, Handl...
+#include "caosdb/unary_rpc_handler.h"        // for  UnaryRpcHandler
+#include <grpcpp/completion_queue.h>         // for CompletionQueue
+#include <grpcpp/support/async_unary_call.h> // for ClientAsyncResponseReader
+#include <memory>                            // for unique_ptr
 
 namespace caosdb::transaction {
 
diff --git a/include/caosdb/transaction_handler.h b/include/caosdb/transaction_handler.h
index 6fa386be32628d5d0ae80a90dda1e1293d1eae70..3f9fc811a2137d9b8c8d0205c15704179a1c3554 100644
--- a/include/caosdb/transaction_handler.h
+++ b/include/caosdb/transaction_handler.h
@@ -1,11 +1,11 @@
 #pragma once
-#include "caosdb/entity/v1/main.grpc.pb.h"        // for FileTransmissionS...
-#include "caosdb/entity/v1/main.pb.h"             // for FileDownloadResponse
-#include "caosdb/handler_interface.h"             // for HandlerTag
-#include "caosdb/unary_rpc_handler.h"             // for HandlerTag, Handl...
-#include <grpcpp/impl/codegen/async_unary_call.h> // for ClientAsyncRespons...
-#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue
-#include <memory>                                 // for unique_ptr
+#include "caosdb/entity/v1/main.grpc.pb.h"   // for FileTransmissionS...
+#include "caosdb/entity/v1/main.pb.h"        // for FileDownloadResponse
+#include "caosdb/handler_interface.h"        // for HandlerTag
+#include "caosdb/unary_rpc_handler.h"        // for HandlerTag, Handl...
+#include <grpcpp/completion_queue.h>         // for CompletionQueue
+#include <grpcpp/support/async_unary_call.h> // for ClientAsyncResponseReader
+#include <memory>                            // for unique_ptr
 
 namespace caosdb::transaction {
 
diff --git a/include/caosdb/unary_rpc_handler.h b/include/caosdb/unary_rpc_handler.h
index a505a8724d67b5434b3535e15bc1ccb9eb635de4..06b9457ceae715b4319739f46d810d7a892612d7 100644
--- a/include/caosdb/unary_rpc_handler.h
+++ b/include/caosdb/unary_rpc_handler.h
@@ -49,11 +49,11 @@
 #ifndef CAOSDB_UNARY_RPC_HANDLER_H
 #define CAOSDB_UNARY_RPC_HANDLER_H
 
-#include "caosdb/handler_interface.h"             // for HandlerTag, Handl...
-#include "caosdb/transaction_status.h"            // for TransactionStatus
-#include <grpcpp/impl/codegen/client_context.h>   // for ClientContext
-#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue
-#include <grpcpp/impl/codegen/status.h>           // for Status
+#include "caosdb/handler_interface.h"  // for HandlerTag, Handl...
+#include "caosdb/transaction_status.h" // for TransactionStatus
+#include <grpcpp/client_context.h>     // for ClientContext
+#include <grpcpp/completion_queue.h>   // for CompletionQueue
+#include <grpcpp/support/status.h>     // for Status
 
 namespace caosdb::transaction {
 
diff --git a/src/caosdb/acm/role.cpp b/src/caosdb/acm/role.cpp
index d2761a80628d5d0fddc9e5c07d29f626c133359a..23b919f6249feaa5066f28f85a52d0e937b69d90 100644
--- a/src/caosdb/acm/role.cpp
+++ b/src/caosdb/acm/role.cpp
@@ -23,7 +23,6 @@
 #include "caosdb/acm/role_impl.h"        // for RoleImpl
 #include "caosdb/acm/v1alpha1/main.pb.h" // for ListRolesRequest
 #include "caosdb/protobuf_helper.h"      // for ProtoMessageWrapper
-#include <type_traits>                   // for remove_reference<>::type
 #include <unordered_set>                 // for _Node_iterator, operator!=
 #include <utility>                       // for move
 // IWYU pragma: no_include "net/proto2/public/repeated_field.h"
@@ -35,7 +34,7 @@ using ProtoRolePermissions = caosdb::acm::v1alpha1::RolePermissions;
 using ProtoRoleCapabilities = caosdb::acm::v1alpha1::RoleCapabilities;
 using ProtoListRoleItem = caosdb::acm::v1alpha1::ListRoleItem;
 
-RoleImpl::RoleImpl(std::string name, std::string description) {
+RoleImpl::RoleImpl(const std::string &name, const std::string &description) {
   if (!name.empty()) {
     this->wrapped->set_name(name);
   }
@@ -49,7 +48,7 @@ RoleImpl::RoleImpl(ProtoRole *role) : ScalarProtoMessageWrapper<ProtoRole>(role)
 RoleImpl::RoleImpl(ProtoListRoleItem &role_item)
   : ScalarProtoMessageWrapper<ProtoRole>(role_item.release_role()) {}
 
-RoleImpl::RoleImpl(std::string name) : RoleImpl(std::move(name), "") {}
+RoleImpl::RoleImpl(const std::string &name) : RoleImpl(name, "") {}
 
 [[nodiscard]] auto RoleImpl::GeneratePermissionRulesSet() -> std::unique_ptr<PermissionRules> {
   auto result = std::make_unique<PermissionRules>();
@@ -61,10 +60,10 @@ RoleImpl::RoleImpl(std::string name) : RoleImpl(std::move(name), "") {}
 
 Role::Role(std::unique_ptr<RoleImpl> wrapped) : wrapped(std::move(wrapped)) {}
 
-Role::Role(std::string name, std::string description)
-  : wrapped(std::make_unique<RoleImpl>(std::move(name), std::move(description))) {}
+Role::Role(const std::string &name, const std::string &description)
+  : wrapped(std::make_unique<RoleImpl>(name, description)) {}
 
-Role::Role(std::string name) : Role(std::move(name), {""}) {}
+Role::Role(const std::string &name) : Role(name, {""}) {}
 
 Role::Role(const Role &role) : Role(role.GetName(), role.GetDescription()) {}
 
@@ -78,11 +77,12 @@ auto Role::operator=(const Role &role) -> Role & {
 }
 
 Role::~Role() = default;
+
 auto Role::GetName() const -> const std::string & { return this->wrapped->wrapped->name(); }
 
-auto Role::SetName(std::string name) -> void {
+auto Role::SetName(const std::string &name) -> void {
   if (!name.empty()) {
-    this->wrapped->wrapped->set_name(std::move(name));
+    this->wrapped->wrapped->set_name(name);
   } else {
     this->wrapped->wrapped->clear_name();
   }
@@ -92,9 +92,9 @@ auto Role::GetDescription() const -> const std::string & {
   return this->wrapped->wrapped->description();
 }
 
-auto Role::SetDescription(std::string description) -> void {
+auto Role::SetDescription(const std::string &description) -> void {
   if (!description.empty()) {
-    this->wrapped->wrapped->set_description(std::move(description));
+    this->wrapped->wrapped->set_description(description);
   } else {
     this->wrapped->wrapped->clear_description();
   }
diff --git a/src/caosdb/acm/role_impl.h b/src/caosdb/acm/role_impl.h
index 6f337f33675977486362a1944d778b62ac432ab2..090de2255599c1cba2463e860a94e75cb54e5875 100644
--- a/src/caosdb/acm/role_impl.h
+++ b/src/caosdb/acm/role_impl.h
@@ -40,11 +40,11 @@ public:
   /**
    * Constructor. Instanciate a role with the given name.
    */
-  explicit RoleImpl(std::string name);
+  explicit RoleImpl(const std::string &name);
   /**
    * Constructor. Instanciate a role with the given name and description.
    */
-  RoleImpl(std::string name, std::string description);
+  RoleImpl(const std::string &name, const std::string &description);
   /**
    * Constructor. Instanciate a role from the server's responces.
    */
diff --git a/src/caosdb/file_transmission/register_file_upload_handler.cpp b/src/caosdb/file_transmission/register_file_upload_handler.cpp
index 9460d187e883d843dae21c9e4e3ba00376ecbb01..3a47715c75eb797120e1a0116c37743ef6d2b92a 100644
--- a/src/caosdb/file_transmission/register_file_upload_handler.cpp
+++ b/src/caosdb/file_transmission/register_file_upload_handler.cpp
@@ -47,9 +47,7 @@
  * > DEALINGS IN THE SOFTWARE.
  */
 #include "caosdb/file_transmission/register_file_upload_handler.h"
-#include "caosdb/logging.h"                       // for CAOSDB_LOG_TRACE
-#include <grpcpp/impl/codegen/async_unary_call.h> // for ClientAsyncRes...
-#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue
+#include "caosdb/logging.h" // for CAOSDB_LOG_TRACE
 
 namespace caosdb::transaction {
 
diff --git a/src/caosdb/transaction_handler.cpp b/src/caosdb/transaction_handler.cpp
index cbcbf76332f437712ea3883be72c347370f75924..ef4897d1392f46b374fbdf5831c3a9e74ebf9d63 100644
--- a/src/caosdb/transaction_handler.cpp
+++ b/src/caosdb/transaction_handler.cpp
@@ -2,8 +2,6 @@
 #include "caosdb/logging.h" // for CAOSDB_LOG_TRACE
 #include <exception>        // IWYU pragma: keep
 // IWYU pragma: no_include <bits/exception.h>
-#include <grpcpp/impl/codegen/async_unary_call.h> // for ClientAsyncRes...
-#include <grpcpp/impl/codegen/completion_queue.h> // for CompletionQueue
 
 namespace caosdb::transaction {