diff --git a/CHANGELOG.md b/CHANGELOG.md
index bce87d5256020c3749631f19cd18d4b0538593b1..10652f17f2f515bb408d91ffc2f18564c7452f1d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,8 +9,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Added
 
-* Initial release.
-
 ### Changed
 
 ### Deprecated
diff --git a/include/caosdb/entity.h b/include/caosdb/entity.h
index 5f261dfb0c9e28946574387fca9fd17b6e577ecf..d925f62abb5d732a3955b433f69c30b1c6a13a11 100644
--- a/include/caosdb/entity.h
+++ b/include/caosdb/entity.h
@@ -451,7 +451,6 @@ public:
   auto AppendProperty(const Property &property) -> void;
 
   auto AppendParent(const Parent &parent) -> void;
-  auto Switch(ProtoEntity *entity) -> void;
   /**
    * Copy all of this entity's features to the target ProtoEntity.
    */
diff --git a/src/caosdb/entity.cpp b/src/caosdb/entity.cpp
index 11e0ca0878856884be52466c86e6625ad96401f4..fbd2caa71a537dc057bd4bc57bf7fa45be077498 100644
--- a/src/caosdb/entity.cpp
+++ b/src/caosdb/entity.cpp
@@ -177,13 +177,6 @@ auto Entity::SetVersionId(const std::string &id) -> void {
   this->wrapped->mutable_version()->set_id(id);
 }
 
-// TODO(tf) Re-implement s.th. properties and parents are kept.
-auto Entity::Switch(ProtoEntity *entity) -> void {
-  this->wrapped->Swap(entity);
-  this->wrapped->Clear();
-  this->wrapped = entity;
-}
-
 auto Entity::CopyTo(ProtoEntity *target) -> void {
   target->CopyFrom(*(this->wrapped));
 }
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index fc8e134ea90db40f0d67fde6f44de9ca826adcd8..389d5d919f8200a77ea1ffb93267c11ac70baf75 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -36,7 +36,7 @@ set(test_cases
 
 # special linting for tests
 set(_CMAKE_CXX_CLANG_TIDY_TEST_CHECKS
-  "${_CMAKE_CXX_CLANG_TIDY_CHECKS},-cert-err58-cpp,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-owning-memory,-modernize-use-trailing-return-type,-google-readability-avoid-underscore-in-googletest-name,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-cppcoreguidelines-avoid-goto,-hicpp-avoid-goto"
+  "${_CMAKE_CXX_CLANG_TIDY_CHECKS},-cert-err58-cpp,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-owning-memory,-modernize-use-trailing-return-type,-google-readability-avoid-underscore-in-googletest-name,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-cppcoreguidelines-avoid-goto,-hicpp-avoid-goto,-readability-function-cognitive-complexity"
 )
 
 # add special cmake functions for gtest
diff --git a/test/test_configuration.cpp b/test/test_configuration.cpp
index 3c047850e82da2a30039cc0c46361542284af38b..abc797fbe97fb408e0ff05ea5deab2a8581f194a 100644
--- a/test/test_configuration.cpp
+++ b/test/test_configuration.cpp
@@ -38,8 +38,7 @@ protected:
   void TearDown() override { ConfigurationManager::Clear(); }
 };
 
