diff --git a/src/ccaosdb.cpp b/src/ccaosdb.cpp
index 023bea0330db9b3081409d9beb442fb60a99b047..8a1786934d351299012a5e30f14f9db92f4fe815 100644
--- a/src/ccaosdb.cpp
+++ b/src/ccaosdb.cpp
@@ -375,7 +375,33 @@ ERROR_RETURN_CODE(GENERIC_ERROR,
                         result_set->wrapped_result_set);
                     auto requested_entity = wrapped_result_set->At(index);
                     entity->wrapped_entity = (void *)(&requested_entity);
+                    // TODO(fspreck) explicit pointers to id, name, ...
+                    return 0;
+                  })
 
+ERROR_RETURN_CODE(GENERIC_ERROR,
+                  int caosdb_transaction_result_set_size(
+                    caosdb_transaction_result_set *result_set, int *out),
+                  {
+                    auto *wrapped_result_set =
+                      static_cast<caosdb::transaction::MultiResultSet *>(
+                        result_set->wrapped_result_set);
+                    int size(wrapped_result_set->Size());
+                    *out = size;
+                    return 0;
+                  })
+
+ERROR_RETURN_CODE(GENERIC_ERROR,
+                  int caosdb_entity_create_entity(caosdb_entity_entity *out), {
+                    auto entity = caosdb::entity::Entity();
+                    out->wrapped_entity = (void *)(&entity);
+                    return 0;
+                  })
+
+ERROR_RETURN_CODE(GENERIC_ERROR,
+                  int caosdb_entity_delete_entity(caosdb_entity_entity *out), {
+                    delete static_cast<caosdb::entity::Entity *>(
+                      out->wrapped_entity);
                     return 0;
                   })
 }
diff --git a/test/test_ccaosdb.cpp b/test/test_ccaosdb.cpp
index 70ee14da1bec1982ddebd6c4b096235ffe22ec71..1493525d9aa2faa17ec985b577261d8e9a89abb2 100644
--- a/test/test_ccaosdb.cpp
+++ b/test/test_ccaosdb.cpp
@@ -133,3 +133,13 @@ TEST_F(test_ccaosdb, test_query) {
   return_code = caosdb_transaction_delete_transaction(&transaction);
   EXPECT_EQ(return_code, 0);
 }
+
+TEST_F(test_ccaosdb, test_entity) {
+  caosdb_entity_entity entity;
+
+  int return_code(caosdb_entity_create_entity(&entity));
+  EXPECT_EQ(return_code, 0);
+
+  return_code = caosdb_entity_delete_entity(&entity);
+  EXPECT_EQ(return_code, 0);
+}