-// TODO(tf) cogintive complexity > 25 (threshold)
-TEST_F(test_configuration, load_json) { // NOLINT
+TEST_F(test_configuration, load_json) {
   ConfigurationManager::LoadSingleJSONConfiguration(TEST_DATA_DIR +
                                                     "/test_caosdb_client.json");
   EXPECT_THROW_MESSAGE(
@@ -53,9 +52,7 @@ TEST_F(test_configuration, load_json) { // NOLINT
   ConfigurationManager::Clear();
 }
 
-// TODO(tf) cognitive complexity again
-TEST_F(test_configuration,                           // NOLINT
-       get_default_connection_configuration_error) { // NOLINT
+TEST_F(test_configuration, get_default_connection_configuration_error) {
   EXPECT_THROW_MESSAGE(ConfigurationManager::GetDefaultConnectionName(),
                        ConfigurationError,
                        "This CaosDB client has not been configured.");
diff --git a/test/test_connection.cpp b/test/test_connection.cpp
index 6c5fa0b58f224233a1826d7605a8c94e8270a7e9..7c2efab9566d58c709c060e4206fc0d193ac75df 100644
--- a/test/test_connection.cpp
+++ b/test/test_connection.cpp
@@ -65,8 +65,7 @@ TEST_F(test_connection, configure_ssl_localhost_8080) {
   EXPECT_TRUE(sslcc != nullptr);
 }
 
-// TODO(tf) cognitive complexity > 25 (threshold)
-TEST_F(test_connection, connection_manager_unknown_connection) { // NOLINT
+TEST_F(test_connection, connection_manager_unknown_connection) {
   EXPECT_THROW_MESSAGE(ConnectionManager::GetConnection("test"),
                        caosdb::exceptions::UnknownConnectionError,
                        "No connection named 'test' present.");
diff --git a/test/test_entity.cpp b/test/test_entity.cpp
index 412cce4a25d1f8cdae0b7dae208c3a121e49bb28..ede68149ea6bf81c0b2517d283300285efdef260 100644
--- a/test/test_entity.cpp
+++ b/test/test_entity.cpp
@@ -78,8 +78,7 @@ TEST(test_entity, test_property_setters) {
   EXPECT_EQ(prop.GetDatatype(), "prop_dtype");
 }
 
-// TODO(fspreck) cognitive complexity > 25 (threshold)
-TEST(test_entity, test_append_property) { // NOLINT
+TEST(test_entity, test_append_property) {
   auto entity = Entity();
 
   auto prop = Property();
@@ -152,8 +151,7 @@ TEST(test_entity, test_insert_entity) {
   EXPECT_EQ(entity.GetName(), "entity_name");
 }
 
-// TODO(fspreck) cognitive complexity > 25 (threshold)
-TEST(test_entity, test_insert_with_role) { // NOLINT
+TEST(test_entity, test_insert_with_role) {
   auto transaction = caosdb::transaction::Transaction(
     std::shared_ptr<transaction::EntityTransactionService::Stub>(nullptr),
     std::shared_ptr<transaction::FileTransmissionService::Stub>(nullptr));
@@ -200,8 +198,7 @@ TEST(test_entity, test_insert_with_parent) {
   EXPECT_EQ(inserted_parent.GetName(), parent.GetName());
 }
 
-// TODO(fspreck) cognitive complexity > 25 (threshold)
-TEST(test_entity, test_insert_with_property) { // NOLINT
+TEST(test_entity, test_insert_with_property) {
   auto transaction = caosdb::transaction::Transaction(
     std::shared_ptr<transaction::EntityTransactionService::Stub>(nullptr),
     std::shared_ptr<transaction::FileTransmissionService::Stub>(nullptr));
@@ -233,8 +230,7 @@ TEST(test_entity, test_insert_with_property) { // NOLINT
   EXPECT_EQ(prop.GetDatatype(), inserted_prop.GetDatatype());
 }
 
-// TODO(tf) cognitive complexity > 25 (threshold)
-TEST(test_entity, test_from_id_response) { // NOLINT
+TEST(test_entity, test_from_id_response) {
   IdResponse idResponse;
   idResponse.set_id("entity_id");
   auto *error = idResponse.add_entity_errors();
diff --git a/test/test_protobuf.cpp b/test/test_protobuf.cpp
index 61b85c89ae1fc1f5ee0a101ff4f8b4438275648f..9dc957a2f85cd95ce3ead5f59ab8c10868582003 100644
--- a/test/test_protobuf.cpp
+++ b/test/test_protobuf.cpp
@@ -29,8 +29,7 @@ namespace caosdb {
 using caosdb::entity::v1alpha1::Entity;
 using caosdb::entity::v1alpha1::Message;
 
-// TODO(tf) cognitive complexity > 25 (threshold)
-TEST(test_protobuf, test_swap_trivial) { // NOLINT
+TEST(test_protobuf, test_swap_trivial) {
   Message message_source;
   message_source.set_code(1234);
   message_source.set_description("desc");
@@ -50,8 +49,7 @@ TEST(test_protobuf, test_swap_trivial) { // NOLINT
   EXPECT_EQ(message_destination.description(), "desc");
 }
 
-// TODO(tf) cognitive complexity again
-TEST(test_protobuf, test_swap_nested) { // NOLINT
+TEST(test_protobuf, test_swap_nested) {
   Entity entity_source;
   entity_source.set_id("entity_id");
   auto *version_source = entity_source.mutable_version();
diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp
index e17f34960438ce51f41e38da7ad7de4444e741dd..b1a51ab4aa0a256f902f5ebe833cab21c83e38e4 100644
--- a/test/test_transaction.cpp
+++ b/test/test_transaction.cpp
@@ -41,8 +41,7 @@ using caosdb::exceptions::ConnectionError;
 using caosdb::transaction::UniqueResult;
 using ProtoEntity = caosdb::entity::v1alpha1::Entity;
 
-// TODO(tf) cognitive complexity > 25 (threshold)
-TEST(test_transaction, create_transaction) { // NOLINT
+TEST(test_transaction, create_transaction) {
   const auto *host = "localhost";
   auto configuration = InsecureConnectionConfiguration(host, 8000);
   Connection connection(configuration);